@servicetitan/startup 39.1.0 → 39.3.0

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.
Files changed (105) hide show
  1. package/dist/cli/commands/mfe-list.d.ts +0 -2
  2. package/dist/cli/commands/mfe-list.d.ts.map +1 -1
  3. package/dist/cli/commands/mfe-list.js +4 -30
  4. package/dist/cli/commands/mfe-list.js.map +1 -1
  5. package/dist/cli/commands/mfe-package-clean.js +1 -2
  6. package/dist/cli/commands/mfe-package-clean.js.map +1 -1
  7. package/dist/cli/commands/mfe-package-publish.d.ts.map +1 -1
  8. package/dist/cli/commands/mfe-package-publish.js +7 -5
  9. package/dist/cli/commands/mfe-package-publish.js.map +1 -1
  10. package/dist/cli/commands/mfe-package-rollback.d.ts.map +1 -1
  11. package/dist/cli/commands/mfe-package-rollback.js +5 -3
  12. package/dist/cli/commands/mfe-package-rollback.js.map +1 -1
  13. package/dist/cli/commands/mfe-publish.d.ts +1 -0
  14. package/dist/cli/commands/mfe-publish.d.ts.map +1 -1
  15. package/dist/cli/commands/mfe-publish.js +14 -12
  16. package/dist/cli/commands/mfe-publish.js.map +1 -1
  17. package/dist/cli/commands/registry/command-registry.d.ts +13 -4
  18. package/dist/cli/commands/registry/command-registry.d.ts.map +1 -1
  19. package/dist/cli/commands/registry/mfe-list.d.ts +2 -1
  20. package/dist/cli/commands/registry/mfe-list.d.ts.map +1 -1
  21. package/dist/cli/commands/registry/mfe-list.js +3 -1
  22. package/dist/cli/commands/registry/mfe-list.js.map +1 -1
  23. package/dist/cli/commands/registry/mfe-package-clean.d.ts +2 -1
  24. package/dist/cli/commands/registry/mfe-package-clean.d.ts.map +1 -1
  25. package/dist/cli/commands/registry/mfe-package-clean.js +4 -2
  26. package/dist/cli/commands/registry/mfe-package-clean.js.map +1 -1
  27. package/dist/cli/commands/registry/mfe-package-publish.d.ts +2 -1
  28. package/dist/cli/commands/registry/mfe-package-publish.d.ts.map +1 -1
  29. package/dist/cli/commands/registry/mfe-package-publish.js +4 -2
  30. package/dist/cli/commands/registry/mfe-package-publish.js.map +1 -1
  31. package/dist/cli/commands/registry/mfe-package-rollback.d.ts +2 -1
  32. package/dist/cli/commands/registry/mfe-package-rollback.d.ts.map +1 -1
  33. package/dist/cli/commands/registry/mfe-package-rollback.js +4 -2
  34. package/dist/cli/commands/registry/mfe-package-rollback.js.map +1 -1
  35. package/dist/cli/commands/registry/upload-sourcemaps.d.ts +5 -0
  36. package/dist/cli/commands/registry/upload-sourcemaps.d.ts.map +1 -1
  37. package/dist/cli/commands/registry/upload-sourcemaps.js +5 -0
  38. package/dist/cli/commands/registry/upload-sourcemaps.js.map +1 -1
  39. package/dist/cli/commands/review/types.js.map +1 -1
  40. package/dist/cli/commands/upload-sourcemaps.d.ts.map +1 -1
  41. package/dist/cli/commands/upload-sourcemaps.js +4 -7
  42. package/dist/cli/commands/upload-sourcemaps.js.map +1 -1
  43. package/dist/cli/commands/utils/get-mfe-registry.d.ts +4 -0
  44. package/dist/cli/commands/utils/get-mfe-registry.d.ts.map +1 -0
  45. package/dist/cli/commands/utils/get-mfe-registry.js +28 -0
  46. package/dist/cli/commands/utils/get-mfe-registry.js.map +1 -0
  47. package/dist/cli/commands/utils/get-unpkg-host.d.ts +2 -0
  48. package/dist/cli/commands/utils/get-unpkg-host.d.ts.map +1 -0
  49. package/dist/cli/commands/utils/get-unpkg-host.js +18 -0
  50. package/dist/cli/commands/utils/get-unpkg-host.js.map +1 -0
  51. package/dist/cli/commands/utils/index.d.ts +3 -1
  52. package/dist/cli/commands/utils/index.d.ts.map +1 -1
  53. package/dist/cli/commands/utils/index.js +3 -1
  54. package/dist/cli/commands/utils/index.js.map +1 -1
  55. package/dist/cli/commands/utils/login.d.ts +2 -0
  56. package/dist/cli/commands/utils/login.d.ts.map +1 -0
  57. package/dist/cli/commands/utils/login.js +56 -0
  58. package/dist/cli/commands/utils/login.js.map +1 -0
  59. package/dist/cli/commands/utils/purge-cache.d.ts.map +1 -1
  60. package/dist/cli/commands/utils/purge-cache.js +2 -4
  61. package/dist/cli/commands/utils/purge-cache.js.map +1 -1
  62. package/dist/cli/index.js +4 -1
  63. package/dist/cli/index.js.map +1 -1
  64. package/dist/vite/config/base-config.js +1 -1
  65. package/dist/vite/config/base-config.js.map +1 -1
  66. package/dist/vite/config/create-resolve-config.d.ts +1 -2
  67. package/dist/vite/config/create-resolve-config.d.ts.map +1 -1
  68. package/dist/vite/config/create-resolve-config.js +2 -21
  69. package/dist/vite/config/create-resolve-config.js.map +1 -1
  70. package/package.json +21 -22
  71. package/src/cli/commands/__tests__/mfe-list.test.ts +25 -56
  72. package/src/cli/commands/__tests__/mfe-package-clean.test.ts +6 -0
  73. package/src/cli/commands/__tests__/mfe-package-publish.test.ts +52 -47
  74. package/src/cli/commands/__tests__/mfe-package-rollback.test.ts +4 -2
  75. package/src/cli/commands/__tests__/mfe-publish.test.ts +51 -14
  76. package/src/cli/commands/__tests__/upload-sourcemaps.test.ts +27 -13
  77. package/src/cli/commands/mfe-list.ts +7 -36
  78. package/src/cli/commands/mfe-package-clean.ts +2 -2
  79. package/src/cli/commands/mfe-package-publish.ts +10 -8
  80. package/src/cli/commands/mfe-package-rollback.ts +6 -5
  81. package/src/cli/commands/mfe-publish.ts +17 -16
  82. package/src/cli/commands/registry/mfe-list.ts +6 -1
  83. package/src/cli/commands/registry/mfe-package-clean.ts +7 -1
  84. package/src/cli/commands/registry/mfe-package-publish.ts +7 -1
  85. package/src/cli/commands/registry/mfe-package-rollback.ts +4 -2
  86. package/src/cli/commands/registry/upload-sourcemaps.ts +1 -0
  87. package/src/cli/commands/upload-sourcemaps.ts +4 -7
  88. package/src/cli/commands/utils/__tests__/get-mfe-registry.test.ts +24 -0
  89. package/src/cli/commands/utils/__tests__/get-unpkg-host.test.ts +32 -0
  90. package/src/cli/commands/utils/__tests__/login.test.ts +122 -0
  91. package/src/cli/commands/utils/__tests__/purge-cache.test.ts +17 -15
  92. package/src/cli/commands/utils/get-mfe-registry.ts +6 -0
  93. package/src/cli/commands/utils/get-unpkg-host.ts +8 -0
  94. package/src/cli/commands/utils/index.ts +3 -1
  95. package/src/cli/commands/utils/login.ts +38 -0
  96. package/src/cli/commands/utils/purge-cache.ts +2 -5
  97. package/src/cli/index.ts +2 -1
  98. package/src/vite/config/__tests__/create-resolve-config.test.ts +6 -37
  99. package/src/vite/config/base-config.ts +1 -1
  100. package/src/vite/config/create-resolve-config.ts +8 -22
  101. package/dist/cli/commands/utils/constants.d.ts +0 -2
  102. package/dist/cli/commands/utils/constants.d.ts.map +0 -1
  103. package/dist/cli/commands/utils/constants.js +0 -13
  104. package/dist/cli/commands/utils/constants.js.map +0 -1
  105. package/src/cli/commands/utils/constants.ts +0 -1
