UNPKG

@jbrowse/plugin-authentication

Version:

JBrowse 2 Authentication

65 lines (64 loc) 3.76 kB
import Plugin from '@jbrowse/core/Plugin'; import InternetAccountType from '@jbrowse/core/pluggableElementTypes/InternetAccountType'; import { configSchema as DropboxOAuthConfigSchema, modelFactory as DropboxOAuthInternetAccountModelFactory, } from "./DropboxOAuthModel/index.js"; import { configSchema as ExternalTokenConfigSchema, modelFactory as ExternalTokenInternetAccountModelFactory, } from "./ExternalTokenModel/index.js"; import { configSchema as GoogleDriveOAuthConfigSchema, modelFactory as GoogleDriveOAuthInternetAccountModelFactory, } from "./GoogleDriveOAuthModel/index.js"; import { configSchema as HTTPBasicConfigSchema, modelFactory as HTTPBasicInternetAccountModelFactory, } from "./HTTPBasicModel/index.js"; import { configSchema as OAuthConfigSchema, modelFactory as OAuthInternetAccountModelFactory, } from "./OAuthModel/index.js"; export default class AuthenticationPlugin extends Plugin { name = 'AuthenticationPlugin'; exports = { OAuthConfigSchema, OAuthInternetAccountModelFactory, ExternalTokenConfigSchema, ExternalTokenInternetAccountModelFactory, HTTPBasicConfigSchema, HTTPBasicInternetAccountModelFactory, DropboxOAuthConfigSchema, DropboxOAuthInternetAccountModelFactory, GoogleDriveOAuthConfigSchema, GoogleDriveOAuthInternetAccountModelFactory, }; install(pluginManager) { pluginManager.addInternetAccountType(() => { return new InternetAccountType({ name: 'OAuthInternetAccount', configSchema: OAuthConfigSchema, stateModel: OAuthInternetAccountModelFactory(OAuthConfigSchema), }); }); pluginManager.addInternetAccountType(() => { return new InternetAccountType({ name: 'ExternalTokenInternetAccount', configSchema: ExternalTokenConfigSchema, stateModel: ExternalTokenInternetAccountModelFactory(ExternalTokenConfigSchema), }); }); pluginManager.addInternetAccountType(() => { return new InternetAccountType({ name: 'HTTPBasicInternetAccount', configSchema: HTTPBasicConfigSchema, stateModel: HTTPBasicInternetAccountModelFactory(HTTPBasicConfigSchema), }); }); pluginManager.addInternetAccountType(() => { return new InternetAccountType({ name: 'DropboxOAuthInternetAccount', configSchema: DropboxOAuthConfigSchema, stateModel: DropboxOAuthInternetAccountModelFactory(DropboxOAuthConfigSchema), }); }); pluginManager.addInternetAccountType(() => { return new InternetAccountType({ name: 'GoogleDriveOAuthInternetAccount', configSchema: GoogleDriveOAuthConfigSchema, stateModel: GoogleDriveOAuthInternetAccountModelFactory(GoogleDriveOAuthConfigSchema), }); }); } } export { configSchema as OAuthConfigSchema, modelFactory as OAuthInternetAccountModelFactory, } from "./OAuthModel/index.js"; export { configSchema as ExternalTokenConfigSchema, modelFactory as ExternalTokenInternetAccountModelFactory, } from "./ExternalTokenModel/index.js"; export { configSchema as HTTPBasicConfigSchema, modelFactory as HTTPBasicInternetAccountModelFactory, } from "./HTTPBasicModel/index.js"; export { configSchema as DropboxOAuthConfigSchema, modelFactory as DropboxOAuthInternetAccountModelFactory, } from "./DropboxOAuthModel/index.js"; export { configSchema as GoogleDriveOAuthConfigSchema, modelFactory as GoogleDriveOAuthInternetAccountModelFactory, } from "./GoogleDriveOAuthModel/index.js";