@teambit/cloud 0.0.486 → 0.0.487

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.
@@ -95,9 +95,10 @@ export declare class CloudMain {
95
95
  }[];
96
96
  configUpdates?: string;
97
97
  }>;
98
- setupAuthListener({ port: portFromParams, clientId, }?: {
98
+ setupAuthListener({ port: portFromParams, clientId, skipConfigUpdate, }?: {
99
99
  port?: number;
100
100
  clientId?: string;
101
+ skipConfigUpdate?: boolean;
101
102
  }): Promise<CloudAuthListener | null>;
102
103
  registerOnSuccessLogin(onSuccessLoginFn: OnSuccessLogin): this;
103
104
  getCloudDomain(): string;
@@ -124,7 +125,7 @@ export declare class CloudMain {
124
125
  }): Promise<string | null>;
125
126
  logout(): void;
126
127
  whoami(): Promise<string | undefined>;
127
- login(port?: string, suppressBrowserLaunch?: boolean, machineName?: string, cloudDomain?: string, redirectUrl?: string): Promise<{
128
+ login(port?: string, suppressBrowserLaunch?: boolean, machineName?: string, cloudDomain?: string, redirectUrl?: string, skipConfigUpdate?: boolean): Promise<{
128
129
  isAlreadyLoggedIn?: boolean;
129
130
  username?: string;
130
131
  token?: string;
@@ -206,10 +206,18 @@ class CloudMain {
206
206
  force
207
207
  } = {}) {
208
208
  const authToken = this.getAuthToken();
209
- const username = this.getUsername();
210
- if (!authToken || !username) {
209
+ if (!authToken) {
211
210
  throw new Error('user is not logged in');
212
211
  }
212
+ const currentUser = await this.getCurrentUser();
213
+ let username = currentUser?.username;
214
+ if (!username) {
215
+ this.logger.warn('failed to fetch username from cloud for the current user. falling back to the global config.');
216
+ username = this.getUsername();
217
+ }
218
+ if (!username) {
219
+ throw new Error('username is not found in the global config or the cloud. please login first.');
220
+ }
213
221
  return this.updateNpmConfig({
214
222
  authToken,
215
223
  username,
@@ -280,7 +288,8 @@ class CloudMain {
280
288
  }
281
289
  setupAuthListener({
282
290
  port: portFromParams,
283
- clientId = (0, _uuid().v4)()
291
+ clientId = (0, _uuid().v4)(),
292
+ skipConfigUpdate
284
293
  } = {}) {
285
294
  return new Promise((resolve, reject) => {
286
295
  const port = portFromParams || this.getLoginPort();
@@ -356,24 +365,31 @@ class CloudMain {
356
365
  username
357
366
  }));
358
367
  const onLoggedInFns = this.onSuccessLoginSlot.values();
359
- this.updateNpmConfig({
360
- authToken: token,
361
- username: username
362
- }).then(configUpdates => {
363
- onLoggedInFns.forEach(fn => fn({
364
- username,
365
- token: token,
366
- npmrcUpdateResult: configUpdates
367
- }));
368
- }).catch(error => {
368
+ if (!skipConfigUpdate) {
369
+ this.updateNpmConfig({
370
+ authToken: token,
371
+ username: username
372
+ }).then(configUpdates => {
373
+ onLoggedInFns.forEach(fn => fn({
374
+ username,
375
+ token: token,
376
+ npmrcUpdateResult: configUpdates
377
+ }));
378
+ }).catch(error => {
379
+ onLoggedInFns.forEach(fn => fn({
380
+ username,
381
+ token: token,
382
+ npmrcUpdateResult: {
383
+ error: new Error(`failed to update npmrc. error ${error?.toString}`)
384
+ }
385
+ }));
386
+ });
387
+ } else {
369
388
  onLoggedInFns.forEach(fn => fn({
370
389
  username,
371
- token: token,
372
- npmrcUpdateResult: {
373
- error: new Error(`failed to update npmrc. error ${error?.toString}`)
374
- }
390
+ token: token
375
391
  }));
376
- });
392
+ }
377
393
  if (this.REDIRECT_URL) return res.redirect(this.REDIRECT_URL);
378
394
  if (typeof redirectUri === 'string' && redirectUri) return res.redirect(redirectUri);
379
395
  return res.status(200).send('Login successful');
@@ -470,7 +486,7 @@ class CloudMain {
470
486
  }
471
487
  return currentUser.username;
472
488
  }
473
- async login(port, suppressBrowserLaunch, machineName, cloudDomain, redirectUrl) {
489
+ async login(port, suppressBrowserLaunch, machineName, cloudDomain, redirectUrl, skipConfigUpdate) {
474
490
  return new Promise((resolve, reject) => {
475
491
  if (this.isLoggedIn()) {
476
492
  resolve({
@@ -510,7 +526,8 @@ class CloudMain {
510
526
  };
511
527
  try {
512
528
  this.setupAuthListener({
513
- port: Number(port)
529
+ port: Number(port),
530
+ skipConfigUpdate
514
531
  }).then(promptLogin).catch(e => reject(e));
515
532
  } catch (err) {
516
533
  reject(err);
@@ -1 +1 @@
1
- {"version":3,"names":["_harmony","data","require","_cli","_uuid","_chalk","_interopRequireDefault","_os","_open","_scopes","_scopes2","_logger","_constants","_scope","_globalFlags","_graphql","_workspace","_express","_globalConfig","_child_process","_ui","_cloud","_cloud2","_login","_logout","_whoami","_npmrc","_CloudMain","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","CloudMain","constructor","config","logger","express","workspace","scope","globalConfig","onSuccessLoginSlot","Map","getNpmConfig","output","execSync","encoding","JSON","parse","error","Error","generateNpmrc","dryRun","force","authToken","getAuthToken","username","getUsername","updateNpmConfig","detectConfigConflicts","newConfigs","registryDomain","existingConfigs","conflicts","split","line","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","Promise","resolve","reject","getLoginPort","existingAuthListener","authListenerByPort","get","debug","expressApp","createApp","set","authServer","listen","existing","server","on","err","code","warn","then","catch","req","res","query","clientIdFromReq","redirectUri","usernameFromReq","undefined","token","isArray","status","send","setSync","CFG_USER_TOKEN_KEY","CFG_USER_NAME_KEY","onLoggedInFns","values","fn","npmrcUpdateResult","toString","REDIRECT_URL","redirect","ERROR_RESPONSE","registerOnSuccessLogin","onSuccessLoginFn","register","cloudDomain","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","getLoginUrl","redirectUrl","machineName","loginUrl","authListenerForPort","os","hostname","process","platform","authListener","encodeURI","logout","delSync","whoami","currentUser","getCurrentUser","login","suppressBrowserLaunch","isAlreadyLoggedIn","promptLogin","loggedInParams","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","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","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 { 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\nexport type OnSuccessLogin = ({\n username,\n token,\n npmrcUpdateResult,\n}: {\n username?: string;\n token?: string;\n npmrcUpdateResult?: NpmConfigUpdateResult;\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 const username = this.getUsername();\n if (!authToken || !username) {\n throw new Error('user is not logged in');\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 }: {\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 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\n this.updateNpmConfig({ authToken: token as string, username: username as string })\n .then((configUpdates) => {\n onLoggedInFns.forEach((fn) => fn({ username, token: token as string, npmrcUpdateResult: configUpdates }));\n })\n .catch((error) => {\n onLoggedInFns.forEach((fn) =>\n fn({\n username,\n token: token as string,\n npmrcUpdateResult: {\n error: new Error(`failed to update npmrc. error ${error?.toString}`),\n },\n })\n );\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 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 npmrcUpdateResult?: NpmConfigUpdateResult;\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 npmrcUpdateResult: loggedInParams.npmrcUpdateResult,\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 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\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, 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","_graphql","_workspace","_express","_globalConfig","_child_process","_ui","_cloud","_cloud2","_login","_logout","_whoami","_npmrc","_CloudMain","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","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","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","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","fn","npmrcUpdateResult","toString","REDIRECT_URL","redirect","ERROR_RESPONSE","registerOnSuccessLogin","onSuccessLoginFn","register","cloudDomain","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","getLoginUrl","redirectUrl","machineName","loginUrl","authListenerForPort","os","hostname","process","platform","authListener","encodeURI","logout","delSync","whoami","login","suppressBrowserLaunch","isAlreadyLoggedIn","promptLogin","loggedInParams","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","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","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 { 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\nexport type OnSuccessLogin = ({\n username,\n token,\n npmrcUpdateResult,\n}: {\n username?: string;\n token?: string;\n npmrcUpdateResult?: NpmConfigUpdateResult;\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 }: {\n port?: number;\n clientId?: string;\n skipConfigUpdate?: boolean;\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\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 })\n );\n })\n .catch((error) => {\n onLoggedInFns.forEach((fn) =>\n fn({\n username,\n token: token as string,\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 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 skipConfigUpdate?: boolean\n ): Promise<{\n isAlreadyLoggedIn?: boolean;\n username?: string;\n token?: string;\n npmrcUpdateResult?: NpmConfigUpdateResult;\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 npmrcUpdateResult: loggedInParams.npmrcUpdateResult,\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 })\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\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, 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":[]}
@@ -13,20 +13,22 @@ export declare class LoginCmd implements Command {
13
13
  private port?;
14
14
  constructor(cloud: CloudMain, _port?: number);
15
15
  report([]: Iterable<any>, // eslint-disable-line no-empty-pattern
16
- { cloudDomain, port, suppressBrowserLaunch, noBrowser, machineName, }: {
16
+ { cloudDomain, port, suppressBrowserLaunch, noBrowser, machineName, skipConfigUpdate, }: {
17
17
  cloudDomain?: string;
18
18
  port: string;
19
19
  suppressBrowserLaunch?: boolean;
20
20
  noBrowser?: boolean;
21
21
  machineName?: string;
22
+ skipConfigUpdate?: boolean;
22
23
  }): Promise<string>;
23
24
  json([]: Iterable<any>, // eslint-disable-line no-empty-pattern,
24
- { cloudDomain, port, suppressBrowserLaunch, noBrowser, machineName, }: {
25
+ { cloudDomain, port, suppressBrowserLaunch, noBrowser, machineName, skipConfigUpdate, }: {
25
26
  cloudDomain?: string;
26
27
  port: string;
27
28
  suppressBrowserLaunch?: boolean;
28
29
  noBrowser?: boolean;
29
30
  machineName?: string;
31
+ skipConfigUpdate?: boolean;
30
32
  }): Promise<{
31
33
  username?: string;
32
34
  token?: string;
package/dist/login.cmd.js CHANGED
@@ -29,7 +29,7 @@ class LoginCmd {
29
29
  _defineProperty(this, "description", 'log in to Bit cloud');
30
30
  _defineProperty(this, "group", 'general');
31
31
  _defineProperty(this, "alias", '');
32
- _defineProperty(this, "options", [['d', 'cloud-domain <domain>', 'login cloud domain (default bit.cloud)'], ['p', 'port <port>', 'port number to open for localhost server (default 8085)'], ['', 'no-browser', 'do not open a browser for authentication'], ['', 'machine-name <name>', 'specify machine-name to pair with the token (useful for CI to avoid accidentally revoking the token)'], ['', 'suppress-browser-launch', 'DEPRECATE. use --no-browser instead']]);
32
+ _defineProperty(this, "options", [['', 'skip-config-update', 'skip writing to the .npmrc file'], ['d', 'cloud-domain <domain>', 'login cloud domain (default bit.cloud)'], ['p', 'port <port>', 'port number to open for localhost server (default 8085)'], ['', 'no-browser', 'do not open a browser for authentication'], ['', 'machine-name <name>', 'specify machine-name to pair with the token (useful for CI to avoid accidentally revoking the token)'], ['', 'suppress-browser-launch', 'DEPRECATE. use --no-browser instead']]);
33
33
  _defineProperty(this, "loader", true);
34
34
  _defineProperty(this, "remoteOp", true);
35
35
  _defineProperty(this, "skipWorkspace", true);
@@ -43,12 +43,13 @@ class LoginCmd {
43
43
  port,
44
44
  suppressBrowserLaunch,
45
45
  noBrowser,
46
- machineName
46
+ machineName,
47
+ skipConfigUpdate
47
48
  }) {
48
49
  noBrowser = noBrowser || suppressBrowserLaunch;
49
- const result = await this.cloud.login(port || this.port, noBrowser, machineName, cloudDomain, undefined);
50
+ const result = await this.cloud.login(port || this.port, noBrowser, machineName, cloudDomain, undefined, skipConfigUpdate);
50
51
  let message = _chalk().default.green(`Logged in as ${result?.username}`);
51
- if (result?.isAlreadyLoggedIn) {
52
+ if (result?.isAlreadyLoggedIn || skipConfigUpdate) {
52
53
  return message;
53
54
  }
54
55
  const conflicts = result?.npmrcUpdateResult?.conflicts;
@@ -66,12 +67,13 @@ class LoginCmd {
66
67
  port,
67
68
  suppressBrowserLaunch,
68
69
  noBrowser,
69
- machineName
70
+ machineName,
71
+ skipConfigUpdate
70
72
  }) {
71
73
  if (suppressBrowserLaunch) {
72
74
  noBrowser = true;
73
75
  }
74
- const result = await this.cloud.login(port, noBrowser, machineName, cloudDomain);
76
+ const result = await this.cloud.login(port, noBrowser, machineName, cloudDomain, undefined, skipConfigUpdate);
75
77
  return {
76
78
  username: result?.username,
77
79
  token: result?.token,
@@ -1 +1 @@
1
- {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_yesno","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","r","e","Symbol","toPrimitive","call","TypeError","String","Number","LoginCmd","constructor","cloud","_port","port","toString","report","cloudDomain","suppressBrowserLaunch","noBrowser","machineName","result","login","undefined","message","chalk","green","username","isAlreadyLoggedIn","conflicts","npmrcUpdateResult","length","handleNpmrcConflicts","getNpmrcUpdateMessage","error","json","token","successfullyUpdatedNpmrc","configUpdates","logger","clearStatusLine","conflictDetails","map","conflict","index","yellow","red","original","modifications","join","question","ok","yesno","generateNpmrc","force","bold","exports"],"sources":["login.cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport yesno from 'yesno';\nimport { Command, CommandOptions } from '@teambit/cli';\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 ['d', 'cloud-domain <domain>', 'login cloud domain (default 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\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 port,\n suppressBrowserLaunch,\n noBrowser,\n machineName,\n }: {\n cloudDomain?: string;\n port: string;\n suppressBrowserLaunch?: boolean;\n noBrowser?: boolean;\n machineName?: string;\n }\n ): Promise<string> {\n noBrowser = noBrowser || suppressBrowserLaunch;\n\n const result = await this.cloud.login(port || this.port, noBrowser, machineName, cloudDomain, undefined);\n let message = chalk.green(`Logged in as ${result?.username}`);\n\n if (result?.isAlreadyLoggedIn) {\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 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 }: {\n cloudDomain?: string;\n port: string;\n suppressBrowserLaunch?: boolean;\n noBrowser?: boolean;\n machineName?: string;\n }\n ): Promise<{ username?: string; token?: string; successfullyUpdatedNpmrc?: boolean }> {\n if (suppressBrowserLaunch) {\n noBrowser = true;\n }\n const result = await this.cloud.login(port, noBrowser, machineName, cloudDomain);\n return {\n username: result?.username,\n token: result?.token,\n successfullyUpdatedNpmrc: !!result?.npmrcUpdateResult?.configUpdates,\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"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_yesno","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","r","e","Symbol","toPrimitive","call","TypeError","String","Number","LoginCmd","constructor","cloud","_port","port","toString","report","cloudDomain","suppressBrowserLaunch","noBrowser","machineName","skipConfigUpdate","result","login","undefined","message","chalk","green","username","isAlreadyLoggedIn","conflicts","npmrcUpdateResult","length","handleNpmrcConflicts","getNpmrcUpdateMessage","error","json","token","successfullyUpdatedNpmrc","configUpdates","logger","clearStatusLine","conflictDetails","map","conflict","index","yellow","red","original","modifications","join","question","ok","yesno","generateNpmrc","force","bold","exports"],"sources":["login.cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport yesno from 'yesno';\nimport { Command, CommandOptions } from '@teambit/cli';\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 ['d', 'cloud-domain <domain>', 'login cloud domain (default 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\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 port,\n suppressBrowserLaunch,\n noBrowser,\n machineName,\n skipConfigUpdate,\n }: {\n cloudDomain?: string;\n port: string;\n suppressBrowserLaunch?: boolean;\n noBrowser?: boolean;\n machineName?: string;\n skipConfigUpdate?: boolean;\n }\n ): Promise<string> {\n noBrowser = noBrowser || suppressBrowserLaunch;\n\n const result = await this.cloud.login(\n port || this.port,\n noBrowser,\n machineName,\n cloudDomain,\n undefined,\n skipConfigUpdate\n );\n let message = chalk.green(`Logged in as ${result?.username}`);\n\n if (result?.isAlreadyLoggedIn || 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 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 }: {\n cloudDomain?: string;\n port: string;\n suppressBrowserLaunch?: boolean;\n noBrowser?: boolean;\n machineName?: string;\n skipConfigUpdate?: boolean;\n }\n ): Promise<{ username?: string; token?: string; successfullyUpdatedNpmrc?: boolean }> {\n if (suppressBrowserLaunch) {\n noBrowser = true;\n }\n const result = await this.cloud.login(port, noBrowser, machineName, cloudDomain, undefined, skipConfigUpdate);\n return {\n username: result?.username,\n token: result?.token,\n successfullyUpdatedNpmrc: !!result?.npmrcUpdateResult?.configUpdates,\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"],"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.486",
3
+ "version": "0.0.487",
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.486"
9
+ "version": "0.0.487"
10
10
  },
11
11
  "dependencies": {
12
12
  "graphql-tag": "2.12.1",
@@ -20,19 +20,19 @@
20
20
  "@teambit/scopes.scope-descriptor": "0.0.24",
21
21
  "@teambit/scopes.scope-id": "0.0.7",
22
22
  "@teambit/design.controls.menu": "0.0.1",
23
- "@teambit/graphql": "1.0.210",
23
+ "@teambit/graphql": "1.0.211",
24
24
  "@teambit/cli": "0.0.858",
25
25
  "@teambit/cloud.models.cloud-scope": "0.0.3",
26
26
  "@teambit/cloud.models.cloud-user": "0.0.5",
27
27
  "@teambit/express": "0.0.957",
28
28
  "@teambit/global-config": "0.0.861",
29
29
  "@teambit/logger": "0.0.951",
30
- "@teambit/scope": "1.0.210",
31
- "@teambit/ui": "1.0.210",
32
- "@teambit/workspace": "1.0.210",
30
+ "@teambit/scope": "1.0.211",
31
+ "@teambit/ui": "1.0.211",
32
+ "@teambit/workspace": "1.0.211",
33
33
  "@teambit/cloud.ui.user-bar": "0.0.7",
34
- "@teambit/component": "1.0.210",
35
- "@teambit/lanes": "1.0.210"
34
+ "@teambit/component": "1.0.211",
35
+ "@teambit/lanes": "1.0.211"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@types/express": "4.17.13",