@@ -6,8 +6,6 @@ export declare class MFEList extends Command<typeof entry> {
6
6
  private getTable;
7
7
  private getTime;
8
8
  private getVersionTags;
9
- private ask;
10
- private login;
11
9
  private get limit();
12
10
  private get packageNames();
13
11
  private get registry();
@@ -1 +1 @@
1
- {"version":3,"file":"mfe-list.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/mfe-list.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAKlC,qBAAa,OAAQ,SAAQ,OAAO,CAAC,OAAO,KAAK,CAAC;IAExC,OAAO;IAmBb,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,QAAQ;IAgChB,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,cAAc;YAWR,GAAG;YAOH,KAAK;IAuBnB,OAAO,KAAK,KAAK,GAKhB;IAED,OAAO,KAAK,YAAY,GAUvB;IAED,OAAO,KAAK,QAAQ,GAEnB;CACJ"}
1
+ {"version":3,"file":"mfe-list.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/mfe-list.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAKlC,qBAAa,OAAQ,SAAQ,OAAO,CAAC,OAAO,KAAK,CAAC;IAExC,OAAO;IAqBb,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,QAAQ;IAgChB,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,cAAc;IAWtB,OAAO,KAAK,KAAK,GAKhB;IAED,OAAO,KAAK,YAAY,GAUvB;IAED,OAAO,KAAK,QAAQ,GAEnB;CACJ"}
@@ -11,7 +11,6 @@ Object.defineProperty(exports, "MFEList", {
11
11
  const _install = require("@servicetitan/install");
12
12
  const _chalk = /*#__PURE__*/ _interop_require_default(require("chalk"));
13
13
  const _clitable3 = /*#__PURE__*/ _interop_require_default(require("cli-table3"));
14
- const _promises = /*#__PURE__*/ _interop_require_default(require("readline/promises"));
15
14
  const _utils = require("../../utils");
16
15
  const _utils1 = require("../utils");
17
16
  const _types = require("./types");
@@ -42,7 +41,9 @@ function _ts_metadata(metadataKey, metadataValue) {
42
41
  const collator = new Intl.Collator();
43
42
  class MFEList extends _types.Command {
44
43
  async execute() {
45
- await this.login();
44
+ if (!(0, _install.isCI)()) {
45
+ await (0, _utils2.login)(this.registry);
46
+ }
46
47
  this.packageNames.forEach((name, index)=>{
47
48
  const info = (0, _utils1.npmView)({
48
49
  packageName: name,
@@ -113,33 +114,6 @@ class MFEList extends _types.Command {
113
114
  return result;
114
115
  }, {});
115
116
  }
116
- async ask(question) {
117
- const rl = _promises.default.createInterface({
118
- input: process.stdin,
119
- output: process.stdout
120
- });
121
- const answer = await rl.question(question);
122
- rl.close();
123
- return answer.trim().toLowerCase();
124
- }
125
- async login() {
126
- if (this.registry !== _utils2.DEFAULT_MFE_REGISTRY || (0, _install.npmWhoAmI)({
127
- registry: this.registry
128
- }) !== undefined) {
129
- return;
130
- }
131
- const message = `This machine is not authorized to access ${this.registry}.`;
132
- if (!(0, _utils1.isTTY)()) {
133
- throw new Error(message);
134
- }
135
- const answer = await this.ask(_chalk.default.bold.cyan(`${message} Authorize? [Y/n] `));
136
- if (answer && answer !== 'y') {
137
- throw new Error('Not authorized');
138
- }
139
- await (0, _utils1.runCommand)(`npx --yes verdaccio-okta-oauth@latest --registry=${this.registry}`, {
140
- quiet: true
141
- });
142
- }
143
117
  get limit() {
144
118
  if (this.args.all) {
145
119
  return Number.MAX_SAFE_INTEGER;
@@ -161,7 +135,7 @@ class MFEList extends _types.Command {
161
135
  }
162
136
  get registry() {
163
137
  var _this_args_registry;
164
- return (_this_args_registry = this.args.registry) !== null && _this_args_registry !== void 0 ? _this_args_registry : _utils2.DEFAULT_MFE_REGISTRY;
138
+ return (_this_args_registry = this.args.registry) !== null && _this_args_registry !== void 0 ? _this_args_registry : _utils2.PROD_MFE_REGISTRY;
165
139
  }
166
140
  }
167
141
  _ts_decorate([
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/commands/mfe-list.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport { npmWhoAmI } from '@servicetitan/install';\nimport chalk from 'chalk';\nimport Table from 'cli-table3';\nimport readline from 'readline/promises';\nimport {\n formatRelativeDate,\n getPackages,\n isWebComponent,\n log,\n logErrors,\n PackageType,\n} from '../../utils';\nimport { isTTY, NPMPackageInfo, npmView, runCommand } from '../utils';\nimport type { entry } from './registry/mfe-list';\nimport { Command } from './types';\nimport { DEFAULT_MFE_REGISTRY } from './utils';\n\nconst collator = new Intl.Collator();\n\nexport class MFEList extends Command<typeof entry> {\n @logErrors\n async execute() {\n await this.login();\n\n this.packageNames.forEach((name, index) => {\n const info = npmView({ packageName: name, registry: this.registry });\n if (info) {\n if (index > 0) {\n process.stdout.write('\\n');\n }\n\n process.stdout.write(this.getCaption(info) + '\\n');\n const table = this.getTable(info);\n if (table) {\n process.stdout.write(table + '\\n');\n }\n }\n });\n }\n\n private getCaption(info: NPMPackageInfo) {\n return [\n chalk.bold.cyan(info.name),\n info.version && `version: ${info.version}`,\n `versions: ${Object.keys(this.getTime(info)).length}`,\n ]\n .filter(el => !!el)\n .join(' | ');\n }\n\n private getTable(info: NPMPackageInfo) {\n const times = Object.entries(this.getTime(info)).sort(\n ([, a], [, b]) => -1 * collator.compare(a, b)\n );\n const versionTags = this.getVersionTags(info);\n const versions = this.args.tagged\n ? times.filter(([version]) => !!versionTags[version])\n : times.slice(0, this.limit);\n\n /* istanbul ignore next: debug only */\n log.debug('mfe-list', () =>\n JSON.stringify({ name: info.name, versionTags, versions }, null, 2)\n );\n\n if (versions.length === 0) {\n return '';\n }\n\n const table = new Table({\n head: ['Version', 'Tag', 'When'].map(title => chalk.bold.cyan(title)),\n style: { head: [] },\n });\n\n versions.forEach(([version, timestamp]) => {\n const when = formatRelativeDate(new Date(timestamp));\n const tag = (versionTags[version] ?? []).join(', ');\n table.push([version, chalk.bold.cyan(tag), when]);\n });\n\n return table.toString();\n }\n\n private getTime(info: NPMPackageInfo) {\n const { time: { created, modified, ...time } = {} } = info;\n return time;\n }\n\n private getVersionTags({ 'dist-tags': distTags = {} }: NPMPackageInfo) {\n return Object.entries(distTags).reduce<Record<string, string[]>>(\n (result, [name, version]) => {\n result[version] ??= [];\n result[version].push(name);\n return result;\n },\n {}\n );\n }\n\n private async ask(question: string) {\n const rl = readline.createInterface({ input: process.stdin, output: process.stdout });\n const answer = await rl.question(question);\n rl.close();\n return answer.trim().toLowerCase();\n }\n\n private async login() {\n if (\n this.registry !== DEFAULT_MFE_REGISTRY ||\n npmWhoAmI({ registry: this.registry }) !== undefined\n ) {\n return;\n }\n\n const message = `This machine is not authorized to access ${this.registry}.`;\n if (!isTTY()) {\n throw new Error(message);\n }\n\n const answer = await this.ask(chalk.bold.cyan(`${message} Authorize? [Y/n] `));\n if (answer && answer !== 'y') {\n throw new Error('Not authorized');\n }\n\n await runCommand(`npx --yes verdaccio-okta-oauth@latest --registry=${this.registry}`, {\n quiet: true,\n });\n }\n\n private get limit() {\n if (this.args.all) {\n return Number.MAX_SAFE_INTEGER;\n }\n return this.args.limit && this.args.limit > 0 ? this.args.limit : 20;\n }\n\n private get packageNames() {\n const { _ = [], packageNames = [] } = this.args;\n if (_.length || packageNames.length) {\n return [..._, ...packageNames];\n }\n\n return getPackages({ ignore: this.args.ignore, type: PackageType.Bundle })\n .filter(({ location }) => isWebComponent(location))\n .map(({ name }) => name)\n .sort((a, b) => collator.compare(a, b));\n }\n\n private get registry() {\n return this.args.registry ?? DEFAULT_MFE_REGISTRY;\n }\n}\n"],"names":["MFEList","collator","Intl","Collator","Command","execute","login","packageNames","forEach","name","index","info","npmView","packageName","registry","process","stdout","write","getCaption","table","getTable","chalk","bold","cyan","version","Object","keys","getTime","length","filter","el","join","times","entries","sort","a","b","compare","versionTags","getVersionTags","versions","args","tagged","slice","limit","log","debug","JSON","stringify","Table","head","map","title","style","timestamp","when","formatRelativeDate","Date","tag","push","toString","time","created","modified","distTags","reduce","result","ask","question","rl","readline","createInterface","input","stdin","output","answer","close","trim","toLowerCase","DEFAULT_MFE_REGISTRY","npmWhoAmI","undefined","message","isTTY","Error","runCommand","quiet","all","Number","MAX_SAFE_INTEGER","_","getPackages","ignore","type","PackageType","Bundle","location","isWebComponent"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/cli/commands/mfe-list.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport { isCI } from '@servicetitan/install';\nimport chalk from 'chalk';\nimport Table from 'cli-table3';\nimport {\n formatRelativeDate,\n getPackages,\n isWebComponent,\n log,\n logErrors,\n PackageType,\n} from '../../utils';\nimport { NPMPackageInfo, npmView } from '../utils';\nimport type { entry } from './registry/mfe-list';\nimport { Command } from './types';\nimport { login, PROD_MFE_REGISTRY } from './utils';\n\nconst collator = new Intl.Collator();\n\nexport class MFEList extends Command<typeof entry> {\n @logErrors\n async execute() {\n if (!isCI()) {\n await login(this.registry);\n }\n\n this.packageNames.forEach((name, index) => {\n const info = npmView({ packageName: name, registry: this.registry });\n if (info) {\n if (index > 0) {\n process.stdout.write('\\n');\n }\n\n process.stdout.write(this.getCaption(info) + '\\n');\n const table = this.getTable(info);\n if (table) {\n process.stdout.write(table + '\\n');\n }\n }\n });\n }\n\n private getCaption(info: NPMPackageInfo) {\n return [\n chalk.bold.cyan(info.name),\n info.version && `version: ${info.version}`,\n `versions: ${Object.keys(this.getTime(info)).length}`,\n ]\n .filter(el => !!el)\n .join(' | ');\n }\n\n private getTable(info: NPMPackageInfo) {\n const times = Object.entries(this.getTime(info)).sort(\n ([, a], [, b]) => -1 * collator.compare(a, b)\n );\n const versionTags = this.getVersionTags(info);\n const versions = this.args.tagged\n ? times.filter(([version]) => !!versionTags[version])\n : times.slice(0, this.limit);\n\n /* istanbul ignore next: debug only */\n log.debug('mfe-list', () =>\n JSON.stringify({ name: info.name, versionTags, versions }, null, 2)\n );\n\n if (versions.length === 0) {\n return '';\n }\n\n const table = new Table({\n head: ['Version', 'Tag', 'When'].map(title => chalk.bold.cyan(title)),\n style: { head: [] },\n });\n\n versions.forEach(([version, timestamp]) => {\n const when = formatRelativeDate(new Date(timestamp));\n const tag = (versionTags[version] ?? []).join(', ');\n table.push([version, chalk.bold.cyan(tag), when]);\n });\n\n return table.toString();\n }\n\n private getTime(info: NPMPackageInfo) {\n const { time: { created, modified, ...time } = {} } = info;\n return time;\n }\n\n private getVersionTags({ 'dist-tags': distTags = {} }: NPMPackageInfo) {\n return Object.entries(distTags).reduce<Record<string, string[]>>(\n (result, [name, version]) => {\n result[version] ??= [];\n result[version].push(name);\n return result;\n },\n {}\n );\n }\n\n private get limit() {\n if (this.args.all) {\n return Number.MAX_SAFE_INTEGER;\n }\n return this.args.limit && this.args.limit > 0 ? this.args.limit : 20;\n }\n\n private get packageNames() {\n const { _ = [], packageNames = [] } = this.args;\n if (_.length || packageNames.length) {\n return [..._, ...packageNames];\n }\n\n return getPackages({ ignore: this.args.ignore, type: PackageType.Bundle })\n .filter(({ location }) => isWebComponent(location))\n .map(({ name }) => name)\n .sort((a, b) => collator.compare(a, b));\n }\n\n private get registry() {\n return this.args.registry ?? PROD_MFE_REGISTRY;\n }\n}\n"],"names":["MFEList","collator","Intl","Collator","Command","execute","isCI","login","registry","packageNames","forEach","name","index","info","npmView","packageName","process","stdout","write","getCaption","table","getTable","chalk","bold","cyan","version","Object","keys","getTime","length","filter","el","join","times","entries","sort","a","b","compare","versionTags","getVersionTags","versions","args","tagged","slice","limit","log","debug","JSON","stringify","Table","head","map","title","style","timestamp","when","formatRelativeDate","Date","tag","push","toString","time","created","modified","distTags","reduce","result","all","Number","MAX_SAFE_INTEGER","_","getPackages","ignore","type","PackageType","Bundle","location","isWebComponent","PROD_MFE_REGISTRY"],"mappings":"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"}
@@ -75,7 +75,6 @@ class MFEPackageClean extends _types.Command {
75
75
  });
76
76
  }
77
77
  getCleanData() {
78
- var _this_args_registry;
79
78
  let count = this.args.count;
80
79
  if (!count || count < 0) {
81
80
  count = 5;
@@ -92,7 +91,7 @@ class MFEPackageClean extends _types.Command {
92
91
  (0, _utils1.gitGetBranch)()
93
92
  ];
94
93
  }
95
- const registry = (_this_args_registry = this.args.registry) !== null && _this_args_registry !== void 0 ? _this_args_registry : _utils2.DEFAULT_MFE_REGISTRY;
94
+ const registry = (0, _utils2.getMfeRegistry)(this.args.registry);
96
95
  return {
97
96
  count,
98
97
  registry,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/commands/mfe-package-clean.ts"],"sourcesContent":["import { getBranchesConfigs, isWebComponent, log, logErrors, readJson } from '../../utils';\nimport { gitGetBranch, npmGetPackageVersionsDetails, npmUnpublish, Version } from '../utils';\nimport type { entry } from './registry/mfe-package-clean';\nimport { Command } from './types';\nimport { DEFAULT_MFE_REGISTRY } from './utils';\n\nexport class MFEPackageClean extends Command<typeof entry> {\n @logErrors\n async execute() {\n if (!isWebComponent()) {\n throw new Error('only web-components can be cleaned');\n }\n\n const data = this.getCleanData();\n const packageName = readJson('package.json').name;\n const branchedVersions = this.getBranchedVersions(packageName, data.registry);\n\n log.info(`branched versions (${data.count}):`, JSON.stringify(branchedVersions, null, 2));\n\n const branchedVersionsToClean: Record<string, Version[]> = {};\n for (const [branch, versions] of Object.entries(branchedVersions)) {\n // Limit branches for now\n if (!data.branches.includes(branch)) {\n log.info(`ignoring unrecognized branch \"${branch}\"`);\n continue;\n }\n\n branchedVersionsToClean[branch] = this.excludeTagged(versions)\n .sort(({ date: adt }, { date: bdt }) => (adt > bdt ? -1 : 1))\n .slice(data.count);\n }\n\n log.info('found versions for unpublish:', JSON.stringify(branchedVersionsToClean, null, 2));\n const unVersions = Object.keys(branchedVersionsToClean).reduce(\n (out, br) => [...out, ...branchedVersionsToClean[br].map(({ name }) => name)],\n []\n );\n\n if (this.args.dry) {\n return;\n }\n\n for (const version of unVersions) {\n try {\n // eslint-disable-next-line no-await-in-loop\n await npmUnpublish(data.registry, packageName, version);\n } catch {\n log.error(`error while removing ${packageName} version ${version}`);\n }\n }\n }\n\n private excludeTagged(versions: Version[]) {\n return versions.filter(({ name, tag }) => {\n if (tag) {\n log.info(`ignoring version ${name} tagged \"${tag}\"`);\n return false;\n }\n return true;\n });\n }\n\n private getCleanData(): {\n count: number;\n registry: string;\n branches: string[];\n } {\n let count = this.args.count;\n if (!count || count < 0) {\n count = 5;\n }\n\n let branches: string[];\n\n if (this.args.all === true) {\n branches = Object.keys(getBranchesConfigs());\n } else if (typeof this.args.branch === 'string') {\n branches = [this.args.branch];\n } else {\n branches = [gitGetBranch()];\n }\n\n const registry = this.args.registry ?? DEFAULT_MFE_REGISTRY;\n\n return { count, registry, branches };\n }\n\n private getBranchedVersions(packageName: string, registry: string) {\n const versions = npmGetPackageVersionsDetails(registry, packageName);\n const branchedVersions: Record<string, Version[]> = {};\n\n function addVersion(branch: string, version: Version) {\n branchedVersions[branch] ??= [];\n branchedVersions[branch].push(version);\n }\n\n for (const version of versions) {\n const { name } = version;\n if (!name.startsWith('0.0.0-')) {\n continue;\n }\n\n const buildVersion = name.replace('0.0.0-', '');\n\n // master version generated by nerdbank versioning\n if (/^(\\d+)\\.(\\d+)\\.(\\d+)$/.test(buildVersion)) {\n addVersion('master', version);\n continue;\n }\n\n // branch version generated by nerdbank versioning\n const match1 = buildVersion.match(/^(\\d+)\\.(\\d+)\\.(\\d+)-([\\dA-Za-z-]+).([\\dA-Za-z]+)$/);\n if (match1?.length) {\n addVersion(match1[4], version);\n continue;\n }\n\n // branch version generated by mfe-publisher versioning\n const match2 = buildVersion.match(/^([\\dA-Za-z-]+).([\\dA-Za-z]+)$/);\n if (match2?.length) {\n addVersion(match2[1], version);\n continue;\n }\n\n log.info(`skipping unrecognized version: ${name}`);\n }\n\n return branchedVersions;\n }\n}\n"],"names":["MFEPackageClean","Command","execute","isWebComponent","Error","data","getCleanData","packageName","readJson","name","branchedVersions","getBranchedVersions","registry","log","info","count","JSON","stringify","branchedVersionsToClean","branch","versions","Object","entries","branches","includes","excludeTagged","sort","date","adt","bdt","slice","unVersions","keys","reduce","out","br","map","args","dry","version","npmUnpublish","error","filter","tag","all","getBranchesConfigs","gitGetBranch","DEFAULT_MFE_REGISTRY","npmGetPackageVersionsDetails","addVersion","push","startsWith","buildVersion","replace","test","match1","match","length","match2"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/cli/commands/mfe-package-clean.ts"],"sourcesContent":["import { getBranchesConfigs, isWebComponent, log, logErrors, readJson } from '../../utils';\nimport { gitGetBranch, npmGetPackageVersionsDetails, npmUnpublish, Version } from '../utils';\nimport type { entry } from './registry/mfe-package-clean';\nimport { Command } from './types';\nimport { getMfeRegistry } from './utils';\n\nexport class MFEPackageClean extends Command<typeof entry> {\n @logErrors\n async execute() {\n if (!isWebComponent()) {\n throw new Error('only web-components can be cleaned');\n }\n\n const data = this.getCleanData();\n const packageName = readJson('package.json').name;\n const branchedVersions = this.getBranchedVersions(packageName, data.registry);\n\n log.info(`branched versions (${data.count}):`, JSON.stringify(branchedVersions, null, 2));\n\n const branchedVersionsToClean: Record<string, Version[]> = {};\n for (const [branch, versions] of Object.entries(branchedVersions)) {\n // Limit branches for now\n if (!data.branches.includes(branch)) {\n log.info(`ignoring unrecognized branch \"${branch}\"`);\n continue;\n }\n\n branchedVersionsToClean[branch] = this.excludeTagged(versions)\n .sort(({ date: adt }, { date: bdt }) => (adt > bdt ? -1 : 1))\n .slice(data.count);\n }\n\n log.info('found versions for unpublish:', JSON.stringify(branchedVersionsToClean, null, 2));\n const unVersions = Object.keys(branchedVersionsToClean).reduce(\n (out, br) => [...out, ...branchedVersionsToClean[br].map(({ name }) => name)],\n []\n );\n\n if (this.args.dry) {\n return;\n }\n\n for (const version of unVersions) {\n try {\n // eslint-disable-next-line no-await-in-loop\n await npmUnpublish(data.registry, packageName, version);\n } catch {\n log.error(`error while removing ${packageName} version ${version}`);\n }\n }\n }\n\n private excludeTagged(versions: Version[]) {\n return versions.filter(({ name, tag }) => {\n if (tag) {\n log.info(`ignoring version ${name} tagged \"${tag}\"`);\n return false;\n }\n return true;\n });\n }\n\n private getCleanData(): {\n count: number;\n registry: string;\n branches: string[];\n } {\n let count = this.args.count;\n if (!count || count < 0) {\n count = 5;\n }\n\n let branches: string[];\n\n if (this.args.all === true) {\n branches = Object.keys(getBranchesConfigs());\n } else if (typeof this.args.branch === 'string') {\n branches = [this.args.branch];\n } else {\n branches = [gitGetBranch()];\n }\n\n const registry = getMfeRegistry(this.args.registry);\n\n return { count, registry, branches };\n }\n\n private getBranchedVersions(packageName: string, registry: string) {\n const versions = npmGetPackageVersionsDetails(registry, packageName);\n const branchedVersions: Record<string, Version[]> = {};\n\n function addVersion(branch: string, version: Version) {\n branchedVersions[branch] ??= [];\n branchedVersions[branch].push(version);\n }\n\n for (const version of versions) {\n const { name } = version;\n if (!name.startsWith('0.0.0-')) {\n continue;\n }\n\n const buildVersion = name.replace('0.0.0-', '');\n\n // master version generated by nerdbank versioning\n if (/^(\\d+)\\.(\\d+)\\.(\\d+)$/.test(buildVersion)) {\n addVersion('master', version);\n continue;\n }\n\n // branch version generated by nerdbank versioning\n const match1 = buildVersion.match(/^(\\d+)\\.(\\d+)\\.(\\d+)-([\\dA-Za-z-]+).([\\dA-Za-z]+)$/);\n if (match1?.length) {\n addVersion(match1[4], version);\n continue;\n }\n\n // branch version generated by mfe-publisher versioning\n const match2 = buildVersion.match(/^([\\dA-Za-z-]+).([\\dA-Za-z]+)$/);\n if (match2?.length) {\n addVersion(match2[1], version);\n continue;\n }\n\n log.info(`skipping unrecognized version: ${name}`);\n }\n\n return branchedVersions;\n }\n}\n"],"names":["MFEPackageClean","Command","execute","isWebComponent","Error","data","getCleanData","packageName","readJson","name","branchedVersions","getBranchedVersions","registry","log","info","count","JSON","stringify","branchedVersionsToClean","branch","versions","Object","entries","branches","includes","excludeTagged","sort","date","adt","bdt","slice","unVersions","keys","reduce","out","br","map","args","dry","version","npmUnpublish","error","filter","tag","all","getBranchesConfigs","gitGetBranch","getMfeRegistry","npmGetPackageVersionsDetails","addVersion","push","startsWith","buildVersion","replace","test","match1","match","length","match2"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mfe-package-publish.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/mfe-package-publish.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAuBlC,qBAAa,iBAAkB,SAAQ,OAAO,CAAC,OAAO,KAAK,CAAC;IAElD,OAAO;IA0Bb,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,CAAC,YAAY;YAsBN,mBAAmB;IAiDjC,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,cAAc;YA4BR,eAAe;IAqB7B,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,kBAAkB;YAsBZ,qBAAqB;YAoCrB,kBAAkB;CAgBnC"}
1
+ {"version":3,"file":"mfe-package-publish.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/mfe-package-publish.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAuBlC,qBAAa,iBAAkB,SAAQ,OAAO,CAAC,OAAO,KAAK,CAAC;IAElD,OAAO;IA0Bb,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,CAAC,YAAY;YAsBN,mBAAmB;IAiDjC,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,cAAc;YA4BR,eAAe;IAqB7B,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,kBAAkB;YAsBZ,qBAAqB;YAoCrB,kBAAkB;CAgBnC"}
@@ -49,10 +49,11 @@ class MFEPackagePublish extends _types.Command {
49
49
  }
50
50
  await this.maybeApplyRollbackTag(packageJson.name, data);
51
51
  await this.maybePublishPackage(packageJson, data);
52
- const { dry, tag } = data;
52
+ const { dry, registry, tag } = data;
53
53
  if (this.args.purgeCache !== false && !dry) {
54
54
  (0, _utils2.purgeCache)({
55
55
  packageName: packageJson.name,
56
+ registry,
56
57
  tag
57
58
  });
58
59
  }
@@ -111,24 +112,25 @@ class MFEPackagePublish extends _types.Command {
111
112
  throw error;
112
113
  }
113
114
  }
114
- uploadSourcemaps({ dry, version }) {
115
+ uploadSourcemaps({ dry, registry, version }) {
115
116
  const options = [
116
117
  ...[
117
118
  dry && '--dry'
118
119
  ],
119
- `--releaseVersion=${version}`
120
+ `--releaseVersion=${version}`,
121
+ `--registry=${registry}`
120
122
  ].filter((option)=>!!option);
121
123
  (0, _utils1.runCommand)(`npx startup upload-sourcemaps ${options.join(' ')}`);
122
124
  }
123
125
  getPublishData(packageName) {
124
- var _cli_branch, _cli_registry, _ref, _cli_tag, _ref1, _cli_uploadSourcemaps, _ref2, _cli_trackHistory;
126
+ var _cli_branch, _ref, _cli_tag, _ref1, _cli_uploadSourcemaps, _ref2, _cli_trackHistory;
125
127
  var _npmView;
126
128
  const cli = this.args;
127
129
  const branch = (_cli_branch = cli.branch) !== null && _cli_branch !== void 0 ? _cli_branch : (0, _utils1.gitGetBranch)();
128
130
  const branchConfig = (0, _utils.getBranchesConfigs)()[branch];
129
131
  // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
130
132
  const buildVersion = cli.build || (0, _utils1.getDefaultBuildVersion)(branch, (0, _utils1.gitGetCommitHash)());
131
- const registry = (_cli_registry = cli.registry) !== null && _cli_registry !== void 0 ? _cli_registry : _utils2.DEFAULT_MFE_REGISTRY;
133
+ const registry = (0, _utils2.getMfeRegistry)(cli.registry);
132
134
  const tag = (_ref = (_cli_tag = cli.tag) !== null && _cli_tag !== void 0 ? _cli_tag : branchConfig === null || branchConfig === void 0 ? void 0 : branchConfig.publishTag) !== null && _ref !== void 0 ? _ref : '';
133
135
  const uploadSourcemaps = (_ref1 = (_cli_uploadSourcemaps = cli.uploadSourcemaps) !== null && _cli_uploadSourcemaps !== void 0 ? _cli_uploadSourcemaps : branchConfig === null || branchConfig === void 0 ? void 0 : branchConfig.uploadSourcemaps) !== null && _ref1 !== void 0 ? _ref1 : true;
134
136
  const version = '0.0.0-' + buildVersion;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/commands/mfe-package-publish.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport { EntryPoint, EntryPoints, Metadata } from '../../core';\nimport {\n getBranchesConfigs,\n getFolders,\n isWebComponent,\n log,\n logErrors,\n readJson,\n} from '../../utils';\nimport {\n DRY_RUN_PREFIX,\n getDefaultBuildVersion,\n gitGetBranch,\n gitGetCommitHash,\n npmGetPackageVersions,\n npmPackageSet,\n npmPublish,\n npmTagVersion,\n npmView,\n runCommand,\n} from '../utils';\nimport type { entry } from './registry/mfe-package-publish';\nimport { Command } from './types';\nimport { DEFAULT_MFE_REGISTRY, buildRollbackTag, purgeCache } from './utils';\n\ninterface PublishData {\n branch: string;\n buildVersion: string;\n dry: boolean;\n force: boolean;\n isBranchConfigured: boolean;\n registry: string;\n tag: string;\n uploadSourcemaps: boolean;\n version: string;\n trackHistory: boolean;\n publishedTags: Record<string, string>;\n}\n\ninterface PackageJson {\n name: string;\n private?: boolean;\n files?: string[];\n}\n\nexport class MFEPackagePublish extends Command<typeof entry> {\n @logErrors\n async execute() {\n if (this.args.dry) {\n log.warning('DRY-RUN MODE ENABLED, WILL NOT PUBLISH PACKAGES');\n }\n\n const packageJson = readJson<PackageJson>('package.json');\n\n const data = this.getPublishData(packageJson.name);\n if (!this.checkPackage(packageJson, data)) {\n return;\n }\n\n await this.maybeApplyRollbackTag(packageJson.name, data);\n\n await this.maybePublishPackage(packageJson, data);\n\n const { dry, tag } = data;\n if (this.args.purgeCache !== false && !dry) {\n purgeCache({ packageName: packageJson.name, tag });\n }\n\n if (data.uploadSourcemaps) {\n this.uploadSourcemaps(data);\n }\n }\n\n private get dryRunPrefix() {\n return this.args.dry ? DRY_RUN_PREFIX : '';\n }\n\n private checkPackage(\n packageJson: PackageJson,\n { branch, force, isBranchConfigured }: PublishData\n ) {\n if (!isWebComponent()) {\n throw new Error('only web-components can be published');\n }\n\n if (packageJson.private) {\n log.warning('package is private, skipping publish');\n return false;\n }\n\n if (!isBranchConfigured && !force) {\n throw new Error(\n `branch \"${branch}\" is not configured for publishing, use --force flag to publish if needed`\n );\n }\n\n return true;\n }\n\n private async maybePublishPackage(packageJson: PackageJson, data: PublishData) {\n try {\n const { dry, registry, tag, version } = data;\n\n const versions = npmGetPackageVersions(registry, packageJson.name);\n if (versions.includes(version)) {\n log.warning(\n `${this.dryRunPrefix}${packageJson.name} version ${version} is already published, skipping publish`\n );\n\n log.info(`${this.dryRunPrefix}Tagging version ${version} with tag \"${tag}\"`);\n\n if (!dry) {\n await npmTagVersion({\n packageName: packageJson.name,\n packageVersion: version,\n registry,\n tag,\n });\n }\n\n return;\n }\n\n this.validateMetadata(version);\n\n await npmPackageSet('version', version);\n await npmPackageSet('publishConfig.registry', registry);\n await this.setPackageFiles(packageJson);\n\n log.info(`${this.dryRunPrefix}Publishing ${packageJson.name} version ${version}`);\n await npmPublish({ dry, tag });\n } catch (error) {\n log.error(`Failed to publish package ${packageJson.name}`);\n\n const versionOriginallyTaggedWithRollback =\n data.publishedTags[buildRollbackTag(data.tag)];\n\n if (versionOriginallyTaggedWithRollback) {\n await this.restoreRollbackTag(\n packageJson.name,\n data,\n versionOriginallyTaggedWithRollback\n );\n }\n throw error;\n }\n }\n\n private uploadSourcemaps({ dry, version }: PublishData) {\n const options = [...[dry && '--dry'], `--releaseVersion=${version}`].filter(\n option => !!option\n ) as string[];\n\n runCommand(`npx startup upload-sourcemaps ${options.join(' ')}`);\n }\n\n private getPublishData(packageName: string): PublishData {\n const cli = this.args;\n const branch = cli.branch ?? gitGetBranch();\n const branchConfig = getBranchesConfigs()[branch];\n\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n const buildVersion = cli.build || getDefaultBuildVersion(branch, gitGetCommitHash());\n const registry = cli.registry ?? DEFAULT_MFE_REGISTRY;\n const tag = cli.tag ?? branchConfig?.publishTag ?? '';\n const uploadSourcemaps = cli.uploadSourcemaps ?? branchConfig?.uploadSourcemaps ?? true;\n const version = '0.0.0-' + buildVersion;\n const publishedTags = npmView({ packageName, registry })?.['dist-tags'] ?? {};\n\n return {\n branch,\n buildVersion,\n dry: !!cli.dry,\n force: !!cli.force,\n isBranchConfigured: !!branchConfig,\n publishedTags,\n registry,\n tag: tag || 'latest',\n trackHistory: cli.trackHistory ?? true,\n uploadSourcemaps,\n version,\n };\n }\n\n private async setPackageFiles({ files: inputFiles }: PackageJson) {\n let outputFiles = ['dist/bundle', 'dist/metadata.json', 'package.json'];\n\n if (inputFiles?.length) {\n const index = inputFiles.findIndex(file => file === 'dist');\n if (index < 0) {\n return;\n }\n outputFiles = [\n ...inputFiles.slice(0, index),\n ...outputFiles.filter(file => file.startsWith('dist')),\n ...inputFiles.slice(index + 1),\n ];\n }\n\n for (let i = 0, n = outputFiles.length; i < n; i++) {\n // eslint-disable-next-line no-await-in-loop\n await npmPackageSet(`files[${i}]`, outputFiles[i]);\n }\n }\n\n private validateMetadata(version: string) {\n const { destination: outDir } = getFolders();\n\n const metadataJson = path.join(outDir, 'metadata.json');\n if (!fs.existsSync(metadataJson)) {\n throw new Error(`${metadataJson} is not present`);\n }\n\n const metadata = readJson<Metadata>(metadataJson);\n this.validateEntryPoints(outDir, metadata);\n\n fs.writeFileSync(metadataJson, JSON.stringify({ ...metadata, version }, null, 2), 'utf-8');\n }\n\n private validateEntryPoints(outDir: string, { entrypoints = {} }: Metadata) {\n const keys: (keyof EntryPoints)[] = ['full', 'light'];\n keys.forEach(name =>\n this.validateEntryPoint({ entryPoint: entrypoints[name], name, outDir })\n );\n }\n\n private validateEntryPoint({\n entryPoint = {},\n name,\n outDir,\n }: {\n entryPoint?: EntryPoint;\n name: keyof EntryPoints;\n outDir: string;\n }) {\n const keys: (keyof EntryPoint)[] = ['css', 'js'];\n keys.forEach(key => {\n if (!entryPoint[key]) {\n throw new Error(`${name}.${key} not found in metadata.json`);\n }\n entryPoint[key].forEach(filename => {\n if (!fs.existsSync(path.join(outDir, 'bundle', name, filename))) {\n throw new Error(`referenced bundle ${filename} was not found`);\n }\n });\n });\n }\n\n private async maybeApplyRollbackTag(packageName: string, data: PublishData) {\n const { dry, registry, tag, trackHistory, version, publishedTags } = data;\n\n if (!trackHistory) {\n log.info('Track history is turned off, skipping rollback tag');\n return;\n }\n\n const previousVersion = publishedTags[tag];\n\n if (!previousVersion) {\n log.info(`No previous version published with tag \"${tag}\", skipping rollback tag`);\n return;\n }\n\n if (previousVersion === version) {\n log.info(`Version \"${version}\" is already tagged \"${tag}\", skipping rollback tag`);\n return;\n }\n\n const prevTag = buildRollbackTag(tag);\n\n log.info(\n `${this.dryRunPrefix}Tagging previous version ${previousVersion} with tag \"${prevTag}\"`\n );\n\n if (!dry) {\n await npmTagVersion({\n packageName,\n packageVersion: previousVersion,\n registry,\n tag: prevTag,\n });\n }\n }\n\n private async restoreRollbackTag(\n packageName: string,\n { registry, tag }: PublishData,\n version: string\n ) {\n const rollbackTag = buildRollbackTag(tag);\n\n log.info(`Restoring rollback tag ${rollbackTag} back to version ${version}`);\n\n await npmTagVersion({\n packageName,\n packageVersion: version,\n registry,\n tag: rollbackTag,\n });\n }\n}\n"],"names":["MFEPackagePublish","Command","execute","args","dry","log","warning","packageJson","readJson","data","getPublishData","name","checkPackage","maybeApplyRollbackTag","maybePublishPackage","tag","purgeCache","packageName","uploadSourcemaps","dryRunPrefix","DRY_RUN_PREFIX","branch","force","isBranchConfigured","isWebComponent","Error","private","registry","version","versions","npmGetPackageVersions","includes","info","npmTagVersion","packageVersion","validateMetadata","npmPackageSet","setPackageFiles","npmPublish","error","versionOriginallyTaggedWithRollback","publishedTags","buildRollbackTag","restoreRollbackTag","options","filter","option","runCommand","join","cli","npmView","gitGetBranch","branchConfig","getBranchesConfigs","buildVersion","build","getDefaultBuildVersion","gitGetCommitHash","DEFAULT_MFE_REGISTRY","publishTag","trackHistory","files","inputFiles","outputFiles","length","index","findIndex","file","slice","startsWith","i","n","destination","outDir","getFolders","metadataJson","path","fs","existsSync","metadata","validateEntryPoints","writeFileSync","JSON","stringify","entrypoints","keys","forEach","validateEntryPoint","entryPoint","key","filename","previousVersion","prevTag","rollbackTag"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/cli/commands/mfe-package-publish.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport { EntryPoint, EntryPoints, Metadata } from '../../core';\nimport {\n getBranchesConfigs,\n getFolders,\n isWebComponent,\n log,\n logErrors,\n readJson,\n} from '../../utils';\nimport {\n DRY_RUN_PREFIX,\n getDefaultBuildVersion,\n gitGetBranch,\n gitGetCommitHash,\n npmGetPackageVersions,\n npmPackageSet,\n npmPublish,\n npmTagVersion,\n npmView,\n runCommand,\n} from '../utils';\nimport type { entry } from './registry/mfe-package-publish';\nimport { Command } from './types';\nimport { buildRollbackTag, getMfeRegistry, purgeCache } from './utils';\n\ninterface PublishData {\n branch: string;\n buildVersion: string;\n dry: boolean;\n force: boolean;\n isBranchConfigured: boolean;\n registry: string;\n tag: string;\n uploadSourcemaps: boolean;\n version: string;\n trackHistory: boolean;\n publishedTags: Record<string, string>;\n}\n\ninterface PackageJson {\n name: string;\n private?: boolean;\n files?: string[];\n}\n\nexport class MFEPackagePublish extends Command<typeof entry> {\n @logErrors\n async execute() {\n if (this.args.dry) {\n log.warning('DRY-RUN MODE ENABLED, WILL NOT PUBLISH PACKAGES');\n }\n\n const packageJson = readJson<PackageJson>('package.json');\n\n const data = this.getPublishData(packageJson.name);\n if (!this.checkPackage(packageJson, data)) {\n return;\n }\n\n await this.maybeApplyRollbackTag(packageJson.name, data);\n\n await this.maybePublishPackage(packageJson, data);\n\n const { dry, registry, tag } = data;\n if (this.args.purgeCache !== false && !dry) {\n purgeCache({ packageName: packageJson.name, registry, tag });\n }\n\n if (data.uploadSourcemaps) {\n this.uploadSourcemaps(data);\n }\n }\n\n private get dryRunPrefix() {\n return this.args.dry ? DRY_RUN_PREFIX : '';\n }\n\n private checkPackage(\n packageJson: PackageJson,\n { branch, force, isBranchConfigured }: PublishData\n ) {\n if (!isWebComponent()) {\n throw new Error('only web-components can be published');\n }\n\n if (packageJson.private) {\n log.warning('package is private, skipping publish');\n return false;\n }\n\n if (!isBranchConfigured && !force) {\n throw new Error(\n `branch \"${branch}\" is not configured for publishing, use --force flag to publish if needed`\n );\n }\n\n return true;\n }\n\n private async maybePublishPackage(packageJson: PackageJson, data: PublishData) {\n try {\n const { dry, registry, tag, version } = data;\n\n const versions = npmGetPackageVersions(registry, packageJson.name);\n if (versions.includes(version)) {\n log.warning(\n `${this.dryRunPrefix}${packageJson.name} version ${version} is already published, skipping publish`\n );\n\n log.info(`${this.dryRunPrefix}Tagging version ${version} with tag \"${tag}\"`);\n\n if (!dry) {\n await npmTagVersion({\n packageName: packageJson.name,\n packageVersion: version,\n registry,\n tag,\n });\n }\n\n return;\n }\n\n this.validateMetadata(version);\n\n await npmPackageSet('version', version);\n await npmPackageSet('publishConfig.registry', registry);\n await this.setPackageFiles(packageJson);\n\n log.info(`${this.dryRunPrefix}Publishing ${packageJson.name} version ${version}`);\n await npmPublish({ dry, tag });\n } catch (error) {\n log.error(`Failed to publish package ${packageJson.name}`);\n\n const versionOriginallyTaggedWithRollback =\n data.publishedTags[buildRollbackTag(data.tag)];\n\n if (versionOriginallyTaggedWithRollback) {\n await this.restoreRollbackTag(\n packageJson.name,\n data,\n versionOriginallyTaggedWithRollback\n );\n }\n throw error;\n }\n }\n\n private uploadSourcemaps({ dry, registry, version }: PublishData) {\n const options = [\n ...[dry && '--dry'],\n `--releaseVersion=${version}`,\n `--registry=${registry}`,\n ].filter(option => !!option) as string[];\n\n runCommand(`npx startup upload-sourcemaps ${options.join(' ')}`);\n }\n\n private getPublishData(packageName: string): PublishData {\n const cli = this.args;\n const branch = cli.branch ?? gitGetBranch();\n const branchConfig = getBranchesConfigs()[branch];\n\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n const buildVersion = cli.build || getDefaultBuildVersion(branch, gitGetCommitHash());\n const registry = getMfeRegistry(cli.registry);\n const tag = cli.tag ?? branchConfig?.publishTag ?? '';\n const uploadSourcemaps = cli.uploadSourcemaps ?? branchConfig?.uploadSourcemaps ?? true;\n const version = '0.0.0-' + buildVersion;\n const publishedTags = npmView({ packageName, registry })?.['dist-tags'] ?? {};\n\n return {\n branch,\n buildVersion,\n dry: !!cli.dry,\n force: !!cli.force,\n isBranchConfigured: !!branchConfig,\n publishedTags,\n registry,\n tag: tag || 'latest',\n trackHistory: cli.trackHistory ?? true,\n uploadSourcemaps,\n version,\n };\n }\n\n private async setPackageFiles({ files: inputFiles }: PackageJson) {\n let outputFiles = ['dist/bundle', 'dist/metadata.json', 'package.json'];\n\n if (inputFiles?.length) {\n const index = inputFiles.findIndex(file => file === 'dist');\n if (index < 0) {\n return;\n }\n outputFiles = [\n ...inputFiles.slice(0, index),\n ...outputFiles.filter(file => file.startsWith('dist')),\n ...inputFiles.slice(index + 1),\n ];\n }\n\n for (let i = 0, n = outputFiles.length; i < n; i++) {\n // eslint-disable-next-line no-await-in-loop\n await npmPackageSet(`files[${i}]`, outputFiles[i]);\n }\n }\n\n private validateMetadata(version: string) {\n const { destination: outDir } = getFolders();\n\n const metadataJson = path.join(outDir, 'metadata.json');\n if (!fs.existsSync(metadataJson)) {\n throw new Error(`${metadataJson} is not present`);\n }\n\n const metadata = readJson<Metadata>(metadataJson);\n this.validateEntryPoints(outDir, metadata);\n\n fs.writeFileSync(metadataJson, JSON.stringify({ ...metadata, version }, null, 2), 'utf-8');\n }\n\n private validateEntryPoints(outDir: string, { entrypoints = {} }: Metadata) {\n const keys: (keyof EntryPoints)[] = ['full', 'light'];\n keys.forEach(name =>\n this.validateEntryPoint({ entryPoint: entrypoints[name], name, outDir })\n );\n }\n\n private validateEntryPoint({\n entryPoint = {},\n name,\n outDir,\n }: {\n entryPoint?: EntryPoint;\n name: keyof EntryPoints;\n outDir: string;\n }) {\n const keys: (keyof EntryPoint)[] = ['css', 'js'];\n keys.forEach(key => {\n if (!entryPoint[key]) {\n throw new Error(`${name}.${key} not found in metadata.json`);\n }\n entryPoint[key].forEach(filename => {\n if (!fs.existsSync(path.join(outDir, 'bundle', name, filename))) {\n throw new Error(`referenced bundle ${filename} was not found`);\n }\n });\n });\n }\n\n private async maybeApplyRollbackTag(packageName: string, data: PublishData) {\n const { dry, registry, tag, trackHistory, version, publishedTags } = data;\n\n if (!trackHistory) {\n log.info('Track history is turned off, skipping rollback tag');\n return;\n }\n\n const previousVersion = publishedTags[tag];\n\n if (!previousVersion) {\n log.info(`No previous version published with tag \"${tag}\", skipping rollback tag`);\n return;\n }\n\n if (previousVersion === version) {\n log.info(`Version \"${version}\" is already tagged \"${tag}\", skipping rollback tag`);\n return;\n }\n\n const prevTag = buildRollbackTag(tag);\n\n log.info(\n `${this.dryRunPrefix}Tagging previous version ${previousVersion} with tag \"${prevTag}\"`\n );\n\n if (!dry) {\n await npmTagVersion({\n packageName,\n packageVersion: previousVersion,\n registry,\n tag: prevTag,\n });\n }\n }\n\n private async restoreRollbackTag(\n packageName: string,\n { registry, tag }: PublishData,\n version: string\n ) {\n const rollbackTag = buildRollbackTag(tag);\n\n log.info(`Restoring rollback tag ${rollbackTag} back to version ${version}`);\n\n await npmTagVersion({\n packageName,\n packageVersion: version,\n registry,\n tag: rollbackTag,\n });\n }\n}\n"],"names":["MFEPackagePublish","Command","execute","args","dry","log","warning","packageJson","readJson","data","getPublishData","name","checkPackage","maybeApplyRollbackTag","maybePublishPackage","registry","tag","purgeCache","packageName","uploadSourcemaps","dryRunPrefix","DRY_RUN_PREFIX","branch","force","isBranchConfigured","isWebComponent","Error","private","version","versions","npmGetPackageVersions","includes","info","npmTagVersion","packageVersion","validateMetadata","npmPackageSet","setPackageFiles","npmPublish","error","versionOriginallyTaggedWithRollback","publishedTags","buildRollbackTag","restoreRollbackTag","options","filter","option","runCommand","join","cli","npmView","gitGetBranch","branchConfig","getBranchesConfigs","buildVersion","build","getDefaultBuildVersion","gitGetCommitHash","getMfeRegistry","publishTag","trackHistory","files","inputFiles","outputFiles","length","index","findIndex","file","slice","startsWith","i","n","destination","outDir","getFolders","metadataJson","path","fs","existsSync","metadata","validateEntryPoints","writeFileSync","JSON","stringify","entrypoints","keys","forEach","validateEntryPoint","entryPoint","key","filename","previousVersion","prevTag","rollbackTag"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mfe-package-rollback.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/mfe-package-rollback.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAOlC,qBAAa,kBAAmB,SAAQ,OAAO,CAAC,OAAO,KAAK,CAAC;IACzD,OAAO,KAAK,YAAY,GAEvB;IAGK,OAAO;YAaC,cAAc;CAyD/B"}
1
+ {"version":3,"file":"mfe-package-rollback.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/mfe-package-rollback.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAOlC,qBAAa,kBAAmB,SAAQ,OAAO,CAAC,OAAO,KAAK,CAAC;IACzD,OAAO,KAAK,YAAY,GAEvB;IAGK,OAAO;YAcC,cAAc;CAyD/B"}
@@ -39,17 +39,19 @@ class MFEPackageRollback extends _types.Command {
39
39
  if (dry) {
40
40
  _utils.log.warning('DRY-RUN MODE ENABLED, WILL NOT PERFORM ROLLBACK');
41
41
  }
42
- const packageName = await this.handleRollback();
42
+ const registry = (0, _utils2.getMfeRegistry)(this.args.registry);
43
+ const packageName = await this.handleRollback(registry);
43
44
  if (packageName && this.args.purgeCache !== false && !dry) {
44
45
  (0, _utils2.purgeCache)({
45
46
  packageName,
47
+ registry,
46
48
  tag
47
49
  });
48
50
  }
49
51
  }
50
- async handleRollback() {
52
+ async handleRollback(registry) {
51
53
  var _ref;
52
- const { tag, registry = _utils2.DEFAULT_MFE_REGISTRY, dry } = this.args;
54
+ const { tag, dry } = this.args;
53
55
  const packageJson = (0, _utils.readJson)('package.json');
54
56
  const packageName = packageJson.name;
55
57
  _utils.log.info(`${this.dryRunPrefix}Rolling back ${packageName} for tag "${tag}"`);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/commands/mfe-package-rollback.ts"],"sourcesContent":["import { log, logErrors, readJson } from '../../utils';\nimport { DRY_RUN_PREFIX, npmTagVersion, npmView } from '../utils';\nimport type { entry } from './registry/mfe-package-rollback';\nimport { Command } from './types';\nimport { DEFAULT_MFE_REGISTRY, buildRollbackTag, purgeCache } from './utils';\n\ninterface PackageJson {\n name: string;\n}\n\nexport class MFEPackageRollback extends Command<typeof entry> {\n private get dryRunPrefix() {\n return this.args.dry ? DRY_RUN_PREFIX : '';\n }\n\n @logErrors\n async execute() {\n const { dry, tag } = this.args;\n if (dry) {\n log.warning('DRY-RUN MODE ENABLED, WILL NOT PERFORM ROLLBACK');\n }\n\n const packageName = await this.handleRollback();\n\n if (packageName && this.args.purgeCache !== false && !dry) {\n purgeCache({ packageName, tag });\n }\n }\n\n private async handleRollback() {\n const { tag, registry = DEFAULT_MFE_REGISTRY, dry } = this.args;\n\n const packageJson = readJson<PackageJson>('package.json');\n const packageName = packageJson.name;\n\n log.info(`${this.dryRunPrefix}Rolling back ${packageName} for tag \"${tag}\"`);\n\n const packageInfo = npmView({ packageName, registry });\n if (!packageInfo) {\n throw new Error(`Package ${packageName} not found in registry`);\n }\n\n const distTags = packageInfo?.['dist-tags'] ?? {};\n\n const rollbackTag = buildRollbackTag(tag);\n const rollbackVersion = distTags[rollbackTag];\n\n if (!rollbackVersion) {\n throw new Error(\n `No rollback version found for tag \"${tag}\" (looking for \"${rollbackTag}\")`\n );\n }\n\n log.info(\n `${this.dryRunPrefix}Found rollback version ${rollbackVersion} for tag \"${rollbackTag}\"`\n );\n\n const currentVersion = distTags[tag];\n if (currentVersion === rollbackVersion) {\n log.info(\n `${this.dryRunPrefix}Tags \"${tag}\" and \"${rollbackTag}\" both point to version ${rollbackVersion}, skipping rollback`\n );\n return;\n }\n\n if (currentVersion) {\n log.info(\n `${this.dryRunPrefix}Current tag \"${tag}\" points to version ${currentVersion}`\n );\n }\n\n log.info(\n `${this.dryRunPrefix}Rolling back ${packageName} tag \"${tag}\" to version ${rollbackVersion}`\n );\n\n if (!dry) {\n await npmTagVersion({\n packageName,\n packageVersion: rollbackVersion,\n registry,\n tag,\n });\n }\n\n return packageName;\n }\n}\n"],"names":["MFEPackageRollback","Command","dryRunPrefix","args","dry","DRY_RUN_PREFIX","execute","tag","log","warning","packageName","handleRollback","purgeCache","registry","DEFAULT_MFE_REGISTRY","packageJson","readJson","name","info","packageInfo","npmView","Error","distTags","rollbackTag","buildRollbackTag","rollbackVersion","currentVersion","npmTagVersion","packageVersion"],"mappings":";;;;+BAUaA;;;eAAAA;;;uBAV4B;wBACc;uBAE/B;wBAC2C;;;;;;;;;;;;;;;;;;;AAM5D,MAAMA,2BAA2BC,cAAO;IAC3C,IAAYC,eAAe;QACvB,OAAO,IAAI,CAACC,IAAI,CAACC,GAAG,GAAGC,sBAAc,GAAG;IAC5C;IAEA,MACMC,UAAU;QACZ,MAAM,EAAEF,GAAG,EAAEG,GAAG,EAAE,GAAG,IAAI,CAACJ,IAAI;QAC9B,IAAIC,KAAK;YACLI,UAAG,CAACC,OAAO,CAAC;QAChB;QAEA,MAAMC,cAAc,MAAM,IAAI,CAACC,cAAc;QAE7C,IAAID,eAAe,IAAI,CAACP,IAAI,CAACS,UAAU,KAAK,SAAS,CAACR,KAAK;YACvDQ,IAAAA,kBAAU,EAAC;gBAAEF;gBAAaH;YAAI;QAClC;IACJ;IAEA,MAAcI,iBAAiB;;QAC3B,MAAM,EAAEJ,GAAG,EAAEM,WAAWC,4BAAoB,EAAEV,GAAG,EAAE,GAAG,IAAI,CAACD,IAAI;QAE/D,MAAMY,cAAcC,IAAAA,eAAQ,EAAc;QAC1C,MAAMN,cAAcK,YAAYE,IAAI;QAEpCT,UAAG,CAACU,IAAI,CAAC,GAAG,IAAI,CAAChB,YAAY,CAAC,aAAa,EAAEQ,YAAY,UAAU,EAAEH,IAAI,CAAC,CAAC;QAE3E,MAAMY,cAAcC,IAAAA,eAAO,EAAC;YAAEV;YAAaG;QAAS;QACpD,IAAI,CAACM,aAAa;YACd,MAAM,IAAIE,MAAM,CAAC,QAAQ,EAAEX,YAAY,sBAAsB,CAAC;QAClE;QAEA,MAAMY,mBAAWH,wBAAAA,kCAAAA,WAAa,CAAC,YAAY,uCAAI,CAAC;QAEhD,MAAMI,cAAcC,IAAAA,wBAAgB,EAACjB;QACrC,MAAMkB,kBAAkBH,QAAQ,CAACC,YAAY;QAE7C,IAAI,CAACE,iBAAiB;YAClB,MAAM,IAAIJ,MACN,CAAC,mCAAmC,EAAEd,IAAI,gBAAgB,EAAEgB,YAAY,EAAE,CAAC;QAEnF;QAEAf,UAAG,CAACU,IAAI,CACJ,GAAG,IAAI,CAAChB,YAAY,CAAC,uBAAuB,EAAEuB,gBAAgB,UAAU,EAAEF,YAAY,CAAC,CAAC;QAG5F,MAAMG,iBAAiBJ,QAAQ,CAACf,IAAI;QACpC,IAAImB,mBAAmBD,iBAAiB;YACpCjB,UAAG,CAACU,IAAI,CACJ,GAAG,IAAI,CAAChB,YAAY,CAAC,MAAM,EAAEK,IAAI,OAAO,EAAEgB,YAAY,wBAAwB,EAAEE,gBAAgB,mBAAmB,CAAC;YAExH;QACJ;QAEA,IAAIC,gBAAgB;YAChBlB,UAAG,CAACU,IAAI,CACJ,GAAG,IAAI,CAAChB,YAAY,CAAC,aAAa,EAAEK,IAAI,oBAAoB,EAAEmB,gBAAgB;QAEtF;QAEAlB,UAAG,CAACU,IAAI,CACJ,GAAG,IAAI,CAAChB,YAAY,CAAC,aAAa,EAAEQ,YAAY,MAAM,EAAEH,IAAI,aAAa,EAAEkB,iBAAiB;QAGhG,IAAI,CAACrB,KAAK;YACN,MAAMuB,IAAAA,qBAAa,EAAC;gBAChBjB;gBACAkB,gBAAgBH;gBAChBZ;gBACAN;YACJ;QACJ;QAEA,OAAOG;IACX;AACJ"}
1
+ {"version":3,"sources":["../../../src/cli/commands/mfe-package-rollback.ts"],"sourcesContent":["import { log, logErrors, readJson } from '../../utils';\nimport { DRY_RUN_PREFIX, npmTagVersion, npmView } from '../utils';\nimport type { entry } from './registry/mfe-package-rollback';\nimport { Command } from './types';\nimport { buildRollbackTag, getMfeRegistry, purgeCache } from './utils';\n\ninterface PackageJson {\n name: string;\n}\n\nexport class MFEPackageRollback extends Command<typeof entry> {\n private get dryRunPrefix() {\n return this.args.dry ? DRY_RUN_PREFIX : '';\n }\n\n @logErrors\n async execute() {\n const { dry, tag } = this.args;\n if (dry) {\n log.warning('DRY-RUN MODE ENABLED, WILL NOT PERFORM ROLLBACK');\n }\n\n const registry = getMfeRegistry(this.args.registry);\n const packageName = await this.handleRollback(registry);\n\n if (packageName && this.args.purgeCache !== false && !dry) {\n purgeCache({ packageName, registry, tag });\n }\n }\n\n private async handleRollback(registry: string) {\n const { tag, dry } = this.args;\n\n const packageJson = readJson<PackageJson>('package.json');\n const packageName = packageJson.name;\n\n log.info(`${this.dryRunPrefix}Rolling back ${packageName} for tag \"${tag}\"`);\n\n const packageInfo = npmView({ packageName, registry });\n if (!packageInfo) {\n throw new Error(`Package ${packageName} not found in registry`);\n }\n\n const distTags = packageInfo?.['dist-tags'] ?? {};\n\n const rollbackTag = buildRollbackTag(tag);\n const rollbackVersion = distTags[rollbackTag];\n\n if (!rollbackVersion) {\n throw new Error(\n `No rollback version found for tag \"${tag}\" (looking for \"${rollbackTag}\")`\n );\n }\n\n log.info(\n `${this.dryRunPrefix}Found rollback version ${rollbackVersion} for tag \"${rollbackTag}\"`\n );\n\n const currentVersion = distTags[tag];\n if (currentVersion === rollbackVersion) {\n log.info(\n `${this.dryRunPrefix}Tags \"${tag}\" and \"${rollbackTag}\" both point to version ${rollbackVersion}, skipping rollback`\n );\n return;\n }\n\n if (currentVersion) {\n log.info(\n `${this.dryRunPrefix}Current tag \"${tag}\" points to version ${currentVersion}`\n );\n }\n\n log.info(\n `${this.dryRunPrefix}Rolling back ${packageName} tag \"${tag}\" to version ${rollbackVersion}`\n );\n\n if (!dry) {\n await npmTagVersion({\n packageName,\n packageVersion: rollbackVersion,\n registry,\n tag,\n });\n }\n\n return packageName;\n }\n}\n"],"names":["MFEPackageRollback","Command","dryRunPrefix","args","dry","DRY_RUN_PREFIX","execute","tag","log","warning","registry","getMfeRegistry","packageName","handleRollback","purgeCache","packageJson","readJson","name","info","packageInfo","npmView","Error","distTags","rollbackTag","buildRollbackTag","rollbackVersion","currentVersion","npmTagVersion","packageVersion"],"mappings":";;;;+BAUaA;;;eAAAA;;;uBAV4B;wBACc;uBAE/B;wBACqC;;;;;;;;;;;;;;;;;;;AAMtD,MAAMA,2BAA2BC,cAAO;IAC3C,IAAYC,eAAe;QACvB,OAAO,IAAI,CAACC,IAAI,CAACC,GAAG,GAAGC,sBAAc,GAAG;IAC5C;IAEA,MACMC,UAAU;QACZ,MAAM,EAAEF,GAAG,EAAEG,GAAG,EAAE,GAAG,IAAI,CAACJ,IAAI;QAC9B,IAAIC,KAAK;YACLI,UAAG,CAACC,OAAO,CAAC;QAChB;QAEA,MAAMC,WAAWC,IAAAA,sBAAc,EAAC,IAAI,CAACR,IAAI,CAACO,QAAQ;QAClD,MAAME,cAAc,MAAM,IAAI,CAACC,cAAc,CAACH;QAE9C,IAAIE,eAAe,IAAI,CAACT,IAAI,CAACW,UAAU,KAAK,SAAS,CAACV,KAAK;YACvDU,IAAAA,kBAAU,EAAC;gBAAEF;gBAAaF;gBAAUH;YAAI;QAC5C;IACJ;IAEA,MAAcM,eAAeH,QAAgB,EAAE;;QAC3C,MAAM,EAAEH,GAAG,EAAEH,GAAG,EAAE,GAAG,IAAI,CAACD,IAAI;QAE9B,MAAMY,cAAcC,IAAAA,eAAQ,EAAc;QAC1C,MAAMJ,cAAcG,YAAYE,IAAI;QAEpCT,UAAG,CAACU,IAAI,CAAC,GAAG,IAAI,CAAChB,YAAY,CAAC,aAAa,EAAEU,YAAY,UAAU,EAAEL,IAAI,CAAC,CAAC;QAE3E,MAAMY,cAAcC,IAAAA,eAAO,EAAC;YAAER;YAAaF;QAAS;QACpD,IAAI,CAACS,aAAa;YACd,MAAM,IAAIE,MAAM,CAAC,QAAQ,EAAET,YAAY,sBAAsB,CAAC;QAClE;QAEA,MAAMU,mBAAWH,wBAAAA,kCAAAA,WAAa,CAAC,YAAY,uCAAI,CAAC;QAEhD,MAAMI,cAAcC,IAAAA,wBAAgB,EAACjB;QACrC,MAAMkB,kBAAkBH,QAAQ,CAACC,YAAY;QAE7C,IAAI,CAACE,iBAAiB;YAClB,MAAM,IAAIJ,MACN,CAAC,mCAAmC,EAAEd,IAAI,gBAAgB,EAAEgB,YAAY,EAAE,CAAC;QAEnF;QAEAf,UAAG,CAACU,IAAI,CACJ,GAAG,IAAI,CAAChB,YAAY,CAAC,uBAAuB,EAAEuB,gBAAgB,UAAU,EAAEF,YAAY,CAAC,CAAC;QAG5F,MAAMG,iBAAiBJ,QAAQ,CAACf,IAAI;QACpC,IAAImB,mBAAmBD,iBAAiB;YACpCjB,UAAG,CAACU,IAAI,CACJ,GAAG,IAAI,CAAChB,YAAY,CAAC,MAAM,EAAEK,IAAI,OAAO,EAAEgB,YAAY,wBAAwB,EAAEE,gBAAgB,mBAAmB,CAAC;YAExH;QACJ;QAEA,IAAIC,gBAAgB;YAChBlB,UAAG,CAACU,IAAI,CACJ,GAAG,IAAI,CAAChB,YAAY,CAAC,aAAa,EAAEK,IAAI,oBAAoB,EAAEmB,gBAAgB;QAEtF;QAEAlB,UAAG,CAACU,IAAI,CACJ,GAAG,IAAI,CAAChB,YAAY,CAAC,aAAa,EAAEU,YAAY,MAAM,EAAEL,IAAI,aAAa,EAAEkB,iBAAiB;QAGhG,IAAI,CAACrB,KAAK;YACN,MAAMuB,IAAAA,qBAAa,EAAC;gBAChBf;gBACAgB,gBAAgBH;gBAChBf;gBACAH;YACJ;QACJ;QAEA,OAAOK;IACX;AACJ"}
@@ -10,6 +10,7 @@ export declare class MFEPublish extends Command<{
10
10
  options: MFEPublishOptions;
11
11
  }> {
12
12
  execute(): Promise<void>;
13
+ private get registry();
13
14
  getPublishOptions(): string[];
14
15
  getRollbackOptions(): string[];
15
16
  getCleanOptions(): string[];
@@ -1 +1 @@
1
- {"version":3,"file":"mfe-publish.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/mfe-publish.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,KAAK,IAAI,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,KAAK,IAAI,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,KAAK,iBAAiB,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,SAAS,CAAC,GAC9C,CAAC,OAAO,iBAAiB,CAAC,CAAC,SAAS,CAAC,GACrC,CAAC,OAAO,eAAe,CAAC,CAAC,SAAS,CAAC,GAEnC,IAAI,CAAC,CAAC,OAAO,kBAAkB,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,GAAG;IAClD,GAAG,EAAE,IAAI,CAAC,CAAC,OAAO,kBAAkB,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC;CACxE,CAAC;AAEN,qBAAa,UAAW,SAAQ,OAAO,CAAC;IAAE,OAAO,EAAE,iBAAiB,CAAA;CAAE,CAAC;IAE7D,OAAO;IAgCb,iBAAiB,IAyBe,MAAM,EAAE;IAGxC,kBAAkB,IAMc,MAAM,EAAE;IAGxC,eAAe,IAQiB,MAAM,EAAE;CAE3C"}
1
+ {"version":3,"file":"mfe-publish.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/mfe-publish.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,KAAK,IAAI,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,KAAK,IAAI,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGlC,KAAK,iBAAiB,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,SAAS,CAAC,GAC9C,CAAC,OAAO,iBAAiB,CAAC,CAAC,SAAS,CAAC,GACrC,CAAC,OAAO,eAAe,CAAC,CAAC,SAAS,CAAC,GAEnC,IAAI,CAAC,CAAC,OAAO,kBAAkB,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,GAAG;IAClD,GAAG,EAAE,IAAI,CAAC,CAAC,OAAO,kBAAkB,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC;CACxE,CAAC;AAEN,qBAAa,UAAW,SAAQ,OAAO,CAAC;IAAE,OAAO,EAAE,iBAAiB,CAAA;CAAE,CAAC;IAE7D,OAAO;IAoCb,OAAO,KAAK,QAAQ,GAEnB;IAED,iBAAiB,IAgBe,MAAM,EAAE;IAGxC,kBAAkB,IAMc,MAAM,EAAE;IAGxC,eAAe,IAQiB,MAAM,EAAE;CAE3C"}
@@ -8,9 +8,11 @@ Object.defineProperty(exports, "MFEPublish", {
8
8
  return MFEPublish;
9
9
  }
10
10
  });
11
+ const _install = require("@servicetitan/install");
11
12
  const _utils = require("../../utils");
12
13
  const _utils1 = require("../utils");
13
14
  const _types = require("./types");
15
+ const _utils2 = require("./utils");
14
16
  function _ts_decorate(decorators, target, key, desc) {
15
17
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16
18
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
@@ -39,6 +41,9 @@ class MFEPublish extends _types.Command {
39
41
  if (!packages.length) {
40
42
  throw new Error('no packages found for publication');
41
43
  }
44
+ if (!(0, _install.isCI)()) {
45
+ await (0, _utils2.login)(this.registry);
46
+ }
42
47
  const isRollback = !!this.args.rollback;
43
48
  const isClean = !!this.args.clean;
44
49
  let cmdSuffix;
@@ -58,9 +63,13 @@ class MFEPublish extends _types.Command {
58
63
  '--': options
59
64
  });
60
65
  }
66
+ get registry() {
67
+ return (0, _utils2.getMfeRegistry)(this.args.registry);
68
+ }
61
69
  getPublishOptions() {
62
- const { build, branch, dry, force, purgeCache, registry, tag, uploadSourcemaps, trackHistory } = this.args;
70
+ const { build, branch, dry, force, purgeCache, tag, uploadSourcemaps, trackHistory } = this.args;
63
71
  return [
72
+ `--registry ${this.registry}`,
64
73
  ...[
65
74
  branch && `--branch ${branch}`
66
75
  ],
@@ -79,9 +88,6 @@ class MFEPublish extends _types.Command {
79
88
  ...[
80
89
  purgeCache === false && '--no-purge-cache'
81
90
  ],
82
- ...[
83
- registry && `--registry ${registry}`
84
- ],
85
91
  ...[
86
92
  typeof tag === 'string' && `--tag ${tag}`
87
93
  ],
@@ -100,22 +106,21 @@ class MFEPublish extends _types.Command {
100
106
  ].filter((item)=>!!item);
101
107
  }
102
108
  getRollbackOptions() {
103
- const { dry, registry, tag } = this.args;
109
+ const { dry, tag } = this.args;
104
110
  return [
111
+ `--registry ${this.registry}`,
105
112
  ...[
106
113
  dry && '--dry'
107
114
  ],
108
- ...[
109
- registry && `--registry ${registry}`
110
- ],
111
115
  ...[
112
116
  typeof tag === 'string' && `--tag ${tag}`
113
117
  ]
114
118
  ].filter((item)=>!!item);
115
119
  }
116
120
  getCleanOptions() {
117
- const { all, branch, count, dry, registry } = this.args;
121
+ const { all, branch, count, dry } = this.args;
118
122
  return [
123
+ `--registry ${this.registry}`,
119
124
  ...[
120
125
  all && '--all'
121
126
  ],
@@ -127,9 +132,6 @@ class MFEPublish extends _types.Command {
127
132
  ],
128
133
  ...[
129
134
  dry && '--dry'
130
- ],
131
- ...[
132
- registry && `--registry ${registry}`
133
135
  ]
134
136
  ].filter((item)=>!!item);
135
137
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/commands/mfe-publish.ts"],"sourcesContent":["import { getPackages, isWebComponent, logErrors, PackageType } from '../../utils';\nimport { lernaExec } from '../utils';\nimport { entry as mfePackageClean } from './registry/mfe-package-clean';\nimport { entry as mfePackagePublish } from './registry/mfe-package-publish';\nimport { entry as mfePackageRollback } from './registry/mfe-package-rollback';\nimport type { entry } from './registry/mfe-publish';\nimport { Command } from './types';\n\ntype MFEPublishOptions = (typeof entry)['options'] &\n (typeof mfePackagePublish)['options'] &\n (typeof mfePackageClean)['options'] &\n // make 'tag' not required for mfe-publish args, since it is only required for rollback\n Omit<(typeof mfePackageRollback)['options'], 'tag'> & {\n tag: Omit<(typeof mfePackageRollback)['options']['tag'], 'required'>;\n };\n\nexport class MFEPublish extends Command<{ options: MFEPublishOptions }> {\n @logErrors\n async execute() {\n const packages = getPackages({ scope: this.args.scope, type: PackageType.Bundle }).filter(\n ({ location }) => isWebComponent(location)\n );\n\n if (!packages.length) {\n throw new Error('no packages found for publication');\n }\n\n const isRollback = !!this.args.rollback;\n const isClean = !!this.args.clean;\n\n let cmdSuffix: string;\n let options: string[];\n\n if (isRollback) {\n cmdSuffix = 'rollback';\n options = this.getRollbackOptions();\n } else {\n cmdSuffix = isClean ? 'clean' : 'publish';\n options = isClean ? this.getCleanOptions() : this.getPublishOptions();\n }\n\n await lernaExec({\n 'cmd': `startup mfe-package-${cmdSuffix}`,\n 'parallel': this.args.concurrency ?? 1,\n 'scope': packages.map(({ name }) => name),\n 'stream': true,\n '--': options,\n });\n }\n\n getPublishOptions() {\n const {\n build,\n branch,\n dry,\n force,\n purgeCache,\n registry,\n tag,\n uploadSourcemaps,\n trackHistory,\n } = this.args;\n return [\n ...[branch && `--branch ${branch}`],\n ...[build && `--build ${build}`],\n ...[dry && '--dry'],\n ...[force && '--force'],\n ...[purgeCache === true && '--purge-cache'],\n ...[purgeCache === false && '--no-purge-cache'],\n ...[registry && `--registry ${registry}`],\n ...[typeof tag === 'string' && `--tag ${tag}`],\n ...[trackHistory === true && '--track-history'],\n ...[trackHistory === false && '--no-track-history'],\n ...[uploadSourcemaps === true && `--upload-sourcemaps`],\n ...[uploadSourcemaps === false && `--no-upload-sourcemaps`],\n ].filter(item => !!item) as string[];\n }\n\n getRollbackOptions() {\n const { dry, registry, tag } = this.args;\n return [\n ...[dry && '--dry'],\n ...[registry && `--registry ${registry}`],\n ...[typeof tag === 'string' && `--tag ${tag}`],\n ].filter(item => !!item) as string[];\n }\n\n getCleanOptions() {\n const { all, branch, count, dry, registry } = this.args;\n return [\n ...[all && '--all'],\n ...[typeof branch === 'string' && `--branch ${branch}`],\n ...[count && `--count ${count}`],\n ...[dry && '--dry'],\n ...[registry && `--registry ${registry}`],\n ].filter(item => !!item) as string[];\n }\n}\n"],"names":["MFEPublish","Command","execute","packages","getPackages","scope","args","type","PackageType","Bundle","filter","location","isWebComponent","length","Error","isRollback","rollback","isClean","clean","cmdSuffix","options","getRollbackOptions","getCleanOptions","getPublishOptions","lernaExec","concurrency","map","name","build","branch","dry","force","purgeCache","registry","tag","uploadSourcemaps","trackHistory","item","all","count"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/cli/commands/mfe-publish.ts"],"sourcesContent":["import { isCI } from '@servicetitan/install';\nimport { getPackages, isWebComponent, logErrors, PackageType } from '../../utils';\nimport { lernaExec } from '../utils';\nimport { entry as mfePackageClean } from './registry/mfe-package-clean';\nimport { entry as mfePackagePublish } from './registry/mfe-package-publish';\nimport { entry as mfePackageRollback } from './registry/mfe-package-rollback';\nimport type { entry } from './registry/mfe-publish';\nimport { Command } from './types';\nimport { getMfeRegistry, login } from './utils';\n\ntype MFEPublishOptions = (typeof entry)['options'] &\n (typeof mfePackagePublish)['options'] &\n (typeof mfePackageClean)['options'] &\n // make 'tag' not required for mfe-publish args, since it is only required for rollback\n Omit<(typeof mfePackageRollback)['options'], 'tag'> & {\n tag: Omit<(typeof mfePackageRollback)['options']['tag'], 'required'>;\n };\n\nexport class MFEPublish extends Command<{ options: MFEPublishOptions }> {\n @logErrors\n async execute() {\n const packages = getPackages({ scope: this.args.scope, type: PackageType.Bundle }).filter(\n ({ location }) => isWebComponent(location)\n );\n\n if (!packages.length) {\n throw new Error('no packages found for publication');\n }\n\n if (!isCI()) {\n await login(this.registry);\n }\n\n const isRollback = !!this.args.rollback;\n const isClean = !!this.args.clean;\n\n let cmdSuffix: string;\n let options: string[];\n\n if (isRollback) {\n cmdSuffix = 'rollback';\n options = this.getRollbackOptions();\n } else {\n cmdSuffix = isClean ? 'clean' : 'publish';\n options = isClean ? this.getCleanOptions() : this.getPublishOptions();\n }\n\n await lernaExec({\n 'cmd': `startup mfe-package-${cmdSuffix}`,\n 'parallel': this.args.concurrency ?? 1,\n 'scope': packages.map(({ name }) => name),\n 'stream': true,\n '--': options,\n });\n }\n\n private get registry() {\n return getMfeRegistry(this.args.registry);\n }\n\n getPublishOptions() {\n const { build, branch, dry, force, purgeCache, tag, uploadSourcemaps, trackHistory } =\n this.args;\n return [\n `--registry ${this.registry}`,\n ...[branch && `--branch ${branch}`],\n ...[build && `--build ${build}`],\n ...[dry && '--dry'],\n ...[force && '--force'],\n ...[purgeCache === true && '--purge-cache'],\n ...[purgeCache === false && '--no-purge-cache'],\n ...[typeof tag === 'string' && `--tag ${tag}`],\n ...[trackHistory === true && '--track-history'],\n ...[trackHistory === false && '--no-track-history'],\n ...[uploadSourcemaps === true && `--upload-sourcemaps`],\n ...[uploadSourcemaps === false && `--no-upload-sourcemaps`],\n ].filter(item => !!item) as string[];\n }\n\n getRollbackOptions() {\n const { dry, tag } = this.args;\n return [\n `--registry ${this.registry}`,\n ...[dry && '--dry'],\n ...[typeof tag === 'string' && `--tag ${tag}`],\n ].filter(item => !!item) as string[];\n }\n\n getCleanOptions() {\n const { all, branch, count, dry } = this.args;\n return [\n `--registry ${this.registry}`,\n ...[all && '--all'],\n ...[typeof branch === 'string' && `--branch ${branch}`],\n ...[count && `--count ${count}`],\n ...[dry && '--dry'],\n ].filter(item => !!item) as string[];\n }\n}\n"],"names":["MFEPublish","Command","execute","packages","getPackages","scope","args","type","PackageType","Bundle","filter","location","isWebComponent","length","Error","isCI","login","registry","isRollback","rollback","isClean","clean","cmdSuffix","options","getRollbackOptions","getCleanOptions","getPublishOptions","lernaExec","concurrency","map","name","getMfeRegistry","build","branch","dry","force","purgeCache","tag","uploadSourcemaps","trackHistory","item","all","count"],"mappings":"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"}
@@ -9,6 +9,11 @@ export declare const commandRegistry: {
9
9
  boolean: true;
10
10
  description: string;
11
11
  };
12
+ registry: {
13
+ string: true;
14
+ hidden: true;
15
+ description: string;
16
+ };
12
17
  releaseVersion: {
13
18
  string: true;
14
19
  demandOption: true;
@@ -192,8 +197,9 @@ export declare const commandRegistry: {
192
197
  };
193
198
  registry: {
194
199
  string: true;
195
- hidden: true;
200
+ hidden: false;
196
201
  description: string;
202
+ defaultDescription: string;
197
203
  };
198
204
  tag: {
199
205
  string: true;
@@ -229,8 +235,9 @@ export declare const commandRegistry: {
229
235
  };
230
236
  registry: {
231
237
  string: true;
232
- hidden: true;
238
+ hidden: false;
233
239
  description: string;
240
+ defaultDescription: string;
234
241
  };
235
242
  trackHistory: {
236
243
  boolean: true;
@@ -277,8 +284,9 @@ export declare const commandRegistry: {
277
284
  };
278
285
  registry: {
279
286
  string: true;
280
- hidden: true;
287
+ hidden: false;
281
288
  description: string;
289
+ defaultDescription: string;
282
290
  };
283
291
  };
284
292
  } & CommandRegistryEntry;
@@ -311,7 +319,8 @@ export declare const commandRegistry: {
311
319
  };
312
320
  registry: {
313
321
  string: true;
314
- hidden: true;
322
+ description: string;
323
+ defaultDescription: string;
315
324
  };
316
325
  tagged: {
317
326
  boolean: true;
@@ -1 +1 @@
1
- {"version":3,"file":"command-registry.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/registry/command-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AA6B1D,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACtD,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;CACzC;AAiCD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCyB,CAAC"}
1
+ {"version":3,"file":"command-registry.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/registry/command-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AA6B1D,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACtD,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;CACzC;AAiCD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCyB,CAAC"}
@@ -27,7 +27,8 @@ export declare const entry: {
27
27
  };
28
28
  registry: {
29
29
  string: true;
30
- hidden: true;
30
+ description: string;
31
+ defaultDescription: string;
31
32
  };
32
33
  tagged: {
33
34
  boolean: true;
@@ -1 +1 @@
1
- {"version":3,"file":"mfe-list.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/registry/mfe-list.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqBO,CAAC"}
1
+ {"version":3,"file":"mfe-list.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/registry/mfe-list.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyBO,CAAC"}