@teambit/cloud 0.0.701 → 0.0.703

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.
@@ -11,7 +11,10 @@ import { ComponentAspect, ComponentUI } from '@teambit/component';
11
11
  import { CloudAspect } from './cloud.aspect';
12
12
 
13
13
  export class CloudUI {
14
- constructor(private userBarSectionSlot: UserBarSectionSlot, private userBarItemSlot: UserBarItemSlot) {}
14
+ constructor(
15
+ private userBarSectionSlot: UserBarSectionSlot,
16
+ private userBarItemSlot: UserBarItemSlot
17
+ ) {}
15
18
  /**
16
19
  * register a new user bar item.
17
20
  */
@@ -1 +1 @@
1
- {"version":3,"names":["_harmony","data","require","_cli","_uuid","_chalk","_interopRequireDefault","_os","_open","_scopes","_scopes2","_logger","_constants","_scope","_globalFlags","_http","_graphql","_workspace","_express","_globalConfig","_child_process","_ui","_cloud","_cloud2","_login","_logout","_whoami","_npmrc","_CloudMain","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","HTTPS","CloudMain","constructor","config","logger","express","workspace","scope","globalConfig","onSuccessLoginSlot","Map","getNpmConfig","output","execSync","encoding","JSON","parse","error","Error","generateNpmrc","dryRun","force","authToken","getAuthToken","currentUser","getCurrentUser","username","warn","getUsername","updateNpmConfig","detectConfigConflicts","newConfigs","registryDomain","existingConfigs","conflicts","split","line","key","newValue","trimmedKey","trim","existingValue","isRegistryConflict","includes","original","modifications","orgs","getUserOrganizations","orgNames","map","org","name","allOrgs","Array","from","Set","PRESET_ORGS","sort","registryUrlStr","getRegistryUrl","registryUrl","URL","scopeConfig","join","authConfig","host","configUpdates","getCloudDomain","configToUpdate","replace","stdio","setupAuthListener","port","portFromParams","clientId","v4","skipConfigUpdate","cloudDomain","Promise","resolve","reject","getLoginPort","existingAuthListener","authListenerByPort","get","debug","expressApp","createApp","set","authServer","listen","existing","server","on","err","code","then","catch","req","res","query","clientIdFromReq","redirectUri","usernameFromReq","undefined","token","isArray","status","send","setSync","CFG_USER_TOKEN_KEY","CFG_USER_NAME_KEY","onLoggedInFns","values","updatedConfigs","updateGlobalConfigOnLogin","fn","npmrcUpdateResult","toString","REDIRECT_URL","redirect","ERROR_RESPONSE","registerOnSuccessLogin","onSuccessLoginFn","register","getCloudHubDomain","cloudHubDomain","getCloudApi","cloudApi","getCloudGraphQL","cloudGraphQL","getLoginDomain","loginDomain","getAnalyticsDomain","analyticsDomain","getCloudExporterUrl","cloudExporterUrl","getHubName","cloudHubName","loginPort","DEFAULT_PORT","isLoggedIn","Boolean","invalidateCache","processToken","globalFlags","getSync","getAuthHeader","Authorization","ensureHttps","url","startsWith","calculateLoginDomain","finalCloudDomain","endsWith","getLoginUrl","redirectUrl","machineName","loginUrl","authListenerForPort","os","hostname","process","platform","authListener","encodeURI","logout","delSync","setRedirectUrl","whoami","globalConfigsToUpdateOnLogin","domain","currentCloudDomain","CFG_CLOUD_DOMAIN_KEY","DEFAULT_CLOUD_DOMAIN","configsToUpdate","entries","clearCachedUrls","calculateConfig","login","suppressBrowserLaunch","defaultCloudDomain","isAlreadyLoggedIn","promptLogin","loggedInParams","globalConfigUpdates","console","log","chalk","yellow","open","getCloudScopes","scopes","remotes","_legacyRemotes","filteredScopesToFetch","ScopeID","isValid","isHub","queryResponse","fetchFromSymphonyViaGQL","GET_SCOPES","ids","scopesFromQuery","getScopes","scopeDescriptorObj","id","fromString","ScopeDescriptor","fromObject","GET_CURRENT_USER","response","displayName","me","profileImage","image","GET_USER_ORGANIZATIONS","variables","graphqlUrl","GRAPHQL_ENDPOINT","body","stringify","headers","fetch","method","ok","json","DEFAULT_HUB_DOMAIN","getSymphonyUrl","SYMPHONY_GRAPHQL","DEFAULT_ANALYTICS_DOMAIN","CENTRAL_BIT_HUB_URL","CENTRAL_BIT_HUB_NAME","provider","loggerMain","graphql","cli","ui","createLogger","CloudAspect","cloudMain","loginCmd","LoginCmd","logoutCmd","LogoutCmd","whoamiCmd","WhoamiCmd","npmrcGenerateCmd","NpmrcGenerateCmd","npmrc","NpmrcCmd","commands","cloudSchema","registerOnStart","exports","Slot","withType","LoggerAspect","GraphqlAspect","ExpressAspect","WorkspaceAspect","ScopeAspect","GlobalConfigAspect","CLIAspect","UIAspect","MainRuntime","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 getRegistryUrl,\n clearCachedUrls,\n CENTRAL_BIT_HUB_URL,\n CENTRAL_BIT_HUB_NAME,\n CFG_USER_TOKEN_KEY,\n CFG_USER_NAME_KEY,\n DEFAULT_CLOUD_DOMAIN,\n CFG_CLOUD_DOMAIN_KEY,\n} from '@teambit/legacy/dist/constants';\nimport { ScopeAspect, ScopeMain } from '@teambit/scope';\nimport globalFlags from '@teambit/legacy/dist/cli/global-flags';\nimport { fetchWithAgent as fetch } from '@teambit/legacy/dist/scope/network/http/http';\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 { execSync } from 'child_process';\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';\nimport { NpmrcCmd, NpmrcGenerateCmd } from './npmrc.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\ntype CloudOrganization = {\n id: string;\n name: string;\n};\n\ntype CloudOrganizationAPIResponse = {\n data: {\n getUserOrganizations: CloudOrganization[];\n };\n};\n\nconst HTTPS: string = 'https://';\n\nexport type OnSuccessLogin = ({\n username,\n token,\n npmrcUpdateResult,\n updatedConfigs,\n}: {\n username?: string;\n token?: string;\n npmrcUpdateResult?: NpmConfigUpdateResult;\n updatedConfigs?: Record<string, string | undefined>;\n}) => void;\nexport type OnSuccessLoginSlot = SlotRegistry<OnSuccessLogin>;\nexport type NpmConfigUpdateResult = {\n conflicts?: { original: string; modifications: string }[];\n configUpdates?: string;\n error?: Error;\n};\n\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 getNpmConfig(): Record<string, string> {\n try {\n const output = execSync(`npm config list --json`, { encoding: 'utf8' });\n return JSON.parse(output);\n } catch (error) {\n throw new Error(`failed to get npm config. error: ${error}`);\n }\n }\n\n async generateNpmrc({ dryRun, force }: { dryRun?: boolean; force?: boolean } = {}): Promise<{\n conflicts?: { original: string; modifications: string }[];\n configUpdates?: string;\n }> {\n const authToken = this.getAuthToken();\n if (!authToken) {\n throw new Error('user is not logged in');\n }\n const currentUser = await this.getCurrentUser();\n let username = currentUser?.username;\n if (!username) {\n this.logger.warn('failed to fetch username from cloud for the current user. falling back to the global config.');\n username = this.getUsername();\n }\n if (!username) {\n throw new Error('username is not found in the global config or the cloud. please login first.');\n }\n return this.updateNpmConfig({ authToken, username, dryRun, force });\n }\n\n detectConfigConflicts({\n newConfigs,\n registryDomain,\n }: {\n newConfigs: string;\n registryDomain: string;\n }): { original: string; modifications: string }[] {\n const existingConfigs = this.getNpmConfig();\n const conflicts: { original: string; modifications: string }[] = [];\n\n newConfigs.split('\\n').forEach((line) => {\n const [key, newValue] = line.split('=');\n if (key && newValue) {\n const trimmedKey = key.trim();\n const existingValue = existingConfigs[trimmedKey];\n const isRegistryConflict = existingValue && !existingValue.includes(registryDomain);\n\n if (existingValue && isRegistryConflict) {\n conflicts.push({\n original: `${trimmedKey}=${existingValue}`,\n modifications: `${trimmedKey}=${newValue.trim()}`,\n });\n }\n }\n });\n\n return conflicts;\n }\n\n async updateNpmConfig({\n authToken,\n username,\n dryRun,\n force,\n }: {\n authToken: string;\n username: string;\n dryRun?: boolean;\n force?: boolean;\n }): Promise<{ conflicts?: { original: string; modifications: string }[]; configUpdates?: string }> {\n const orgs = (await this.getUserOrganizations()) ?? [];\n const orgNames = orgs.map((org) => org.name);\n const allOrgs = Array.from(new Set([...CloudMain.PRESET_ORGS, ...orgNames, username])).sort();\n const registryUrlStr = this.getRegistryUrl();\n const registryUrl = new URL(registryUrlStr);\n const scopeConfig = allOrgs.map((org) => `@${org}:registry=\"${registryUrlStr}\"`).join('\\n');\n const authConfig = `//${registryUrl.host}/:_authToken=\"${authToken}\"`;\n const configUpdates = `${scopeConfig}\\n${authConfig}`;\n\n if (!force) {\n const conflicts = this.detectConfigConflicts({\n newConfigs: configUpdates,\n registryDomain: this.getCloudDomain(),\n });\n\n if (conflicts.length > 0) {\n return { conflicts, configUpdates };\n }\n }\n\n if (dryRun) {\n return { configUpdates };\n }\n\n const configToUpdate = configUpdates.replace(/\\n/g, ' ');\n\n execSync(`npm config set ${configToUpdate}`, { stdio: 'ignore' });\n\n return { configUpdates };\n }\n\n setupAuthListener({\n port: portFromParams,\n clientId = v4(),\n skipConfigUpdate,\n cloudDomain,\n }: {\n port?: number;\n clientId?: string;\n skipConfigUpdate?: boolean;\n cloudDomain?: 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 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\n const onLoggedInFns = this.onSuccessLoginSlot.values();\n const updatedConfigs = this.updateGlobalConfigOnLogin(cloudDomain);\n\n if (!skipConfigUpdate) {\n this.updateNpmConfig({ authToken: token as string, username: username as string })\n .then((configUpdates) => {\n onLoggedInFns.forEach((fn) =>\n fn({ username, token: token as string, npmrcUpdateResult: configUpdates, updatedConfigs })\n );\n })\n .catch((error) => {\n onLoggedInFns.forEach((fn) =>\n fn({\n username,\n token: token as string,\n updatedConfigs,\n npmrcUpdateResult: {\n error: new Error(`failed to update npmrc. error ${error?.toString}`),\n },\n })\n );\n });\n } else {\n onLoggedInFns.forEach((fn) => fn({ username, token: token as string }));\n }\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 getUsername(): string | undefined {\n return this.globalConfig.getSync(CFG_USER_NAME_KEY);\n }\n\n private ensureHttps(url: string): string {\n if (!url.startsWith('http')) {\n return `${HTTPS}${url}`;\n }\n return url;\n }\n\n private calculateLoginDomain(cloudDomain: string) {\n let finalCloudDomain = this.ensureHttps(cloudDomain);\n if (!finalCloudDomain.endsWith('/bit-login')) {\n finalCloudDomain = `${finalCloudDomain}/bit-login`;\n }\n return finalCloudDomain;\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.calculateLoginDomain(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 setRedirectUrl(redirectUrl: string) {\n this.REDIRECT_URL = redirectUrl;\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 private globalConfigsToUpdateOnLogin(domain?: string): Record<string, string | undefined> {\n const currentCloudDomain = this.globalConfig.getSync(CFG_CLOUD_DOMAIN_KEY);\n const res = {};\n if (!domain || domain === DEFAULT_CLOUD_DOMAIN) {\n if (currentCloudDomain && currentCloudDomain !== DEFAULT_CLOUD_DOMAIN) {\n res[CFG_CLOUD_DOMAIN_KEY] = '';\n }\n return res;\n }\n if (currentCloudDomain !== domain) {\n res[CFG_CLOUD_DOMAIN_KEY] = domain;\n }\n return res;\n }\n\n private updateGlobalConfigOnLogin(domain?: string) {\n const configsToUpdate = this.globalConfigsToUpdateOnLogin(domain);\n\n Object.entries(configsToUpdate).forEach(([key, value]) => {\n if (value) {\n this.globalConfig.setSync(key, value);\n } else {\n this.globalConfig.delSync(key);\n }\n });\n // Refresh the config after updating\n clearCachedUrls();\n this.config = CloudMain.calculateConfig();\n return configsToUpdate;\n }\n\n async login(\n port?: string,\n suppressBrowserLaunch?: boolean,\n machineName?: string,\n cloudDomain?: string,\n redirectUrl?: string,\n skipConfigUpdate?: boolean,\n defaultCloudDomain?: boolean\n ): Promise<{\n isAlreadyLoggedIn?: boolean;\n username?: string;\n token?: string;\n npmrcUpdateResult?: NpmConfigUpdateResult;\n globalConfigUpdates?: Record<string, string | undefined>;\n } | null> {\n if (defaultCloudDomain) {\n cloudDomain = DEFAULT_CLOUD_DOMAIN;\n }\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 npmrcUpdateResult: loggedInParams.npmrcUpdateResult,\n globalConfigUpdates: loggedInParams.updatedConfigs,\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 skipConfigUpdate,\n cloudDomain,\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 static GET_CURRENT_USER = `\n query GET_ME {\n me {\n id\n username\n image\n displayName\n }\n }\n `;\n static GET_USER_ORGANIZATIONS = `\n query GET_USER_ORGANIZATIONS {\n getUserOrganizations {\n id\n name\n }\n }\n `;\n\n static PRESET_ORGS = ['bitdev', 'teambit', 'bitdesign', 'frontend', 'backend'];\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 getCurrentUser(): Promise<CloudUser | null> {\n return this.fetchFromSymphonyViaGQL<CloudUserAPIResponse>(CloudMain.GET_CURRENT_USER).then((response) => {\n if (!response) return null;\n return {\n isLoggedIn: true,\n displayName: response.data.me.displayName,\n username: response.data.me.username,\n profileImage: response.data.me.image,\n };\n });\n }\n\n async getUserOrganizations(): Promise<CloudOrganization[] | null> {\n return this.fetchFromSymphonyViaGQL<CloudOrganizationAPIResponse>(CloudMain.GET_USER_ORGANIZATIONS).then(\n (response) => {\n if (!response) return null;\n return response.data.getUserOrganizations;\n }\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 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 static calculateConfig(): CloudWorkspaceConfig {\n return {\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: getRegistryUrl(),\n cloudExporterUrl: CENTRAL_BIT_HUB_URL,\n cloudHubName: CENTRAL_BIT_HUB_NAME,\n loginPort: CloudMain.DEFAULT_PORT,\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 = CloudMain.calculateConfig();\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, 8889);\n const logoutCmd = new LogoutCmd(cloudMain);\n const whoamiCmd = new WhoamiCmd(cloudMain);\n const npmrcGenerateCmd = new NpmrcGenerateCmd(cloudMain, 8889);\n const npmrc = new NpmrcCmd();\n npmrc.commands = [npmrcGenerateCmd];\n cli.register(loginCmd, logoutCmd, whoamiCmd, npmrc);\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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","ignoreList":[]}
1
+ {"version":3,"names":["_harmony","data","require","_cli","_uuid","_chalk","_interopRequireDefault","_os","_open","_scopes","_scopes2","_logger","_constants","_scope","_globalFlags","_http","_graphql","_workspace","_express","_globalConfig","_child_process","_ui","_cloud","_cloud2","_login","_logout","_whoami","_npmrc","_CloudMain","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","HTTPS","CloudMain","constructor","config","logger","express","workspace","scope","globalConfig","onSuccessLoginSlot","Map","getNpmConfig","output","execSync","encoding","JSON","parse","error","Error","generateNpmrc","dryRun","force","authToken","getAuthToken","currentUser","getCurrentUser","username","warn","getUsername","updateNpmConfig","detectConfigConflicts","newConfigs","registryDomain","existingConfigs","conflicts","split","line","key","newValue","trimmedKey","trim","existingValue","isRegistryConflict","includes","original","modifications","orgs","getUserOrganizations","orgNames","map","org","name","allOrgs","Array","from","Set","PRESET_ORGS","sort","registryUrlStr","getRegistryUrl","registryUrl","URL","scopeConfig","join","authConfig","host","configUpdates","getCloudDomain","configToUpdate","replace","stdio","setupAuthListener","port","portFromParams","clientId","v4","skipConfigUpdate","cloudDomain","Promise","resolve","reject","getLoginPort","existingAuthListener","authListenerByPort","get","debug","expressApp","createApp","set","authServer","listen","existing","server","on","err","code","then","catch","req","res","query","clientIdFromReq","redirectUri","usernameFromReq","undefined","token","isArray","status","send","setSync","CFG_USER_TOKEN_KEY","CFG_USER_NAME_KEY","onLoggedInFns","values","updatedConfigs","updateGlobalConfigOnLogin","fn","npmrcUpdateResult","toString","REDIRECT_URL","redirect","ERROR_RESPONSE","registerOnSuccessLogin","onSuccessLoginFn","register","getCloudHubDomain","cloudHubDomain","getCloudApi","cloudApi","getCloudGraphQL","cloudGraphQL","getLoginDomain","loginDomain","getAnalyticsDomain","analyticsDomain","getCloudExporterUrl","cloudExporterUrl","getHubName","cloudHubName","loginPort","DEFAULT_PORT","isLoggedIn","Boolean","invalidateCache","processToken","globalFlags","getSync","getAuthHeader","Authorization","ensureHttps","url","startsWith","calculateLoginDomain","finalCloudDomain","endsWith","getLoginUrl","redirectUrl","machineName","loginUrl","authListenerForPort","os","hostname","process","platform","authListener","encodeURI","logout","delSync","setRedirectUrl","whoami","globalConfigsToUpdateOnLogin","domain","currentCloudDomain","CFG_CLOUD_DOMAIN_KEY","DEFAULT_CLOUD_DOMAIN","configsToUpdate","entries","clearCachedUrls","calculateConfig","login","suppressBrowserLaunch","defaultCloudDomain","isAlreadyLoggedIn","promptLogin","loggedInParams","globalConfigUpdates","console","log","chalk","yellow","open","getCloudScopes","scopes","remotes","_legacyRemotes","filteredScopesToFetch","ScopeID","isValid","isHub","queryResponse","fetchFromSymphonyViaGQL","GET_SCOPES","ids","scopesFromQuery","getScopes","scopeDescriptorObj","id","fromString","ScopeDescriptor","fromObject","GET_CURRENT_USER","response","displayName","me","profileImage","image","GET_USER_ORGANIZATIONS","variables","graphqlUrl","GRAPHQL_ENDPOINT","body","stringify","headers","fetch","method","ok","json","DEFAULT_HUB_DOMAIN","getSymphonyUrl","SYMPHONY_GRAPHQL","DEFAULT_ANALYTICS_DOMAIN","CENTRAL_BIT_HUB_URL","CENTRAL_BIT_HUB_NAME","provider","loggerMain","graphql","cli","ui","createLogger","CloudAspect","cloudMain","loginCmd","LoginCmd","logoutCmd","LogoutCmd","whoamiCmd","WhoamiCmd","npmrcGenerateCmd","NpmrcGenerateCmd","npmrc","NpmrcCmd","commands","cloudSchema","registerOnStart","exports","Slot","withType","LoggerAspect","GraphqlAspect","ExpressAspect","WorkspaceAspect","ScopeAspect","GlobalConfigAspect","CLIAspect","UIAspect","MainRuntime","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 getRegistryUrl,\n clearCachedUrls,\n CENTRAL_BIT_HUB_URL,\n CENTRAL_BIT_HUB_NAME,\n CFG_USER_TOKEN_KEY,\n CFG_USER_NAME_KEY,\n DEFAULT_CLOUD_DOMAIN,\n CFG_CLOUD_DOMAIN_KEY,\n} from '@teambit/legacy/dist/constants';\nimport { ScopeAspect, ScopeMain } from '@teambit/scope';\nimport globalFlags from '@teambit/legacy/dist/cli/global-flags';\nimport { fetchWithAgent as fetch } from '@teambit/legacy/dist/scope/network/http/http';\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 { execSync } from 'child_process';\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';\nimport { NpmrcCmd, NpmrcGenerateCmd } from './npmrc.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\ntype CloudOrganization = {\n id: string;\n name: string;\n};\n\ntype CloudOrganizationAPIResponse = {\n data: {\n getUserOrganizations: CloudOrganization[];\n };\n};\n\nconst HTTPS: string = 'https://';\n\nexport type OnSuccessLogin = ({\n username,\n token,\n npmrcUpdateResult,\n updatedConfigs,\n}: {\n username?: string;\n token?: string;\n npmrcUpdateResult?: NpmConfigUpdateResult;\n updatedConfigs?: Record<string, string | undefined>;\n}) => void;\nexport type OnSuccessLoginSlot = SlotRegistry<OnSuccessLogin>;\nexport type NpmConfigUpdateResult = {\n conflicts?: { original: string; modifications: string }[];\n configUpdates?: string;\n error?: Error;\n};\n\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 getNpmConfig(): Record<string, string> {\n try {\n const output = execSync(`npm config list --json`, { encoding: 'utf8' });\n return JSON.parse(output);\n } catch (error) {\n throw new Error(`failed to get npm config. error: ${error}`);\n }\n }\n\n async generateNpmrc({ dryRun, force }: { dryRun?: boolean; force?: boolean } = {}): Promise<{\n conflicts?: { original: string; modifications: string }[];\n configUpdates?: string;\n }> {\n const authToken = this.getAuthToken();\n if (!authToken) {\n throw new Error('user is not logged in');\n }\n const currentUser = await this.getCurrentUser();\n let username = currentUser?.username;\n if (!username) {\n this.logger.warn('failed to fetch username from cloud for the current user. falling back to the global config.');\n username = this.getUsername();\n }\n if (!username) {\n throw new Error('username is not found in the global config or the cloud. please login first.');\n }\n return this.updateNpmConfig({ authToken, username, dryRun, force });\n }\n\n detectConfigConflicts({\n newConfigs,\n registryDomain,\n }: {\n newConfigs: string;\n registryDomain: string;\n }): { original: string; modifications: string }[] {\n const existingConfigs = this.getNpmConfig();\n const conflicts: { original: string; modifications: string }[] = [];\n\n newConfigs.split('\\n').forEach((line) => {\n const [key, newValue] = line.split('=');\n if (key && newValue) {\n const trimmedKey = key.trim();\n const existingValue = existingConfigs[trimmedKey];\n const isRegistryConflict = existingValue && !existingValue.includes(registryDomain);\n\n if (existingValue && isRegistryConflict) {\n conflicts.push({\n original: `${trimmedKey}=${existingValue}`,\n modifications: `${trimmedKey}=${newValue.trim()}`,\n });\n }\n }\n });\n\n return conflicts;\n }\n\n async updateNpmConfig({\n authToken,\n username,\n dryRun,\n force,\n }: {\n authToken: string;\n username: string;\n dryRun?: boolean;\n force?: boolean;\n }): Promise<{ conflicts?: { original: string; modifications: string }[]; configUpdates?: string }> {\n const orgs = (await this.getUserOrganizations()) ?? [];\n const orgNames = orgs.map((org) => org.name);\n const allOrgs = Array.from(new Set([...CloudMain.PRESET_ORGS, ...orgNames, username])).sort();\n const registryUrlStr = this.getRegistryUrl();\n const registryUrl = new URL(registryUrlStr);\n const scopeConfig = allOrgs.map((org) => `@${org}:registry=\"${registryUrlStr}\"`).join('\\n');\n const authConfig = `//${registryUrl.host}/:_authToken=\"${authToken}\"`;\n const configUpdates = `${scopeConfig}\\n${authConfig}`;\n\n if (!force) {\n const conflicts = this.detectConfigConflicts({\n newConfigs: configUpdates,\n registryDomain: this.getCloudDomain(),\n });\n\n if (conflicts.length > 0) {\n return { conflicts, configUpdates };\n }\n }\n\n if (dryRun) {\n return { configUpdates };\n }\n\n const configToUpdate = configUpdates.replace(/\\n/g, ' ');\n\n execSync(`npm config set ${configToUpdate}`, { stdio: 'ignore' });\n\n return { configUpdates };\n }\n\n setupAuthListener({\n port: portFromParams,\n clientId = v4(),\n skipConfigUpdate,\n cloudDomain,\n }: {\n port?: number;\n clientId?: string;\n skipConfigUpdate?: boolean;\n cloudDomain?: 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 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\n const onLoggedInFns = this.onSuccessLoginSlot.values();\n const updatedConfigs = this.updateGlobalConfigOnLogin(cloudDomain);\n\n if (!skipConfigUpdate) {\n this.updateNpmConfig({ authToken: token as string, username: username as string })\n .then((configUpdates) => {\n onLoggedInFns.forEach((fn) =>\n fn({ username, token: token as string, npmrcUpdateResult: configUpdates, updatedConfigs })\n );\n })\n .catch((error) => {\n onLoggedInFns.forEach((fn) =>\n fn({\n username,\n token: token as string,\n updatedConfigs,\n npmrcUpdateResult: {\n error: new Error(`failed to update npmrc. error ${error?.toString}`),\n },\n })\n );\n });\n } else {\n onLoggedInFns.forEach((fn) => fn({ username, token: token as string }));\n }\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 getUsername(): string | undefined {\n return this.globalConfig.getSync(CFG_USER_NAME_KEY);\n }\n\n private ensureHttps(url: string): string {\n if (!url.startsWith('http')) {\n return `${HTTPS}${url}`;\n }\n return url;\n }\n\n private calculateLoginDomain(cloudDomain: string) {\n let finalCloudDomain = this.ensureHttps(cloudDomain);\n if (!finalCloudDomain.endsWith('/bit-login')) {\n finalCloudDomain = `${finalCloudDomain}/bit-login`;\n }\n return finalCloudDomain;\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.calculateLoginDomain(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 setRedirectUrl(redirectUrl: string) {\n this.REDIRECT_URL = redirectUrl;\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 private globalConfigsToUpdateOnLogin(domain?: string): Record<string, string | undefined> {\n const currentCloudDomain = this.globalConfig.getSync(CFG_CLOUD_DOMAIN_KEY);\n const res = {};\n if (!domain || domain === DEFAULT_CLOUD_DOMAIN) {\n if (currentCloudDomain && currentCloudDomain !== DEFAULT_CLOUD_DOMAIN) {\n res[CFG_CLOUD_DOMAIN_KEY] = '';\n }\n return res;\n }\n if (currentCloudDomain !== domain) {\n res[CFG_CLOUD_DOMAIN_KEY] = domain;\n }\n return res;\n }\n\n private updateGlobalConfigOnLogin(domain?: string) {\n const configsToUpdate = this.globalConfigsToUpdateOnLogin(domain);\n\n Object.entries(configsToUpdate).forEach(([key, value]) => {\n if (value) {\n this.globalConfig.setSync(key, value);\n } else {\n this.globalConfig.delSync(key);\n }\n });\n // Refresh the config after updating\n clearCachedUrls();\n this.config = CloudMain.calculateConfig();\n return configsToUpdate;\n }\n\n async login(\n port?: string,\n suppressBrowserLaunch?: boolean,\n machineName?: string,\n cloudDomain?: string,\n redirectUrl?: string,\n skipConfigUpdate?: boolean,\n defaultCloudDomain?: boolean\n ): Promise<{\n isAlreadyLoggedIn?: boolean;\n username?: string;\n token?: string;\n npmrcUpdateResult?: NpmConfigUpdateResult;\n globalConfigUpdates?: Record<string, string | undefined>;\n } | null> {\n if (defaultCloudDomain) {\n cloudDomain = DEFAULT_CLOUD_DOMAIN;\n }\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 npmrcUpdateResult: loggedInParams.npmrcUpdateResult,\n globalConfigUpdates: loggedInParams.updatedConfigs,\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 skipConfigUpdate,\n cloudDomain,\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 static GET_CURRENT_USER = `\n query GET_ME {\n me {\n id\n username\n image\n displayName\n }\n }\n `;\n static GET_USER_ORGANIZATIONS = `\n query GET_USER_ORGANIZATIONS {\n getUserOrganizations {\n id\n name\n }\n }\n `;\n\n static PRESET_ORGS = ['bitdev', 'teambit', 'bitdesign', 'frontend', 'backend'];\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 getCurrentUser(): Promise<CloudUser | null> {\n return this.fetchFromSymphonyViaGQL<CloudUserAPIResponse>(CloudMain.GET_CURRENT_USER).then((response) => {\n if (!response) return null;\n return {\n isLoggedIn: true,\n displayName: response.data.me.displayName,\n username: response.data.me.username,\n profileImage: response.data.me.image,\n };\n });\n }\n\n async getUserOrganizations(): Promise<CloudOrganization[] | null> {\n return this.fetchFromSymphonyViaGQL<CloudOrganizationAPIResponse>(CloudMain.GET_USER_ORGANIZATIONS).then(\n (response) => {\n if (!response) return null;\n return response.data.getUserOrganizations;\n }\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 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 static calculateConfig(): CloudWorkspaceConfig {\n return {\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: getRegistryUrl(),\n cloudExporterUrl: CENTRAL_BIT_HUB_URL,\n cloudHubName: CENTRAL_BIT_HUB_NAME,\n loginPort: CloudMain.DEFAULT_PORT,\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 = CloudMain.calculateConfig();\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, 8889);\n const logoutCmd = new LogoutCmd(cloudMain);\n const whoamiCmd = new WhoamiCmd(cloudMain);\n const npmrcGenerateCmd = new NpmrcGenerateCmd(cloudMain, 8889);\n const npmrc = new NpmrcCmd();\n npmrc.commands = [npmrcGenerateCmd];\n cli.register(loginCmd, logoutCmd, whoamiCmd, npmrc);\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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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_react","data","_interopRequireDefault","require","_ui","_lodash","_designControls","_harmony","_cloudUi","_lanes","_workspace","_component","_cloud","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","CloudUI","constructor","userBarSectionSlot","userBarItemSlot","createElement","UserBar","sections","listUserBarSections","items","listUserBarItems","registerUserBarItem","userBarItem","register","registerUserBarSection","flatten","values","provider","workspace","lanes","component","_","cloudUI","displayName","categoryName","icon","label","href","category","Support","SubMenu","item","children","link","registerMenuWidget","CloudUserBar","registerRightSideMenuItem","key","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 CloudUserBar = () => {\n return <UserBar sections={this.listUserBarSections()} items={this.listUserBarItems()} />;\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 workspace.registerMenuWidget([cloudUI.CloudUserBar]);\n if (workspace) {\n lanes.registerMenuWidget(cloudUI.CloudUserBar);\n component.registerRightSideMenuItem({\n item: <cloudUI.CloudUserBar key={'cloud-user-bar-comp-menu'} />,\n order: 100,\n });\n }\n return cloudUI;\n }\n}\n\nexport default CloudUI;\n\nCloudAspect.addRuntime(CloudUI);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","data","_interopRequireDefault","require","_ui","_lodash","_designControls","_harmony","_cloudUi","_lanes","_workspace","_component","_cloud","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","CloudUI","constructor","userBarSectionSlot","userBarItemSlot","createElement","UserBar","sections","listUserBarSections","items","listUserBarItems","registerUserBarItem","userBarItem","register","registerUserBarSection","flatten","values","provider","workspace","lanes","component","_","cloudUI","displayName","categoryName","icon","label","href","category","Support","SubMenu","item","children","link","registerMenuWidget","CloudUserBar","registerRightSideMenuItem","key","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(\n private userBarSectionSlot: UserBarSectionSlot,\n private userBarItemSlot: UserBarItemSlot\n ) {}\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 CloudUserBar = () => {\n return <UserBar sections={this.listUserBarSections()} items={this.listUserBarItems()} />;\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 workspace.registerMenuWidget([cloudUI.CloudUserBar]);\n if (workspace) {\n lanes.registerMenuWidget(cloudUI.CloudUserBar);\n component.registerRightSideMenuItem({\n item: <cloudUI.CloudUserBar key={'cloud-user-bar-comp-menu'} />,\n order: 100,\n });\n }\n return cloudUI;\n }\n}\n\nexport default CloudUI;\n\nCloudAspect.addRuntime(CloudUI);\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_yesno","_lodash","_bitError","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","LoginCmd","constructor","cloud","_port","globalConfigUpdates","isEmpty","updates","entries","map","key","entryStr","join","chalk","greenBright","port","toString","report","cloudDomain","defaultCloudDomain","suppressBrowserLaunch","noBrowser","machineName","skipConfigUpdate","refreshToken","BitError","logout","isLoggedIn","logger","clearStatusLine","reLoginPrompt","yellow","ok","yesno","question","green","getUsername","result","login","undefined","message","username","conflicts","npmrcUpdateResult","length","handleNpmrcConflicts","getNpmrcUpdateMessage","error","getGlobalConfigUpdatesMessage","json","token","successfullyUpdatedNpmrc","configUpdates","conflictDetails","conflict","index","red","original","modifications","generateNpmrc","force","bold","exports"],"sources":["login.cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport yesno from 'yesno';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { isEmpty } from 'lodash';\nimport { BitError } from '@teambit/bit-error';\nimport { CloudMain } from './cloud.main.runtime';\n\nexport class LoginCmd implements Command {\n name = 'login';\n description = 'log in to Bit cloud';\n group = 'general';\n alias = '';\n options = [\n ['', 'skip-config-update', 'skip writing to the .npmrc file'],\n ['', 'refresh-token', 'force refresh token even when logged in'],\n ['d', 'cloud-domain <domain>', 'login cloud domain (default bit.cloud)'],\n ['', 'default-cloud-domain', 'login to default cloud domain (bit.cloud)'],\n ['p', 'port <port>', 'port number to open for localhost server (default 8085)'],\n ['', 'no-browser', 'do not open a browser for authentication'],\n [\n '',\n 'machine-name <name>',\n 'specify machine-name to pair with the token (useful for CI to avoid accidentally revoking the token)',\n ],\n ['', 'suppress-browser-launch', 'DEPRECATE. use --no-browser instead'],\n ] as CommandOptions;\n loader = true;\n remoteOp = true;\n skipWorkspace = true;\n loadAspects = false;\n\n private port?: string;\n\n constructor(private cloud: CloudMain, _port?: number) {\n this.port = _port?.toString();\n }\n\n async report(\n [], // eslint-disable-line no-empty-pattern\n {\n cloudDomain,\n defaultCloudDomain,\n port,\n suppressBrowserLaunch,\n noBrowser,\n machineName,\n skipConfigUpdate,\n refreshToken,\n }: {\n cloudDomain?: string;\n defaultCloudDomain: boolean;\n port: string;\n suppressBrowserLaunch?: boolean;\n noBrowser?: boolean;\n machineName?: string;\n skipConfigUpdate?: boolean;\n refreshToken?: boolean;\n }\n ): Promise<string> {\n noBrowser = noBrowser || suppressBrowserLaunch;\n\n if (defaultCloudDomain && cloudDomain) {\n throw new BitError('use either --default-cloud-domain or --cloud-domain, not both');\n }\n\n if (refreshToken) {\n this.cloud.logout();\n }\n\n const isLoggedIn = this.cloud.isLoggedIn();\n\n if (isLoggedIn) {\n this.cloud.logger.clearStatusLine();\n const reLoginPrompt = chalk.yellow(\n 'You are already logged in. Do you want to re-login to refresh your access token? [yes(y)/no(n)]'\n );\n const ok = await yesno({ question: reLoginPrompt });\n if (!ok) {\n return chalk.green(`Logged in as ${this.cloud.getUsername()}`);\n }\n this.cloud.logout();\n }\n\n const result = await this.cloud.login(\n port || this.port,\n noBrowser,\n machineName,\n cloudDomain,\n undefined,\n skipConfigUpdate,\n defaultCloudDomain\n );\n\n let message = chalk.green(`Logged in as ${result?.username}`);\n\n if (skipConfigUpdate) {\n return message;\n }\n\n const conflicts = result?.npmrcUpdateResult?.conflicts;\n if (conflicts && conflicts.length > 0) {\n message += await this.handleNpmrcConflicts(conflicts);\n } else {\n message += this.getNpmrcUpdateMessage(result?.npmrcUpdateResult?.error);\n }\n\n message = this.getGlobalConfigUpdatesMessage(result?.globalConfigUpdates) + message;\n\n return message;\n }\n\n async json(\n [], // eslint-disable-line no-empty-pattern,\n {\n cloudDomain,\n port,\n suppressBrowserLaunch,\n noBrowser,\n machineName,\n skipConfigUpdate,\n defaultCloudDomain,\n }: {\n cloudDomain?: string;\n port: string;\n suppressBrowserLaunch?: boolean;\n noBrowser?: boolean;\n machineName?: string;\n skipConfigUpdate?: boolean;\n defaultCloudDomain?: boolean;\n }\n ): Promise<{\n username?: string;\n token?: string;\n successfullyUpdatedNpmrc?: boolean;\n globalConfigUpdates?: Record<string, string | undefined>;\n }> {\n if (suppressBrowserLaunch) {\n noBrowser = true;\n }\n const result = await this.cloud.login(\n port,\n noBrowser,\n machineName,\n cloudDomain,\n undefined,\n skipConfigUpdate,\n defaultCloudDomain\n );\n return {\n username: result?.username,\n token: result?.token,\n successfullyUpdatedNpmrc: !!result?.npmrcUpdateResult?.configUpdates,\n globalConfigUpdates: result?.globalConfigUpdates,\n };\n }\n\n async handleNpmrcConflicts(conflicts): Promise<string> {\n this.cloud.logger.clearStatusLine();\n const conflictDetails = conflicts\n .map(\n (conflict, index) =>\n `${chalk.yellow(`Conflict #${index + 1}:`)}\nOriginal: ${chalk.red(conflict.original)}\nModification: ${chalk.green(conflict.modifications)}`\n )\n .join('\\n\\n');\n\n const question = `\\n${chalk.yellow(\n 'Conflict detected in .npmrc file with the following configurations:'\n )}\\n${conflictDetails}\\n${chalk.yellow(\n 'Do you want to override these configurations and continue? [yes(y)/no(n)]'\n )}`;\n\n const ok = await yesno({ question });\n if (!ok) {\n return chalk.red(' but updating .npmrc was aborted due to conflicts.');\n }\n\n try {\n await this.cloud.generateNpmrc({ force: true });\n return chalk.green(' and .npmrc updated successfully after resolving conflicts.');\n } catch (e) {\n return `${chalk.red(' but failed to update .npmrc after resolving conflicts.')} Visit ${chalk.bold(\n 'https://bit.dev/reference/packages/npmrc'\n )} for instructions on how to update it manually.`;\n }\n }\n\n getNpmrcUpdateMessage(error): string {\n if (!error) {\n return chalk.green(' and .npmrc updated.');\n }\n return chalk.red(\n ` but failed to update .npmrc. Visit ${chalk.bold(\n 'https://bit.dev/reference/packages/npmrc'\n )} for instructions on how to update it manually.`\n );\n }\n\n getGlobalConfigUpdatesMessage = (globalConfigUpdates: Record<string, string | undefined> | undefined): string => {\n if (!globalConfigUpdates || isEmpty(globalConfigUpdates)) return '';\n const updates = Object.entries(globalConfigUpdates)\n .map(([key, value]) => {\n const entryStr = value === '' ? `${key} (removed)` : `${key}: ${value} (updated)`;\n return entryStr;\n })\n .join('\\n');\n return chalk.greenBright(`\\nGlobal config changes:\\n${updates}\\n\\n`);\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_yesno","_lodash","_bitError","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","LoginCmd","constructor","cloud","_port","globalConfigUpdates","isEmpty","updates","entries","map","key","entryStr","join","chalk","greenBright","port","toString","report","cloudDomain","defaultCloudDomain","suppressBrowserLaunch","noBrowser","machineName","skipConfigUpdate","refreshToken","BitError","logout","isLoggedIn","logger","clearStatusLine","reLoginPrompt","yellow","ok","yesno","question","green","getUsername","result","login","undefined","message","username","conflicts","npmrcUpdateResult","length","handleNpmrcConflicts","getNpmrcUpdateMessage","error","getGlobalConfigUpdatesMessage","json","token","successfullyUpdatedNpmrc","configUpdates","conflictDetails","conflict","index","red","original","modifications","generateNpmrc","force","bold","exports"],"sources":["login.cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport yesno from 'yesno';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { isEmpty } from 'lodash';\nimport { BitError } from '@teambit/bit-error';\nimport { CloudMain } from './cloud.main.runtime';\n\nexport class LoginCmd implements Command {\n name = 'login';\n description = 'log in to Bit cloud';\n group = 'general';\n alias = '';\n options = [\n ['', 'skip-config-update', 'skip writing to the .npmrc file'],\n ['', 'refresh-token', 'force refresh token even when logged in'],\n ['d', 'cloud-domain <domain>', 'login cloud domain (default bit.cloud)'],\n ['', 'default-cloud-domain', 'login to default cloud domain (bit.cloud)'],\n ['p', 'port <port>', 'port number to open for localhost server (default 8085)'],\n ['', 'no-browser', 'do not open a browser for authentication'],\n [\n '',\n 'machine-name <name>',\n 'specify machine-name to pair with the token (useful for CI to avoid accidentally revoking the token)',\n ],\n ['', 'suppress-browser-launch', 'DEPRECATE. use --no-browser instead'],\n ] as CommandOptions;\n loader = true;\n remoteOp = true;\n skipWorkspace = true;\n loadAspects = false;\n\n private port?: string;\n\n constructor(\n private cloud: CloudMain,\n _port?: number\n ) {\n this.port = _port?.toString();\n }\n\n async report(\n [], // eslint-disable-line no-empty-pattern\n {\n cloudDomain,\n defaultCloudDomain,\n port,\n suppressBrowserLaunch,\n noBrowser,\n machineName,\n skipConfigUpdate,\n refreshToken,\n }: {\n cloudDomain?: string;\n defaultCloudDomain: boolean;\n port: string;\n suppressBrowserLaunch?: boolean;\n noBrowser?: boolean;\n machineName?: string;\n skipConfigUpdate?: boolean;\n refreshToken?: boolean;\n }\n ): Promise<string> {\n noBrowser = noBrowser || suppressBrowserLaunch;\n\n if (defaultCloudDomain && cloudDomain) {\n throw new BitError('use either --default-cloud-domain or --cloud-domain, not both');\n }\n\n if (refreshToken) {\n this.cloud.logout();\n }\n\n const isLoggedIn = this.cloud.isLoggedIn();\n\n if (isLoggedIn) {\n this.cloud.logger.clearStatusLine();\n const reLoginPrompt = chalk.yellow(\n 'You are already logged in. Do you want to re-login to refresh your access token? [yes(y)/no(n)]'\n );\n const ok = await yesno({ question: reLoginPrompt });\n if (!ok) {\n return chalk.green(`Logged in as ${this.cloud.getUsername()}`);\n }\n this.cloud.logout();\n }\n\n const result = await this.cloud.login(\n port || this.port,\n noBrowser,\n machineName,\n cloudDomain,\n undefined,\n skipConfigUpdate,\n defaultCloudDomain\n );\n\n let message = chalk.green(`Logged in as ${result?.username}`);\n\n if (skipConfigUpdate) {\n return message;\n }\n\n const conflicts = result?.npmrcUpdateResult?.conflicts;\n if (conflicts && conflicts.length > 0) {\n message += await this.handleNpmrcConflicts(conflicts);\n } else {\n message += this.getNpmrcUpdateMessage(result?.npmrcUpdateResult?.error);\n }\n\n message = this.getGlobalConfigUpdatesMessage(result?.globalConfigUpdates) + message;\n\n return message;\n }\n\n async json(\n [], // eslint-disable-line no-empty-pattern,\n {\n cloudDomain,\n port,\n suppressBrowserLaunch,\n noBrowser,\n machineName,\n skipConfigUpdate,\n defaultCloudDomain,\n }: {\n cloudDomain?: string;\n port: string;\n suppressBrowserLaunch?: boolean;\n noBrowser?: boolean;\n machineName?: string;\n skipConfigUpdate?: boolean;\n defaultCloudDomain?: boolean;\n }\n ): Promise<{\n username?: string;\n token?: string;\n successfullyUpdatedNpmrc?: boolean;\n globalConfigUpdates?: Record<string, string | undefined>;\n }> {\n if (suppressBrowserLaunch) {\n noBrowser = true;\n }\n const result = await this.cloud.login(\n port,\n noBrowser,\n machineName,\n cloudDomain,\n undefined,\n skipConfigUpdate,\n defaultCloudDomain\n );\n return {\n username: result?.username,\n token: result?.token,\n successfullyUpdatedNpmrc: !!result?.npmrcUpdateResult?.configUpdates,\n globalConfigUpdates: result?.globalConfigUpdates,\n };\n }\n\n async handleNpmrcConflicts(conflicts): Promise<string> {\n this.cloud.logger.clearStatusLine();\n const conflictDetails = conflicts\n .map(\n (conflict, index) =>\n `${chalk.yellow(`Conflict #${index + 1}:`)}\nOriginal: ${chalk.red(conflict.original)}\nModification: ${chalk.green(conflict.modifications)}`\n )\n .join('\\n\\n');\n\n const question = `\\n${chalk.yellow(\n 'Conflict detected in .npmrc file with the following configurations:'\n )}\\n${conflictDetails}\\n${chalk.yellow(\n 'Do you want to override these configurations and continue? [yes(y)/no(n)]'\n )}`;\n\n const ok = await yesno({ question });\n if (!ok) {\n return chalk.red(' but updating .npmrc was aborted due to conflicts.');\n }\n\n try {\n await this.cloud.generateNpmrc({ force: true });\n return chalk.green(' and .npmrc updated successfully after resolving conflicts.');\n } catch (e) {\n return `${chalk.red(' but failed to update .npmrc after resolving conflicts.')} Visit ${chalk.bold(\n 'https://bit.dev/reference/packages/npmrc'\n )} for instructions on how to update it manually.`;\n }\n }\n\n getNpmrcUpdateMessage(error): string {\n if (!error) {\n return chalk.green(' and .npmrc updated.');\n }\n return chalk.red(\n ` but failed to update .npmrc. Visit ${chalk.bold(\n 'https://bit.dev/reference/packages/npmrc'\n )} for instructions on how to update it manually.`\n );\n }\n\n getGlobalConfigUpdatesMessage = (globalConfigUpdates: Record<string, string | undefined> | undefined): string => {\n if (!globalConfigUpdates || isEmpty(globalConfigUpdates)) return '';\n const updates = Object.entries(globalConfigUpdates)\n .map(([key, value]) => {\n const entryStr = value === '' ? `${key} (removed)` : `${key}: ${value} (updated)`;\n return entryStr;\n })\n .join('\\n');\n return chalk.greenBright(`\\nGlobal config changes:\\n${updates}\\n\\n`);\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_yesno","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","NpmrcGenerateCmd","constructor","cloud","_port","port","toString","report","_","flags","logger","clearStatusLine","isLoggedIn","loginOk","yesno","question","chalk","bold","Error","login","updateResult","generateNpmrc","force","dryRun","message","green","configUpdates","conflicts","length","conflictDetails","extractConflictDetails","yellow","handleNpmrcConflicts","json","config","map","conflict","index","red","original","modifications","join","ok","exports","NpmrcCmd","unrecognizedSubcommand"],"sources":["npmrc.cmd.ts"],"sourcesContent":["/* eslint-disable max-classes-per-file */\nimport chalk from 'chalk';\nimport yesno from 'yesno';\nimport { Command, CommandOptions, Flags } from '@teambit/cli';\nimport { CloudMain } from './cloud.main.runtime';\n\nexport class NpmrcGenerateCmd implements Command {\n name = 'generate';\n description = 'update npmrc file with scope, registry, and token information from bit.cloud';\n group = 'cloud';\n alias = '';\n options = [\n ['', 'dry-run', 'show the .npmrc file content that will be written'],\n ['f', 'force', 'force update the .npmrc file even if there are conflicts'],\n ] as CommandOptions;\n skipWorkspace = false;\n\n private port?: string;\n\n constructor(private cloud: CloudMain, _port?: number) {\n this.port = _port?.toString();\n }\n\n async report(_, flags: Flags): Promise<string> {\n this.cloud.logger.clearStatusLine();\n const isLoggedIn = await this.cloud.isLoggedIn();\n if (!isLoggedIn) {\n const loginOk = await yesno({\n question: `You are not logged in.\\n\\n${chalk.bold('Would you like to login? [yes(y)/no(n)]')}`,\n });\n if (!loginOk) {\n throw new Error('the operation has been canceled');\n }\n await this.cloud.login(this.port);\n }\n\n const updateResult = await this.cloud.generateNpmrc({ force: flags.force, dryRun: flags.dryRun });\n\n if (flags.dryRun) {\n let message = chalk.green(`.npmrc file content that would be written:\\n\\n${updateResult.configUpdates}`);\n if (updateResult.conflicts && updateResult.conflicts.length > 0) {\n const conflictDetails = this.extractConflictDetails(updateResult.conflicts);\n message += `\\n\\n${chalk.yellow('Conflicts detected:')} \\n${conflictDetails}\\n${chalk.yellow(\n 'Use --force to override these conflicts.'\n )}`;\n }\n return message;\n }\n if (updateResult.conflicts && updateResult.conflicts.length > 0) {\n return this.handleNpmrcConflicts(updateResult.conflicts);\n }\n return chalk.green('The .npmrc file has been updated successfully.');\n }\n\n async json() {\n const config = await this.cloud.generateNpmrc();\n return { config };\n }\n\n extractConflictDetails(conflicts) {\n return conflicts\n .map(\n (conflict, index) =>\n `${chalk.yellow(`Conflict #${index + 1}:`)}\nOriginal: ${chalk.red(conflict.original)}\nModification: ${chalk.green(conflict.modifications)}`\n )\n .join('\\n\\n');\n }\n\n async handleNpmrcConflicts(conflicts): Promise<string> {\n const conflictDetails = this.extractConflictDetails(conflicts);\n const question = `\\n${chalk.yellow(\n 'Conflict detected in .npmrc file with the following configurations:'\n )}\\n${conflictDetails}\\n${chalk.yellow(\n 'Do you want to override these configurations and continue? [yes(y)/no(n)]'\n )}`;\n\n const ok = await yesno({ question });\n if (!ok) {\n return chalk.red('Updating .npmrc was aborted due to conflicts.');\n }\n await this.cloud.generateNpmrc({ force: true });\n return chalk.green('.npmrc has been updated successfully after resolving conflicts.');\n }\n}\n\nexport class NpmrcCmd implements Command {\n name = 'npmrc [sub-command]';\n description = 'manage npmrc file with scope, registry, and token information from bit.cloud';\n group = 'cloud';\n alias = '';\n options = [];\n loader = true;\n skipWorkspace = true;\n commands: Command[] = [];\n\n async report([unrecognizedSubcommand]: [string]) {\n return chalk.red(\n `\"${unrecognizedSubcommand}\" is not a subcommand of \"npmrc\", please run \"bit npmrc --help\" to list the subcommands`\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_yesno","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","NpmrcGenerateCmd","constructor","cloud","_port","port","toString","report","_","flags","logger","clearStatusLine","isLoggedIn","loginOk","yesno","question","chalk","bold","Error","login","updateResult","generateNpmrc","force","dryRun","message","green","configUpdates","conflicts","length","conflictDetails","extractConflictDetails","yellow","handleNpmrcConflicts","json","config","map","conflict","index","red","original","modifications","join","ok","exports","NpmrcCmd","unrecognizedSubcommand"],"sources":["npmrc.cmd.ts"],"sourcesContent":["/* eslint-disable max-classes-per-file */\nimport chalk from 'chalk';\nimport yesno from 'yesno';\nimport { Command, CommandOptions, Flags } from '@teambit/cli';\nimport { CloudMain } from './cloud.main.runtime';\n\nexport class NpmrcGenerateCmd implements Command {\n name = 'generate';\n description = 'update npmrc file with scope, registry, and token information from bit.cloud';\n group = 'cloud';\n alias = '';\n options = [\n ['', 'dry-run', 'show the .npmrc file content that will be written'],\n ['f', 'force', 'force update the .npmrc file even if there are conflicts'],\n ] as CommandOptions;\n skipWorkspace = false;\n\n private port?: string;\n\n constructor(\n private cloud: CloudMain,\n _port?: number\n ) {\n this.port = _port?.toString();\n }\n\n async report(_, flags: Flags): Promise<string> {\n this.cloud.logger.clearStatusLine();\n const isLoggedIn = await this.cloud.isLoggedIn();\n if (!isLoggedIn) {\n const loginOk = await yesno({\n question: `You are not logged in.\\n\\n${chalk.bold('Would you like to login? [yes(y)/no(n)]')}`,\n });\n if (!loginOk) {\n throw new Error('the operation has been canceled');\n }\n await this.cloud.login(this.port);\n }\n\n const updateResult = await this.cloud.generateNpmrc({ force: flags.force, dryRun: flags.dryRun });\n\n if (flags.dryRun) {\n let message = chalk.green(`.npmrc file content that would be written:\\n\\n${updateResult.configUpdates}`);\n if (updateResult.conflicts && updateResult.conflicts.length > 0) {\n const conflictDetails = this.extractConflictDetails(updateResult.conflicts);\n message += `\\n\\n${chalk.yellow('Conflicts detected:')} \\n${conflictDetails}\\n${chalk.yellow(\n 'Use --force to override these conflicts.'\n )}`;\n }\n return message;\n }\n if (updateResult.conflicts && updateResult.conflicts.length > 0) {\n return this.handleNpmrcConflicts(updateResult.conflicts);\n }\n return chalk.green('The .npmrc file has been updated successfully.');\n }\n\n async json() {\n const config = await this.cloud.generateNpmrc();\n return { config };\n }\n\n extractConflictDetails(conflicts) {\n return conflicts\n .map(\n (conflict, index) =>\n `${chalk.yellow(`Conflict #${index + 1}:`)}\nOriginal: ${chalk.red(conflict.original)}\nModification: ${chalk.green(conflict.modifications)}`\n )\n .join('\\n\\n');\n }\n\n async handleNpmrcConflicts(conflicts): Promise<string> {\n const conflictDetails = this.extractConflictDetails(conflicts);\n const question = `\\n${chalk.yellow(\n 'Conflict detected in .npmrc file with the following configurations:'\n )}\\n${conflictDetails}\\n${chalk.yellow(\n 'Do you want to override these configurations and continue? [yes(y)/no(n)]'\n )}`;\n\n const ok = await yesno({ question });\n if (!ok) {\n return chalk.red('Updating .npmrc was aborted due to conflicts.');\n }\n await this.cloud.generateNpmrc({ force: true });\n return chalk.green('.npmrc has been updated successfully after resolving conflicts.');\n }\n}\n\nexport class NpmrcCmd implements Command {\n name = 'npmrc [sub-command]';\n description = 'manage npmrc file with scope, registry, and token information from bit.cloud';\n group = 'cloud';\n alias = '';\n options = [];\n loader = true;\n skipWorkspace = true;\n commands: Command[] = [];\n\n async report([unrecognizedSubcommand]: [string]) {\n return chalk.red(\n `\"${unrecognizedSubcommand}\" is not a subcommand of \"npmrc\", please run \"bit npmrc --help\" to list the subcommands`\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/cloud",
3
- "version": "0.0.701",
3
+ "version": "0.0.703",
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.701"
9
+ "version": "0.0.703"
10
10
  },
11
11
  "dependencies": {
12
12
  "graphql-tag": "2.12.1",
@@ -21,19 +21,19 @@
21
21
  "@teambit/scopes.scope-id": "0.0.7",
22
22
  "@teambit/design.controls.menu": "0.0.1",
23
23
  "@teambit/bit-error": "0.0.404",
24
- "@teambit/graphql": "1.0.425",
25
- "@teambit/cli": "0.0.1002",
24
+ "@teambit/graphql": "1.0.427",
25
+ "@teambit/cli": "0.0.1004",
26
26
  "@teambit/cloud.models.cloud-scope": "0.0.3",
27
27
  "@teambit/cloud.models.cloud-user": "0.0.5",
28
- "@teambit/express": "0.0.1101",
29
- "@teambit/global-config": "0.0.1005",
30
- "@teambit/logger": "0.0.1095",
31
- "@teambit/scope": "1.0.425",
32
- "@teambit/ui": "1.0.425",
33
- "@teambit/workspace": "1.0.425",
28
+ "@teambit/express": "0.0.1103",
29
+ "@teambit/global-config": "0.0.1007",
30
+ "@teambit/logger": "0.0.1097",
31
+ "@teambit/scope": "1.0.427",
32
+ "@teambit/ui": "1.0.427",
33
+ "@teambit/workspace": "1.0.427",
34
34
  "@teambit/cloud.ui.user-bar": "0.0.11",
35
- "@teambit/component": "1.0.425",
36
- "@teambit/lanes": "1.0.425"
35
+ "@teambit/component": "1.0.427",
36
+ "@teambit/lanes": "1.0.427"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@types/express": "4.17.13",