@teambit/cloud 0.0.420 → 0.0.421

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <testsuites>
3
- <testsuite name="teambit.cloud/cloud@0.0.420" tests="0" failures="0" errors="0" skipped="0"/>
3
+ <testsuite name="teambit.cloud/cloud@0.0.421" tests="0" failures="0" errors="0" skipped="0"/>
4
4
  </testsuites>
@@ -156,7 +156,7 @@ export class CloudUI {
156
156
  workspace.registerMenuWidget([CloudUserBar]);
157
157
  if (workspace) {
158
158
  lanes.registerMenuWidget(CloudUserBar);
159
- component.registerRightSideMenuItem({ item: <CloudUserBar />, order: 100 });
159
+ component.registerRightSideMenuItem({ item: <CloudUserBar key={'cloud-user-bar-comp-menu'} />, order: 100 });
160
160
  }
161
161
  return cloudUI;
162
162
  }
@@ -341,7 +341,12 @@ class CloudMain {
341
341
  return null;
342
342
  }
343
343
  const response = await res.json();
344
- return _objectSpread({}, response.payload || {});
344
+ return {
345
+ isLoggedIn,
346
+ displayName: response.payload?.displayName ?? undefined,
347
+ username: response.payload?.username ?? undefined,
348
+ profileImage: response.payload?.profileImage ?? undefined
349
+ };
345
350
  }).catch(err => {
346
351
  this.logger.error(`failed to get current user, err: ${err}`);
347
352
  return null;
@@ -1 +1 @@
1
- {"version":3,"names":["_harmony","data","require","_cli","_interopRequireWildcard","_uuid","_chalk","_interopRequireDefault","_os","_open","_scopes","_scopes2","_logger","_constants","_scope","_globalFlags","_graphql","_workspace","_express","_globalConfig","_ui","_cloud","_cloud2","_login","_logout","_whoami","_class","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","key","value","_toPropertyKey","configurable","writable","_toPrimitive","String","Symbol","toPrimitive","TypeError","Number","CloudMain","constructor","config","logger","express","workspace","scope","globalConfig","onSuccessLoginSlot","Map","setupAuthListener","port","portFromParams","clientId","v4","Promise","resolve","reject","getLoginPort","existingAuthListener","authListenerByPort","debug","expressApp","createApp","authServer","listen","existing","server","on","err","code","warn","then","catch","error","req","res","query","clientIdFromReq","redirectUri","username","usernameFromReq","undefined","token","Array","isArray","status","send","setSync","CFG_USER_TOKEN_KEY","CFG_USER_NAME_KEY","onLoggedInFns","values","fn","REDIRECT_URL","redirect","ERROR_RESPONSE","registerOnSuccessLogin","onSuccessLoginFn","register","getCloudDomain","cloudDomain","getCloudHubDomain","cloudHubDomain","getCloudApi","cloudApi","getCloudGraphQL","cloudGraphQL","getLoginDomain","loginDomain","getAnalyticsDomain","analyticsDomain","getRegistryUrl","registryUrl","getCloudExporterUrl","cloudExporterUrl","getHubName","cloudHubName","loginPort","DEFAULT_PORT","isLoggedIn","Boolean","getAuthToken","invalidateCache","processToken","globalFlags","getSync","getAuthHeader","Authorization","getCurrentUser","route","url","opts","method","headers","fetch","response","json","payload","getUsername","getLoginUrl","redirectUrl","machineName","loginUrl","authListenerForPort","os","hostname","process","platform","authListener","encodeURI","logout","delSync","whoami","currentUser","login","suppressBrowserLaunch","isAlreadyLoggedIn","promptLogin","loggedInParams","Error","console","log","chalk","yellow","open","getCloudScopes","scopes","remotes","_legacyRemotes","filteredScopesToFetch","ScopeID","isValid","isHub","queryResponse","fetchFromSymphonyViaGQL","GET_SCOPES","ids","scopesFromQuery","getScopes","map","scopeDescriptorObj","id","fromString","ScopeDescriptor","fromObject","variables","graphqlUrl","GRAPHQL_ENDPOINT","body","JSON","stringify","ok","provider","loggerMain","graphql","cli","ui","createLogger","CloudAspect","cloudMain","loginCmd","LoginCmd","logoutCmd","LogoutCmd","whoamiCmd","WhoamiCmd","cloudSchema","registerOnStart","exports","Slot","withType","LoggerAspect","GraphqlAspect","ExpressAspect","WorkspaceAspect","ScopeAspect","GlobalConfigAspect","CLIAspect","UIAspect","MainRuntime","DEFAULT_HUB_DOMAIN","getSymphonyUrl","SYMPHONY_GRAPHQL","DEFAULT_ANALYTICS_DOMAIN","DEFAULT_REGISTRY_URL","CENTRAL_BIT_HUB_URL","CENTRAL_BIT_HUB_NAME","addRuntime"],"sources":["cloud.main.runtime.ts"],"sourcesContent":["import { Slot, SlotRegistry } from '@teambit/harmony';\nimport CLIAspect, { CLIMain, MainRuntime } from '@teambit/cli';\nimport { v4 } from 'uuid';\nimport chalk from 'chalk';\nimport os from 'os';\nimport open from 'open';\nimport * as http from 'http';\nimport { Express } from 'express';\nimport { GetScopesGQLResponse } from '@teambit/cloud.models.cloud-scope';\nimport { CloudUser, CloudUserAPIResponse } from '@teambit/cloud.models.cloud-user';\nimport { ScopeDescriptor } from '@teambit/scopes.scope-descriptor';\nimport { ScopeID } from '@teambit/scopes.scope-id';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport {\n getCloudDomain,\n DEFAULT_HUB_DOMAIN,\n getSymphonyUrl,\n SYMPHONY_GRAPHQL,\n getLoginUrl,\n DEFAULT_ANALYTICS_DOMAIN,\n DEFAULT_REGISTRY_URL,\n CENTRAL_BIT_HUB_URL,\n CENTRAL_BIT_HUB_NAME,\n CFG_USER_TOKEN_KEY,\n CFG_USER_NAME_KEY,\n} from '@teambit/legacy/dist/constants';\nimport ScopeAspect, { ScopeMain } from '@teambit/scope';\nimport globalFlags from '@teambit/legacy/dist/cli/global-flags';\nimport GraphqlAspect, { GraphqlMain } from '@teambit/graphql';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport { ExpressAspect, ExpressMain } from '@teambit/express';\nimport GlobalConfigAspect, { GlobalConfigMain } from '@teambit/global-config';\nimport UIAspect, { UiMain } from '@teambit/ui';\nimport { cloudSchema } from './cloud.graphql';\nimport { CloudAspect } from './cloud.aspect';\nimport { LoginCmd } from './login.cmd';\nimport { LogoutCmd } from './logout.cmd';\nimport { WhoamiCmd } from './whoami.cmd';\n\nexport interface CloudWorkspaceConfig {\n cloudDomain: string;\n cloudHubDomain: string;\n cloudApi: string;\n cloudGraphQL: string;\n loginDomain: string;\n analyticsDomain: string;\n registryUrl: string;\n cloudExporterUrl: string;\n cloudHubName: string;\n loginPort?: number;\n}\n\ntype CloudAuthListener = {\n port: number;\n server?: http.Server;\n username?: string | null;\n clientId?: string;\n expressApp?: Express | null;\n};\n\nexport type OnSuccessLogin = ({ username, token }: { username?: string; token?: string }) => void;\nexport type OnSuccessLoginSlot = SlotRegistry<OnSuccessLogin>;\nexport class CloudMain {\n static ERROR_RESPONSE = 500;\n static DEFAULT_PORT = 8888;\n static REDIRECT = 302;\n static GRAPHQL_ENDPOINT = '/graphql';\n private authListenerByPort: Map<number, CloudAuthListener> = new Map();\n private REDIRECT_URL?: string;\n\n constructor(\n private config: CloudWorkspaceConfig,\n public logger: Logger,\n public express: ExpressMain,\n public workspace: Workspace,\n public scope: ScopeMain,\n public globalConfig: GlobalConfigMain,\n public onSuccessLoginSlot: OnSuccessLoginSlot\n ) {}\n\n setupAuthListener({\n port: portFromParams,\n clientId = v4(),\n }: {\n port?: number;\n clientId?: string;\n } = {}): Promise<CloudAuthListener | null> {\n return new Promise((resolve, reject) => {\n const port = portFromParams || this.getLoginPort();\n const existingAuthListener = this.authListenerByPort.get(port);\n\n if (existingAuthListener) {\n this.logger.debug(`auth server is already running on port ${port}`);\n resolve(existingAuthListener);\n return;\n }\n\n const expressApp = this.express.createApp();\n\n this.authListenerByPort.set(port, {\n port,\n clientId,\n });\n\n const authServer = expressApp\n .listen(port, () => {\n this.logger.debug(`cloud express server started on port ${port}`);\n const existing = this.authListenerByPort.get(port) ?? {};\n this.authListenerByPort.set(port, {\n port,\n clientId,\n ...existing,\n server: authServer,\n });\n resolve({\n port,\n server: authServer,\n clientId,\n });\n })\n .on('error', (err) => {\n // @ts-ignore\n const { code } = err;\n if (code === 'EADDRINUSE') {\n // set up a new auth listener with new port\n this.logger.warn(`port: ${port} already in use for cloud auth listener, trying port ${port + 1}`);\n // eslint-disable-next-line promise/no-promise-in-callback\n this.setupAuthListener({\n port: port + 1,\n })\n .then(resolve)\n .catch(reject);\n return;\n }\n this.logger.error(`cloud express server failed to start on port ${port}`, err);\n reject(err);\n });\n\n expressApp.get('/', (req, res) => {\n this.logger.debug('cloud.authListener', 'received request', req.query);\n try {\n const { clientId: clientIdFromReq, redirectUri, username: usernameFromReq } = req.query;\n const username = typeof usernameFromReq === 'string' ? usernameFromReq : undefined;\n let { token } = req.query;\n if (Array.isArray(token)) {\n token = token[0];\n }\n if (typeof token !== 'string') {\n res.status(400).send('Invalid token format');\n return res;\n }\n this.globalConfig.setSync(CFG_USER_TOKEN_KEY, token);\n if (username) this.globalConfig.setSync(CFG_USER_NAME_KEY, username);\n\n const onLoggedInFns = this.onSuccessLoginSlot.values();\n onLoggedInFns.forEach((fn) => fn({ username, token: token as string }));\n\n const existing = this.authListenerByPort.get(port) ?? {};\n this.authListenerByPort.set(port, {\n port,\n server: authServer,\n clientId: clientIdFromReq as string,\n ...existing,\n username,\n });\n if (this.REDIRECT_URL) return res.redirect(this.REDIRECT_URL);\n if (typeof redirectUri === 'string' && redirectUri) return res.redirect(redirectUri);\n return res.status(200).send('Login successful');\n } catch (err) {\n this.logger.error(`Error on login: ${err}`);\n res.status(CloudMain.ERROR_RESPONSE).send('Login failed');\n reject(err);\n return res;\n }\n });\n });\n }\n\n registerOnSuccessLogin(onSuccessLoginFn: OnSuccessLogin) {\n this.onSuccessLoginSlot.register(onSuccessLoginFn);\n return this;\n }\n\n getCloudDomain(): string {\n return this.config.cloudDomain;\n }\n\n getCloudHubDomain(): string {\n return this.config.cloudHubDomain;\n }\n\n getCloudApi(): string {\n return this.config.cloudApi;\n }\n\n getCloudGraphQL(): string {\n return this.config.cloudGraphQL;\n }\n getLoginDomain(): string {\n return this.config.loginDomain;\n }\n\n getAnalyticsDomain(): string {\n return this.config.analyticsDomain;\n }\n\n getRegistryUrl(): string {\n return this.config.registryUrl;\n }\n\n getCloudExporterUrl(): string {\n return this.config.cloudExporterUrl;\n }\n\n getHubName(): string {\n return this.config.cloudHubName;\n }\n\n getLoginPort(): number {\n return this.config.loginPort || CloudMain.DEFAULT_PORT;\n }\n\n isLoggedIn(): boolean {\n return Boolean(this.getAuthToken());\n }\n\n getAuthToken() {\n this.globalConfig.invalidateCache();\n const processToken = globalFlags.token;\n const token = processToken || this.globalConfig.getSync(CFG_USER_TOKEN_KEY);\n if (!token) return null;\n\n return token;\n }\n\n getAuthHeader() {\n return {\n Authorization: `Bearer ${this.getAuthToken()}`,\n };\n }\n\n async getCurrentUser(): Promise<CloudUser | null> {\n const isLoggedIn = this.isLoggedIn();\n if (!isLoggedIn) {\n return null;\n }\n const route = 'user/user';\n this.logger.debug(`getCurrentUser, url: ${this.getCloudApi()}/${route}`);\n const url = `https://${this.getCloudApi()}/${route}`;\n const opts = {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n ...this.getAuthHeader(),\n },\n };\n\n return fetch(url, opts)\n .then(async (res) => {\n if (res.status === 401) {\n return null;\n }\n const response: CloudUserAPIResponse = await res.json();\n return { ...(response.payload || {}) };\n })\n .catch((err) => {\n this.logger.error(`failed to get current user, err: ${err}`);\n return null;\n });\n }\n\n getUsername(): string | undefined {\n return this.globalConfig.getSync(CFG_USER_NAME_KEY);\n }\n\n async getLoginUrl({\n redirectUrl,\n machineName,\n cloudDomain,\n port: portFromParams,\n }: { redirectUrl?: string; machineName?: string; cloudDomain?: string; port?: string } = {}): Promise<string | null> {\n const loginUrl = cloudDomain || this.getLoginDomain();\n const port = Number(portFromParams) || this.getLoginPort();\n if (redirectUrl) {\n this.REDIRECT_URL = redirectUrl;\n }\n const authListenerForPort = this.authListenerByPort.get(port);\n if (authListenerForPort) {\n return `${loginUrl}?port=${port}&clientId=${authListenerForPort.clientId}&responseType=token&deviceName=${\n machineName || os.hostname()\n }&os=${process.platform}`;\n }\n const authListener = await this.setupAuthListener({ port });\n\n if (!authListener) return null;\n\n return encodeURI(\n `${loginUrl}?port=${port}&clientId=${authListener?.clientId}&responseType=token&deviceName=${\n machineName || os.hostname()\n }&os=${process.platform}`\n );\n }\n\n logout() {\n this.globalConfig.delSync(CFG_USER_TOKEN_KEY);\n this.globalConfig.delSync(CFG_USER_NAME_KEY);\n }\n\n async whoami(): Promise<string | undefined> {\n const currentUser = await this.getCurrentUser();\n if (!currentUser?.username) {\n return undefined;\n }\n return currentUser.username;\n }\n\n async login(\n port?: string,\n suppressBrowserLaunch?: boolean,\n machineName?: string,\n cloudDomain?: string,\n redirectUrl?: string\n ): Promise<{\n isAlreadyLoggedIn?: boolean;\n username?: string;\n token?: string;\n } | null> {\n return new Promise((resolve, reject) => {\n if (this.isLoggedIn()) {\n resolve({\n isAlreadyLoggedIn: true,\n username: this.globalConfig.getSync(CFG_USER_NAME_KEY),\n token: this.globalConfig.getSync(CFG_USER_TOKEN_KEY),\n });\n return;\n }\n\n const promptLogin = async () => {\n this.REDIRECT_URL = redirectUrl;\n this.registerOnSuccessLogin((loggedInParams) =>\n resolve({\n username: loggedInParams.username,\n token: loggedInParams.token,\n })\n );\n\n const loginUrl = await this.getLoginUrl({\n machineName,\n cloudDomain,\n port,\n });\n if (!loginUrl) {\n reject(new Error('Failed to get login url'));\n return;\n }\n if (!suppressBrowserLaunch) {\n console.log(chalk.yellow(`Your browser has been opened to visit:\\n${loginUrl}`)); // eslint-disable-line no-console\n open(loginUrl).catch((err) => {\n this.logger.error(`failed to open browser on login, err: ${err}`);\n reject(err);\n });\n } else {\n console.log(chalk.yellow(`Go to the following link in your browser::\\n${loginUrl}`)); // eslint-disable-line no-console\n }\n };\n try {\n this.setupAuthListener({\n port: Number(port),\n })\n .then(promptLogin)\n .catch((e) => reject(e));\n } catch (err) {\n reject(err);\n }\n });\n }\n\n static GET_SCOPES = `\n query GET_SCOPES($ids: [String]!) {\n getScopes(ids: $ids) {\n id\n scopeStyle {\n icon\n backgroundIconColor\n stripColor\n }\n }\n }\n `;\n\n async getCloudScopes(scopes: string[]): Promise<ScopeDescriptor[]> {\n const remotes = await this.scope._legacyRemotes();\n const filteredScopesToFetch = scopes.filter((scope) => {\n return ScopeID.isValid(scope) && remotes.isHub(scope);\n });\n const queryResponse = await this.fetchFromSymphonyViaGQL<GetScopesGQLResponse>(CloudMain.GET_SCOPES, {\n ids: filteredScopesToFetch,\n });\n const scopesFromQuery = queryResponse?.data?.getScopes;\n if (!scopesFromQuery) return [];\n return scopesFromQuery.map((scope) => {\n const scopeDescriptorObj = {\n ...scope,\n id: ScopeID.fromString(scope.id),\n };\n return ScopeDescriptor.fromObject(scopeDescriptorObj);\n });\n }\n\n async fetchFromSymphonyViaGQL<T>(query: string, variables?: Record<string, any>): Promise<T | null> {\n if (!this.isLoggedIn()) return null;\n const graphqlUrl = `https://${this.getCloudApi()}${CloudMain.GRAPHQL_ENDPOINT}`;\n const body = JSON.stringify({\n query,\n variables,\n });\n const headers = {\n 'Content-Type': 'application/json',\n ...this.getAuthHeader(),\n };\n try {\n const response = await fetch(graphqlUrl, {\n method: 'POST',\n headers,\n body,\n });\n\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n return await response.json();\n } catch (error) {\n this.logger.debug('fetchFromSymphonyViaGQL. ', 'Error fetching data: ', error);\n return null;\n }\n }\n\n static slots = [Slot.withType<OnSuccessLogin>()];\n static dependencies = [\n LoggerAspect,\n GraphqlAspect,\n ExpressAspect,\n WorkspaceAspect,\n ScopeAspect,\n GlobalConfigAspect,\n CLIAspect,\n UIAspect,\n ];\n static runtime = MainRuntime;\n static defaultConfig: CloudWorkspaceConfig = {\n cloudDomain: getCloudDomain(),\n cloudHubDomain: DEFAULT_HUB_DOMAIN,\n cloudApi: getSymphonyUrl(),\n cloudGraphQL: SYMPHONY_GRAPHQL,\n loginDomain: getLoginUrl(),\n analyticsDomain: DEFAULT_ANALYTICS_DOMAIN,\n registryUrl: DEFAULT_REGISTRY_URL,\n cloudExporterUrl: CENTRAL_BIT_HUB_URL,\n cloudHubName: CENTRAL_BIT_HUB_NAME,\n loginPort: CloudMain.DEFAULT_PORT,\n };\n static async provider(\n [loggerMain, graphql, express, workspace, scope, globalConfig, cli, ui]: [\n LoggerMain,\n GraphqlMain,\n ExpressMain,\n Workspace,\n ScopeMain,\n GlobalConfigMain,\n CLIMain,\n UiMain\n ],\n config: CloudWorkspaceConfig,\n [onSuccessLoginSlot]: [OnSuccessLoginSlot]\n ) {\n const logger = loggerMain.createLogger(CloudAspect.id);\n const cloudMain = new CloudMain(config, logger, express, workspace, scope, globalConfig, onSuccessLoginSlot);\n const loginCmd = new LoginCmd(cloudMain);\n const logoutCmd = new LogoutCmd(cloudMain);\n const whoamiCmd = new WhoamiCmd(cloudMain);\n cli.register(loginCmd, logoutCmd, whoamiCmd);\n graphql.register(cloudSchema(cloudMain));\n if (workspace) {\n ui.registerOnStart(async () => {\n await cloudMain.setupAuthListener();\n return undefined;\n });\n }\n return cloudMain;\n }\n}\n\nCloudAspect.addRuntime(CloudMain);\n"],"mappings":"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"}
1
+ {"version":3,"names":["_harmony","data","require","_cli","_interopRequireWildcard","_uuid","_chalk","_interopRequireDefault","_os","_open","_scopes","_scopes2","_logger","_constants","_scope","_globalFlags","_graphql","_workspace","_express","_globalConfig","_ui","_cloud","_cloud2","_login","_logout","_whoami","_class","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","key","value","_toPropertyKey","configurable","writable","_toPrimitive","String","Symbol","toPrimitive","TypeError","Number","CloudMain","constructor","config","logger","express","workspace","scope","globalConfig","onSuccessLoginSlot","Map","setupAuthListener","port","portFromParams","clientId","v4","Promise","resolve","reject","getLoginPort","existingAuthListener","authListenerByPort","debug","expressApp","createApp","authServer","listen","existing","server","on","err","code","warn","then","catch","error","req","res","query","clientIdFromReq","redirectUri","username","usernameFromReq","undefined","token","Array","isArray","status","send","setSync","CFG_USER_TOKEN_KEY","CFG_USER_NAME_KEY","onLoggedInFns","values","fn","REDIRECT_URL","redirect","ERROR_RESPONSE","registerOnSuccessLogin","onSuccessLoginFn","register","getCloudDomain","cloudDomain","getCloudHubDomain","cloudHubDomain","getCloudApi","cloudApi","getCloudGraphQL","cloudGraphQL","getLoginDomain","loginDomain","getAnalyticsDomain","analyticsDomain","getRegistryUrl","registryUrl","getCloudExporterUrl","cloudExporterUrl","getHubName","cloudHubName","loginPort","DEFAULT_PORT","isLoggedIn","Boolean","getAuthToken","invalidateCache","processToken","globalFlags","getSync","getAuthHeader","Authorization","getCurrentUser","route","url","opts","method","headers","fetch","response","json","displayName","payload","profileImage","getUsername","getLoginUrl","redirectUrl","machineName","loginUrl","authListenerForPort","os","hostname","process","platform","authListener","encodeURI","logout","delSync","whoami","currentUser","login","suppressBrowserLaunch","isAlreadyLoggedIn","promptLogin","loggedInParams","Error","console","log","chalk","yellow","open","getCloudScopes","scopes","remotes","_legacyRemotes","filteredScopesToFetch","ScopeID","isValid","isHub","queryResponse","fetchFromSymphonyViaGQL","GET_SCOPES","ids","scopesFromQuery","getScopes","map","scopeDescriptorObj","id","fromString","ScopeDescriptor","fromObject","variables","graphqlUrl","GRAPHQL_ENDPOINT","body","JSON","stringify","ok","provider","loggerMain","graphql","cli","ui","createLogger","CloudAspect","cloudMain","loginCmd","LoginCmd","logoutCmd","LogoutCmd","whoamiCmd","WhoamiCmd","cloudSchema","registerOnStart","exports","Slot","withType","LoggerAspect","GraphqlAspect","ExpressAspect","WorkspaceAspect","ScopeAspect","GlobalConfigAspect","CLIAspect","UIAspect","MainRuntime","DEFAULT_HUB_DOMAIN","getSymphonyUrl","SYMPHONY_GRAPHQL","DEFAULT_ANALYTICS_DOMAIN","DEFAULT_REGISTRY_URL","CENTRAL_BIT_HUB_URL","CENTRAL_BIT_HUB_NAME","addRuntime"],"sources":["cloud.main.runtime.ts"],"sourcesContent":["import { Slot, SlotRegistry } from '@teambit/harmony';\nimport CLIAspect, { CLIMain, MainRuntime } from '@teambit/cli';\nimport { v4 } from 'uuid';\nimport chalk from 'chalk';\nimport os from 'os';\nimport open from 'open';\nimport * as http from 'http';\nimport { Express } from 'express';\nimport { GetScopesGQLResponse } from '@teambit/cloud.models.cloud-scope';\nimport { CloudUser, CloudUserAPIResponse } from '@teambit/cloud.models.cloud-user';\nimport { ScopeDescriptor } from '@teambit/scopes.scope-descriptor';\nimport { ScopeID } from '@teambit/scopes.scope-id';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport {\n getCloudDomain,\n DEFAULT_HUB_DOMAIN,\n getSymphonyUrl,\n SYMPHONY_GRAPHQL,\n getLoginUrl,\n DEFAULT_ANALYTICS_DOMAIN,\n DEFAULT_REGISTRY_URL,\n CENTRAL_BIT_HUB_URL,\n CENTRAL_BIT_HUB_NAME,\n CFG_USER_TOKEN_KEY,\n CFG_USER_NAME_KEY,\n} from '@teambit/legacy/dist/constants';\nimport ScopeAspect, { ScopeMain } from '@teambit/scope';\nimport globalFlags from '@teambit/legacy/dist/cli/global-flags';\nimport GraphqlAspect, { GraphqlMain } from '@teambit/graphql';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport { ExpressAspect, ExpressMain } from '@teambit/express';\nimport GlobalConfigAspect, { GlobalConfigMain } from '@teambit/global-config';\nimport UIAspect, { UiMain } from '@teambit/ui';\nimport { cloudSchema } from './cloud.graphql';\nimport { CloudAspect } from './cloud.aspect';\nimport { LoginCmd } from './login.cmd';\nimport { LogoutCmd } from './logout.cmd';\nimport { WhoamiCmd } from './whoami.cmd';\n\nexport interface CloudWorkspaceConfig {\n cloudDomain: string;\n cloudHubDomain: string;\n cloudApi: string;\n cloudGraphQL: string;\n loginDomain: string;\n analyticsDomain: string;\n registryUrl: string;\n cloudExporterUrl: string;\n cloudHubName: string;\n loginPort?: number;\n}\n\ntype CloudAuthListener = {\n port: number;\n server?: http.Server;\n username?: string | null;\n clientId?: string;\n expressApp?: Express | null;\n};\n\nexport type OnSuccessLogin = ({ username, token }: { username?: string; token?: string }) => void;\nexport type OnSuccessLoginSlot = SlotRegistry<OnSuccessLogin>;\nexport class CloudMain {\n static ERROR_RESPONSE = 500;\n static DEFAULT_PORT = 8888;\n static REDIRECT = 302;\n static GRAPHQL_ENDPOINT = '/graphql';\n private authListenerByPort: Map<number, CloudAuthListener> = new Map();\n private REDIRECT_URL?: string;\n\n constructor(\n private config: CloudWorkspaceConfig,\n public logger: Logger,\n public express: ExpressMain,\n public workspace: Workspace,\n public scope: ScopeMain,\n public globalConfig: GlobalConfigMain,\n public onSuccessLoginSlot: OnSuccessLoginSlot\n ) {}\n\n setupAuthListener({\n port: portFromParams,\n clientId = v4(),\n }: {\n port?: number;\n clientId?: string;\n } = {}): Promise<CloudAuthListener | null> {\n return new Promise((resolve, reject) => {\n const port = portFromParams || this.getLoginPort();\n const existingAuthListener = this.authListenerByPort.get(port);\n\n if (existingAuthListener) {\n this.logger.debug(`auth server is already running on port ${port}`);\n resolve(existingAuthListener);\n return;\n }\n\n const expressApp = this.express.createApp();\n\n this.authListenerByPort.set(port, {\n port,\n clientId,\n });\n\n const authServer = expressApp\n .listen(port, () => {\n this.logger.debug(`cloud express server started on port ${port}`);\n const existing = this.authListenerByPort.get(port) ?? {};\n this.authListenerByPort.set(port, {\n port,\n clientId,\n ...existing,\n server: authServer,\n });\n resolve({\n port,\n server: authServer,\n clientId,\n });\n })\n .on('error', (err) => {\n // @ts-ignore\n const { code } = err;\n if (code === 'EADDRINUSE') {\n // set up a new auth listener with new port\n this.logger.warn(`port: ${port} already in use for cloud auth listener, trying port ${port + 1}`);\n // eslint-disable-next-line promise/no-promise-in-callback\n this.setupAuthListener({\n port: port + 1,\n })\n .then(resolve)\n .catch(reject);\n return;\n }\n this.logger.error(`cloud express server failed to start on port ${port}`, err);\n reject(err);\n });\n\n expressApp.get('/', (req, res) => {\n this.logger.debug('cloud.authListener', 'received request', req.query);\n try {\n const { clientId: clientIdFromReq, redirectUri, username: usernameFromReq } = req.query;\n const username = typeof usernameFromReq === 'string' ? usernameFromReq : undefined;\n let { token } = req.query;\n if (Array.isArray(token)) {\n token = token[0];\n }\n if (typeof token !== 'string') {\n res.status(400).send('Invalid token format');\n return res;\n }\n this.globalConfig.setSync(CFG_USER_TOKEN_KEY, token);\n if (username) this.globalConfig.setSync(CFG_USER_NAME_KEY, username);\n\n const onLoggedInFns = this.onSuccessLoginSlot.values();\n onLoggedInFns.forEach((fn) => fn({ username, token: token as string }));\n\n const existing = this.authListenerByPort.get(port) ?? {};\n this.authListenerByPort.set(port, {\n port,\n server: authServer,\n clientId: clientIdFromReq as string,\n ...existing,\n username,\n });\n if (this.REDIRECT_URL) return res.redirect(this.REDIRECT_URL);\n if (typeof redirectUri === 'string' && redirectUri) return res.redirect(redirectUri);\n return res.status(200).send('Login successful');\n } catch (err) {\n this.logger.error(`Error on login: ${err}`);\n res.status(CloudMain.ERROR_RESPONSE).send('Login failed');\n reject(err);\n return res;\n }\n });\n });\n }\n\n registerOnSuccessLogin(onSuccessLoginFn: OnSuccessLogin) {\n this.onSuccessLoginSlot.register(onSuccessLoginFn);\n return this;\n }\n\n getCloudDomain(): string {\n return this.config.cloudDomain;\n }\n\n getCloudHubDomain(): string {\n return this.config.cloudHubDomain;\n }\n\n getCloudApi(): string {\n return this.config.cloudApi;\n }\n\n getCloudGraphQL(): string {\n return this.config.cloudGraphQL;\n }\n getLoginDomain(): string {\n return this.config.loginDomain;\n }\n\n getAnalyticsDomain(): string {\n return this.config.analyticsDomain;\n }\n\n getRegistryUrl(): string {\n return this.config.registryUrl;\n }\n\n getCloudExporterUrl(): string {\n return this.config.cloudExporterUrl;\n }\n\n getHubName(): string {\n return this.config.cloudHubName;\n }\n\n getLoginPort(): number {\n return this.config.loginPort || CloudMain.DEFAULT_PORT;\n }\n\n isLoggedIn(): boolean {\n return Boolean(this.getAuthToken());\n }\n\n getAuthToken() {\n this.globalConfig.invalidateCache();\n const processToken = globalFlags.token;\n const token = processToken || this.globalConfig.getSync(CFG_USER_TOKEN_KEY);\n if (!token) return null;\n\n return token;\n }\n\n getAuthHeader() {\n return {\n Authorization: `Bearer ${this.getAuthToken()}`,\n };\n }\n\n async getCurrentUser(): Promise<CloudUser | null> {\n const isLoggedIn = this.isLoggedIn();\n if (!isLoggedIn) {\n return null;\n }\n const route = 'user/user';\n this.logger.debug(`getCurrentUser, url: ${this.getCloudApi()}/${route}`);\n const url = `https://${this.getCloudApi()}/${route}`;\n const opts = {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n ...this.getAuthHeader(),\n },\n };\n\n return fetch(url, opts)\n .then(async (res) => {\n if (res.status === 401) {\n return null;\n }\n const response: CloudUserAPIResponse = await res.json();\n return {\n isLoggedIn,\n displayName: response.payload?.displayName ?? undefined,\n username: response.payload?.username ?? undefined,\n profileImage: response.payload?.profileImage ?? undefined,\n };\n })\n .catch((err) => {\n this.logger.error(`failed to get current user, err: ${err}`);\n return null;\n });\n }\n\n getUsername(): string | undefined {\n return this.globalConfig.getSync(CFG_USER_NAME_KEY);\n }\n\n async getLoginUrl({\n redirectUrl,\n machineName,\n cloudDomain,\n port: portFromParams,\n }: { redirectUrl?: string; machineName?: string; cloudDomain?: string; port?: string } = {}): Promise<string | null> {\n const loginUrl = cloudDomain || this.getLoginDomain();\n const port = Number(portFromParams) || this.getLoginPort();\n if (redirectUrl) {\n this.REDIRECT_URL = redirectUrl;\n }\n const authListenerForPort = this.authListenerByPort.get(port);\n if (authListenerForPort) {\n return `${loginUrl}?port=${port}&clientId=${authListenerForPort.clientId}&responseType=token&deviceName=${\n machineName || os.hostname()\n }&os=${process.platform}`;\n }\n const authListener = await this.setupAuthListener({ port });\n\n if (!authListener) return null;\n\n return encodeURI(\n `${loginUrl}?port=${port}&clientId=${authListener?.clientId}&responseType=token&deviceName=${\n machineName || os.hostname()\n }&os=${process.platform}`\n );\n }\n\n logout() {\n this.globalConfig.delSync(CFG_USER_TOKEN_KEY);\n this.globalConfig.delSync(CFG_USER_NAME_KEY);\n }\n\n async whoami(): Promise<string | undefined> {\n const currentUser = await this.getCurrentUser();\n if (!currentUser?.username) {\n return undefined;\n }\n return currentUser.username;\n }\n\n async login(\n port?: string,\n suppressBrowserLaunch?: boolean,\n machineName?: string,\n cloudDomain?: string,\n redirectUrl?: string\n ): Promise<{\n isAlreadyLoggedIn?: boolean;\n username?: string;\n token?: string;\n } | null> {\n return new Promise((resolve, reject) => {\n if (this.isLoggedIn()) {\n resolve({\n isAlreadyLoggedIn: true,\n username: this.globalConfig.getSync(CFG_USER_NAME_KEY),\n token: this.globalConfig.getSync(CFG_USER_TOKEN_KEY),\n });\n return;\n }\n\n const promptLogin = async () => {\n this.REDIRECT_URL = redirectUrl;\n this.registerOnSuccessLogin((loggedInParams) =>\n resolve({\n username: loggedInParams.username,\n token: loggedInParams.token,\n })\n );\n\n const loginUrl = await this.getLoginUrl({\n machineName,\n cloudDomain,\n port,\n });\n if (!loginUrl) {\n reject(new Error('Failed to get login url'));\n return;\n }\n if (!suppressBrowserLaunch) {\n console.log(chalk.yellow(`Your browser has been opened to visit:\\n${loginUrl}`)); // eslint-disable-line no-console\n open(loginUrl).catch((err) => {\n this.logger.error(`failed to open browser on login, err: ${err}`);\n reject(err);\n });\n } else {\n console.log(chalk.yellow(`Go to the following link in your browser::\\n${loginUrl}`)); // eslint-disable-line no-console\n }\n };\n try {\n this.setupAuthListener({\n port: Number(port),\n })\n .then(promptLogin)\n .catch((e) => reject(e));\n } catch (err) {\n reject(err);\n }\n });\n }\n\n static GET_SCOPES = `\n query GET_SCOPES($ids: [String]!) {\n getScopes(ids: $ids) {\n id\n scopeStyle {\n icon\n backgroundIconColor\n stripColor\n }\n }\n }\n `;\n\n async getCloudScopes(scopes: string[]): Promise<ScopeDescriptor[]> {\n const remotes = await this.scope._legacyRemotes();\n const filteredScopesToFetch = scopes.filter((scope) => {\n return ScopeID.isValid(scope) && remotes.isHub(scope);\n });\n const queryResponse = await this.fetchFromSymphonyViaGQL<GetScopesGQLResponse>(CloudMain.GET_SCOPES, {\n ids: filteredScopesToFetch,\n });\n const scopesFromQuery = queryResponse?.data?.getScopes;\n if (!scopesFromQuery) return [];\n return scopesFromQuery.map((scope) => {\n const scopeDescriptorObj = {\n ...scope,\n id: ScopeID.fromString(scope.id),\n };\n return ScopeDescriptor.fromObject(scopeDescriptorObj);\n });\n }\n\n async fetchFromSymphonyViaGQL<T>(query: string, variables?: Record<string, any>): Promise<T | null> {\n if (!this.isLoggedIn()) return null;\n const graphqlUrl = `https://${this.getCloudApi()}${CloudMain.GRAPHQL_ENDPOINT}`;\n const body = JSON.stringify({\n query,\n variables,\n });\n const headers = {\n 'Content-Type': 'application/json',\n ...this.getAuthHeader(),\n };\n try {\n const response = await fetch(graphqlUrl, {\n method: 'POST',\n headers,\n body,\n });\n\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n return await response.json();\n } catch (error) {\n this.logger.debug('fetchFromSymphonyViaGQL. ', 'Error fetching data: ', error);\n return null;\n }\n }\n\n static slots = [Slot.withType<OnSuccessLogin>()];\n static dependencies = [\n LoggerAspect,\n GraphqlAspect,\n ExpressAspect,\n WorkspaceAspect,\n ScopeAspect,\n GlobalConfigAspect,\n CLIAspect,\n UIAspect,\n ];\n static runtime = MainRuntime;\n static defaultConfig: CloudWorkspaceConfig = {\n cloudDomain: getCloudDomain(),\n cloudHubDomain: DEFAULT_HUB_DOMAIN,\n cloudApi: getSymphonyUrl(),\n cloudGraphQL: SYMPHONY_GRAPHQL,\n loginDomain: getLoginUrl(),\n analyticsDomain: DEFAULT_ANALYTICS_DOMAIN,\n registryUrl: DEFAULT_REGISTRY_URL,\n cloudExporterUrl: CENTRAL_BIT_HUB_URL,\n cloudHubName: CENTRAL_BIT_HUB_NAME,\n loginPort: CloudMain.DEFAULT_PORT,\n };\n static async provider(\n [loggerMain, graphql, express, workspace, scope, globalConfig, cli, ui]: [\n LoggerMain,\n GraphqlMain,\n ExpressMain,\n Workspace,\n ScopeMain,\n GlobalConfigMain,\n CLIMain,\n UiMain\n ],\n config: CloudWorkspaceConfig,\n [onSuccessLoginSlot]: [OnSuccessLoginSlot]\n ) {\n const logger = loggerMain.createLogger(CloudAspect.id);\n const cloudMain = new CloudMain(config, logger, express, workspace, scope, globalConfig, onSuccessLoginSlot);\n const loginCmd = new LoginCmd(cloudMain);\n const logoutCmd = new LogoutCmd(cloudMain);\n const whoamiCmd = new WhoamiCmd(cloudMain);\n cli.register(loginCmd, logoutCmd, whoamiCmd);\n graphql.register(cloudSchema(cloudMain));\n if (workspace) {\n ui.registerOnStart(async () => {\n await cloudMain.setupAuthListener();\n return undefined;\n });\n }\n return cloudMain;\n }\n}\n\nCloudAspect.addRuntime(CloudMain);\n"],"mappings":"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"}
@@ -205,7 +205,9 @@ class CloudUI {
205
205
  if (workspace) {
206
206
  lanes.registerMenuWidget(CloudUserBar);
207
207
  component.registerRightSideMenuItem({
208
- item: /*#__PURE__*/_react().default.createElement(CloudUserBar, null),
208
+ item: /*#__PURE__*/_react().default.createElement(CloudUserBar, {
209
+ key: 'cloud-user-bar-comp-menu'
210
+ }),
209
211
  order: 100
210
212
  });
211
213
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_react","data","_interopRequireDefault","require","_ui","_lodash","_designControls","_harmony","_cloudUi","_lanes","_workspace","_component","_cloud","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","CloudUI","constructor","userBarSectionSlot","userBarItemSlot","registerUserBarItem","userBarItem","register","registerUserBarSection","sections","listUserBarItems","flatten","values","listUserBarSections","provider","workspace","lanes","component","_","cloudUI","displayName","categoryName","icon","label","href","category","Support","createElement","SubMenu","item","children","link","userBarItems","userBarSections","CloudUserBar","UserBar","items","registerMenuWidget","registerRightSideMenuItem","order","exports","UIRuntime","WorkspaceAspect","LanesAspect","ComponentAspect","Slot","withType","_default","CloudAspect","addRuntime"],"sources":["cloud.ui.runtime.tsx"],"sourcesContent":["import React from 'react';\nimport { UIRuntime } from '@teambit/ui';\nimport { flatten } from 'lodash';\nimport { SubMenu } from '@teambit/design.controls.menu';\n// import { useThemePicker, useNextTheme } from '@teambit/base-react.themes.theme-switcher';\nimport { Slot } from '@teambit/harmony';\nimport { UserBar, UserBarItem, UserBarItemSlot, UserBarSection, UserBarSectionSlot } from '@teambit/cloud.ui.user-bar';\nimport LanesAspect, { LanesUI } from '@teambit/lanes';\nimport WorkspaceAspect, { WorkspaceUI } from '@teambit/workspace';\nimport { ComponentAspect, ComponentUI } from '@teambit/component';\nimport { CloudAspect } from './cloud.aspect';\n\nexport class CloudUI {\n constructor(private userBarSectionSlot: UserBarSectionSlot, private userBarItemSlot: UserBarItemSlot) {}\n /**\n * register a new user bar item.\n */\n registerUserBarItem(userBarItem: UserBarItem[]) {\n this.userBarItemSlot.register(userBarItem);\n return this;\n }\n\n /**\n * register a new user bar section\n */\n registerUserBarSection(sections: UserBarSection[]) {\n this.userBarSectionSlot.register(sections);\n return this;\n }\n\n /**\n * list user bar items.\n */\n listUserBarItems() {\n return flatten(this.userBarItemSlot.values());\n }\n\n /**\n * list all user bar sections.\n */\n listUserBarSections() {\n return flatten(this.userBarSectionSlot.values());\n }\n\n static runtime = UIRuntime;\n\n static dependencies = [WorkspaceAspect, LanesAspect, ComponentAspect];\n\n static slots = [Slot.withType<UserBarItem[]>(), Slot.withType<UserBarSection[]>()];\n\n static async provider(\n [workspace, lanes, component]: [WorkspaceUI, LanesUI, ComponentUI],\n _,\n [userBarItemSlot, userBarSectionSlot]: [UserBarItemSlot, UserBarSectionSlot]\n ) {\n const cloudUI = new CloudUI(userBarSectionSlot, userBarItemSlot);\n\n cloudUI.registerUserBarSection([\n {\n displayName: 'Scopes & Components',\n categoryName: 'ScopesAndComponents',\n },\n {\n displayName: 'Docs, Support & Feedback',\n categoryName: 'DocsSupportAndFeedback',\n },\n ]);\n cloudUI.registerUserBarItem([\n {\n icon: 'settings',\n label: 'Settings',\n href: 'https://bit.cloud/settings',\n },\n {\n category: 'ScopesAndComponents',\n icon: 'components',\n label: 'Your components',\n href: 'https://bit.cloud/components',\n },\n {\n category: 'ScopesAndComponents',\n icon: 'collection',\n label: 'Your scopes',\n href: 'https://bit.cloud/scopes',\n },\n {\n category: 'DocsSupportAndFeedback',\n icon: 'book-glossary',\n label: 'Bit Docs',\n href: 'https://bit.dev/docs',\n },\n {\n category: 'DocsSupportAndFeedback',\n component: function Support() {\n return (\n <SubMenu\n item={{\n label: 'Support',\n icon: 'users',\n children: [\n {\n label: 'Bit Community on bit.cloud',\n link: 'https://bit.cloud/bitdev',\n },\n {\n label: 'Ticket Support',\n link: 'https://support.bit.cloud',\n },\n {\n label: 'Bit Community Slack',\n link: 'https://join.slack.com/t/bit-dev-community/shared_invite/zt-29pmawrp1-ehfEzYbQyuAC3CNA_jYPvA',\n },\n ],\n }}\n />\n );\n },\n },\n // {\n // category: 'DocsSupportAndFeedback',\n // component: function ThemePicker() {\n // const next = useNextTheme();\n // const { currentIdx } = useThemePicker();\n // return (\n // <SubMenu\n // item={{\n // label: 'Theme',\n // icon: 'lightmode',\n // children: [\n // {\n // label: 'Light',\n // icon: currentIdx === 0 ? 'checkmark' : '',\n // onClick: () => {\n // if (currentIdx === 0) return;\n // next();\n // },\n // },\n // {\n // label: 'Dark',\n // icon: currentIdx === 1 ? 'checkmark' : '',\n // onClick: () => {\n // if (currentIdx === 1) return;\n // next();\n // },\n // },\n // ],\n // }}\n // />\n // );\n // },\n // },\n ]);\n const userBarItems = cloudUI.listUserBarItems();\n const userBarSections = cloudUI.listUserBarSections();\n const CloudUserBar = () => <UserBar sections={userBarSections} items={userBarItems} />;\n workspace.registerMenuWidget([CloudUserBar]);\n if (workspace) {\n lanes.registerMenuWidget(CloudUserBar);\n component.registerRightSideMenuItem({ item: <CloudUserBar />, order: 100 });\n }\n return cloudUI;\n }\n}\n\nexport default CloudUI;\n\nCloudAspect.addRuntime(CloudUI);\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","data","_interopRequireDefault","require","_ui","_lodash","_designControls","_harmony","_cloudUi","_lanes","_workspace","_component","_cloud","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","CloudUI","constructor","userBarSectionSlot","userBarItemSlot","registerUserBarItem","userBarItem","register","registerUserBarSection","sections","listUserBarItems","flatten","values","listUserBarSections","provider","workspace","lanes","component","_","cloudUI","displayName","categoryName","icon","label","href","category","Support","createElement","SubMenu","item","children","link","userBarItems","userBarSections","CloudUserBar","UserBar","items","registerMenuWidget","registerRightSideMenuItem","order","exports","UIRuntime","WorkspaceAspect","LanesAspect","ComponentAspect","Slot","withType","_default","CloudAspect","addRuntime"],"sources":["cloud.ui.runtime.tsx"],"sourcesContent":["import React from 'react';\nimport { UIRuntime } from '@teambit/ui';\nimport { flatten } from 'lodash';\nimport { SubMenu } from '@teambit/design.controls.menu';\n// import { useThemePicker, useNextTheme } from '@teambit/base-react.themes.theme-switcher';\nimport { Slot } from '@teambit/harmony';\nimport { UserBar, UserBarItem, UserBarItemSlot, UserBarSection, UserBarSectionSlot } from '@teambit/cloud.ui.user-bar';\nimport LanesAspect, { LanesUI } from '@teambit/lanes';\nimport WorkspaceAspect, { WorkspaceUI } from '@teambit/workspace';\nimport { ComponentAspect, ComponentUI } from '@teambit/component';\nimport { CloudAspect } from './cloud.aspect';\n\nexport class CloudUI {\n constructor(private userBarSectionSlot: UserBarSectionSlot, private userBarItemSlot: UserBarItemSlot) {}\n /**\n * register a new user bar item.\n */\n registerUserBarItem(userBarItem: UserBarItem[]) {\n this.userBarItemSlot.register(userBarItem);\n return this;\n }\n\n /**\n * register a new user bar section\n */\n registerUserBarSection(sections: UserBarSection[]) {\n this.userBarSectionSlot.register(sections);\n return this;\n }\n\n /**\n * list user bar items.\n */\n listUserBarItems() {\n return flatten(this.userBarItemSlot.values());\n }\n\n /**\n * list all user bar sections.\n */\n listUserBarSections() {\n return flatten(this.userBarSectionSlot.values());\n }\n\n static runtime = UIRuntime;\n\n static dependencies = [WorkspaceAspect, LanesAspect, ComponentAspect];\n\n static slots = [Slot.withType<UserBarItem[]>(), Slot.withType<UserBarSection[]>()];\n\n static async provider(\n [workspace, lanes, component]: [WorkspaceUI, LanesUI, ComponentUI],\n _,\n [userBarItemSlot, userBarSectionSlot]: [UserBarItemSlot, UserBarSectionSlot]\n ) {\n const cloudUI = new CloudUI(userBarSectionSlot, userBarItemSlot);\n\n cloudUI.registerUserBarSection([\n {\n displayName: 'Scopes & Components',\n categoryName: 'ScopesAndComponents',\n },\n {\n displayName: 'Docs, Support & Feedback',\n categoryName: 'DocsSupportAndFeedback',\n },\n ]);\n cloudUI.registerUserBarItem([\n {\n icon: 'settings',\n label: 'Settings',\n href: 'https://bit.cloud/settings',\n },\n {\n category: 'ScopesAndComponents',\n icon: 'components',\n label: 'Your components',\n href: 'https://bit.cloud/components',\n },\n {\n category: 'ScopesAndComponents',\n icon: 'collection',\n label: 'Your scopes',\n href: 'https://bit.cloud/scopes',\n },\n {\n category: 'DocsSupportAndFeedback',\n icon: 'book-glossary',\n label: 'Bit Docs',\n href: 'https://bit.dev/docs',\n },\n {\n category: 'DocsSupportAndFeedback',\n component: function Support() {\n return (\n <SubMenu\n item={{\n label: 'Support',\n icon: 'users',\n children: [\n {\n label: 'Bit Community on bit.cloud',\n link: 'https://bit.cloud/bitdev',\n },\n {\n label: 'Ticket Support',\n link: 'https://support.bit.cloud',\n },\n {\n label: 'Bit Community Slack',\n link: 'https://join.slack.com/t/bit-dev-community/shared_invite/zt-29pmawrp1-ehfEzYbQyuAC3CNA_jYPvA',\n },\n ],\n }}\n />\n );\n },\n },\n // {\n // category: 'DocsSupportAndFeedback',\n // component: function ThemePicker() {\n // const next = useNextTheme();\n // const { currentIdx } = useThemePicker();\n // return (\n // <SubMenu\n // item={{\n // label: 'Theme',\n // icon: 'lightmode',\n // children: [\n // {\n // label: 'Light',\n // icon: currentIdx === 0 ? 'checkmark' : '',\n // onClick: () => {\n // if (currentIdx === 0) return;\n // next();\n // },\n // },\n // {\n // label: 'Dark',\n // icon: currentIdx === 1 ? 'checkmark' : '',\n // onClick: () => {\n // if (currentIdx === 1) return;\n // next();\n // },\n // },\n // ],\n // }}\n // />\n // );\n // },\n // },\n ]);\n const userBarItems = cloudUI.listUserBarItems();\n const userBarSections = cloudUI.listUserBarSections();\n const CloudUserBar = () => <UserBar sections={userBarSections} items={userBarItems} />;\n workspace.registerMenuWidget([CloudUserBar]);\n if (workspace) {\n lanes.registerMenuWidget(CloudUserBar);\n component.registerRightSideMenuItem({ item: <CloudUserBar key={'cloud-user-bar-comp-menu'} />, order: 100 });\n }\n return cloudUI;\n }\n}\n\nexport default CloudUI;\n\nCloudAspect.addRuntime(CloudUI);\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/cloud",
3
- "version": "0.0.420",
3
+ "version": "0.0.421",
4
4
  "homepage": "https://bit.cloud/teambit/cloud/cloud",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.cloud",
8
8
  "name": "cloud",
9
- "version": "0.0.420"
9
+ "version": "0.0.421"
10
10
  },
11
11
  "dependencies": {
12
12
  "graphql-tag": "2.12.1",
@@ -19,19 +19,19 @@
19
19
  "@teambit/scopes.scope-descriptor": "0.0.24",
20
20
  "@teambit/scopes.scope-id": "0.0.7",
21
21
  "@teambit/design.controls.menu": "0.0.1",
22
- "@teambit/graphql": "1.0.144",
22
+ "@teambit/graphql": "1.0.145",
23
23
  "@teambit/cli": "0.0.849",
24
24
  "@teambit/cloud.models.cloud-scope": "0.0.3",
25
- "@teambit/cloud.models.cloud-user": "0.0.3",
25
+ "@teambit/cloud.models.cloud-user": "0.0.4",
26
26
  "@teambit/express": "0.0.948",
27
27
  "@teambit/global-config": "0.0.852",
28
28
  "@teambit/logger": "0.0.942",
29
- "@teambit/scope": "1.0.144",
30
- "@teambit/ui": "1.0.144",
31
- "@teambit/workspace": "1.0.144",
32
- "@teambit/cloud.ui.user-bar": "0.0.3",
33
- "@teambit/component": "1.0.144",
34
- "@teambit/lanes": "1.0.144"
29
+ "@teambit/scope": "1.0.145",
30
+ "@teambit/ui": "1.0.145",
31
+ "@teambit/workspace": "1.0.145",
32
+ "@teambit/cloud.ui.user-bar": "0.0.4",
33
+ "@teambit/component": "1.0.145",
34
+ "@teambit/lanes": "1.0.145"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@types/express": "4.17.13",