+ getRegisteredPluginOrTheme (npmName: string) {
+ return this.registeredPlugins[npmName]
+ }
+
+ getRegisteredPluginByShortName (name: string) {
+ const npmName = PluginModel.buildNpmName(name, PluginType.PLUGIN)
+ const registered = this.getRegisteredPluginOrTheme(npmName)
+
+ if (!registered || registered.type !== PluginType.PLUGIN) return undefined
+
+ return registered
+ }
+
+ getRegisteredThemeByShortName (name: string) {
+ const npmName = PluginModel.buildNpmName(name, PluginType.THEME)
+ const registered = this.getRegisteredPluginOrTheme(npmName)
+
+ if (!registered || registered.type !== PluginType.THEME) return undefined
+
+ return registered
+ }
+
+ getRegisteredPlugins () {
+ return this.getRegisteredPluginsOrThemes(PluginType.PLUGIN)
+ }
+
+ getRegisteredThemes () {
+ return this.getRegisteredPluginsOrThemes(PluginType.THEME)
+ }
+
+ getIdAndPassAuths () {
+ return this.getRegisteredPlugins()
+ .map(p => ({
+ npmName: p.npmName,
+ name: p.name,
+ version: p.version,
+ idAndPassAuths: p.registerHelpersStore.getIdAndPassAuths()
+ }))
+ .filter(v => v.idAndPassAuths.length !== 0)
+ }
+
+ getExternalAuths () {
+ return this.getRegisteredPlugins()
+ .map(p => ({
+ npmName: p.npmName,
+ name: p.name,
+ version: p.version,
+ externalAuths: p.registerHelpersStore.getExternalAuths()
+ }))
+ .filter(v => v.externalAuths.length !== 0)
+ }
+
+ getRegisteredSettings (npmName: string) {
+ const result = this.getRegisteredPluginOrTheme(npmName)
+ if (!result || result.type !== PluginType.PLUGIN) return []
+
+ return result.registerHelpersStore.getSettings()
+ }
+
+ getRouter (npmName: string) {
+ const result = this.getRegisteredPluginOrTheme(npmName)
+ if (!result || result.type !== PluginType.PLUGIN) return null
+
+ return result.registerHelpersStore.getRouter()
+ }
+
+ getTranslations (locale: string) {
+ return this.translations[locale] || {}
+ }
+
+ async isTokenValid (token: MOAuthTokenUser, type: 'access' | 'refresh') {
+ const auth = this.getAuth(token.User.pluginAuth, token.authName)
+ if (!auth) return true
+
+ if (auth.hookTokenValidity) {