@servicetitan/startup 31.4.0 → 31.5.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 (234) hide show
  1. package/dist/cli/commands/build.d.ts +0 -7
  2. package/dist/cli/commands/build.d.ts.map +1 -1
  3. package/dist/cli/commands/build.js +28 -17
  4. package/dist/cli/commands/build.js.map +1 -1
  5. package/dist/cli/commands/bundle-package.d.ts +1 -1
  6. package/dist/cli/commands/bundle-package.d.ts.map +1 -1
  7. package/dist/cli/commands/bundle-package.js +13 -21
  8. package/dist/cli/commands/bundle-package.js.map +1 -1
  9. package/dist/cli/commands/clean.js +1 -1
  10. package/dist/cli/commands/clean.js.map +1 -1
  11. package/dist/cli/commands/eslint.d.ts +0 -1
  12. package/dist/cli/commands/eslint.d.ts.map +1 -1
  13. package/dist/cli/commands/eslint.js +0 -3
  14. package/dist/cli/commands/eslint.js.map +1 -1
  15. package/dist/cli/commands/get-command.d.ts.map +1 -1
  16. package/dist/cli/commands/get-command.js +3 -1
  17. package/dist/cli/commands/get-command.js.map +1 -1
  18. package/dist/cli/commands/get-user-commands.js +3 -2
  19. package/dist/cli/commands/get-user-commands.js.map +1 -1
  20. package/dist/cli/commands/init.js.map +1 -1
  21. package/dist/cli/commands/install.js.map +1 -1
  22. package/dist/cli/commands/lint.js.map +1 -1
  23. package/dist/cli/commands/mfe-package-clean.d.ts +3 -4
  24. package/dist/cli/commands/mfe-package-clean.d.ts.map +1 -1
  25. package/dist/cli/commands/mfe-package-clean.js +0 -3
  26. package/dist/cli/commands/mfe-package-clean.js.map +1 -1
  27. package/dist/cli/commands/mfe-package-publish.d.ts +9 -4
  28. package/dist/cli/commands/mfe-package-publish.d.ts.map +1 -1
  29. package/dist/cli/commands/mfe-package-publish.js +70 -47
  30. package/dist/cli/commands/mfe-package-publish.js.map +1 -1
  31. package/dist/cli/commands/mfe-publish.d.ts +3 -3
  32. package/dist/cli/commands/mfe-publish.d.ts.map +1 -1
  33. package/dist/cli/commands/mfe-publish.js +7 -1
  34. package/dist/cli/commands/mfe-publish.js.map +1 -1
  35. package/dist/cli/commands/prepare-package.d.ts +0 -1
  36. package/dist/cli/commands/prepare-package.d.ts.map +1 -1
  37. package/dist/cli/commands/prepare-package.js +0 -3
  38. package/dist/cli/commands/prepare-package.js.map +1 -1
  39. package/dist/cli/commands/review/review.js.map +1 -1
  40. package/dist/cli/commands/review/rules/require-one-anvil-uikit-contrib-version.js.map +1 -1
  41. package/dist/cli/commands/review/rules/require-one-collection-version.js.map +1 -1
  42. package/dist/cli/commands/review/rules/require-one-uikit-version.js.map +1 -1
  43. package/dist/cli/commands/run-task.d.ts +0 -1
  44. package/dist/cli/commands/run-task.d.ts.map +1 -1
  45. package/dist/cli/commands/run-task.js +0 -3
  46. package/dist/cli/commands/run-task.js.map +1 -1
  47. package/dist/cli/commands/start.d.ts +0 -8
  48. package/dist/cli/commands/start.d.ts.map +1 -1
  49. package/dist/cli/commands/start.js +28 -16
  50. package/dist/cli/commands/start.js.map +1 -1
  51. package/dist/cli/commands/styles-check.d.ts +0 -1
  52. package/dist/cli/commands/styles-check.d.ts.map +1 -1
  53. package/dist/cli/commands/styles-check.js +40 -99
  54. package/dist/cli/commands/styles-check.js.map +1 -1
  55. package/dist/cli/commands/tests.js.map +1 -1
  56. package/dist/cli/commands/types.d.ts +1 -1
  57. package/dist/cli/commands/types.d.ts.map +1 -1
  58. package/dist/cli/commands/upload-sourcemaps.d.ts +22 -0
  59. package/dist/cli/commands/upload-sourcemaps.d.ts.map +1 -0
  60. package/dist/cli/commands/upload-sourcemaps.js +179 -0
  61. package/dist/cli/commands/upload-sourcemaps.js.map +1 -0
  62. package/dist/cli/tasks/cli-task.js.map +1 -1
  63. package/dist/cli/tasks/swc-compile-package.js.map +1 -1
  64. package/dist/cli/tasks/task.js.map +1 -1
  65. package/dist/cli/tasks/tsc-compile-package.js.map +1 -1
  66. package/dist/cli/tasks/tsc-compile.js.map +1 -1
  67. package/dist/cli/utils/bundle.d.ts +4 -1
  68. package/dist/cli/utils/bundle.d.ts.map +1 -1
  69. package/dist/cli/utils/bundle.js +67 -74
  70. package/dist/cli/utils/bundle.js.map +1 -1
  71. package/dist/cli/utils/cli-os.js +2 -2
  72. package/dist/cli/utils/cli-os.js.map +1 -1
  73. package/dist/cli/utils/ts-config.js.map +1 -1
  74. package/dist/utils/find-packages.d.ts.map +1 -1
  75. package/dist/utils/find-packages.js +3 -4
  76. package/dist/utils/find-packages.js.map +1 -1
  77. package/dist/utils/find-up.d.ts +2 -0
  78. package/dist/utils/find-up.d.ts.map +1 -0
  79. package/dist/utils/find-up.js +28 -0
  80. package/dist/utils/find-up.js.map +1 -0
  81. package/dist/utils/get-configuration.d.ts +3 -1
  82. package/dist/utils/get-configuration.d.ts.map +1 -1
  83. package/dist/utils/get-configuration.js +1 -0
  84. package/dist/utils/get-configuration.js.map +1 -1
  85. package/dist/utils/index.d.ts +1 -0
  86. package/dist/utils/index.d.ts.map +1 -1
  87. package/dist/utils/index.js +1 -0
  88. package/dist/utils/index.js.map +1 -1
  89. package/dist/utils/log.js.map +1 -1
  90. package/dist/webpack/configs/cache-config.d.ts +6 -0
  91. package/dist/webpack/configs/cache-config.d.ts.map +1 -0
  92. package/dist/webpack/configs/cache-config.js +52 -0
  93. package/dist/webpack/configs/cache-config.js.map +1 -0
  94. package/dist/webpack/configs/dev-server-config.js +1 -1
  95. package/dist/webpack/configs/dev-server-config.js.map +1 -1
  96. package/dist/webpack/configs/entry.config.d.ts.map +1 -1
  97. package/dist/webpack/configs/entry.config.js +15 -6
  98. package/dist/webpack/configs/entry.config.js.map +1 -1
  99. package/dist/webpack/configs/externals-config.d.ts.map +1 -1
  100. package/dist/webpack/configs/externals-config.js +6 -2
  101. package/dist/webpack/configs/externals-config.js.map +1 -1
  102. package/dist/webpack/configs/index.d.ts +1 -0
  103. package/dist/webpack/configs/index.d.ts.map +1 -1
  104. package/dist/webpack/configs/index.js +1 -0
  105. package/dist/webpack/configs/index.js.map +1 -1
  106. package/dist/webpack/configs/optimization-config.d.ts.map +1 -1
  107. package/dist/webpack/configs/optimization-config.js +7 -11
  108. package/dist/webpack/configs/optimization-config.js.map +1 -1
  109. package/dist/webpack/configs/output-config.d.ts.map +1 -1
  110. package/dist/webpack/configs/output-config.js +25 -4
  111. package/dist/webpack/configs/output-config.js.map +1 -1
  112. package/dist/webpack/configs/plugins/assets-manifest-plugin.d.ts +6 -0
  113. package/dist/webpack/configs/plugins/assets-manifest-plugin.d.ts.map +1 -1
  114. package/dist/webpack/configs/plugins/assets-manifest-plugin.js +50 -8
  115. package/dist/webpack/configs/plugins/assets-manifest-plugin.js.map +1 -1
  116. package/dist/webpack/configs/plugins/bundle-analyser-plugin.d.ts.map +1 -1
  117. package/dist/webpack/configs/plugins/bundle-analyser-plugin.js +3 -7
  118. package/dist/webpack/configs/plugins/bundle-analyser-plugin.js.map +1 -1
  119. package/dist/webpack/configs/plugins/define-exposed-dependencies-plugin.d.ts.map +1 -1
  120. package/dist/webpack/configs/plugins/define-exposed-dependencies-plugin.js +3 -2
  121. package/dist/webpack/configs/plugins/define-exposed-dependencies-plugin.js.map +1 -1
  122. package/dist/webpack/configs/plugins/define-exposed-instance-dependencies-plugin.js +2 -2
  123. package/dist/webpack/configs/plugins/define-exposed-instance-dependencies-plugin.js.map +1 -1
  124. package/dist/webpack/configs/plugins/html-plugin.d.ts +1 -1
  125. package/dist/webpack/configs/plugins/html-plugin.d.ts.map +1 -1
  126. package/dist/webpack/configs/plugins/html-plugin.js +2 -3
  127. package/dist/webpack/configs/plugins/html-plugin.js.map +1 -1
  128. package/dist/webpack/configs/plugins/html-tags-plugin.d.ts +4 -0
  129. package/dist/webpack/configs/plugins/html-tags-plugin.d.ts.map +1 -0
  130. package/dist/webpack/configs/plugins/html-tags-plugin.js +49 -0
  131. package/dist/webpack/configs/plugins/html-tags-plugin.js.map +1 -0
  132. package/dist/webpack/configs/plugins/index.d.ts +2 -0
  133. package/dist/webpack/configs/plugins/index.d.ts.map +1 -1
  134. package/dist/webpack/configs/plugins/index.js +2 -0
  135. package/dist/webpack/configs/plugins/index.js.map +1 -1
  136. package/dist/webpack/configs/plugins/remove-empty-scripts-plugin.d.ts +4 -0
  137. package/dist/webpack/configs/plugins/remove-empty-scripts-plugin.d.ts.map +1 -0
  138. package/dist/webpack/configs/plugins/remove-empty-scripts-plugin.js +25 -0
  139. package/dist/webpack/configs/plugins/remove-empty-scripts-plugin.js.map +1 -0
  140. package/dist/webpack/configs/plugins/virtual-modules-plugin.d.ts +1 -0
  141. package/dist/webpack/configs/plugins/virtual-modules-plugin.d.ts.map +1 -1
  142. package/dist/webpack/configs/plugins/virtual-modules-plugin.js +23 -14
  143. package/dist/webpack/configs/plugins/virtual-modules-plugin.js.map +1 -1
  144. package/dist/webpack/configs/plugins-config.d.ts.map +1 -1
  145. package/dist/webpack/configs/plugins-config.js +2 -0
  146. package/dist/webpack/configs/plugins-config.js.map +1 -1
  147. package/dist/webpack/configs/rules/css-rules.d.ts.map +1 -1
  148. package/dist/webpack/configs/rules/css-rules.js +13 -18
  149. package/dist/webpack/configs/rules/css-rules.js.map +1 -1
  150. package/dist/webpack/configs/utils/get-bundle-type.d.ts +3 -0
  151. package/dist/webpack/configs/utils/get-bundle-type.d.ts.map +1 -0
  152. package/dist/webpack/configs/utils/get-bundle-type.js +24 -0
  153. package/dist/webpack/configs/utils/get-bundle-type.js.map +1 -0
  154. package/dist/webpack/configs/utils/index.d.ts +1 -0
  155. package/dist/webpack/configs/utils/index.d.ts.map +1 -1
  156. package/dist/webpack/configs/utils/index.js +1 -0
  157. package/dist/webpack/configs/utils/index.js.map +1 -1
  158. package/dist/webpack/create-webpack-config.d.ts.map +1 -1
  159. package/dist/webpack/create-webpack-config.js +37 -48
  160. package/dist/webpack/create-webpack-config.js.map +1 -1
  161. package/dist/webpack/types.d.ts +4 -0
  162. package/dist/webpack/types.d.ts.map +1 -1
  163. package/dist/webpack/utils/index.d.ts +1 -0
  164. package/dist/webpack/utils/index.d.ts.map +1 -1
  165. package/dist/webpack/utils/index.js +1 -0
  166. package/dist/webpack/utils/index.js.map +1 -1
  167. package/dist/webpack/utils/stringify-config.d.ts +2 -0
  168. package/dist/webpack/utils/stringify-config.d.ts.map +1 -0
  169. package/dist/webpack/utils/stringify-config.js +35 -0
  170. package/dist/webpack/utils/stringify-config.js.map +1 -0
  171. package/package.json +16 -14
  172. package/src/cli/commands/__tests__/build.test.ts +19 -2
  173. package/src/cli/commands/__tests__/bundle-package.test.ts +29 -8
  174. package/src/cli/commands/__tests__/clean.test.ts +2 -0
  175. package/src/cli/commands/__tests__/get-user-commands.test.ts +1 -1
  176. package/src/cli/commands/__tests__/mfe-package-publish.test.ts +91 -15
  177. package/src/cli/commands/__tests__/mfe-publish.test.ts +2 -0
  178. package/src/cli/commands/__tests__/start.test.ts +15 -1
  179. package/src/cli/commands/__tests__/styles-check.test.ts +27 -80
  180. package/src/cli/commands/__tests__/upload-sourcemaps.test.ts +127 -0
  181. package/src/cli/commands/build.ts +33 -17
  182. package/src/cli/commands/bundle-package.ts +10 -19
  183. package/src/cli/commands/clean.ts +1 -1
  184. package/src/cli/commands/eslint.ts +0 -4
  185. package/src/cli/commands/get-command.ts +2 -0
  186. package/src/cli/commands/get-user-commands.ts +1 -1
  187. package/src/cli/commands/mfe-package-clean.ts +2 -6
  188. package/src/cli/commands/mfe-package-publish.ts +104 -70
  189. package/src/cli/commands/mfe-publish.ts +8 -5
  190. package/src/cli/commands/prepare-package.ts +0 -4
  191. package/src/cli/commands/run-task.ts +0 -4
  192. package/src/cli/commands/start.ts +22 -5
  193. package/src/cli/commands/styles-check.ts +28 -131
  194. package/src/cli/commands/types.ts +1 -1
  195. package/src/cli/commands/upload-sourcemaps.ts +108 -0
  196. package/src/cli/utils/__tests__/bundle.test.ts +119 -9
  197. package/src/cli/utils/__tests__/cli-os.test.ts +2 -2
  198. package/src/cli/utils/__tests__/compile.test.ts +2 -0
  199. package/src/cli/utils/__tests__/type-check.test.ts +2 -0
  200. package/src/cli/utils/bundle.ts +76 -54
  201. package/src/cli/utils/cli-os.ts +2 -2
  202. package/src/utils/__tests__/get-configuration.test.ts +1 -1
  203. package/src/utils/find-packages.ts +3 -5
  204. package/src/utils/find-up.ts +12 -0
  205. package/src/utils/get-configuration.ts +2 -0
  206. package/src/utils/index.ts +1 -0
  207. package/src/webpack/__mocks__/style-rules.ts +1 -1
  208. package/src/webpack/__tests__/create-webpack-config-shared-dependencies.test.ts +274 -45
  209. package/src/webpack/__tests__/create-webpack-config-web-component.test.ts +25 -1
  210. package/src/webpack/__tests__/create-webpack-config.test.ts +9 -57
  211. package/src/webpack/configs/cache-config.ts +37 -0
  212. package/src/webpack/configs/dev-server-config.ts +1 -1
  213. package/src/webpack/configs/entry.config.ts +18 -8
  214. package/src/webpack/configs/externals-config.ts +7 -2
  215. package/src/webpack/configs/index.ts +1 -0
  216. package/src/webpack/configs/optimization-config.ts +7 -11
  217. package/src/webpack/configs/output-config.ts +23 -7
  218. package/src/webpack/configs/plugins/assets-manifest-plugin.ts +46 -10
  219. package/src/webpack/configs/plugins/bundle-analyser-plugin.ts +1 -6
  220. package/src/webpack/configs/plugins/define-exposed-dependencies-plugin.ts +3 -2
  221. package/src/webpack/configs/plugins/define-exposed-instance-dependencies-plugin.ts +2 -2
  222. package/src/webpack/configs/plugins/html-plugin.ts +2 -3
  223. package/src/webpack/configs/plugins/html-tags-plugin.ts +28 -0
  224. package/src/webpack/configs/plugins/index.ts +2 -0
  225. package/src/webpack/configs/plugins/remove-empty-scripts-plugin.ts +11 -0
  226. package/src/webpack/configs/plugins/virtual-modules-plugin.ts +27 -16
  227. package/src/webpack/configs/plugins-config.ts +4 -0
  228. package/src/webpack/configs/rules/css-rules.ts +19 -20
  229. package/src/webpack/configs/utils/get-bundle-type.ts +22 -0
  230. package/src/webpack/configs/utils/index.ts +1 -0
  231. package/src/webpack/create-webpack-config.ts +46 -52
  232. package/src/webpack/types.ts +4 -0
  233. package/src/webpack/utils/index.ts +1 -0
  234. package/src/webpack/utils/stringify-config.ts +19 -0
