@teambit/cloud 0.0.1357 → 0.0.1359

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.
package/dist/login.cmd.js CHANGED
@@ -53,7 +53,7 @@ automatically updates .npmrc file with registry configuration and authentication
53
53
  supports custom cloud domains, CI/machine authentication, and manual token refresh options.`);
54
54
  _defineProperty(this, "group", 'auth');
55
55
  _defineProperty(this, "alias", '');
56
- _defineProperty(this, "options", [['', 'skip-config-update', 'skip writing to the .npmrc file'], ['', 'refresh-token', 'force refresh token even when logged in'], ['d', 'cloud-domain <domain>', 'login cloud domain (default bit.cloud)'], ['', 'default-cloud-domain', 'login to default cloud domain (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']]);
56
+ _defineProperty(this, "options", [['', 'skip-config-update', 'skip writing to the .npmrc file'], ['', 'refresh-token', 'force refresh token even when logged in'], ['d', 'cloud-domain <domain>', 'login cloud domain (default bit.cloud)'], ['', 'default-cloud-domain', 'login to default cloud domain (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', 'DEPRECATED. use --no-browser instead']]);
57
57
  _defineProperty(this, "loader", true);
58
58
  _defineProperty(this, "remoteOp", true);
59
59
  _defineProperty(this, "skipWorkspace", true);
@@ -1 +1 @@
1
- {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_yesno","_cli","_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","formatTitle","port","toString","report","cloudDomain","defaultCloudDomain","suppressBrowserLaunch","noBrowser","machineName","skipConfigUpdate","refreshToken","BitError","logout","isLoggedIn","logger","clearStatusLine","reLoginPrompt","chalk","yellow","ok","yesno","question","formatSuccessSummary","getUsername","result","login","undefined","message","username","conflicts","npmrcUpdateResult","length","handleNpmrcConflicts","getNpmrcUpdateMessage","error","getGlobalConfigUpdatesMessage","json","token","successfullyUpdatedNpmrc","configUpdates","conflictDetails","conflict","index","red","original","green","modifications","generateNpmrc","force","bold","exports"],"sources":["login.cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport yesno from 'yesno';\nimport type { Command, CommandOptions } from '@teambit/cli';\nimport { formatSuccessSummary, formatTitle } from '@teambit/cli';\nimport { isEmpty } from 'lodash';\nimport { BitError } from '@teambit/bit-error';\nimport type { CloudMain } from './cloud.main.runtime';\n\nexport class LoginCmd implements Command {\n name = 'login';\n description = 'authenticate with Bit Cloud for component publishing and collaboration';\n extendedDescription = `opens browser to authenticate with Bit Cloud (bit.cloud) and obtain access token for publishing components.\nautomatically updates .npmrc file with registry configuration and authentication token for seamless package publishing.\nsupports custom cloud domains, CI/machine authentication, and manual token refresh options.`;\n group = 'auth';\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 await this.cloud.logout();\n }\n\n const isLoggedIn = await 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 formatSuccessSummary(`Logged in as ${this.cloud.getUsername()}`);\n }\n await 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 = formatSuccessSummary(`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 {\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 `\\n${formatTitle('Global config changes')}\\n${updates}\\n\\n`;\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_yesno","_cli","_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","formatTitle","port","toString","report","cloudDomain","defaultCloudDomain","suppressBrowserLaunch","noBrowser","machineName","skipConfigUpdate","refreshToken","BitError","logout","isLoggedIn","logger","clearStatusLine","reLoginPrompt","chalk","yellow","ok","yesno","question","formatSuccessSummary","getUsername","result","login","undefined","message","username","conflicts","npmrcUpdateResult","length","handleNpmrcConflicts","getNpmrcUpdateMessage","error","getGlobalConfigUpdatesMessage","json","token","successfullyUpdatedNpmrc","configUpdates","conflictDetails","conflict","index","red","original","green","modifications","generateNpmrc","force","bold","exports"],"sources":["login.cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport yesno from 'yesno';\nimport type { Command, CommandOptions } from '@teambit/cli';\nimport { formatSuccessSummary, formatTitle } from '@teambit/cli';\nimport { isEmpty } from 'lodash';\nimport { BitError } from '@teambit/bit-error';\nimport type { CloudMain } from './cloud.main.runtime';\n\nexport class LoginCmd implements Command {\n name = 'login';\n description = 'authenticate with Bit Cloud for component publishing and collaboration';\n extendedDescription = `opens browser to authenticate with Bit Cloud (bit.cloud) and obtain access token for publishing components.\nautomatically updates .npmrc file with registry configuration and authentication token for seamless package publishing.\nsupports custom cloud domains, CI/machine authentication, and manual token refresh options.`;\n group = 'auth';\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', 'DEPRECATED. 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 await this.cloud.logout();\n }\n\n const isLoggedIn = await 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 formatSuccessSummary(`Logged in as ${this.cloud.getUsername()}`);\n }\n await 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 = formatSuccessSummary(`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 {\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 `\\n${formatTitle('Global config changes')}\\n${updates}\\n\\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.1357",
3
+ "version": "0.0.1359",
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.1357"
9
+ "version": "0.0.1359"
10
10
  },
11
11
  "dependencies": {
12
12
  "graphql-tag": "2.12.1",
@@ -18,25 +18,25 @@
18
18
  "yesno": "0.4.0",
19
19
  "@teambit/harmony": "0.4.12",
20
20
  "@teambit/scopes.scope-descriptor": "0.0.34",
21
- "@teambit/cli": "0.0.1351",
21
+ "@teambit/cli": "0.0.1352",
22
22
  "@teambit/cloud.models.cloud-scope": "0.0.24",
23
23
  "@teambit/cloud.models.cloud-user": "0.0.24",
24
- "@teambit/config-store": "0.0.232",
25
- "@teambit/express": "0.0.1450",
24
+ "@teambit/config-store": "0.0.233",
25
+ "@teambit/express": "0.0.1451",
26
26
  "@teambit/legacy.constants": "0.0.34",
27
- "@teambit/logger": "0.0.1444",
28
- "@teambit/scope.network": "0.0.136",
27
+ "@teambit/logger": "0.0.1445",
28
+ "@teambit/scope.network": "0.0.137",
29
29
  "@teambit/scopes.scope-id": "0.0.9",
30
30
  "@teambit/base-react.themes.theme-switcher": "1.1.2",
31
31
  "@teambit/cloud.ui.user-bar": "0.0.56",
32
32
  "@teambit/design.controls.menu": "0.0.1",
33
33
  "@teambit/bit-error": "0.0.404",
34
- "@teambit/graphql": "1.0.1060",
35
- "@teambit/scope": "1.0.1060",
36
- "@teambit/ui": "1.0.1060",
37
- "@teambit/workspace": "1.0.1060",
38
- "@teambit/component": "1.0.1060",
39
- "@teambit/lanes": "1.0.1080"
34
+ "@teambit/graphql": "1.0.1062",
35
+ "@teambit/scope": "1.0.1062",
36
+ "@teambit/ui": "1.0.1062",
37
+ "@teambit/workspace": "1.0.1062",
38
+ "@teambit/component": "1.0.1062",
39
+ "@teambit/lanes": "1.0.1082"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@types/express": "^4.17.21",