@@ -11,9 +11,10 @@ Object.defineProperty(exports, "MFEPackagePublish", {
11
11
  const _path = /*#__PURE__*/ _interop_require_default(require("path"));
12
12
  const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
13
13
  const _utils = require("../../utils");
14
+ const _getbranchconfigs = require("../../utils/get-branch-configs");
14
15
  const _cligit = require("../utils/cli-git");
15
16
  const _clinpm = require("../utils/cli-npm");
16
- const _getbranchconfigs = require("../../utils/get-branch-configs");
17
+ const _clios = require("../utils/cli-os");
17
18
  const _publish = require("../utils/publish");
18
19
  function _define_property(obj, key, value) {
19
20
  if (key in obj) {
@@ -43,54 +44,77 @@ function _ts_metadata(k, v) {
43
44
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
44
45
  }
45
46
  class MFEPackagePublish {
46
- description() {
47
- return undefined;
48
- }
49
47
  async execute() {
48
+ if (this.args.dry) {
49
+ _utils.log.warning('DRY-RUN MODE ENABLED, WILL NOT PUBLISH PACKAGES');
50
+ }
51
+ const packageJson = (0, _utils.readJson)('package.json');
52
+ const data = this.getPublishData();
53
+ if (!this.checkPackage(packageJson, data)) {
54
+ return;
55
+ }
56
+ if (!await this.tryTagExistingVersion(packageJson, data)) {
57
+ await this.publishPackage(packageJson, data);
58
+ }
59
+ if (data.uploadSourcemaps) {
60
+ this.uploadSourcemaps(data);
61
+ }
62
+ }
63
+ get dryRunPrefix() {
64
+ return this.args.dry ? '(dry-run) ' : '';
65
+ }
66
+ checkPackage(packageJson, { force, isBranchConfigured }) {
50
67
  if (!(0, _utils.isWebComponent)()) {
51
68
  throw new Error('only web-components can be published');
52
69
  }
53
- const packageJson = (0, _utils.readJson)('package.json');
54
70
  if (packageJson.private) {
55
- _utils.log.info('package is private, skipping publish');
56
- return;
71
+ _utils.log.warning('package is private, skipping publish');
72
+ return false;
57
73
  }
58
- const data = this.getPublishData();
59
- const packageName = packageJson.name;
60
- if (!data.version) {
61
- _utils.log.info('no build version found, skipping publish');
62
- return;
74
+ if (!isBranchConfigured && !force) {
75
+ _utils.log.warning('branch is not configured for publishing, use --force flag to publish if needed');
76
+ return false;
63
77
  }
64
- if (!data.isBranchConfigured && !data.force) {
65
- _utils.log.info('branch is not configured for publishing, use --force flag to publish if needed');
66
- return;
78
+ return true;
79
+ }
80
+ async tryTagExistingVersion({ name }, { dry, registry, tag, version }) {
81
+ const versions = (0, _clinpm.npmGetPackageVersions)(registry, name);
82
+ if (!versions.includes(version)) {
83
+ return false;
67
84
  }
68
- this.validateMetadata(data.version);
69
- const versions = (0, _clinpm.npmGetPackageVersions)(data.registry, packageName);
70
- const dryRunPrefix = data.dry ? '(dry-run) ' : '';
71
- if (versions.includes(data.version)) {
72
- _utils.log.info(`${dryRunPrefix}${packageName} version ${data.version} is already published, skipping publish`);
73
- if (data.tag) {
74
- _utils.log.info(`${dryRunPrefix}adding tag "${data.tag}" to ${packageName} version ${data.version}`);
75
- if (!data.dry) {
76
- await (0, _clinpm.npmTagVersion)({
77
- packageName,
78
- packageVersion: data.version,
79
- registry: data.registry,
80
- tag: data.tag
81
- });
82
- }
85
+ _utils.log.warning(`${this.dryRunPrefix}${name} version ${version} is already published, skipping publish`);
86
+ if (tag) {
87
+ _utils.log.info(`${this.dryRunPrefix}adding tag "${tag}" to ${name} version ${version}`);
88
+ if (!dry) {
89
+ await (0, _clinpm.npmTagVersion)({
90
+ packageName: name,
91
+ packageVersion: version,
92
+ registry,
93
+ tag
94
+ });
83
95
  }
84
- return;
85
96
  }
86
- await (0, _clinpm.npmPackageSet)('version', data.version);
87
- await (0, _clinpm.npmPackageSet)('publishConfig.registry', data.registry);
97
+ return true;
98
+ }
99
+ async publishPackage(packageJson, { dry, fallbackTag, registry, tag, version }) {
100
+ this.validateMetadata(version);
101
+ await (0, _clinpm.npmPackageSet)('version', version);
102
+ await (0, _clinpm.npmPackageSet)('publishConfig.registry', registry);
88
103
  await this.setPackageFiles(packageJson);
89
104
  await (0, _clinpm.npmPublish)({
90
- dry: data.dry,
91
- tag: data.tag || data.fallbackTag
105
+ dry,
106
+ tag: tag || fallbackTag
92
107
  });
93
- _utils.log.info(`${dryRunPrefix}published ${packageName} version ${data.version}`);
108
+ _utils.log.info(`${this.dryRunPrefix}published ${packageJson.name} version ${version}`);
109
+ }
110
+ uploadSourcemaps({ dry, version }) {
111
+ const options = [
112
+ ...[
113
+ dry && '--dry'
114
+ ],
115
+ `--releaseVersion=${version}`
116
+ ].filter((option)=>!!option);
117
+ (0, _clios.runCommand)(`npx startup upload-sourcemaps ${options.join(' ')}`);
94
118
  }
95
119
  getPublishData() {
96
120
  const cli = this.args;
@@ -99,24 +123,23 @@ class MFEPackagePublish {
99
123
  const branchConfig = (0, _getbranchconfigs.getBranchesConfigs)()[branch];
100
124
  // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
101
125
  const buildVersion = cli.build || (0, _publish.getDefaultBuildVersion)(branch, (0, _cligit.gitGetCommitHash)());
102
- let tag;
103
- if (cli.tag) {
104
- tag = cli.tag;
105
- } else {
106
- var _branchConfig_publishTag;
107
- tag = (_branchConfig_publishTag = branchConfig === null || branchConfig === void 0 ? void 0 : branchConfig.publishTag) !== null && _branchConfig_publishTag !== void 0 ? _branchConfig_publishTag : '';
108
- }
109
126
  var _cli_registry;
110
127
  const registry = (_cli_registry = cli.registry) !== null && _cli_registry !== void 0 ? _cli_registry : 'https://verdaccio.servicetitan.com';
128
+ var _cli_tag, _ref;
129
+ 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 : '';
130
+ var _cli_uploadSourcemaps, _ref1;
131
+ 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;
132
+ const version = '0.0.0-' + buildVersion;
111
133
  return {
112
- tag,
113
- version: '0.0.0-' + buildVersion,
114
134
  buildVersion,
115
- registry,
116
135
  dry: !!cli.dry,
136
+ fallbackTag: 'latest',
117
137
  force: !!cli.force,
118
138
  isBranchConfigured: !!branchConfig,
119
- fallbackTag: 'latest'
139
+ registry,
140
+ tag,
141
+ uploadSourcemaps,
142
+ version
120
143
  };
121
144
  }
122
145
  async setPackageFiles({ files: inputFiles }) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/commands/mfe-package-publish.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs';\nimport { getFolders, isWebComponent, log, logErrors, readJson } from '../../utils';\nimport { gitGetBranch, gitGetCommitHash } from '../utils/cli-git';\nimport { npmGetPackageVersions, npmPackageSet, npmPublish, npmTagVersion } from '../utils/cli-npm';\nimport { getBranchesConfigs } from '../../utils/get-branch-configs';\nimport { getDefaultBuildVersion } from '../utils/publish';\nimport { EntryPoint, EntryPoints, Metadata } from '../../webpack/configs';\nimport { Command } from './types';\n\nexport interface ArgsPackagePublish {\n branch?: string;\n build?: string;\n dry?: boolean;\n force?: boolean;\n registry?: string;\n tag?: string;\n}\n\nexport class MFEPackagePublish implements Command {\n constructor(private args: ArgsPackagePublish) {}\n\n description() {\n return undefined;\n }\n\n @logErrors\n async execute() {\n if (!isWebComponent()) {\n throw new Error('only web-components can be published');\n }\n\n const packageJson = readJson('package.json');\n\n if (packageJson.private) {\n log.info('package is private, skipping publish');\n return;\n }\n\n const data = this.getPublishData();\n const packageName = packageJson.name;\n\n if (!data.version) {\n log.info('no build version found, skipping publish');\n return;\n }\n\n if (!data.isBranchConfigured && !data.force) {\n log.info(\n 'branch is not configured for publishing, use --force flag to publish if needed'\n );\n return;\n }\n\n this.validateMetadata(data.version);\n\n const versions = npmGetPackageVersions(data.registry, packageName);\n const dryRunPrefix = data.dry ? '(dry-run) ' : '';\n\n if (versions.includes(data.version)) {\n log.info(\n `${dryRunPrefix}${packageName} version ${data.version} is already published, skipping publish`\n );\n\n if (data.tag) {\n log.info(\n `${dryRunPrefix}adding tag \"${data.tag}\" to ${packageName} version ${data.version}`\n );\n if (!data.dry) {\n await npmTagVersion({\n packageName,\n packageVersion: data.version,\n registry: data.registry,\n tag: data.tag,\n });\n }\n }\n return;\n }\n\n await npmPackageSet('version', data.version);\n await npmPackageSet('publishConfig.registry', data.registry);\n await this.setPackageFiles(packageJson);\n\n await npmPublish({ dry: data.dry, tag: data.tag || data.fallbackTag });\n\n log.info(`${dryRunPrefix}published ${packageName} version ${data.version}`);\n }\n\n private getPublishData(): {\n version: string;\n buildVersion: string;\n tag: string;\n registry: string;\n dry: boolean;\n force: boolean;\n isBranchConfigured: boolean;\n fallbackTag: string;\n } {\n const cli = this.args;\n const branch = cli.branch ?? gitGetBranch();\n const branchConfig = getBranchesConfigs()[branch];\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n const buildVersion = cli.build || getDefaultBuildVersion(branch, gitGetCommitHash());\n\n let tag: string;\n\n if (cli.tag) {\n tag = cli.tag;\n } else {\n tag = branchConfig?.publishTag ?? '';\n }\n\n const registry = cli.registry ?? 'https://verdaccio.servicetitan.com';\n\n return {\n tag,\n version: '0.0.0-' + buildVersion,\n buildVersion,\n registry,\n dry: !!cli.dry,\n force: !!cli.force,\n isBranchConfigured: !!branchConfig,\n fallbackTag: 'latest',\n };\n }\n\n private async setPackageFiles({ files: inputFiles }: { files?: string[] }) {\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"],"names":["MFEPackagePublish","description","undefined","execute","isWebComponent","Error","packageJson","readJson","private","log","info","data","getPublishData","packageName","name","version","isBranchConfigured","force","validateMetadata","versions","npmGetPackageVersions","registry","dryRunPrefix","dry","includes","tag","npmTagVersion","packageVersion","npmPackageSet","setPackageFiles","npmPublish","fallbackTag","cli","args","branch","gitGetBranch","branchConfig","getBranchesConfigs","buildVersion","build","getDefaultBuildVersion","gitGetCommitHash","publishTag","files","inputFiles","outputFiles","length","index","findIndex","file","slice","filter","startsWith","i","n","destination","outDir","getFolders","metadataJson","path","join","fs","existsSync","metadata","validateEntryPoints","writeFileSync","JSON","stringify","entrypoints","keys","forEach","validateEntryPoint","entryPoint","key","filename","constructor"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/cli/commands/mfe-package-publish.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs';\nimport { getFolders, isWebComponent, log, logErrors, readJson } from '../../utils';\nimport { getBranchesConfigs } from '../../utils/get-branch-configs';\nimport { EntryPoint, EntryPoints, Metadata } from '../../webpack/configs';\nimport { gitGetBranch, gitGetCommitHash } from '../utils/cli-git';\nimport { npmGetPackageVersions, npmPackageSet, npmPublish, npmTagVersion } from '../utils/cli-npm';\nimport { runCommand } from '../utils/cli-os';\nimport { getDefaultBuildVersion } from '../utils/publish';\nimport { Command } from './types';\n\nexport interface Args {\n branch?: string;\n build?: string;\n dry?: boolean;\n force?: boolean;\n registry?: string;\n tag?: string;\n uploadSourcemaps?: boolean;\n}\n\ninterface PublishData {\n buildVersion: string;\n dry: boolean;\n fallbackTag: string;\n force: boolean;\n isBranchConfigured: boolean;\n registry: string;\n tag: string;\n uploadSourcemaps: boolean;\n version: string;\n}\n\ninterface PackageJson {\n name: string;\n private?: boolean;\n files?: string[];\n}\n\nexport class MFEPackagePublish implements Command {\n constructor(private readonly args: Args) {}\n\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 const data = this.getPublishData();\n if (!this.checkPackage(packageJson, data)) {\n return;\n }\n\n if (!(await this.tryTagExistingVersion(packageJson, data))) {\n await this.publishPackage(packageJson, data);\n }\n\n if (data.uploadSourcemaps) {\n this.uploadSourcemaps(data);\n }\n }\n\n private get dryRunPrefix() {\n return this.args.dry ? '(dry-run) ' : '';\n }\n\n private checkPackage(packageJson: PackageJson, { force, isBranchConfigured }: PublishData) {\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 log.warning(\n 'branch is not configured for publishing, use --force flag to publish if needed'\n );\n return false;\n }\n\n return true;\n }\n\n private async tryTagExistingVersion(\n { name }: PackageJson,\n { dry, registry, tag, version }: PublishData\n ) {\n const versions = npmGetPackageVersions(registry, name);\n if (!versions.includes(version)) {\n return false;\n }\n\n log.warning(\n `${this.dryRunPrefix}${name} version ${version} is already published, skipping publish`\n );\n\n if (tag) {\n log.info(`${this.dryRunPrefix}adding tag \"${tag}\" to ${name} version ${version}`);\n if (!dry) {\n await npmTagVersion({\n packageName: name,\n packageVersion: version,\n registry,\n tag,\n });\n }\n }\n return true;\n }\n\n private async publishPackage(\n packageJson: PackageJson,\n { dry, fallbackTag, registry, tag, version }: PublishData\n ) {\n this.validateMetadata(version);\n\n await npmPackageSet('version', version);\n await npmPackageSet('publishConfig.registry', registry);\n await this.setPackageFiles(packageJson);\n\n await npmPublish({ dry, tag: tag || fallbackTag });\n log.info(`${this.dryRunPrefix}published ${packageJson.name} version ${version}`);\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(): 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 ?? 'https://verdaccio.servicetitan.com';\n const tag = cli.tag ?? branchConfig?.publishTag ?? '';\n const uploadSourcemaps = cli.uploadSourcemaps ?? branchConfig?.uploadSourcemaps ?? true;\n const version = '0.0.0-' + buildVersion;\n\n return {\n buildVersion,\n dry: !!cli.dry,\n fallbackTag: 'latest',\n force: !!cli.force,\n isBranchConfigured: !!branchConfig,\n registry,\n tag,\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"],"names":["MFEPackagePublish","execute","args","dry","log","warning","packageJson","readJson","data","getPublishData","checkPackage","tryTagExistingVersion","publishPackage","uploadSourcemaps","dryRunPrefix","force","isBranchConfigured","isWebComponent","Error","private","name","registry","tag","version","versions","npmGetPackageVersions","includes","info","npmTagVersion","packageName","packageVersion","fallbackTag","validateMetadata","npmPackageSet","setPackageFiles","npmPublish","options","filter","option","runCommand","join","cli","branch","gitGetBranch","branchConfig","getBranchesConfigs","buildVersion","build","getDefaultBuildVersion","gitGetCommitHash","publishTag","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"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { ArgsPackageClean } from './mfe-package-clean';
2
- import { ArgsPackagePublish } from './mfe-package-publish';
1
+ import { Args as CleanArgs } from './mfe-package-clean';
2
+ import { Args as PublishArgs } from './mfe-package-publish';
3
3
  import { Command } from './types';
4
- interface Args extends Omit<ArgsPackagePublish, 'branch'>, ArgsPackageClean {
4
+ interface Args extends PublishArgs, CleanArgs {
5
5
  clean?: boolean;
6
6
  concurrency?: number;
7
7
  scope?: string | string[];
@@ -1 +1 @@
1
- {"version":3,"file":"mfe-publish.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/mfe-publish.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGlC,UAAU,IAAK,SAAQ,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,EAAE,gBAAgB;IACvE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC7B;AAED,qBAAa,UAAW,YAAW,OAAO;IAC1B,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,IAAI;IAE9B,WAAW;IAKL,OAAO;IAmBb,iBAAiB,IASe,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":"AACA,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGlC,UAAU,IAAK,SAAQ,WAAW,EAAE,SAAS;IACzC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC7B;AAED,qBAAa,UAAW,YAAW,OAAO;IAC1B,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,IAAI;IAE9B,WAAW;IAKL,OAAO;IAmBb,iBAAiB,IAYe,MAAM,EAAE;IAGxC,eAAe,IAQiB,MAAM,EAAE;CAE3C"}
@@ -55,7 +55,7 @@ class MFEPublish {
55
55
  });
56
56
  }
57
57
  getPublishOptions() {
58
- const { build, branch, dry, force, registry, tag } = this.args;
58
+ const { build, branch, dry, force, registry, tag, uploadSourcemaps } = this.args;
59
59
  return [
60
60
  ...[
61
61
  branch && `--branch ${branch}`
@@ -74,6 +74,12 @@ class MFEPublish {
74
74
  ],
75
75
  ...[
76
76
  typeof tag === 'string' && `--tag ${tag}`
77
+ ],
78
+ ...[
79
+ uploadSourcemaps === true && `--upload-sourcemaps`
80
+ ],
81
+ ...[
82
+ uploadSourcemaps === false && `--no-upload-sourcemaps`
77
83
  ]
78
84
  ].filter((item)=>!!item);
79
85
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/commands/mfe-publish.ts"],"sourcesContent":["import { getPackages, isWebComponent, logErrors, PackageType } from '../../utils';\nimport { ArgsPackageClean } from './mfe-package-clean';\nimport { ArgsPackagePublish } from './mfe-package-publish';\nimport { Command } from './types';\nimport { lernaExec } from '../utils';\n\ninterface Args extends Omit<ArgsPackagePublish, 'branch'>, ArgsPackageClean {\n clean?: boolean;\n concurrency?: number;\n scope?: string | string[];\n}\n\nexport class MFEPublish implements Command {\n constructor(private args: Args) {}\n\n description() {\n return 'publish or unpublish MFE packages';\n }\n\n @logErrors\n async execute() {\n const packages = getPackages({ scope: this.args.scope, type: PackageType.Webpack }).filter(\n ({ location }) => isWebComponent(location)\n );\n\n if (!packages.length) {\n throw new Error('no packages found for publication');\n }\n\n const isClean = !!this.args.clean;\n await lernaExec({\n 'cmd': `startup mfe-package-${isClean ? 'clean' : 'publish'}`,\n 'parallel': this.args.concurrency ?? 1,\n 'scope': packages.map(({ name }) => name),\n 'stream': true,\n '--': isClean ? this.getCleanOptions() : this.getPublishOptions(),\n });\n }\n\n getPublishOptions() {\n const { build, branch, dry, force, registry, tag } = this.args as ArgsPackagePublish;\n return [\n ...[branch && `--branch ${branch}`],\n ...[build && `--build ${build}`],\n ...[dry && '--dry'],\n ...[force && '--force'],\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 as ArgsPackageClean;\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","description","execute","packages","getPackages","scope","args","type","PackageType","Webpack","filter","location","isWebComponent","length","Error","isClean","clean","lernaExec","concurrency","map","name","getCleanOptions","getPublishOptions","build","branch","dry","force","registry","tag","item","all","count","constructor"],"mappings":";;;;+BAYaA;;;eAAAA;;;uBAZuD;wBAI1C;;;;;;;;;;;;;;;;;;;;;;;AAQnB,MAAMA;IAGTC,cAAc;QACV,OAAO;IACX;IAEA,MACMC,UAAU;QACZ,MAAMC,WAAWC,IAAAA,kBAAW,EAAC;YAAEC,OAAO,IAAI,CAACC,IAAI,CAACD,KAAK;YAAEE,MAAMC,kBAAW,CAACC,OAAO;QAAC,GAAGC,MAAM,CACtF,CAAC,EAAEC,QAAQ,EAAE,GAAKC,IAAAA,qBAAc,EAACD;QAGrC,IAAI,CAACR,SAASU,MAAM,EAAE;YAClB,MAAM,IAAIC,MAAM;QACpB;QAEA,MAAMC,UAAU,CAAC,CAAC,IAAI,CAACT,IAAI,CAACU,KAAK;YAGjB;QAFhB,MAAMC,IAAAA,iBAAS,EAAC;YACZ,OAAO,CAAC,oBAAoB,EAAEF,UAAU,UAAU,WAAW;YAC7D,YAAY,CAAA,yBAAA,IAAI,CAACT,IAAI,CAACY,WAAW,cAArB,oCAAA,yBAAyB;YACrC,SAASf,SAASgB,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA;YACpC,UAAU;YACV,MAAML,UAAU,IAAI,CAACM,eAAe,KAAK,IAAI,CAACC,iBAAiB;QACnE;IACJ;IAEAA,oBAAoB;QAChB,MAAM,EAAEC,KAAK,EAAEC,MAAM,EAAEC,GAAG,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,GAAG,EAAE,GAAG,IAAI,CAACtB,IAAI;QAC9D,OAAO;eACA;gBAACkB,UAAU,CAAC,SAAS,EAAEA,QAAQ;aAAC;eAChC;gBAACD,SAAS,CAAC,QAAQ,EAAEA,OAAO;aAAC;eAC7B;gBAACE,OAAO;aAAQ;eAChB;gBAACC,SAAS;aAAU;eACpB;gBAACC,YAAY,CAAC,WAAW,EAAEA,UAAU;aAAC;eACtC;gBAAC,OAAOC,QAAQ,YAAY,CAAC,MAAM,EAAEA,KAAK;aAAC;SACjD,CAAClB,MAAM,CAACmB,CAAAA,OAAQ,CAAC,CAACA;IACvB;IAEAR,kBAAkB;QACd,MAAM,EAAES,GAAG,EAAEN,MAAM,EAAEO,KAAK,EAAEN,GAAG,EAAEE,QAAQ,EAAE,GAAG,IAAI,CAACrB,IAAI;QACvD,OAAO;eACA;gBAACwB,OAAO;aAAQ;eAChB;gBAAC,OAAON,WAAW,YAAY,CAAC,SAAS,EAAEA,QAAQ;aAAC;eACpD;gBAACO,SAAS,CAAC,QAAQ,EAAEA,OAAO;aAAC;eAC7B;gBAACN,OAAO;aAAQ;eAChB;gBAACE,YAAY,CAAC,WAAW,EAAEA,UAAU;aAAC;SAC5C,CAACjB,MAAM,CAACmB,CAAAA,OAAQ,CAAC,CAACA;IACvB;IA/CAG,YAAY,AAAQ1B,IAAU,CAAE;;aAAZA,OAAAA;IAAa;AAgDrC"}
1
+ {"version":3,"sources":["../../../src/cli/commands/mfe-publish.ts"],"sourcesContent":["import { getPackages, isWebComponent, logErrors, PackageType } from '../../utils';\nimport { Args as CleanArgs } from './mfe-package-clean';\nimport { Args as PublishArgs } from './mfe-package-publish';\nimport { Command } from './types';\nimport { lernaExec } from '../utils';\n\ninterface Args extends PublishArgs, CleanArgs {\n clean?: boolean;\n concurrency?: number;\n scope?: string | string[];\n}\n\nexport class MFEPublish implements Command {\n constructor(private args: Args) {}\n\n description() {\n return 'publish or unpublish MFE packages';\n }\n\n @logErrors\n async execute() {\n const packages = getPackages({ scope: this.args.scope, type: PackageType.Webpack }).filter(\n ({ location }) => isWebComponent(location)\n );\n\n if (!packages.length) {\n throw new Error('no packages found for publication');\n }\n\n const isClean = !!this.args.clean;\n await lernaExec({\n 'cmd': `startup mfe-package-${isClean ? 'clean' : 'publish'}`,\n 'parallel': this.args.concurrency ?? 1,\n 'scope': packages.map(({ name }) => name),\n 'stream': true,\n '--': isClean ? this.getCleanOptions() : this.getPublishOptions(),\n });\n }\n\n getPublishOptions() {\n const { build, branch, dry, force, registry, tag, uploadSourcemaps } = this\n .args as PublishArgs;\n return [\n ...[branch && `--branch ${branch}`],\n ...[build && `--build ${build}`],\n ...[dry && '--dry'],\n ...[force && '--force'],\n ...[registry && `--registry ${registry}`],\n ...[typeof tag === 'string' && `--tag ${tag}`],\n ...[uploadSourcemaps === true && `--upload-sourcemaps`],\n ...[uploadSourcemaps === false && `--no-upload-sourcemaps`],\n ].filter(item => !!item) as string[];\n }\n\n getCleanOptions() {\n const { all, branch, count, dry, registry } = this.args as CleanArgs;\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","description","execute","packages","getPackages","scope","args","type","PackageType","Webpack","filter","location","isWebComponent","length","Error","isClean","clean","lernaExec","concurrency","map","name","getCleanOptions","getPublishOptions","build","branch","dry","force","registry","tag","uploadSourcemaps","item","all","count"],"mappings":";;;;+BAYaA;;;eAAAA;;;uBAZuD;wBAI1C;;;;;;;;;;;;;;;;;;;;;;;AAQnB,MAAMA;IAGTC,cAAc;QACV,OAAO;IACX;IAEA,MACMC,UAAU;QACZ,MAAMC,WAAWC,IAAAA,kBAAW,EAAC;YAAEC,OAAO,IAAI,CAACC,IAAI,CAACD,KAAK;YAAEE,MAAMC,kBAAW,CAACC,OAAO;QAAC,GAAGC,MAAM,CACtF,CAAC,EAAEC,QAAQ,EAAE,GAAKC,IAAAA,qBAAc,EAACD;QAGrC,IAAI,CAACR,SAASU,MAAM,EAAE;YAClB,MAAM,IAAIC,MAAM;QACpB;QAEA,MAAMC,UAAU,CAAC,CAAC,IAAI,CAACT,IAAI,CAACU,KAAK;YAGjB;QAFhB,MAAMC,IAAAA,iBAAS,EAAC;YACZ,OAAO,CAAC,oBAAoB,EAAEF,UAAU,UAAU,WAAW;YAC7D,YAAY,CAAA,yBAAA,IAAI,CAACT,IAAI,CAACY,WAAW,cAArB,oCAAA,yBAAyB;YACrC,SAASf,SAASgB,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA;YACpC,UAAU;YACV,MAAML,UAAU,IAAI,CAACM,eAAe,KAAK,IAAI,CAACC,iBAAiB;QACnE;IACJ;IAEAA,oBAAoB;QAChB,MAAM,EAAEC,KAAK,EAAEC,MAAM,EAAEC,GAAG,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,GAAG,EAAEC,gBAAgB,EAAE,GAAG,IAAI,CACtEvB,IAAI;QACT,OAAO;eACA;gBAACkB,UAAU,CAAC,SAAS,EAAEA,QAAQ;aAAC;eAChC;gBAACD,SAAS,CAAC,QAAQ,EAAEA,OAAO;aAAC;eAC7B;gBAACE,OAAO;aAAQ;eAChB;gBAACC,SAAS;aAAU;eACpB;gBAACC,YAAY,CAAC,WAAW,EAAEA,UAAU;aAAC;eACtC;gBAAC,OAAOC,QAAQ,YAAY,CAAC,MAAM,EAAEA,KAAK;aAAC;eAC3C;gBAACC,qBAAqB,QAAQ,CAAC,mBAAmB,CAAC;aAAC;eACpD;gBAACA,qBAAqB,SAAS,CAAC,sBAAsB,CAAC;aAAC;SAC9D,CAACnB,MAAM,CAACoB,CAAAA,OAAQ,CAAC,CAACA;IACvB;IAEAT,kBAAkB;QACd,MAAM,EAAEU,GAAG,EAAEP,MAAM,EAAEQ,KAAK,EAAEP,GAAG,EAAEE,QAAQ,EAAE,GAAG,IAAI,CAACrB,IAAI;QACvD,OAAO;eACA;gBAACyB,OAAO;aAAQ;eAChB;gBAAC,OAAOP,WAAW,YAAY,CAAC,SAAS,EAAEA,QAAQ;aAAC;eACpD;gBAACQ,SAAS,CAAC,QAAQ,EAAEA,OAAO;aAAC;eAC7B;gBAACP,OAAO;aAAQ;eAChB;gBAACE,YAAY,CAAC,WAAW,EAAEA,UAAU;aAAC;SAC5C,CAACjB,MAAM,CAACoB,CAAAA,OAAQ,CAAC,CAACA;IACvB;IAlDA,YAAY,AAAQxB,IAAU,CAAE;;aAAZA,OAAAA;IAAa;AAmDrC"}
@@ -5,7 +5,6 @@ interface Args {
5
5
  export declare class PreparePackage implements Command {
6
6
  private args;
7
7
  constructor(args: Args);
8
- description(): undefined;
9
8
  execute(): Promise<void>;
10
9
  }
11
10
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"prepare-package.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/prepare-package.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,UAAU,IAAI;IACV,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,cAAe,YAAW,OAAO;IAC9B,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,IAAI;IAE9B,WAAW;IAKX,OAAO;CAGV"}
1
+ {"version":3,"file":"prepare-package.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/prepare-package.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,UAAU,IAAI;IACV,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,cAAe,YAAW,OAAO;IAC9B,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,IAAI;IAG9B,OAAO;CAGV"}
@@ -33,9 +33,6 @@ function _ts_metadata(k, v) {
33
33
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
34
34
  }
35
35
  class PreparePackage {
36
- description() {
37
- return undefined;
38
- }
39
36
  execute() {
40
37
  return (0, _utils1.copyFiles)({
41
38
  watch: this.args.watch
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/commands/prepare-package.ts"],"sourcesContent":["import { logErrors } from '../../utils';\nimport { copyFiles } from '../utils';\nimport { Command } from './types';\n\ninterface Args {\n watch?: boolean;\n}\n\nexport class PreparePackage implements Command {\n constructor(private args: Args) {}\n\n description() {\n return undefined;\n }\n\n @logErrors\n execute() {\n return copyFiles({ watch: this.args.watch });\n }\n}\n"],"names":["PreparePackage","description","undefined","execute","copyFiles","watch","args","constructor"],"mappings":";;;;+BAQaA;;;eAAAA;;;uBARa;wBACA;;;;;;;;;;;;;;;;;;;;;;;AAOnB,MAAMA;IAGTC,cAAc;QACV,OAAOC;IACX;IAGAC,UAAU;QACN,OAAOC,IAAAA,iBAAS,EAAC;YAAEC,OAAO,IAAI,CAACC,IAAI,CAACD,KAAK;QAAC;IAC9C;IATAE,YAAY,AAAQD,IAAU,CAAE;;aAAZA,OAAAA;IAAa;AAUrC"}
1
+ {"version":3,"sources":["../../../src/cli/commands/prepare-package.ts"],"sourcesContent":["import { logErrors } from '../../utils';\nimport { copyFiles } from '../utils';\nimport { Command } from './types';\n\ninterface Args {\n watch?: boolean;\n}\n\nexport class PreparePackage implements Command {\n constructor(private args: Args) {}\n\n @logErrors\n execute() {\n return copyFiles({ watch: this.args.watch });\n }\n}\n"],"names":["PreparePackage","execute","copyFiles","watch","args"],"mappings":";;;;+BAQaA;;;eAAAA;;;uBARa;wBACA;;;;;;;;;;;;;;;;;;;;;;;AAOnB,MAAMA;IAITC,UAAU;QACN,OAAOC,IAAAA,iBAAS,EAAC;YAAEC,OAAO,IAAI,CAACC,IAAI,CAACD,KAAK;QAAC;IAC9C;IALA,YAAY,AAAQC,IAAU,CAAE;;aAAZA,OAAAA;IAAa;AAMrC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/commands/review/review.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { execSync } from 'child_process';\nimport terminalLink from 'terminal-link';\nimport {\n findPackages,\n getReviewConfiguration,\n log,\n logErrors,\n readJsonSafe,\n toArray,\n} from '../../../utils';\nimport { Command } from '../types';\n\nimport {\n ErrorSeverity,\n FixCategory,\n Level,\n Package,\n PackageError,\n PackageRule,\n Project,\n RuleConfiguration,\n} from './types';\nimport {\n collateDependencies,\n ErrorSummary,\n formatLocation,\n indent,\n pluralize,\n summarize,\n} from './utils';\nimport { rules } from './rules';\n\nconst collator = new Intl.Collator();\n\ninterface Args {\n fix?: boolean;\n rule?: string | string[];\n}\n\nexport class Review implements Command {\n private readonly severityToLabel: Record<ErrorSeverity, string> = {\n [ErrorSeverity.warning]: chalk.yellow('warning'),\n [ErrorSeverity.error]: chalk.red('error'),\n };\n\n private readonly levelToSeverity: Partial<Record<Level, ErrorSeverity>> = {\n warn: ErrorSeverity.warning,\n error: ErrorSeverity.error,\n };\n\n constructor(private readonly args: Args) {}\n\n description() {\n return 'check project for configuration errors';\n }\n\n @logErrors\n async execute() {\n const errors = this.args.fix ? this.fixErrors() : this.findErrors();\n const summary = this.reportErrors(errors);\n return summary.error > 0 ? Promise.reject() : Promise.resolve();\n }\n\n private createProject(): Project {\n const root = readJsonSafe('package.json');\n if (!root?.workspaces) {\n throw new Error('this command must be run from the workspace root directory');\n }\n\n const packageLock = readJsonSafe<Project['packageLock']>('package-lock.json');\n if (!packageLock?.packages) {\n throw new Error('this command must be run with valid package-lock.json');\n }\n\n root.location = '.'; // identifies the root package.json for rules that care\n packageLock.location = './package-lock.json';\n\n const config = getReviewConfiguration();\n const packages: Package[] = [root, ...findPackages()];\n const dependencies = sortByKey(collateDependencies(packages));\n this.debug('review:packages', packages);\n this.debug('review:dependencies', dependencies);\n\n return { config, dependencies, packageLock, packages };\n }\n\n private debug(namespace: string, data: any) {\n /* istanbul ignore next: debug only */\n log.debug(namespace, () => data && JSON.stringify(data, null, 2));\n }\n\n private findErrors(project?: Project) {\n const errors = this.runRules(project ?? this.createProject());\n this.debug('review:errors', errors);\n return errors;\n }\n\n private fixErrors() {\n const rulesById = rules.reduce<Record<string, PackageRule>>((result, rule) => {\n result[rule.id] = rule;\n return result;\n }, {});\n\n let project = this.createProject();\n let errors = this.findErrors(project);\n let totalFixed = 0;\n\n for (const category of [FixCategory.isolated, FixCategory.normal, FixCategory.lockFile]) {\n const fixable = errors.filter(({ fixable }) => fixable === category);\n if (fixable.length === 0) {\n continue;\n }\n\n fixable.forEach(error => {\n const rule = rulesById[error.id];\n if (rule.fix) {\n log.text(`Fixing ${this.formatError({ ...error, details: '', location: '' })}`);\n rule.fix(error, project);\n totalFixed += 1;\n }\n });\n\n execSync('npx startup install --fix --quiet', { stdio: 'inherit' });\n project = this.createProject();\n errors = this.findErrors(project);\n }\n\n if (totalFixed > 0) {\n let summary = `Fixed ${pluralize(totalFixed, 'problem')}`;\n if (errors.length) {\n summary = `${summary}, ${pluralize(errors.length, 'problem remains', 'problems remain')}:\\n`;\n }\n log.info(summary);\n }\n\n return errors;\n }\n\n private formatError(error: PackageError) {\n const { location, message, severity = ErrorSeverity.error } = error;\n\n const label = indent(this.severityToLabel[severity], location ? 1 : 0);\n const details = error.details ? `\\n${indent(error.details, location ? 2 : 1)}` : '';\n const link = this.getLink(error);\n\n return `${label} ${message} ${link}${details}`;\n }\n\n private reportErrors(errors: PackageError[]) {\n let prevLocation: string | undefined;\n\n errors.forEach((error, index) => {\n const { location } = error;\n if (index > 0 && (!location || location !== prevLocation)) {\n log.text('');\n }\n if (location && location !== prevLocation) {\n log.text(chalk.underline(formatLocation(location)));\n prevLocation = location;\n }\n log.text(this.formatError(error));\n });\n\n const summary = summarize(errors);\n this.reportSummary(summary);\n return summary;\n }\n\n private reportSummary({ error, warning, fixable }: ErrorSummary) {\n if (error + warning === 0) {\n return log.success('0 problems');\n }\n\n log.text('');\n\n const severity = error ? 'error' : 'warning';\n log[severity](\n `${pluralize(error + warning, 'problem')} (${pluralize(error, 'error')}, ${pluralize(warning, 'warning')})`\n );\n\n if (fixable.error + fixable.warning > 0) {\n log[severity](\n `${pluralize(fixable.error, 'error')} and ${pluralize(fixable.warning, 'warning')} potentially fixable with --fix option`\n );\n }\n }\n\n private runRules(project: Project): PackageError[] {\n const selected = this.getSelectedRules();\n return rules\n .filter(({ id }) => !selected || selected.has(id))\n .flatMap(rule => this.runRule(rule, project))\n .filter(error => !!error)\n .sort(compareError);\n }\n\n private runRule(rule: PackageRule, project: Project) {\n const level = this.getLevel(project.config.rules?.[rule.id]);\n if (level === 'off') {\n return;\n }\n\n return this.transform(rule.run(project), level);\n }\n\n private transform(errors?: PackageError | PackageError[], level?: 'error' | 'warn') {\n const severity = level && this.levelToSeverity[level];\n return errors && severity ? toArray(errors).map(error => ({ ...error, severity })) : errors;\n }\n\n private getLevel(config?: RuleConfiguration) {\n if (typeof config === 'string') {\n return config;\n }\n if (Array.isArray(config) && typeof config[0] === 'string') {\n return config[0];\n }\n }\n\n private getLink({ id }: PackageError) {\n const url = `https://docs.st.dev/docs/frontend/uikit/startup/review#${id}`;\n return chalk.dim(terminalLink(id, url));\n }\n\n private getSelectedRules() {\n const rule = this.args.rule;\n if (typeof rule === 'string' && rule) {\n return new Set([rule]);\n }\n if (Array.isArray(rule)) {\n return new Set(rule.filter(id => !!id));\n }\n return undefined;\n }\n}\n\nfunction compareError(\n { location: locationA = '', severity: severityA = ErrorSeverity.error }: PackageError,\n { location: locationB = '', severity: severityB = ErrorSeverity.error }: PackageError\n) {\n return locationA === locationB ? severityA - severityB : collator.compare(locationA, locationB);\n}\n\nfunction sortByKey<T>(obj: Record<string, T>): Record<string, T> {\n return Object.fromEntries(Object.entries(obj).sort(([a], [b]) => collator.compare(a, b)));\n}\n"],"names":["Review","collator","Intl","Collator","description","execute","errors","args","fix","fixErrors","findErrors","summary","reportErrors","error","Promise","reject","resolve","createProject","root","readJsonSafe","workspaces","Error","packageLock","packages","location","config","getReviewConfiguration","findPackages","dependencies","sortByKey","collateDependencies","debug","namespace","data","log","JSON","stringify","project","runRules","rulesById","rules","reduce","result","rule","id","totalFixed","category","FixCategory","isolated","normal","lockFile","fixable","filter","length","forEach","text","formatError","details","execSync","stdio","pluralize","info","message","severity","ErrorSeverity","label","indent","severityToLabel","link","getLink","prevLocation","index","chalk","underline","formatLocation","summarize","reportSummary","warning","success","selected","getSelectedRules","has","flatMap","runRule","sort","compareError","level","getLevel","transform","run","levelToSeverity","toArray","map","Array","isArray","url","dim","terminalLink","Set","undefined","constructor","yellow","red","warn","locationA","severityA","locationB","severityB","compare","obj","Object","fromEntries","entries","a","b"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/cli/commands/review/review.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { execSync } from 'child_process';\nimport terminalLink from 'terminal-link';\nimport {\n findPackages,\n getReviewConfiguration,\n log,\n logErrors,\n readJsonSafe,\n toArray,\n} from '../../../utils';\nimport { Command } from '../types';\n\nimport {\n ErrorSeverity,\n FixCategory,\n Level,\n Package,\n PackageError,\n PackageRule,\n Project,\n RuleConfiguration,\n} from './types';\nimport {\n collateDependencies,\n ErrorSummary,\n formatLocation,\n indent,\n pluralize,\n summarize,\n} from './utils';\nimport { rules } from './rules';\n\nconst collator = new Intl.Collator();\n\ninterface Args {\n fix?: boolean;\n rule?: string | string[];\n}\n\nexport class Review implements Command {\n private readonly severityToLabel: Record<ErrorSeverity, string> = {\n [ErrorSeverity.warning]: chalk.yellow('warning'),\n [ErrorSeverity.error]: chalk.red('error'),\n };\n\n private readonly levelToSeverity: Partial<Record<Level, ErrorSeverity>> = {\n warn: ErrorSeverity.warning,\n error: ErrorSeverity.error,\n };\n\n constructor(private readonly args: Args) {}\n\n description() {\n return 'check project for configuration errors';\n }\n\n @logErrors\n async execute() {\n const errors = this.args.fix ? this.fixErrors() : this.findErrors();\n const summary = this.reportErrors(errors);\n return summary.error > 0 ? Promise.reject() : Promise.resolve();\n }\n\n private createProject(): Project {\n const root = readJsonSafe('package.json');\n if (!root?.workspaces) {\n throw new Error('this command must be run from the workspace root directory');\n }\n\n const packageLock = readJsonSafe<Project['packageLock']>('package-lock.json');\n if (!packageLock?.packages) {\n throw new Error('this command must be run with valid package-lock.json');\n }\n\n root.location = '.'; // identifies the root package.json for rules that care\n packageLock.location = './package-lock.json';\n\n const config = getReviewConfiguration();\n const packages: Package[] = [root, ...findPackages()];\n const dependencies = sortByKey(collateDependencies(packages));\n this.debug('review:packages', packages);\n this.debug('review:dependencies', dependencies);\n\n return { config, dependencies, packageLock, packages };\n }\n\n private debug(namespace: string, data: any) {\n /* istanbul ignore next: debug only */\n log.debug(namespace, () => data && JSON.stringify(data, null, 2));\n }\n\n private findErrors(project?: Project) {\n const errors = this.runRules(project ?? this.createProject());\n this.debug('review:errors', errors);\n return errors;\n }\n\n private fixErrors() {\n const rulesById = rules.reduce<Record<string, PackageRule>>((result, rule) => {\n result[rule.id] = rule;\n return result;\n }, {});\n\n let project = this.createProject();\n let errors = this.findErrors(project);\n let totalFixed = 0;\n\n for (const category of [FixCategory.isolated, FixCategory.normal, FixCategory.lockFile]) {\n const fixable = errors.filter(({ fixable }) => fixable === category);\n if (fixable.length === 0) {\n continue;\n }\n\n fixable.forEach(error => {\n const rule = rulesById[error.id];\n if (rule.fix) {\n log.text(`Fixing ${this.formatError({ ...error, details: '', location: '' })}`);\n rule.fix(error, project);\n totalFixed += 1;\n }\n });\n\n execSync('npx startup install --fix --quiet', { stdio: 'inherit' });\n project = this.createProject();\n errors = this.findErrors(project);\n }\n\n if (totalFixed > 0) {\n let summary = `Fixed ${pluralize(totalFixed, 'problem')}`;\n if (errors.length) {\n summary = `${summary}, ${pluralize(errors.length, 'problem remains', 'problems remain')}:\\n`;\n }\n log.info(summary);\n }\n\n return errors;\n }\n\n private formatError(error: PackageError) {\n const { location, message, severity = ErrorSeverity.error } = error;\n\n const label = indent(this.severityToLabel[severity], location ? 1 : 0);\n const details = error.details ? `\\n${indent(error.details, location ? 2 : 1)}` : '';\n const link = this.getLink(error);\n\n return `${label} ${message} ${link}${details}`;\n }\n\n private reportErrors(errors: PackageError[]) {\n let prevLocation: string | undefined;\n\n errors.forEach((error, index) => {\n const { location } = error;\n if (index > 0 && (!location || location !== prevLocation)) {\n log.text('');\n }\n if (location && location !== prevLocation) {\n log.text(chalk.underline(formatLocation(location)));\n prevLocation = location;\n }\n log.text(this.formatError(error));\n });\n\n const summary = summarize(errors);\n this.reportSummary(summary);\n return summary;\n }\n\n private reportSummary({ error, warning, fixable }: ErrorSummary) {\n if (error + warning === 0) {\n return log.success('0 problems');\n }\n\n log.text('');\n\n const severity = error ? 'error' : 'warning';\n log[severity](\n `${pluralize(error + warning, 'problem')} (${pluralize(error, 'error')}, ${pluralize(warning, 'warning')})`\n );\n\n if (fixable.error + fixable.warning > 0) {\n log[severity](\n `${pluralize(fixable.error, 'error')} and ${pluralize(fixable.warning, 'warning')} potentially fixable with --fix option`\n );\n }\n }\n\n private runRules(project: Project): PackageError[] {\n const selected = this.getSelectedRules();\n return rules\n .filter(({ id }) => !selected || selected.has(id))\n .flatMap(rule => this.runRule(rule, project))\n .filter(error => !!error)\n .sort(compareError);\n }\n\n private runRule(rule: PackageRule, project: Project) {\n const level = this.getLevel(project.config.rules?.[rule.id]);\n if (level === 'off') {\n return;\n }\n\n return this.transform(rule.run(project), level);\n }\n\n private transform(errors?: PackageError | PackageError[], level?: 'error' | 'warn') {\n const severity = level && this.levelToSeverity[level];\n return errors && severity ? toArray(errors).map(error => ({ ...error, severity })) : errors;\n }\n\n private getLevel(config?: RuleConfiguration) {\n if (typeof config === 'string') {\n return config;\n }\n if (Array.isArray(config) && typeof config[0] === 'string') {\n return config[0];\n }\n }\n\n private getLink({ id }: PackageError) {\n const url = `https://docs.st.dev/docs/frontend/uikit/startup/review#${id}`;\n return chalk.dim(terminalLink(id, url));\n }\n\n private getSelectedRules() {\n const rule = this.args.rule;\n if (typeof rule === 'string' && rule) {\n return new Set([rule]);\n }\n if (Array.isArray(rule)) {\n return new Set(rule.filter(id => !!id));\n }\n return undefined;\n }\n}\n\nfunction compareError(\n { location: locationA = '', severity: severityA = ErrorSeverity.error }: PackageError,\n { location: locationB = '', severity: severityB = ErrorSeverity.error }: PackageError\n) {\n return locationA === locationB ? severityA - severityB : collator.compare(locationA, locationB);\n}\n\nfunction sortByKey<T>(obj: Record<string, T>): Record<string, T> {\n return Object.fromEntries(Object.entries(obj).sort(([a], [b]) => collator.compare(a, b)));\n}\n"],"names":["Review","collator","Intl","Collator","description","execute","errors","args","fix","fixErrors","findErrors","summary","reportErrors","error","Promise","reject","resolve","createProject","root","readJsonSafe","workspaces","Error","packageLock","packages","location","config","getReviewConfiguration","findPackages","dependencies","sortByKey","collateDependencies","debug","namespace","data","log","JSON","stringify","project","runRules","rulesById","rules","reduce","result","rule","id","totalFixed","category","FixCategory","isolated","normal","lockFile","fixable","filter","length","forEach","text","formatError","details","execSync","stdio","pluralize","info","message","severity","ErrorSeverity","label","indent","severityToLabel","link","getLink","prevLocation","index","chalk","underline","formatLocation","summarize","reportSummary","warning","success","selected","getSelectedRules","has","flatMap","runRule","sort","compareError","level","getLevel","transform","run","levelToSeverity","toArray","map","Array","isArray","url","dim","terminalLink","Set","undefined","yellow","red","warn","locationA","severityA","locationB","severityB","compare","obj","Object","fromEntries","entries","a","b"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/cli/commands/review/rules/require-one-anvil-uikit-contrib-version.ts"],"sourcesContent":["import { RequireOneCollectionVersion } from './require-one-collection-version';\n\nconst ANVIL_UIKIT_PACKAGES = [\n '@servicetitan/confirm-navigation',\n '@servicetitan/confirm',\n '@servicetitan/culture',\n '@servicetitan/data-query',\n '@servicetitan/datetime-utils',\n '@servicetitan/form-state',\n '@servicetitan/form',\n '@servicetitan/link-item',\n '@servicetitan/notifications',\n '@servicetitan/table',\n];\n\nexport class RequireOneAnvilUikitContribVersion extends RequireOneCollectionVersion {\n constructor() {\n super({ name: 'anvil-uikit-contrib', packages: ANVIL_UIKIT_PACKAGES });\n }\n}\n"],"names":["RequireOneAnvilUikitContribVersion","ANVIL_UIKIT_PACKAGES","RequireOneCollectionVersion","constructor","name","packages"],"mappings":";;;;+BAeaA;;;eAAAA;;;6CAf+B;AAE5C,MAAMC,uBAAuB;IACzB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACH;AAEM,MAAMD,2CAA2CE,wDAA2B;IAC/EC,aAAc;QACV,KAAK,CAAC;YAAEC,MAAM;YAAuBC,UAAUJ;QAAqB;IACxE;AACJ"}
1
+ {"version":3,"sources":["../../../../../src/cli/commands/review/rules/require-one-anvil-uikit-contrib-version.ts"],"sourcesContent":["import { RequireOneCollectionVersion } from './require-one-collection-version';\n\nconst ANVIL_UIKIT_PACKAGES = [\n '@servicetitan/confirm-navigation',\n '@servicetitan/confirm',\n '@servicetitan/culture',\n '@servicetitan/data-query',\n '@servicetitan/datetime-utils',\n '@servicetitan/form-state',\n '@servicetitan/form',\n '@servicetitan/link-item',\n '@servicetitan/notifications',\n '@servicetitan/table',\n];\n\nexport class RequireOneAnvilUikitContribVersion extends RequireOneCollectionVersion {\n constructor() {\n super({ name: 'anvil-uikit-contrib', packages: ANVIL_UIKIT_PACKAGES });\n }\n}\n"],"names":["RequireOneAnvilUikitContribVersion","ANVIL_UIKIT_PACKAGES","RequireOneCollectionVersion","name","packages"],"mappings":";;;;+BAeaA;;;eAAAA;;;6CAf+B;AAE5C,MAAMC,uBAAuB;IACzB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACH;AAEM,MAAMD,2CAA2CE,wDAA2B;IAC/E,aAAc;QACV,KAAK,CAAC;YAAEC,MAAM;YAAuBC,UAAUH;QAAqB;IACxE;AACJ"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/cli/commands/review/rules/require-one-collection-version.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { log } from '../../../../utils';\nimport { FixCategory, Package, PackageError, PackageRule, Project } from '../types';\nimport { applyFilter, compareVersion, formatDependsOn, nameToLocation, setVersion } from '../utils';\n\nexport interface Collection {\n name: string;\n packages: string[];\n}\n\n/**\n * Maps version number to packages with that version and their dependents.\n */\ninterface Versions {\n [version: string]: {\n [packageName: string]: string[];\n };\n}\n\ninterface ErrorData {\n targetVersion: string;\n otherVersions: Versions;\n}\n\ninterface ErrorDetail {\n dependents: string[];\n extra: boolean;\n packageName: string;\n}\n\nexport class RequireOneCollectionVersion implements PackageRule {\n constructor(private readonly collection: Collection) {}\n\n get id() {\n return `require-one-${this.collection.name}-version`;\n }\n\n run(project: Project): PackageError<ErrorData> | undefined {\n const versions = this.collateVersions(project);\n\n /* istanbul ignore next: debug only */\n log.debug(`review:${this.collection.name}-versions`, () =>\n JSON.stringify(versions, null, 2)\n );\n\n const keys = Object.keys(versions);\n if (keys.length <= 1) {\n return;\n }\n\n const message = `project depends on multiple versions of ${this.collection.name} packages`;\n const details = this.composeDetails(project, versions);\n const targetVersion = keys[0];\n const otherVersions = Object.fromEntries(Object.entries(versions).slice(1));\n return {\n id: this.id,\n message,\n details,\n fixable: FixCategory.normal,\n data: { targetVersion, otherVersions },\n };\n }\n\n fix({ data }: PackageError<ErrorData>, project: Project) {\n const { targetVersion, otherVersions } = data ?? {};\n if (!(targetVersion && otherVersions)) {\n return;\n }\n\n Object.values(otherVersions).forEach(packages => {\n Object.entries(packages).forEach(([name, dependents]) => {\n dependents.forEach(dependent =>\n setVersion({\n project,\n packageName: dependent,\n dependency: name,\n version: targetVersion,\n })\n );\n });\n });\n }\n\n private collateVersions(project: Project) {\n const dependencies = this.getDependencies(project);\n return this.sortVersions(\n this.collection.packages.reduce<Versions>((result, name) => {\n Object.entries(dependencies[name] ?? {}).forEach(([version, dependents]) => {\n result[version] ??= {};\n result[version][name] = dependents;\n });\n return result;\n }, {})\n );\n }\n\n private composeDetails({ packages }: Project, versions: Versions) {\n const extra = this.getExtra(versions);\n return this.sortDetails(this.getDetails(packages, versions, extra)).map(detail =>\n this.formatDetail(detail)\n );\n }\n\n private formatDetail({ dependents, packageName, extra }: ErrorDetail) {\n return formatDependsOn(dependents, chalk[extra ? 'red' : 'yellow'](packageName));\n }\n\n private getDependencies({ config, dependencies }: Project) {\n const ruleConfig = config.rules?.[this.id];\n return Object.fromEntries(\n applyFilter(ruleConfig, Object.entries(dependencies), ([name]) => name)\n ) as Project['dependencies'];\n }\n\n private getDetails(packages: Package[], versions: Versions, extra: Set<string>) {\n return Object.entries(versions).reduce((result, [version, dependencies]) => {\n Object.entries(dependencies).forEach(([pkg, dependents]) => {\n result.push({\n packageName: `${pkg}@${version}`,\n dependents: dependents.map(name => nameToLocation(name, packages)),\n extra: extra.has(pkg),\n });\n });\n return result;\n }, [] as ErrorDetail[]);\n }\n\n /**\n * Assumes first version is the most common and the other ones are extra (see sortVersions)\n */\n private getExtra(versions: Versions): Set<string> {\n return new Set(\n Object.entries(versions)\n .slice(1)\n .flatMap(([_version, dependencies]) =>\n Object.entries(dependencies).map(([pkg]) => pkg)\n )\n );\n }\n\n /**\n * Orders details so that extraneous packages are at the top\n */\n private sortDetails(details: ErrorDetail[]) {\n return details.sort((a, b) => {\n if (a.extra === b.extra) {\n return 0;\n }\n return a.extra === true ? -1 : 1;\n });\n }\n\n /**\n * Orders versions in descending order by the number of packages using the version\n * and then by version number. I.e., It puts most common version at the top and if\n * multiple versions tie for the top position, it puts the highest version first.\n */\n private sortVersions(versions: Versions): Versions {\n return Object.fromEntries(\n Object.entries(versions)\n .sort(\n ([v1, depsV1], [v2, depsV2]) =>\n Object.keys(depsV1).length - Object.keys(depsV2).length ||\n compareVersion(v1, v2)\n )\n .reverse()\n );\n }\n}\n"],"names":["RequireOneCollectionVersion","id","collection","name","run","project","versions","collateVersions","log","debug","JSON","stringify","keys","Object","length","message","details","composeDetails","targetVersion","otherVersions","fromEntries","entries","slice","fixable","FixCategory","normal","data","fix","values","forEach","packages","dependents","dependent","setVersion","packageName","dependency","version","dependencies","getDependencies","sortVersions","reduce","result","extra","getExtra","sortDetails","getDetails","map","detail","formatDetail","formatDependsOn","chalk","config","ruleConfig","rules","applyFilter","pkg","push","nameToLocation","has","Set","flatMap","_version","sort","a","b","v1","depsV1","v2","depsV2","compareVersion","reverse","constructor"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/cli/commands/review/rules/require-one-collection-version.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { log } from '../../../../utils';\nimport { FixCategory, Package, PackageError, PackageRule, Project } from '../types';\nimport { applyFilter, compareVersion, formatDependsOn, nameToLocation, setVersion } from '../utils';\n\nexport interface Collection {\n name: string;\n packages: string[];\n}\n\n/**\n * Maps version number to packages with that version and their dependents.\n */\ninterface Versions {\n [version: string]: {\n [packageName: string]: string[];\n };\n}\n\ninterface ErrorData {\n targetVersion: string;\n otherVersions: Versions;\n}\n\ninterface ErrorDetail {\n dependents: string[];\n extra: boolean;\n packageName: string;\n}\n\nexport class RequireOneCollectionVersion implements PackageRule {\n constructor(private readonly collection: Collection) {}\n\n get id() {\n return `require-one-${this.collection.name}-version`;\n }\n\n run(project: Project): PackageError<ErrorData> | undefined {\n const versions = this.collateVersions(project);\n\n /* istanbul ignore next: debug only */\n log.debug(`review:${this.collection.name}-versions`, () =>\n JSON.stringify(versions, null, 2)\n );\n\n const keys = Object.keys(versions);\n if (keys.length <= 1) {\n return;\n }\n\n const message = `project depends on multiple versions of ${this.collection.name} packages`;\n const details = this.composeDetails(project, versions);\n const targetVersion = keys[0];\n const otherVersions = Object.fromEntries(Object.entries(versions).slice(1));\n return {\n id: this.id,\n message,\n details,\n fixable: FixCategory.normal,\n data: { targetVersion, otherVersions },\n };\n }\n\n fix({ data }: PackageError<ErrorData>, project: Project) {\n const { targetVersion, otherVersions } = data ?? {};\n if (!(targetVersion && otherVersions)) {\n return;\n }\n\n Object.values(otherVersions).forEach(packages => {\n Object.entries(packages).forEach(([name, dependents]) => {\n dependents.forEach(dependent =>\n setVersion({\n project,\n packageName: dependent,\n dependency: name,\n version: targetVersion,\n })\n );\n });\n });\n }\n\n private collateVersions(project: Project) {\n const dependencies = this.getDependencies(project);\n return this.sortVersions(\n this.collection.packages.reduce<Versions>((result, name) => {\n Object.entries(dependencies[name] ?? {}).forEach(([version, dependents]) => {\n result[version] ??= {};\n result[version][name] = dependents;\n });\n return result;\n }, {})\n );\n }\n\n private composeDetails({ packages }: Project, versions: Versions) {\n const extra = this.getExtra(versions);\n return this.sortDetails(this.getDetails(packages, versions, extra)).map(detail =>\n this.formatDetail(detail)\n );\n }\n\n private formatDetail({ dependents, packageName, extra }: ErrorDetail) {\n return formatDependsOn(dependents, chalk[extra ? 'red' : 'yellow'](packageName));\n }\n\n private getDependencies({ config, dependencies }: Project) {\n const ruleConfig = config.rules?.[this.id];\n return Object.fromEntries(\n applyFilter(ruleConfig, Object.entries(dependencies), ([name]) => name)\n ) as Project['dependencies'];\n }\n\n private getDetails(packages: Package[], versions: Versions, extra: Set<string>) {\n return Object.entries(versions).reduce((result, [version, dependencies]) => {\n Object.entries(dependencies).forEach(([pkg, dependents]) => {\n result.push({\n packageName: `${pkg}@${version}`,\n dependents: dependents.map(name => nameToLocation(name, packages)),\n extra: extra.has(pkg),\n });\n });\n return result;\n }, [] as ErrorDetail[]);\n }\n\n /**\n * Assumes first version is the most common and the other ones are extra (see sortVersions)\n */\n private getExtra(versions: Versions): Set<string> {\n return new Set(\n Object.entries(versions)\n .slice(1)\n .flatMap(([_version, dependencies]) =>\n Object.entries(dependencies).map(([pkg]) => pkg)\n )\n );\n }\n\n /**\n * Orders details so that extraneous packages are at the top\n */\n private sortDetails(details: ErrorDetail[]) {\n return details.sort((a, b) => {\n if (a.extra === b.extra) {\n return 0;\n }\n return a.extra === true ? -1 : 1;\n });\n }\n\n /**\n * Orders versions in descending order by the number of packages using the version\n * and then by version number. I.e., It puts most common version at the top and if\n * multiple versions tie for the top position, it puts the highest version first.\n */\n private sortVersions(versions: Versions): Versions {\n return Object.fromEntries(\n Object.entries(versions)\n .sort(\n ([v1, depsV1], [v2, depsV2]) =>\n Object.keys(depsV1).length - Object.keys(depsV2).length ||\n compareVersion(v1, v2)\n )\n .reverse()\n );\n }\n}\n"],"names":["RequireOneCollectionVersion","id","collection","name","run","project","versions","collateVersions","log","debug","JSON","stringify","keys","Object","length","message","details","composeDetails","targetVersion","otherVersions","fromEntries","entries","slice","fixable","FixCategory","normal","data","fix","values","forEach","packages","dependents","dependent","setVersion","packageName","dependency","version","dependencies","getDependencies","sortVersions","reduce","result","extra","getExtra","sortDetails","getDetails","map","detail","formatDetail","formatDependsOn","chalk","config","ruleConfig","rules","applyFilter","pkg","push","nameToLocation","has","Set","flatMap","_version","sort","a","b","v1","depsV1","v2","depsV2","compareVersion","reverse"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/cli/commands/review/rules/require-one-uikit-version.ts"],"sourcesContent":["import { RequireOneCollectionVersion } from './require-one-collection-version';\n\nconst UIKIT_PACKAGES = [\n '@servicetitan/ajax-handlers',\n '@servicetitan/error-boundary',\n '@servicetitan/eslint-config',\n '@servicetitan/eslint-plugin',\n '@servicetitan/eslint-plugin-folder-schema',\n '@servicetitan/folder-lint',\n '@servicetitan/hash-browser-router',\n '@servicetitan/ko-bridge',\n '@servicetitan/launchdarkly-service',\n '@servicetitan/lazy-module',\n '@servicetitan/log-service',\n '@servicetitan/react-ioc',\n '@servicetitan/restrict-imports',\n '@servicetitan/startup',\n '@servicetitan/stylelint-config',\n '@servicetitan/suppress-warnings',\n '@servicetitan/web-components',\n];\n\nexport class RequireOneUikitVersion extends RequireOneCollectionVersion {\n constructor() {\n super({ name: 'uikit', packages: UIKIT_PACKAGES });\n }\n}\n"],"names":["RequireOneUikitVersion","UIKIT_PACKAGES","RequireOneCollectionVersion","constructor","name","packages"],"mappings":";;;;+BAsBaA;;;eAAAA;;;6CAtB+B;AAE5C,MAAMC,iBAAiB;IACnB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACH;AAEM,MAAMD,+BAA+BE,wDAA2B;IACnEC,aAAc;QACV,KAAK,CAAC;YAAEC,MAAM;YAASC,UAAUJ;QAAe;IACpD;AACJ"}
1
+ {"version":3,"sources":["../../../../../src/cli/commands/review/rules/require-one-uikit-version.ts"],"sourcesContent":["import { RequireOneCollectionVersion } from './require-one-collection-version';\n\nconst UIKIT_PACKAGES = [\n '@servicetitan/ajax-handlers',\n '@servicetitan/error-boundary',\n '@servicetitan/eslint-config',\n '@servicetitan/eslint-plugin',\n '@servicetitan/eslint-plugin-folder-schema',\n '@servicetitan/folder-lint',\n '@servicetitan/hash-browser-router',\n '@servicetitan/ko-bridge',\n '@servicetitan/launchdarkly-service',\n '@servicetitan/lazy-module',\n '@servicetitan/log-service',\n '@servicetitan/react-ioc',\n '@servicetitan/restrict-imports',\n '@servicetitan/startup',\n '@servicetitan/stylelint-config',\n '@servicetitan/suppress-warnings',\n '@servicetitan/web-components',\n];\n\nexport class RequireOneUikitVersion extends RequireOneCollectionVersion {\n constructor() {\n super({ name: 'uikit', packages: UIKIT_PACKAGES });\n }\n}\n"],"names":["RequireOneUikitVersion","UIKIT_PACKAGES","RequireOneCollectionVersion","name","packages"],"mappings":";;;;+BAsBaA;;;eAAAA;;;6CAtB+B;AAE5C,MAAMC,iBAAiB;IACnB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACH;AAEM,MAAMD,+BAA+BE,wDAA2B;IACnE,aAAc;QACV,KAAK,CAAC;YAAEC,MAAM;YAASC,UAAUH;QAAe;IACpD;AACJ"}
@@ -6,7 +6,6 @@ interface Args {
6
6
  export declare class RunTask implements Command {
7
7
  private readonly args;
8
8
  constructor(args: Args);
9
- description(): undefined;
10
9
  execute(): Promise<void>;
11
10
  }
12
11
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"run-task.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/run-task.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAMlC,UAAU,IAAI;IACV,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAEvB,CAAC,EAAE,MAAM,EAAE,CAAC;CACf;AAQD,qBAAa,OAAQ,YAAW,OAAO;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,IAAI;IAEvC,WAAW;IAKL,OAAO;CAahB"}
1
+ {"version":3,"file":"run-task.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/run-task.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAMlC,UAAU,IAAI;IACV,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAEvB,CAAC,EAAE,MAAM,EAAE,CAAC;CACf;AAQD,qBAAa,OAAQ,YAAW,OAAO;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,IAAI;IAGjC,OAAO;CAahB"}
@@ -40,9 +40,6 @@ const tasks = {
40
40
  'tsc-compile': _tsccompile.TscCompile
41
41
  };
42
42
  class RunTask {
43
- description() {
44
- return undefined;
45
- }
46
43
  async execute() {
47
44
  const taskName = this.args._[0];
48
45
  if (taskName in tasks) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/commands/run-task.ts"],"sourcesContent":["import { log, logErrors } from '../../utils';\nimport { Command } from './types';\nimport { SwcCompilePackage } from '../tasks/swc-compile-package';\nimport { TscCompilePackage } from '../tasks/tsc-compile-package';\nimport { TscCompile } from '../tasks/tsc-compile';\nimport { Task } from '../tasks/task';\n\ninterface Args {\n [key: string]: unknown;\n // eslint-disable-next-line @typescript-eslint/naming-convention\n _: string[];\n}\n\nconst tasks: Record<string, new (args: Args) => Task> = {\n 'tsc-compile-package': TscCompilePackage,\n 'swc-compile-package': SwcCompilePackage,\n 'tsc-compile': TscCompile,\n};\n\nexport class RunTask implements Command {\n constructor(private readonly args: Args) {}\n\n description() {\n return undefined;\n }\n\n @logErrors\n async execute() {\n const taskName = this.args._[0];\n\n if (taskName in tasks) {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const trimArgs = { ...this.args, _: this.args._.slice(1) };\n await new tasks[taskName](trimArgs).execute();\n return;\n }\n\n log.error(`Unknown task: \"${taskName}\"`);\n log.text(`\\nSupported tasks: \"${Object.keys(tasks).join('\", \"')}\"`);\n }\n}\n"],"names":["RunTask","tasks","TscCompilePackage","SwcCompilePackage","TscCompile","description","undefined","execute","taskName","args","_","trimArgs","slice","log","error","text","Object","keys","join","constructor"],"mappings":";;;;+BAmBaA;;;eAAAA;;;uBAnBkB;mCAEG;mCACA;4BACP;;;;;;;;;;;;;;;;;;;;;;;AAS3B,MAAMC,QAAkD;IACpD,uBAAuBC,oCAAiB;IACxC,uBAAuBC,oCAAiB;IACxC,eAAeC,sBAAU;AAC7B;AAEO,MAAMJ;IAGTK,cAAc;QACV,OAAOC;IACX;IAEA,MACMC,UAAU;QACZ,MAAMC,WAAW,IAAI,CAACC,IAAI,CAACC,CAAC,CAAC,EAAE;QAE/B,IAAIF,YAAYP,OAAO;YACnB,gEAAgE;YAChE,MAAMU,WAAW;gBAAE,GAAG,IAAI,CAACF,IAAI;gBAAEC,GAAG,IAAI,CAACD,IAAI,CAACC,CAAC,CAACE,KAAK,CAAC;YAAG;YACzD,MAAM,IAAIX,KAAK,CAACO,SAAS,CAACG,UAAUJ,OAAO;YAC3C;QACJ;QAEAM,UAAG,CAACC,KAAK,CAAC,CAAC,eAAe,EAAEN,SAAS,CAAC,CAAC;QACvCK,UAAG,CAACE,IAAI,CAAC,CAAC,oBAAoB,EAAEC,OAAOC,IAAI,CAAChB,OAAOiB,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtE;IAnBAC,YAAY,AAAiBV,IAAU,CAAE;;aAAZA,OAAAA;IAAa;AAoB9C"}
1
+ {"version":3,"sources":["../../../src/cli/commands/run-task.ts"],"sourcesContent":["import { log, logErrors } from '../../utils';\nimport { Command } from './types';\nimport { SwcCompilePackage } from '../tasks/swc-compile-package';\nimport { TscCompilePackage } from '../tasks/tsc-compile-package';\nimport { TscCompile } from '../tasks/tsc-compile';\nimport { Task } from '../tasks/task';\n\ninterface Args {\n [key: string]: unknown;\n // eslint-disable-next-line @typescript-eslint/naming-convention\n _: string[];\n}\n\nconst tasks: Record<string, new (args: Args) => Task> = {\n 'tsc-compile-package': TscCompilePackage,\n 'swc-compile-package': SwcCompilePackage,\n 'tsc-compile': TscCompile,\n};\n\nexport class RunTask implements Command {\n constructor(private readonly args: Args) {}\n\n @logErrors\n async execute() {\n const taskName = this.args._[0];\n\n if (taskName in tasks) {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const trimArgs = { ...this.args, _: this.args._.slice(1) };\n await new tasks[taskName](trimArgs).execute();\n return;\n }\n\n log.error(`Unknown task: \"${taskName}\"`);\n log.text(`\\nSupported tasks: \"${Object.keys(tasks).join('\", \"')}\"`);\n }\n}\n"],"names":["RunTask","tasks","TscCompilePackage","SwcCompilePackage","TscCompile","execute","taskName","args","_","trimArgs","slice","log","error","text","Object","keys","join"],"mappings":";;;;+BAmBaA;;;eAAAA;;;uBAnBkB;mCAEG;mCACA;4BACP;;;;;;;;;;;;;;;;;;;;;;;AAS3B,MAAMC,QAAkD;IACpD,uBAAuBC,oCAAiB;IACxC,uBAAuBC,oCAAiB;IACxC,eAAeC,sBAAU;AAC7B;AAEO,MAAMJ;IAGT,MACMK,UAAU;QACZ,MAAMC,WAAW,IAAI,CAACC,IAAI,CAACC,CAAC,CAAC,EAAE;QAE/B,IAAIF,YAAYL,OAAO;YACnB,gEAAgE;YAChE,MAAMQ,WAAW;gBAAE,GAAG,IAAI,CAACF,IAAI;gBAAEC,GAAG,IAAI,CAACD,IAAI,CAACC,CAAC,CAACE,KAAK,CAAC;YAAG;YACzD,MAAM,IAAIT,KAAK,CAACK,SAAS,CAACG,UAAUJ,OAAO;YAC3C;QACJ;QAEAM,UAAG,CAACC,KAAK,CAAC,CAAC,eAAe,EAAEN,SAAS,CAAC,CAAC;QACvCK,UAAG,CAACE,IAAI,CAAC,CAAC,oBAAoB,EAAEC,OAAOC,IAAI,CAACd,OAAOe,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtE;IAfA,YAAY,AAAiBT,IAAU,CAAE;;aAAZA,OAAAA;IAAa;AAgB9C"}
@@ -6,14 +6,6 @@ interface Args {
6
6
  'scope'?: string | string[];
7
7
  'use-tsc'?: boolean;
8
8
  }
9
- export declare enum StartProcesses {
10
- Compile = 0,
11
- KendoUILicense = 1,
12
- PreparePackage = 2,
13
- PreparePackageWatch = 3,
14
- TypeCheck = 4,
15
- BundlePackage = 5
16
- }
17
9
  export declare class Start implements Command {
18
10
  private args;
19
11
  readonly greedy = true;
@@ -1 +1 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,UAAU,IAAI;IACV,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,oBAAY,cAAc;IACtB,OAAO,IAAA;IACP,cAAc,IAAA;IACd,cAAc,IAAA;IACd,mBAAmB,IAAA;IACnB,SAAS,IAAA;IACT,aAAa,IAAA;CAChB;AAED,qBAAa,KAAM,YAAW,OAAO;IAGrB,OAAO,CAAC,IAAI;IAFxB,QAAQ,CAAC,MAAM,QAAQ;gBAEH,IAAI,EAAE,IAAI;IAE9B,WAAW;IAKL,OAAO;CA+GhB"}
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,UAAU,IAAI;IACV,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAYD,qBAAa,KAAM,YAAW,OAAO;IAGrB,OAAO,CAAC,IAAI;IAFxB,QAAQ,CAAC,MAAM,QAAQ;gBAEH,IAAI,EAAE,IAAI;IAE9B,WAAW;IAKL,OAAO;CA+HhB"}