@servicetitan/startup 33.1.0 → 34.0.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 (449) hide show
  1. package/dist/cli/commands/build.d.ts +48 -22
  2. package/dist/cli/commands/build.d.ts.map +1 -1
  3. package/dist/cli/commands/build.js +72 -52
  4. package/dist/cli/commands/build.js.map +1 -1
  5. package/dist/cli/commands/bundle-package.d.ts +54 -10
  6. package/dist/cli/commands/bundle-package.d.ts.map +1 -1
  7. package/dist/cli/commands/bundle-package.js +40 -0
  8. package/dist/cli/commands/bundle-package.js.map +1 -1
  9. package/dist/cli/commands/clean.d.ts +4 -0
  10. package/dist/cli/commands/clean.d.ts.map +1 -1
  11. package/dist/cli/commands/clean.js +50 -16
  12. package/dist/cli/commands/clean.js.map +1 -1
  13. package/dist/cli/commands/convert-eslint-config.d.ts +1 -1
  14. package/dist/cli/commands/convert-eslint-config.d.ts.map +1 -1
  15. package/dist/cli/commands/convert-eslint-config.js +2 -15
  16. package/dist/cli/commands/convert-eslint-config.js.map +1 -1
  17. package/dist/cli/commands/eslint.d.ts +29 -7
  18. package/dist/cli/commands/eslint.d.ts.map +1 -1
  19. package/dist/cli/commands/eslint.js +18 -6
  20. package/dist/cli/commands/eslint.js.map +1 -1
  21. package/dist/cli/commands/get-command.d.ts.map +1 -1
  22. package/dist/cli/commands/get-command.js +6 -0
  23. package/dist/cli/commands/get-command.js.map +1 -1
  24. package/dist/cli/commands/index.d.ts +2 -2
  25. package/dist/cli/commands/index.d.ts.map +1 -1
  26. package/dist/cli/commands/index.js +2 -2
  27. package/dist/cli/commands/index.js.map +1 -1
  28. package/dist/cli/commands/init.d.ts +10 -6
  29. package/dist/cli/commands/init.d.ts.map +1 -1
  30. package/dist/cli/commands/init.js +8 -6
  31. package/dist/cli/commands/init.js.map +1 -1
  32. package/dist/cli/commands/install.d.ts +27 -15
  33. package/dist/cli/commands/install.d.ts.map +1 -1
  34. package/dist/cli/commands/install.js +18 -16
  35. package/dist/cli/commands/install.js.map +1 -1
  36. package/dist/cli/commands/kendo-ui-license.d.ts +1 -0
  37. package/dist/cli/commands/kendo-ui-license.d.ts.map +1 -1
  38. package/dist/cli/commands/kendo-ui-license.js +1 -0
  39. package/dist/cli/commands/kendo-ui-license.js.map +1 -1
  40. package/dist/cli/commands/lint.d.ts +51 -17
  41. package/dist/cli/commands/lint.d.ts.map +1 -1
  42. package/dist/cli/commands/lint.js +36 -26
  43. package/dist/cli/commands/lint.js.map +1 -1
  44. package/dist/cli/commands/mfe-check.d.ts +52 -0
  45. package/dist/cli/commands/mfe-check.d.ts.map +1 -0
  46. package/dist/cli/commands/mfe-check.js +145 -0
  47. package/dist/cli/commands/mfe-check.js.map +1 -0
  48. package/dist/cli/commands/mfe-generate-metadata.d.ts +20 -0
  49. package/dist/cli/commands/mfe-generate-metadata.d.ts.map +1 -0
  50. package/dist/cli/commands/mfe-generate-metadata.js +93 -0
  51. package/dist/cli/commands/mfe-generate-metadata.js.map +1 -0
  52. package/dist/cli/commands/mfe-list.d.ts +52 -15
  53. package/dist/cli/commands/mfe-list.d.ts.map +1 -1
  54. package/dist/cli/commands/mfe-list.js +42 -29
  55. package/dist/cli/commands/mfe-list.js.map +1 -1
  56. package/dist/cli/commands/mfe-package-clean.d.ts +34 -15
  57. package/dist/cli/commands/mfe-package-clean.d.ts.map +1 -1
  58. package/dist/cli/commands/mfe-package-clean.js +43 -34
  59. package/dist/cli/commands/mfe-package-clean.js.map +1 -1
  60. package/dist/cli/commands/mfe-package-publish.d.ts +60 -22
  61. package/dist/cli/commands/mfe-package-publish.d.ts.map +1 -1
  62. package/dist/cli/commands/mfe-package-publish.js +137 -78
  63. package/dist/cli/commands/mfe-package-publish.js.map +1 -1
  64. package/dist/cli/commands/mfe-package-rollback.d.ts +40 -0
  65. package/dist/cli/commands/mfe-package-rollback.d.ts.map +1 -0
  66. package/dist/cli/commands/mfe-package-rollback.js +119 -0
  67. package/dist/cli/commands/mfe-package-rollback.js.map +1 -0
  68. package/dist/cli/commands/mfe-publish.d.ts +36 -11
  69. package/dist/cli/commands/mfe-publish.d.ts.map +1 -1
  70. package/dist/cli/commands/mfe-publish.js +72 -22
  71. package/dist/cli/commands/mfe-publish.js.map +1 -1
  72. package/dist/cli/commands/prepare-package.d.ts +14 -5
  73. package/dist/cli/commands/prepare-package.d.ts.map +1 -1
  74. package/dist/cli/commands/prepare-package.js +20 -0
  75. package/dist/cli/commands/prepare-package.js.map +1 -1
  76. package/dist/cli/commands/review/review.d.ts +17 -8
  77. package/dist/cli/commands/review/review.d.ts.map +1 -1
  78. package/dist/cli/commands/review/review.js +16 -21
  79. package/dist/cli/commands/review/review.js.map +1 -1
  80. package/dist/cli/commands/review/rules/index.d.ts.map +1 -1
  81. package/dist/cli/commands/review/rules/index.js +3 -1
  82. package/dist/cli/commands/review/rules/index.js.map +1 -1
  83. package/dist/cli/commands/review/rules/no-deprecated-content-base.js.map +1 -1
  84. package/dist/cli/commands/review/rules/prefer-open-ended-peer-dependencies.js.map +1 -1
  85. package/dist/cli/commands/review/rules/require-compatible-launch-darkly-sdk.js +4 -4
  86. package/dist/cli/commands/review/rules/require-compatible-launch-darkly-sdk.js.map +1 -1
  87. package/dist/cli/commands/review/rules/require-one-collection-version.js +1 -2
  88. package/dist/cli/commands/review/rules/require-one-collection-version.js.map +1 -1
  89. package/dist/cli/commands/review/rules/require-one-uikit-version.d.ts.map +1 -1
  90. package/dist/cli/commands/review/rules/require-one-uikit-version.js +1 -0
  91. package/dist/cli/commands/review/rules/require-one-uikit-version.js.map +1 -1
  92. package/dist/cli/commands/review/rules/require-project-version-in-root-node-modules.d.ts.map +1 -1
  93. package/dist/cli/commands/review/rules/require-project-version-in-root-node-modules.js +8 -8
  94. package/dist/cli/commands/review/rules/require-project-version-in-root-node-modules.js.map +1 -1
  95. package/dist/cli/commands/review/rules/require-tsconfig-references.d.ts +24 -0
  96. package/dist/cli/commands/review/rules/require-tsconfig-references.d.ts.map +1 -0
  97. package/dist/cli/commands/review/rules/require-tsconfig-references.js +146 -0
  98. package/dist/cli/commands/review/rules/require-tsconfig-references.js.map +1 -0
  99. package/dist/cli/commands/review/utils/collate-dependencies.js +1 -3
  100. package/dist/cli/commands/review/utils/collate-dependencies.js.map +1 -1
  101. package/dist/cli/commands/review/utils/compare-version.js +2 -2
  102. package/dist/cli/commands/review/utils/compare-version.js.map +1 -1
  103. package/dist/cli/commands/review/utils/set-version.js +1 -1
  104. package/dist/cli/commands/review/utils/set-version.js.map +1 -1
  105. package/dist/cli/commands/run-task.d.ts +29 -7
  106. package/dist/cli/commands/run-task.d.ts.map +1 -1
  107. package/dist/cli/commands/run-task.js +21 -8
  108. package/dist/cli/commands/run-task.js.map +1 -1
  109. package/dist/cli/commands/run-task.test.js +14 -2
  110. package/dist/cli/commands/run-task.test.js.map +1 -1
  111. package/dist/cli/commands/start.d.ts +38 -18
  112. package/dist/cli/commands/start.d.ts.map +1 -1
  113. package/dist/cli/commands/start.js +65 -45
  114. package/dist/cli/commands/start.js.map +1 -1
  115. package/dist/cli/commands/stylelint.d.ts +29 -7
  116. package/dist/cli/commands/stylelint.d.ts.map +1 -1
  117. package/dist/cli/commands/stylelint.js +18 -6
  118. package/dist/cli/commands/stylelint.js.map +1 -1
  119. package/dist/cli/commands/test/runners/vitest.js +1 -1
  120. package/dist/cli/commands/test/runners/vitest.js.map +1 -1
  121. package/dist/cli/commands/test/tests.d.ts +25 -5
  122. package/dist/cli/commands/test/tests.d.ts.map +1 -1
  123. package/dist/cli/commands/test/tests.js +22 -14
  124. package/dist/cli/commands/test/tests.js.map +1 -1
  125. package/dist/cli/commands/types.d.ts +51 -10
  126. package/dist/cli/commands/types.d.ts.map +1 -1
  127. package/dist/cli/commands/types.js +1 -0
  128. package/dist/cli/commands/types.js.map +1 -1
  129. package/dist/cli/commands/upload-sourcemaps.d.ts +26 -6
  130. package/dist/cli/commands/upload-sourcemaps.d.ts.map +1 -1
  131. package/dist/cli/commands/upload-sourcemaps.js +27 -4
  132. package/dist/cli/commands/upload-sourcemaps.js.map +1 -1
  133. package/dist/cli/commands/utils.d.ts +4 -0
  134. package/dist/cli/commands/utils.d.ts.map +1 -0
  135. package/dist/cli/commands/utils.js +28 -0
  136. package/dist/cli/commands/utils.js.map +1 -0
  137. package/dist/cli/index.js +8 -5
  138. package/dist/cli/index.js.map +1 -1
  139. package/dist/cli/tasks/cli-task.d.ts.map +1 -1
  140. package/dist/cli/tasks/cli-task.js +1 -1
  141. package/dist/cli/tasks/cli-task.js.map +1 -1
  142. package/dist/cli/tasks/swc-compile-package.d.ts +1 -2
  143. package/dist/cli/tasks/swc-compile-package.d.ts.map +1 -1
  144. package/dist/cli/tasks/swc-compile-package.js.map +1 -1
  145. package/dist/cli/tasks/tsc-compile-package.d.ts +1 -2
  146. package/dist/cli/tasks/tsc-compile-package.d.ts.map +1 -1
  147. package/dist/cli/tasks/tsc-compile-package.js.map +1 -1
  148. package/dist/cli/tasks/tsc-compile.d.ts +1 -2
  149. package/dist/cli/tasks/tsc-compile.d.ts.map +1 -1
  150. package/dist/cli/tasks/tsc-compile.js.map +1 -1
  151. package/dist/cli/utils/bundle.d.ts.map +1 -1
  152. package/dist/cli/utils/bundle.js +2 -2
  153. package/dist/cli/utils/bundle.js.map +1 -1
  154. package/dist/cli/utils/check-startup-location.d.ts +4 -0
  155. package/dist/cli/utils/check-startup-location.d.ts.map +1 -0
  156. package/dist/cli/utils/check-startup-location.js +27 -0
  157. package/dist/cli/utils/check-startup-location.js.map +1 -0
  158. package/dist/cli/utils/cli-npm.d.ts +6 -0
  159. package/dist/cli/utils/cli-npm.d.ts.map +1 -1
  160. package/dist/cli/utils/cli-npm.js +25 -3
  161. package/dist/cli/utils/cli-npm.js.map +1 -1
  162. package/dist/cli/utils/compile-less.js +1 -1
  163. package/dist/cli/utils/compile-less.js.map +1 -1
  164. package/dist/cli/utils/constants.d.ts +2 -0
  165. package/dist/cli/utils/constants.d.ts.map +1 -0
  166. package/dist/cli/utils/constants.js +13 -0
  167. package/dist/cli/utils/constants.js.map +1 -0
  168. package/dist/cli/utils/copy-files.d.ts.map +1 -1
  169. package/dist/cli/utils/copy-files.js.map +1 -1
  170. package/dist/cli/utils/eslint.d.ts +1 -2
  171. package/dist/cli/utils/eslint.d.ts.map +1 -1
  172. package/dist/cli/utils/eslint.js.map +1 -1
  173. package/dist/cli/utils/index.d.ts +2 -0
  174. package/dist/cli/utils/index.d.ts.map +1 -1
  175. package/dist/cli/utils/index.js +2 -0
  176. package/dist/cli/utils/index.js.map +1 -1
  177. package/dist/cli/utils/is-module-installed.js +1 -1
  178. package/dist/cli/utils/is-module-installed.js.map +1 -1
  179. package/dist/cli/utils/lerna-exec.d.ts.map +1 -1
  180. package/dist/cli/utils/lerna-exec.js +1 -3
  181. package/dist/cli/utils/lerna-exec.js.map +1 -1
  182. package/dist/cli/utils/process-tree.js.map +1 -1
  183. package/dist/cli/utils/set-node-options.js +2 -4
  184. package/dist/cli/utils/set-node-options.js.map +1 -1
  185. package/dist/cli/utils/stylelint.d.ts +1 -2
  186. package/dist/cli/utils/stylelint.d.ts.map +1 -1
  187. package/dist/cli/utils/stylelint.js.map +1 -1
  188. package/dist/index.d.ts +1 -1
  189. package/dist/index.d.ts.map +1 -1
  190. package/dist/index.js +1 -1
  191. package/dist/index.js.map +1 -1
  192. package/dist/jest/resolver.js +2 -2
  193. package/dist/jest/resolver.js.map +1 -1
  194. package/dist/jest/svg-transformer.d.ts.map +1 -1
  195. package/dist/jest/svg-transformer.js.map +1 -1
  196. package/dist/utils/find-packages.js +1 -1
  197. package/dist/utils/find-packages.js.map +1 -1
  198. package/dist/utils/format-relative-date.js +1 -1
  199. package/dist/utils/format-relative-date.js.map +1 -1
  200. package/dist/utils/get-configuration.d.ts +3 -0
  201. package/dist/utils/get-configuration.d.ts.map +1 -1
  202. package/dist/utils/get-configuration.js +14 -11
  203. package/dist/utils/get-configuration.js.map +1 -1
  204. package/dist/utils/get-destination-folders.d.ts.map +1 -1
  205. package/dist/utils/get-destination-folders.js.map +1 -1
  206. package/dist/utils/get-folders.d.ts.map +1 -1
  207. package/dist/utils/get-folders.js.map +1 -1
  208. package/dist/utils/get-jest-config.js +1 -1
  209. package/dist/utils/get-jest-config.js.map +1 -1
  210. package/dist/utils/get-package-data.js +1 -1
  211. package/dist/utils/get-package-data.js.map +1 -1
  212. package/dist/utils/get-packages.js.map +1 -1
  213. package/dist/utils/index.d.ts +1 -0
  214. package/dist/utils/index.d.ts.map +1 -1
  215. package/dist/utils/index.js +1 -0
  216. package/dist/utils/index.js.map +1 -1
  217. package/dist/utils/load-shared-dependencies.js.map +1 -1
  218. package/dist/utils/prettify.d.ts +13 -0
  219. package/dist/utils/prettify.d.ts.map +1 -0
  220. package/dist/utils/prettify.js +48 -0
  221. package/dist/utils/prettify.js.map +1 -0
  222. package/dist/utils/read-json.js +1 -1
  223. package/dist/utils/read-json.js.map +1 -1
  224. package/dist/utils/transform-svg.js +2 -2
  225. package/dist/utils/transform-svg.js.map +1 -1
  226. package/dist/webpack/configs/cache-config.js +1 -1
  227. package/dist/webpack/configs/cache-config.js.map +1 -1
  228. package/dist/webpack/configs/optimization-config.js +3 -4
  229. package/dist/webpack/configs/optimization-config.js.map +1 -1
  230. package/dist/webpack/configs/output-config.js +1 -1
  231. package/dist/webpack/configs/output-config.js.map +1 -1
  232. package/dist/webpack/configs/plugins/assets-manifest-plugin.d.ts.map +1 -1
  233. package/dist/webpack/configs/plugins/assets-manifest-plugin.js +5 -5
  234. package/dist/webpack/configs/plugins/assets-manifest-plugin.js.map +1 -1
  235. package/dist/webpack/configs/plugins/bundle-analyser-plugin.d.ts.map +1 -1
  236. package/dist/webpack/configs/plugins/bundle-analyser-plugin.js +1 -1
  237. package/dist/webpack/configs/plugins/bundle-analyser-plugin.js.map +1 -1
  238. package/dist/webpack/configs/plugins/define-exposed-dependencies-plugin.d.ts.map +1 -1
  239. package/dist/webpack/configs/plugins/define-exposed-dependencies-plugin.js +6 -9
  240. package/dist/webpack/configs/plugins/define-exposed-dependencies-plugin.js.map +1 -1
  241. package/dist/webpack/configs/plugins/html-tags-plugin.js +1 -1
  242. package/dist/webpack/configs/plugins/html-tags-plugin.js.map +1 -1
  243. package/dist/webpack/configs/plugins/ignore-plugin/check-resource.js +1 -1
  244. package/dist/webpack/configs/plugins/ignore-plugin/check-resource.js.map +1 -1
  245. package/dist/webpack/configs/plugins/ignore-plugin/ignore-plugin.d.ts.map +1 -1
  246. package/dist/webpack/configs/plugins/ignore-plugin/ignore-plugin.js.map +1 -1
  247. package/dist/webpack/configs/plugins/moment-locales-plugin.js +1 -1
  248. package/dist/webpack/configs/plugins/moment-locales-plugin.js.map +1 -1
  249. package/dist/webpack/configs/plugins/watch-run-plugin.d.ts.map +1 -1
  250. package/dist/webpack/configs/plugins/watch-run-plugin.js.map +1 -1
  251. package/dist/webpack/configs/types.d.ts +1 -0
  252. package/dist/webpack/configs/types.d.ts.map +1 -1
  253. package/dist/webpack/configs/utils/build-metadata.d.ts +10 -0
  254. package/dist/webpack/configs/utils/build-metadata.d.ts.map +1 -0
  255. package/dist/webpack/configs/utils/build-metadata.js +50 -0
  256. package/dist/webpack/configs/utils/build-metadata.js.map +1 -0
  257. package/dist/webpack/configs/utils/generate-metadata.d.ts.map +1 -1
  258. package/dist/webpack/configs/utils/generate-metadata.js +5 -24
  259. package/dist/webpack/configs/utils/generate-metadata.js.map +1 -1
  260. package/dist/webpack/configs/utils/get-exposed-dependencies.d.ts +3 -0
  261. package/dist/webpack/configs/utils/get-exposed-dependencies.d.ts.map +1 -0
  262. package/dist/webpack/configs/utils/get-exposed-dependencies.js +21 -0
  263. package/dist/webpack/configs/utils/get-exposed-dependencies.js.map +1 -0
  264. package/dist/webpack/configs/utils/get-launchdarkly-sdk-version.js +1 -1
  265. package/dist/webpack/configs/utils/get-launchdarkly-sdk-version.js.map +1 -1
  266. package/dist/webpack/configs/utils/index.d.ts +1 -0
  267. package/dist/webpack/configs/utils/index.d.ts.map +1 -1
  268. package/dist/webpack/configs/utils/index.js +1 -0
  269. package/dist/webpack/configs/utils/index.js.map +1 -1
  270. package/dist/webpack/create-webpack-config.js +10 -4
  271. package/dist/webpack/create-webpack-config.js.map +1 -1
  272. package/dist/webpack/loaders/expose-loader/index.d.ts.map +1 -1
  273. package/dist/webpack/loaders/expose-loader/index.js.map +1 -1
  274. package/dist/webpack/loaders/expose-loader/runtime/get-global-this.js +1 -1
  275. package/dist/webpack/loaders/expose-loader/runtime/get-global-this.js.map +1 -1
  276. package/dist/webpack/loaders/expose-loader/utils/get-new-user-request.js +2 -2
  277. package/dist/webpack/loaders/expose-loader/utils/get-new-user-request.js.map +1 -1
  278. package/dist/webpack/utils/stringify-config.js +2 -2
  279. package/dist/webpack/utils/stringify-config.js.map +1 -1
  280. package/dist/webpack/utils/testing/get-compiler.d.ts.map +1 -1
  281. package/dist/webpack/utils/testing/get-compiler.js +1 -1
  282. package/dist/webpack/utils/testing/get-compiler.js.map +1 -1
  283. package/dist/webpack/utils/testing/get-errors.d.ts.map +1 -1
  284. package/dist/webpack/utils/testing/get-errors.js.map +1 -1
  285. package/dist/webpack/utils/testing/get-warnings.d.ts.map +1 -1
  286. package/dist/webpack/utils/testing/get-warnings.js.map +1 -1
  287. package/dist/webpack/utils/testing/read-asset.d.ts.map +1 -1
  288. package/dist/webpack/utils/testing/read-asset.js +1 -1
  289. package/dist/webpack/utils/testing/read-asset.js.map +1 -1
  290. package/dist/webpack/utils/testing/read-assets.d.ts.map +1 -1
  291. package/dist/webpack/utils/testing/read-assets.js.map +1 -1
  292. package/package.json +35 -41
  293. package/src/cli/commands/__tests__/build.test.ts +32 -9
  294. package/src/cli/commands/__tests__/bundle-package.test.ts +2 -1
  295. package/src/cli/commands/__tests__/clean.test.ts +99 -8
  296. package/src/cli/commands/__tests__/convert-eslint-config.test.ts +14 -9
  297. package/src/cli/commands/__tests__/eslint.test.ts +1 -1
  298. package/src/cli/commands/__tests__/get-command.test.ts +3 -1
  299. package/src/cli/commands/__tests__/init.test.ts +14 -1
  300. package/src/cli/commands/__tests__/install.test.ts +6 -2
  301. package/src/cli/commands/__tests__/kendo-ui-license.test.ts +7 -2
  302. package/src/cli/commands/__tests__/lint.test.ts +4 -2
  303. package/src/cli/commands/__tests__/mfe-check.test.ts +346 -0
  304. package/src/cli/commands/__tests__/mfe-generate-metadata.test.ts +160 -0
  305. package/src/cli/commands/__tests__/mfe-list.test.ts +8 -1
  306. package/src/cli/commands/__tests__/mfe-package-clean.test.ts +0 -1
  307. package/src/cli/commands/__tests__/mfe-package-publish.test.ts +322 -93
  308. package/src/cli/commands/__tests__/mfe-package-rollback.test.ts +196 -0
  309. package/src/cli/commands/__tests__/mfe-publish.test.ts +65 -5
  310. package/src/cli/commands/__tests__/prepare-package.test.ts +3 -0
  311. package/src/cli/commands/__tests__/start.test.ts +30 -7
  312. package/src/cli/commands/__tests__/stylelint.test.ts +1 -1
  313. package/src/cli/commands/__tests__/styles-check.test.ts +1 -2
  314. package/src/cli/commands/__tests__/upload-sourcemaps.test.ts +3 -6
  315. package/src/cli/commands/build.ts +35 -26
  316. package/src/cli/commands/bundle-package.ts +11 -10
  317. package/src/cli/commands/clean.ts +51 -5
  318. package/src/cli/commands/convert-eslint-config.ts +3 -12
  319. package/src/cli/commands/eslint.ts +9 -11
  320. package/src/cli/commands/get-command.ts +6 -1
  321. package/src/cli/commands/index.ts +2 -2
  322. package/src/cli/commands/init.ts +7 -9
  323. package/src/cli/commands/install.ts +11 -13
  324. package/src/cli/commands/kendo-ui-license.ts +1 -1
  325. package/src/cli/commands/lint.ts +12 -18
  326. package/src/cli/commands/mfe-check.ts +166 -0
  327. package/src/cli/commands/mfe-generate-metadata.ts +69 -0
  328. package/src/cli/commands/mfe-list.ts +28 -30
  329. package/src/cli/commands/mfe-package-clean.ts +29 -34
  330. package/src/cli/commands/mfe-package-publish.ts +153 -87
  331. package/src/cli/commands/mfe-package-rollback.ts +100 -0
  332. package/src/cli/commands/mfe-publish.ts +80 -27
  333. package/src/cli/commands/prepare-package.ts +6 -5
  334. package/src/cli/commands/review/__tests__/review.test.ts +18 -19
  335. package/src/cli/commands/review/review.ts +11 -20
  336. package/src/cli/commands/review/rules/__tests__/no-deprecated-content-base.test.ts +1 -1
  337. package/src/cli/commands/review/rules/__tests__/no-deprecated-startup-install.test.ts +0 -1
  338. package/src/cli/commands/review/rules/__tests__/no-direct-peer-dependencies.test.ts +1 -1
  339. package/src/cli/commands/review/rules/__tests__/no-typescript-entry-point.test.ts +0 -1
  340. package/src/cli/commands/review/rules/__tests__/require-all-react-dependencies.test.ts +0 -1
  341. package/src/cli/commands/review/rules/__tests__/require-compatible-launch-darkly-sdk.test.ts +2 -2
  342. package/src/cli/commands/review/rules/__tests__/require-explicit-side-effects.test.ts +0 -1
  343. package/src/cli/commands/review/rules/__tests__/require-npmrc.test.ts +0 -1
  344. package/src/cli/commands/review/rules/__tests__/require-one-anvil-uikit-contrib-version.test.ts +1 -2
  345. package/src/cli/commands/review/rules/__tests__/require-one-collection-version.test.ts +0 -1
  346. package/src/cli/commands/review/rules/__tests__/require-one-package-version.test.ts +0 -1
  347. package/src/cli/commands/review/rules/__tests__/require-one-react-version.test.ts +0 -1
  348. package/src/cli/commands/review/rules/__tests__/require-one-uikit-version.test.ts +1 -1
  349. package/src/cli/commands/review/rules/__tests__/require-project-version-in-root-node-modules.test.ts +2 -3
  350. package/src/cli/commands/review/rules/__tests__/require-servicetitan-scope.test.ts +0 -1
  351. package/src/cli/commands/review/rules/__tests__/require-tsconfig-references.test.ts +315 -0
  352. package/src/cli/commands/review/rules/index.ts +2 -0
  353. package/src/cli/commands/review/rules/require-compatible-launch-darkly-sdk.ts +1 -1
  354. package/src/cli/commands/review/rules/require-one-uikit-version.ts +1 -0
  355. package/src/cli/commands/review/rules/require-project-version-in-root-node-modules.ts +3 -3
  356. package/src/cli/commands/review/rules/require-tsconfig-references.ts +157 -0
  357. package/src/cli/commands/review/utils/__tests__/set-version.test.ts +0 -1
  358. package/src/cli/commands/run-task.test.ts +15 -3
  359. package/src/cli/commands/run-task.ts +12 -14
  360. package/src/cli/commands/start.ts +75 -59
  361. package/src/cli/commands/stylelint.ts +9 -11
  362. package/src/cli/commands/test/runners/__tests__/jest.test.ts +1 -2
  363. package/src/cli/commands/test/runners/vitest.ts +1 -1
  364. package/src/cli/commands/test/tests.ts +13 -15
  365. package/src/cli/commands/types.ts +53 -7
  366. package/src/cli/commands/upload-sourcemaps.ts +14 -12
  367. package/src/cli/commands/utils.ts +6 -0
  368. package/src/cli/index.ts +11 -7
  369. package/src/cli/tasks/__tests__/cli-task.test.ts +1 -1
  370. package/src/cli/tasks/__tests__/swc-compile-package.test.ts +3 -1
  371. package/src/cli/tasks/__tests__/tsc-compile-package.test.ts +2 -0
  372. package/src/cli/tasks/__tests__/tsc-compile.test.ts +3 -13
  373. package/src/cli/tasks/cli-task.ts +1 -1
  374. package/src/cli/tasks/swc-compile-package.ts +1 -3
  375. package/src/cli/tasks/tsc-compile-package.ts +1 -2
  376. package/src/cli/tasks/tsc-compile.ts +1 -2
  377. package/src/cli/utils/__tests__/bundle.test.ts +1 -2
  378. package/src/cli/utils/__tests__/check-args.test.ts +1 -1
  379. package/src/cli/utils/__tests__/check-startup-location.test.ts +88 -0
  380. package/src/cli/utils/__tests__/cli-git.test.ts +1 -2
  381. package/src/cli/utils/__tests__/cli-npm.test.ts +51 -2
  382. package/src/cli/utils/__tests__/cli-os.test.ts +1 -2
  383. package/src/cli/utils/__tests__/compile.test.ts +1 -1
  384. package/src/cli/utils/__tests__/copy-files.test.ts +0 -1
  385. package/src/cli/utils/__tests__/eslint.test.ts +1 -1
  386. package/src/cli/utils/__tests__/lerna-exec.test.ts +1 -2
  387. package/src/cli/utils/__tests__/maybe-create-git-folder.test.ts +0 -1
  388. package/src/cli/utils/__tests__/set-node-options.test.ts +0 -1
  389. package/src/cli/utils/__tests__/stylelint.test.ts +1 -1
  390. package/src/cli/utils/bundle.ts +1 -3
  391. package/src/cli/utils/check-startup-location.ts +21 -0
  392. package/src/cli/utils/cli-npm.ts +22 -0
  393. package/src/cli/utils/compile-less.ts +1 -1
  394. package/src/cli/utils/constants.ts +1 -0
  395. package/src/cli/utils/copy-files.ts +0 -1
  396. package/src/cli/utils/eslint.ts +1 -3
  397. package/src/cli/utils/index.ts +2 -0
  398. package/src/cli/utils/lerna-exec.ts +0 -1
  399. package/src/cli/utils/stylelint.ts +1 -2
  400. package/src/index.ts +1 -1
  401. package/src/jest/svg-transformer.ts +0 -1
  402. package/src/utils/__tests__/get-branch-configs.test.ts +0 -1
  403. package/src/utils/__tests__/get-configuration.test.ts +0 -1
  404. package/src/utils/__tests__/get-destination-folders.test.ts +1 -2
  405. package/src/utils/__tests__/get-folders.test.ts +0 -1
  406. package/src/utils/__tests__/get-jest-config.test.ts +1 -2
  407. package/src/utils/__tests__/get-package-data.test.ts +1 -2
  408. package/src/utils/__tests__/get-packages.test.ts +1 -1
  409. package/src/utils/__tests__/get-startup-version.test.ts +0 -1
  410. package/src/utils/__tests__/get-tsconfig.test.ts +0 -1
  411. package/src/utils/__tests__/load-shared-dependencies.test.ts +1 -1
  412. package/src/utils/__tests__/log.test.ts +1 -1
  413. package/src/utils/__tests__/prettify.test.ts +80 -0
  414. package/src/utils/__tests__/read-json.test.ts +0 -1
  415. package/src/utils/find-packages.ts +1 -1
  416. package/src/utils/get-configuration.ts +8 -7
  417. package/src/utils/get-destination-folders.ts +0 -1
  418. package/src/utils/get-folders.ts +0 -1
  419. package/src/utils/get-jest-config.ts +1 -1
  420. package/src/utils/index.ts +1 -0
  421. package/src/utils/prettify.ts +36 -0
  422. package/src/webpack/__tests__/create-webpack-config-shared-dependencies.test.ts +6 -2
  423. package/src/webpack/__tests__/create-webpack-config-web-component.test.ts +7 -4
  424. package/src/webpack/__tests__/create-webpack-config.test.ts +8 -4
  425. package/src/webpack/configs/cache-config.ts +1 -1
  426. package/src/webpack/configs/plugins/assets-manifest-plugin.ts +1 -1
  427. package/src/webpack/configs/plugins/bundle-analyser-plugin.ts +2 -2
  428. package/src/webpack/configs/plugins/define-exposed-dependencies-plugin.ts +6 -15
  429. package/src/webpack/configs/plugins/ignore-plugin/__tests__/get-package-json.test.ts +1 -1
  430. package/src/webpack/configs/plugins/ignore-plugin/__tests__/is-optional-peer-dependency.test.ts +1 -1
  431. package/src/webpack/configs/plugins/ignore-plugin/ignore-plugin.ts +0 -1
  432. package/src/webpack/configs/plugins/watch-run-plugin.ts +0 -1
  433. package/src/webpack/configs/types.ts +1 -0
  434. package/src/webpack/configs/utils/__tests__/build-metadata.test.ts +71 -0
  435. package/src/webpack/configs/utils/__tests__/generate-metadata.test.ts +42 -46
  436. package/src/webpack/configs/utils/__tests__/get-exposed-dependencies.test.ts +39 -0
  437. package/src/webpack/configs/utils/__tests__/get-web-components-version.test.ts +0 -1
  438. package/src/webpack/configs/utils/build-metadata.ts +40 -0
  439. package/src/webpack/configs/utils/generate-metadata.ts +7 -21
  440. package/src/webpack/configs/utils/get-exposed-dependencies.ts +17 -0
  441. package/src/webpack/configs/utils/index.ts +1 -0
  442. package/src/webpack/create-webpack-config.ts +3 -3
  443. package/src/webpack/loaders/expose-loader/__tests__/index.test.ts +0 -2
  444. package/src/webpack/loaders/expose-loader/index.ts +0 -1
  445. package/src/webpack/utils/testing/get-compiler.ts +1 -3
  446. package/src/webpack/utils/testing/get-errors.ts +0 -1
  447. package/src/webpack/utils/testing/get-warnings.ts +0 -1
  448. package/src/webpack/utils/testing/read-asset.ts +1 -2
  449. package/src/webpack/utils/testing/read-assets.ts +0 -1
@@ -1,25 +1,45 @@
1
1
  import { Config } from '@jest/types';
2
2
  import { Command } from '../types';
3
- type Args = Config.Argv & {
4
- runner?: 'jest' | 'vitest';
5
- runnerArgs?: string[];
3
+ declare const options: {
4
+ _: {
5
+ description: string;
6
+ array: true;
7
+ string: true;
8
+ };
9
+ runner: {
10
+ choices: readonly ["jest", "vitest"];
11
+ description: string;
12
+ defaultDescription: string;
13
+ };
14
+ runnerArgs: {
15
+ array: true;
16
+ string: true;
17
+ hidden: true;
18
+ };
6
19
  };
7
20
  /**
8
21
  * This class is named "Tests" instead of "Test" because the corresponding
9
22
  * "test.ts" would be interpreted as a test file.
10
23
  */
11
- export declare class Tests extends Command<Args> {
24
+ export declare class Tests extends Command<typeof options, Config.Argv> {
12
25
  static readonly description = "Run tests";
13
26
  static readonly greedy = true;
14
27
  static readonly options: {
15
28
  _: {
16
29
  description: string;
30
+ array: true;
31
+ string: true;
17
32
  };
18
33
  runner: {
19
- choices: string[];
34
+ choices: readonly ["jest", "vitest"];
20
35
  description: string;
21
36
  defaultDescription: string;
22
37
  };
38
+ runnerArgs: {
39
+ array: true;
40
+ string: true;
41
+ hidden: true;
42
+ };
23
43
  };
24
44
  execute(): Promise<void>;
25
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/test/tests.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnC,KAAK,IAAI,GAAG,MAAM,CAAC,IAAI,GAAG;IACtB,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB,CAAC;AAEF;;;GAGG;AACH,qBAAa,KAAM,SAAQ,OAAO,CAAC,IAAI,CAAC;IACpC,MAAM,CAAC,QAAQ,CAAC,WAAW,eAAe;IAC1C,MAAM,CAAC,QAAQ,CAAC,MAAM,QAAQ;IAC9B,MAAM,CAAC,QAAQ,CAAC,OAAO;;;;;;;;;MAOrB;IAGI,OAAO;CAehB"}
1
+ {"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/test/tests.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,OAAO,EAAkB,MAAM,UAAU,CAAC;AAGnD,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;CAQa,CAAC;AAE3B;;;GAGG;AACH,qBAAa,KAAM,SAAQ,OAAO,CAAC,OAAO,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC;IAC3D,MAAM,CAAC,QAAQ,CAAC,WAAW,eAAe;IAC1C,MAAM,CAAC,QAAQ,CAAC,MAAM,QAAQ;IAC9B,MAAM,CAAC,QAAQ,CAAC,OAAO;;;;;;;;;;;;;;;;MAAW;IAG5B,OAAO;CAehB"}
@@ -33,10 +33,30 @@ function _ts_decorate(decorators, target, key, desc) {
33
33
  function _ts_metadata(k, v) {
34
34
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
35
35
  }
36
+ const options = {
37
+ _: {
38
+ description: '[runnerArgs...]',
39
+ array: true,
40
+ string: true
41
+ },
42
+ runner: {
43
+ choices: [
44
+ 'jest',
45
+ 'vitest'
46
+ ],
47
+ description: 'Test runner',
48
+ defaultDescription: 'jest'
49
+ },
50
+ runnerArgs: {
51
+ array: true,
52
+ string: true,
53
+ hidden: true
54
+ }
55
+ };
36
56
  class Tests extends _types.Command {
37
57
  async execute() {
38
58
  var _getConfiguration_testRunner;
39
- const { _, runner = (_getConfiguration_testRunner = (0, _utils.getConfiguration)().testRunner) !== null && _getConfiguration_testRunner !== void 0 ? _getConfiguration_testRunner : 'jest', runnerArgs = [], ...restOptions } = this.args;
59
+ const { _ = [], runner = (_getConfiguration_testRunner = (0, _utils.getConfiguration)().testRunner) !== null && _getConfiguration_testRunner !== void 0 ? _getConfiguration_testRunner : 'jest', runnerArgs = [], ...restOptions } = this.args;
40
60
  if (runner === 'jest') {
41
61
  await new _runners.Jest({
42
62
  _: [
@@ -54,19 +74,7 @@ class Tests extends _types.Command {
54
74
  }
55
75
  _define_property(Tests, "description", 'Run tests');
56
76
  _define_property(Tests, "greedy", true);
57
- _define_property(Tests, "options", {
58
- _: {
59
- description: '[runnerArgs...]'
60
- },
61
- runner: {
62
- choices: [
63
- 'jest',
64
- 'vitest'
65
- ],
66
- description: 'Test runner',
67
- defaultDescription: 'jest'
68
- }
69
- });
77
+ _define_property(Tests, "options", options);
70
78
  _ts_decorate([
71
79
  _utils.logErrors,
72
80
  _ts_metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/commands/test/tests.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport { Config } from '@jest/types';\nimport { getConfiguration, logErrors } from '../../../utils';\nimport { Command } from '../types';\nimport { Jest, Vitest } from './runners';\n\ntype Args = Config.Argv & {\n runner?: 'jest' | 'vitest';\n runnerArgs?: string[];\n};\n\n/**\n * This class is named \"Tests\" instead of \"Test\" because the corresponding\n * \"test.ts\" would be interpreted as a test file.\n */\nexport class Tests extends Command<Args> {\n static readonly description = 'Run tests';\n static readonly greedy = true;\n static readonly options = {\n _: { description: '[runnerArgs...]' },\n runner: {\n choices: ['jest', 'vitest'],\n description: 'Test runner',\n defaultDescription: 'jest',\n },\n };\n\n @logErrors\n async execute() {\n const {\n _,\n runner = getConfiguration().testRunner ?? 'jest',\n runnerArgs = [],\n ...restOptions\n } = this.args;\n if (runner === 'jest') {\n await new Jest({ _: [..._, ...runnerArgs], ...restOptions }).run();\n } else if (runner === 'vitest') {\n await new Vitest().run();\n } else {\n throw new Error(`unrecognized runner \"${runner}\"`);\n }\n }\n}\n"],"names":["Tests","Command","execute","getConfiguration","_","runner","testRunner","runnerArgs","restOptions","args","Jest","run","Vitest","Error","description","greedy","options","choices","defaultDescription"],"mappings":"AAAA,uDAAuD;;;;+BAe1CA;;;eAAAA;;;uBAb+B;uBACpB;yBACK;;;;;;;;;;;;;;;;;;;;;;;AAWtB,MAAMA,cAAcC,cAAO;IAY9B,MACMC,UAAU;YAGCC;QAFb,MAAM,EACFC,CAAC,EACDC,SAASF,CAAAA,+BAAAA,IAAAA,uBAAgB,IAAGG,UAAU,cAA7BH,0CAAAA,+BAAiC,MAAM,EAChDI,aAAa,EAAE,EACf,GAAGC,aACN,GAAG,IAAI,CAACC,IAAI;QACb,IAAIJ,WAAW,QAAQ;YACnB,MAAM,IAAIK,aAAI,CAAC;gBAAEN,GAAG;uBAAIA;uBAAMG;iBAAW;gBAAE,GAAGC,WAAW;YAAC,GAAGG,GAAG;QACpE,OAAO,IAAIN,WAAW,UAAU;YAC5B,MAAM,IAAIO,eAAM,GAAGD,GAAG;QAC1B,OAAO;YACH,MAAM,IAAIE,MAAM,CAAC,qBAAqB,EAAER,OAAO,CAAC,CAAC;QACrD;IACJ;AACJ;AA3BI,iBADSL,OACOc,eAAc;AAC9B,iBAFSd,OAEOe,UAAS;AACzB,iBAHSf,OAGOgB,WAAU;IACtBZ,GAAG;QAAEU,aAAa;IAAkB;IACpCT,QAAQ;QACJY,SAAS;YAAC;YAAQ;SAAS;QAC3BH,aAAa;QACbI,oBAAoB;IACxB;AACJ"}
1
+ {"version":3,"sources":["../../../../src/cli/commands/test/tests.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport { Config } from '@jest/types';\nimport { getConfiguration, logErrors } from '../../../utils';\nimport { Command, CommandOptions } from '../types';\nimport { Jest, Vitest } from './runners';\n\nconst options = {\n _: { description: '[runnerArgs...]', array: true, string: true },\n runner: {\n choices: ['jest', 'vitest'] as const,\n description: 'Test runner',\n defaultDescription: 'jest',\n },\n runnerArgs: { array: true, string: true, hidden: true },\n} satisfies CommandOptions;\n\n/**\n * This class is named \"Tests\" instead of \"Test\" because the corresponding\n * \"test.ts\" would be interpreted as a test file.\n */\nexport class Tests extends Command<typeof options, Config.Argv> {\n static readonly description = 'Run tests';\n static readonly greedy = true;\n static readonly options = options;\n\n @logErrors\n async execute() {\n const {\n _ = [],\n runner = getConfiguration().testRunner ?? 'jest',\n runnerArgs = [],\n ...restOptions\n } = this.args;\n if (runner === 'jest') {\n await new Jest({ _: [..._, ...runnerArgs], ...restOptions }).run();\n } else if (runner === 'vitest') {\n await new Vitest().run();\n } else {\n throw new Error(`unrecognized runner \"${runner}\"`);\n }\n }\n}\n"],"names":["Tests","options","_","description","array","string","runner","choices","defaultDescription","runnerArgs","hidden","Command","execute","getConfiguration","testRunner","restOptions","args","Jest","run","Vitest","Error","greedy"],"mappings":"AAAA,uDAAuD;;;;+BAoB1CA;;;eAAAA;;;uBAlB+B;uBACJ;yBACX;;;;;;;;;;;;;;;;;;;;;;;AAE7B,MAAMC,UAAU;IACZC,GAAG;QAAEC,aAAa;QAAmBC,OAAO;QAAMC,QAAQ;IAAK;IAC/DC,QAAQ;QACJC,SAAS;YAAC;YAAQ;SAAS;QAC3BJ,aAAa;QACbK,oBAAoB;IACxB;IACAC,YAAY;QAAEL,OAAO;QAAMC,QAAQ;QAAMK,QAAQ;IAAK;AAC1D;AAMO,MAAMV,cAAcW,cAAO;IAK9B,MACMC,UAAU;YAGCC;QAFb,MAAM,EACFX,IAAI,EAAE,EACNI,UAASO,+BAAAA,IAAAA,uBAAgB,IAAGC,UAAU,cAA7BD,0CAAAA,+BAAiC,MAAM,EAChDJ,aAAa,EAAE,EACf,GAAGM,aACN,GAAG,IAAI,CAACC,IAAI;QACb,IAAIV,WAAW,QAAQ;YACnB,MAAM,IAAIW,aAAI,CAAC;gBAAEf,GAAG;uBAAIA;uBAAMO;iBAAW;gBAAE,GAAGM,WAAW;YAAC,GAAGG,GAAG;QACpE,OAAO,IAAIZ,WAAW,UAAU;YAC5B,MAAM,IAAIa,eAAM,GAAGD,GAAG;QAC1B,OAAO;YACH,MAAM,IAAIE,MAAM,CAAC,qBAAqB,EAAEd,OAAO,CAAC,CAAC;QACrD;IACJ;AACJ;AApBI,iBADSN,OACOG,eAAc;AAC9B,iBAFSH,OAEOqB,UAAS;AACzB,iBAHSrB,OAGOC,WAAUA"}
@@ -1,16 +1,57 @@
1
- import type { Options } from 'yargs';
2
- export interface CommandArgs {
3
- [key: string]: unknown;
4
- }
5
- export declare abstract class Command<T extends CommandArgs = CommandArgs> {
6
- protected readonly args: T;
1
+ import type { InferredOptionTypes, Options } from 'yargs';
2
+ export type CommandOptions = Record<string, Options>;
3
+ /**
4
+ * Expands a type by resolving any type aliases and intersections into a single object type.
5
+ *
6
+ * This is useful for flattening complex type compositions so their properties are materialized,
7
+ * especially when working with mapped types and conditional types.
8
+ *
9
+ * @template T - The type to expand.
10
+ * @example
11
+ * type Input = { a: string } & { b: number };
12
+ * type Output = Expand<Input>; // { a: string; b: number }
13
+ */
14
+ type Expand<T> = T extends infer O ? {
15
+ [K in keyof O]: O[K];
16
+ } : never;
17
+ /**
18
+ * Transforms a type so that properties whose value type includes `undefined`
19
+ * become optional (`?:`), while properties that cannot be `undefined` remain required.
20
+ *
21
+ * @example
22
+ * type Input = { a: string; b: string | undefined; c?: number };
23
+ * type Output = UndefinedToOptional<Input>;
24
+ * // Results in: { a: string; b?: string | undefined; c?: number }
25
+ */
26
+ type UndefinedToOptional<T> = {
27
+ [K in keyof T as undefined extends T[K] ? never : K]: T[K];
28
+ } & {
29
+ [K in keyof T as undefined extends T[K] ? K : never]?: T[K];
30
+ };
31
+ /**
32
+ * Infers the command args type from a yargs options definition object.
33
+ * Makes properties optional unless demandOption is set to true.
34
+ *
35
+ * @example
36
+ * const options = {
37
+ * watch: { boolean: true, description: '...' },
38
+ * outputPath: { string: true, description: '...' },
39
+ * config: { string: true, demandOption: true, description: '...' },
40
+ * } satisfies CommandOptions;
41
+ *
42
+ * type Args = InferArgs<typeof options>;
43
+ * // Results in: { watch?: boolean; outputPath?: string; config: string; }
44
+ */
45
+ export type InferArgs<T extends CommandOptions, U = unknown> = Expand<UndefinedToOptional<InferredOptionTypes<T>>> & U;
46
+ export declare abstract class Command<T extends CommandOptions = CommandOptions, U = unknown> {
47
+ protected readonly args: InferArgs<T, U>;
48
+ static readonly allowRunFromGlobal?: boolean;
7
49
  static readonly description?: string;
8
50
  static readonly greedy?: boolean;
9
- static readonly options?: {
10
- [key: string]: Options;
11
- };
12
- constructor(args: T);
51
+ static readonly options?: CommandOptions;
52
+ constructor(args: InferArgs<T, U>);
13
53
  abstract execute(): Promise<void>;
14
54
  }
15
55
  export type Newable<T> = new (...args: any[]) => T;
56
+ export {};
16
57
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAErC,MAAM,WAAW,WAAW;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,8BAAsB,OAAO,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW;IAKjD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAJtC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;gBAEtB,IAAI,EAAE,CAAC;IAEtC,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CACpC;AAED,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAE1D,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAErD;;;;;;;;;;GAUG;AACH,KAAK,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,KAAK,CAAC;AAEtE;;;;;;;;GAQG;AACH,KAAK,mBAAmB,CAAC,CAAC,IAAI;KACzB,CAAC,IAAI,MAAM,CAAC,IAAI,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC7D,GAAG;KACC,CAAC,IAAI,MAAM,CAAC,IAAI,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CAC9D,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,cAAc,EAAE,CAAC,GAAG,OAAO,IAAI,MAAM,CACjE,mBAAmB,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAC9C,GACG,CAAC,CAAC;AAEN,8BAAsB,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,CAAC,GAAG,OAAO;IAMpE,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IALpD,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7C,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC;gBAEV,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IAEpD,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CACpC;AAED,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC"}
@@ -27,6 +27,7 @@ class Command {
27
27
  this.args = args;
28
28
  }
29
29
  }
30
+ _define_property(Command, "allowRunFromGlobal", void 0);
30
31
  _define_property(Command, "description", void 0);
31
32
  _define_property(Command, "greedy", void 0);
32
33
  _define_property(Command, "options", void 0);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/commands/types.ts"],"sourcesContent":["import type { Options } from 'yargs';\n\nexport interface CommandArgs {\n [key: string]: unknown;\n}\n\nexport abstract class Command<T extends CommandArgs = CommandArgs> {\n static readonly description?: string;\n static readonly greedy?: boolean;\n static readonly options?: { [key: string]: Options };\n\n constructor(protected readonly args: T) {}\n\n abstract execute(): Promise<void>;\n}\n\nexport type Newable<T> = new (...args: any[]) => T;\n"],"names":["Command","args","description","greedy","options"],"mappings":";;;;+BAMsBA;;;eAAAA;;;;;;;;;;;;;;;;AAAf,MAAeA;IAKlB,YAAY,AAAmBC,IAAO,CAAE;;aAATA,OAAAA;IAAU;AAG7C;AAPI,iBADkBD,SACFE,eAAhB,KAAA;AACA,iBAFkBF,SAEFG,UAAhB,KAAA;AACA,iBAHkBH,SAGFI,WAAhB,KAAA"}
1
+ {"version":3,"sources":["../../../src/cli/commands/types.ts"],"sourcesContent":["import type { InferredOptionTypes, Options } from 'yargs';\n\nexport type CommandOptions = Record<string, Options>;\n\n/**\n * Expands a type by resolving any type aliases and intersections into a single object type.\n *\n * This is useful for flattening complex type compositions so their properties are materialized,\n * especially when working with mapped types and conditional types.\n *\n * @template T - The type to expand.\n * @example\n * type Input = { a: string } & { b: number };\n * type Output = Expand<Input>; // { a: string; b: number }\n */\ntype Expand<T> = T extends infer O ? { [K in keyof O]: O[K] } : never;\n\n/**\n * Transforms a type so that properties whose value type includes `undefined`\n * become optional (`?:`), while properties that cannot be `undefined` remain required.\n *\n * @example\n * type Input = { a: string; b: string | undefined; c?: number };\n * type Output = UndefinedToOptional<Input>;\n * // Results in: { a: string; b?: string | undefined; c?: number }\n */\ntype UndefinedToOptional<T> = {\n [K in keyof T as undefined extends T[K] ? never : K]: T[K];\n} & {\n [K in keyof T as undefined extends T[K] ? K : never]?: T[K];\n};\n\n/**\n * Infers the command args type from a yargs options definition object.\n * Makes properties optional unless demandOption is set to true.\n *\n * @example\n * const options = {\n * watch: { boolean: true, description: '...' },\n * outputPath: { string: true, description: '...' },\n * config: { string: true, demandOption: true, description: '...' },\n * } satisfies CommandOptions;\n *\n * type Args = InferArgs<typeof options>;\n * // Results in: { watch?: boolean; outputPath?: string; config: string; }\n */\nexport type InferArgs<T extends CommandOptions, U = unknown> = Expand<\n UndefinedToOptional<InferredOptionTypes<T>>\n> &\n U;\n\nexport abstract class Command<T extends CommandOptions = CommandOptions, U = unknown> {\n static readonly allowRunFromGlobal?: boolean;\n static readonly description?: string;\n static readonly greedy?: boolean;\n static readonly options?: CommandOptions;\n\n constructor(protected readonly args: InferArgs<T, U>) {}\n\n abstract execute(): Promise<void>;\n}\n\nexport type Newable<T> = new (...args: any[]) => T;\n"],"names":["Command","args","allowRunFromGlobal","description","greedy","options"],"mappings":";;;;+BAmDsBA;;;eAAAA;;;;;;;;;;;;;;;;AAAf,MAAeA;IAMlB,YAAY,AAAmBC,IAAqB,CAAE;;aAAvBA,OAAAA;IAAwB;AAG3D;AARI,iBADkBD,SACFE,sBAAhB,KAAA;AACA,iBAFkBF,SAEFG,eAAhB,KAAA;AACA,iBAHkBH,SAGFI,UAAhB,KAAA;AACA,iBAJkBJ,SAIFK,WAAhB,KAAA"}
@@ -1,10 +1,30 @@
1
- import { Command, CommandArgs } from './types';
2
- interface Args extends CommandArgs {
3
- dry?: boolean;
4
- releaseVersion: string;
5
- }
6
- export declare class UploadSourcemaps extends Command<Args> {
1
+ import { Command } from './types';
2
+ declare const options: {
3
+ dry: {
4
+ boolean: true;
5
+ description: string;
6
+ };
7
+ releaseVersion: {
8
+ string: true;
9
+ demandOption: true;
10
+ requiresArg: true;
11
+ description: string;
12
+ };
13
+ };
14
+ export declare class UploadSourcemaps extends Command<typeof options> {
7
15
  #private;
16
+ static readonly options: {
17
+ dry: {
18
+ boolean: true;
19
+ description: string;
20
+ };
21
+ releaseVersion: {
22
+ string: true;
23
+ demandOption: true;
24
+ requiresArg: true;
25
+ description: string;
26
+ };
27
+ };
8
28
  execute(): Promise<void>;
9
29
  private checkArgs;
10
30
  private checkLocation;
@@ -1 +1 @@
1
- {"version":3,"file":"upload-sourcemaps.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/upload-sourcemaps.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE/C,UAAU,IAAK,SAAQ,WAAW;IAC9B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;CAC1B;AAMD,qBAAa,gBAAiB,SAAQ,OAAO,CAAC,IAAI,CAAC;;IAMzC,OAAO;IAWb,OAAO,CAAC,SAAS;IAiBjB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,GAAG;CAId"}
1
+ {"version":3,"file":"upload-sourcemaps.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/upload-sourcemaps.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAkB,MAAM,SAAS,CAAC;AAElD,QAAA,MAAM,OAAO;;;;;;;;;;;CAQa,CAAC;AAM3B,qBAAa,gBAAiB,SAAQ,OAAO,CAAC,OAAO,OAAO,CAAC;;IACzD,MAAM,CAAC,QAAQ,CAAC,OAAO;;;;;;;;;;;MAAW;IAM5B,OAAO;IAWb,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,GAAG;CAId"}
@@ -9,8 +9,8 @@ Object.defineProperty(exports, "UploadSourcemaps", {
9
9
  }
10
10
  });
11
11
  const _install = require("@servicetitan/install");
12
- const _path = /*#__PURE__*/ _interop_require_default(require("path"));
13
12
  const _child_process = require("child_process");
13
+ const _path = /*#__PURE__*/ _interop_require_default(require("path"));
14
14
  const _utils = require("../../utils");
15
15
  const _utils1 = require("../utils");
16
16
  const _types = require("./types");
@@ -54,6 +54,19 @@ function _class_private_field_set(receiver, privateMap, value) {
54
54
  _class_apply_descriptor_set(receiver, descriptor, value);
55
55
  return value;
56
56
  }
57
+ function _define_property(obj, key, value) {
58
+ if (key in obj) {
59
+ Object.defineProperty(obj, key, {
60
+ value: value,
61
+ enumerable: true,
62
+ configurable: true,
63
+ writable: true
64
+ });
65
+ } else {
66
+ obj[key] = value;
67
+ }
68
+ return obj;
69
+ }
57
70
  function _interop_require_default(obj) {
58
71
  return obj && obj.__esModule ? obj : {
59
72
  default: obj
@@ -68,6 +81,18 @@ function _ts_decorate(decorators, target, key, desc) {
68
81
  function _ts_metadata(k, v) {
69
82
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
70
83
  }
84
+ const options = {
85
+ dry: {
86
+ boolean: true,
87
+ description: 'Dry run mode'
88
+ },
89
+ releaseVersion: {
90
+ string: true,
91
+ demandOption: true,
92
+ requiresArg: true,
93
+ description: 'Release version'
94
+ }
95
+ };
71
96
  var _outDir = /*#__PURE__*/ new WeakMap(), _packageJson = /*#__PURE__*/ new WeakMap();
72
97
  class UploadSourcemaps extends _types.Command {
73
98
  async execute() {
@@ -88,9 +113,6 @@ class UploadSourcemaps extends _types.Command {
88
113
  _utils.log.warning(`${message}; skipping sourcemaps`);
89
114
  return false;
90
115
  }
91
- if (!this.args.releaseVersion) {
92
- throw new Error('--release-version is required');
93
- }
94
116
  return true;
95
117
  }
96
118
  checkLocation() {
@@ -155,6 +177,7 @@ class UploadSourcemaps extends _types.Command {
155
177
  });
156
178
  }
157
179
  }
180
+ _define_property(UploadSourcemaps, "options", options);
158
181
  _ts_decorate([
159
182
  _utils.logErrors,
160
183
  _ts_metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/commands/upload-sourcemaps.ts"],"sourcesContent":["import { isCI } from '@servicetitan/install';\nimport path from 'path';\nimport { execSync } from 'child_process';\nimport { getTsConfig, isWebComponent, log, logErrors, readJson } from '../../utils';\nimport { TSConfig } from '../utils';\nimport { Command, CommandArgs } from './types';\n\ninterface Args extends CommandArgs {\n dry?: boolean;\n releaseVersion: string;\n}\n\ninterface PackageJson {\n name: string;\n}\n\nexport class UploadSourcemaps extends Command<Args> {\n #outDir?: string;\n #packageJson?: PackageJson;\n\n @logErrors\n // eslint-disable-next-line @typescript-eslint/require-await\n async execute() {\n this.checkLocation();\n if (!this.checkArgs()) {\n return;\n }\n\n const bundleDir = this.getBundleDir();\n const options = this.getOptions().join(' ');\n this.run(`npx --yes @datadog/datadog-ci@3 sourcemaps upload ${bundleDir} ${options}`);\n }\n\n private checkArgs() {\n if (!process.env.DATADOG_API_KEY) {\n const message = 'DATADOG_API_KEY environment variable is not set';\n if (!isCI()) {\n throw new Error(message);\n }\n log.warning(`${message}; skipping sourcemaps`);\n return false;\n }\n\n if (!this.args.releaseVersion) {\n throw new Error('--release-version is required');\n }\n\n return true;\n }\n\n private checkLocation() {\n if (!isWebComponent()) {\n throw new Error(`this command must be run inside a web-component directory`);\n }\n }\n\n private getBundleDir() {\n return path.relative('.', path.join(this.getOutDir(), 'bundle'));\n }\n\n private getMinifiedPrefixPath() {\n const { name } = this.getPackageJson();\n const baseUrl = `https://unpkg.servicetitan.com/${name}@${this.args.releaseVersion}`;\n return `${baseUrl}/${this.getBundleDir().replace(/\\\\/g, '/')}`;\n }\n\n private getOptions() {\n const { dry, releaseVersion } = this.args;\n const service = this.getPackageJson().name.replace(/^[^/]+\\//, '');\n return [\n ...[dry && `--dry-run`],\n `--service=${service}`,\n `--release-version=${releaseVersion}`,\n `--minified-path-prefix=${this.getMinifiedPrefixPath()}`,\n `--project-path=${this.getProjectPath()}`,\n ].filter(item => !!item) as string[];\n }\n\n private getOutDir() {\n if (!this.#outDir) {\n const outDir = new TSConfig(getTsConfig()).getValue<string>('compilerOptions.outDir');\n if (!outDir) {\n throw new Error('compilerOptions.outDir is not configured');\n }\n\n this.#outDir = outDir;\n }\n return this.#outDir;\n }\n\n private getPackageJson() {\n if (!this.#packageJson) {\n this.#packageJson = readJson<PackageJson>('package.json');\n }\n return this.#packageJson;\n }\n\n private getProjectPath() {\n const name = readJson(path.join(this.getOutDir(), 'metadata.json')).name;\n return `${name}/`;\n }\n\n private run(command: string) {\n log.info(`Running: ${command}`);\n return execSync(command, { stdio: 'inherit' });\n }\n}\n"],"names":["UploadSourcemaps","Command","execute","checkLocation","checkArgs","bundleDir","getBundleDir","options","getOptions","join","run","process","env","DATADOG_API_KEY","message","isCI","Error","log","warning","args","releaseVersion","isWebComponent","path","relative","getOutDir","getMinifiedPrefixPath","name","getPackageJson","baseUrl","replace","dry","service","getProjectPath","filter","item","outDir","TSConfig","getTsConfig","getValue","readJson","command","info","execSync","stdio"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/cli/commands/upload-sourcemaps.ts"],"sourcesContent":["import { isCI } from '@servicetitan/install';\nimport { execSync } from 'child_process';\nimport path from 'path';\nimport { getTsConfig, isWebComponent, log, logErrors, readJson } from '../../utils';\nimport { TSConfig } from '../utils';\nimport { Command, CommandOptions } from './types';\n\nconst options = {\n dry: { boolean: true, description: 'Dry run mode' },\n releaseVersion: {\n string: true,\n demandOption: true,\n requiresArg: true,\n description: 'Release version',\n },\n} satisfies CommandOptions;\n\ninterface PackageJson {\n name: string;\n}\n\nexport class UploadSourcemaps extends Command<typeof options> {\n static readonly options = options;\n #outDir?: string;\n #packageJson?: PackageJson;\n\n @logErrors\n // eslint-disable-next-line @typescript-eslint/require-await\n async execute() {\n this.checkLocation();\n if (!this.checkArgs()) {\n return;\n }\n\n const bundleDir = this.getBundleDir();\n const options = this.getOptions().join(' ');\n this.run(`npx --yes @datadog/datadog-ci@3 sourcemaps upload ${bundleDir} ${options}`);\n }\n\n private checkArgs() {\n if (!process.env.DATADOG_API_KEY) {\n const message = 'DATADOG_API_KEY environment variable is not set';\n if (!isCI()) {\n throw new Error(message);\n }\n log.warning(`${message}; skipping sourcemaps`);\n return false;\n }\n\n return true;\n }\n\n private checkLocation() {\n if (!isWebComponent()) {\n throw new Error(`this command must be run inside a web-component directory`);\n }\n }\n\n private getBundleDir() {\n return path.relative('.', path.join(this.getOutDir(), 'bundle'));\n }\n\n private getMinifiedPrefixPath() {\n const { name } = this.getPackageJson();\n const baseUrl = `https://unpkg.servicetitan.com/${name}@${this.args.releaseVersion}`;\n return `${baseUrl}/${this.getBundleDir().replace(/\\\\/g, '/')}`;\n }\n\n private getOptions() {\n const { dry, releaseVersion } = this.args;\n const service = this.getPackageJson().name.replace(/^[^/]+\\//, '');\n return [\n ...[dry && `--dry-run`],\n `--service=${service}`,\n `--release-version=${releaseVersion}`,\n `--minified-path-prefix=${this.getMinifiedPrefixPath()}`,\n `--project-path=${this.getProjectPath()}`,\n ].filter(item => !!item) as string[];\n }\n\n private getOutDir() {\n if (!this.#outDir) {\n const outDir = new TSConfig(getTsConfig()).getValue<string>('compilerOptions.outDir');\n if (!outDir) {\n throw new Error('compilerOptions.outDir is not configured');\n }\n\n this.#outDir = outDir;\n }\n return this.#outDir;\n }\n\n private getPackageJson() {\n if (!this.#packageJson) {\n this.#packageJson = readJson<PackageJson>('package.json');\n }\n return this.#packageJson;\n }\n\n private getProjectPath() {\n const name = readJson(path.join(this.getOutDir(), 'metadata.json')).name;\n return `${name}/`;\n }\n\n private run(command: string) {\n log.info(`Running: ${command}`);\n return execSync(command, { stdio: 'inherit' });\n }\n}\n"],"names":["UploadSourcemaps","options","dry","boolean","description","releaseVersion","string","demandOption","requiresArg","Command","execute","checkLocation","checkArgs","bundleDir","getBundleDir","getOptions","join","run","process","env","DATADOG_API_KEY","message","isCI","Error","log","warning","isWebComponent","path","relative","getOutDir","getMinifiedPrefixPath","name","getPackageJson","baseUrl","args","replace","service","getProjectPath","filter","item","outDir","TSConfig","getTsConfig","getValue","readJson","command","info","execSync","stdio"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const DEFAULT_MFE_REGISTRY = "https://verdaccio.servicetitan.com";
2
+ export declare const ROLLBACK_TAG_SUFFIX = "-rollback-1";
3
+ export declare function buildRollbackTag(tag: string): string;
4
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,uCAAuC,CAAC;AACzE,eAAO,MAAM,mBAAmB,gBAAgB,CAAC;AAEjD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEpD"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get DEFAULT_MFE_REGISTRY () {
13
+ return DEFAULT_MFE_REGISTRY;
14
+ },
15
+ get ROLLBACK_TAG_SUFFIX () {
16
+ return ROLLBACK_TAG_SUFFIX;
17
+ },
18
+ get buildRollbackTag () {
19
+ return buildRollbackTag;
20
+ }
21
+ });
22
+ const DEFAULT_MFE_REGISTRY = 'https://verdaccio.servicetitan.com';
23
+ const ROLLBACK_TAG_SUFFIX = '-rollback-1';
24
+ function buildRollbackTag(tag) {
25
+ return `${tag}${ROLLBACK_TAG_SUFFIX}`;
26
+ }
27
+
28
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/cli/commands/utils.ts"],"sourcesContent":["export const DEFAULT_MFE_REGISTRY = 'https://verdaccio.servicetitan.com';\nexport const ROLLBACK_TAG_SUFFIX = '-rollback-1';\n\nexport function buildRollbackTag(tag: string): string {\n return `${tag}${ROLLBACK_TAG_SUFFIX}`;\n}\n"],"names":["DEFAULT_MFE_REGISTRY","ROLLBACK_TAG_SUFFIX","buildRollbackTag","tag"],"mappings":";;;;;;;;;;;QAAaA;eAAAA;;QACAC;eAAAA;;QAEGC;eAAAA;;;AAHT,MAAMF,uBAAuB;AAC7B,MAAMC,sBAAsB;AAE5B,SAASC,iBAAiBC,GAAW;IACxC,OAAO,GAAGA,MAAMF,qBAAqB;AACzC"}
package/dist/cli/index.js CHANGED
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  });
5
5
  const _chalk = /*#__PURE__*/ _interop_require_default(require("chalk"));
6
6
  const _execa = /*#__PURE__*/ _interop_require_default(require("execa"));
7
+ const _lodashkebabcase = /*#__PURE__*/ _interop_require_default(require("lodash.kebabcase"));
7
8
  const _path = /*#__PURE__*/ _interop_require_default(require("path"));
8
9
  const _yargs = /*#__PURE__*/ _interop_require_default(require("yargs"));
9
10
  const _helpers = require("yargs/helpers");
@@ -15,19 +16,20 @@ function _interop_require_default(obj) {
15
16
  default: obj
16
17
  };
17
18
  }
18
- Object.values(_utils.CommandName).reduce((y, name)=>addCommand(name, y), (0, _yargs.default)((0, _helpers.hideBin)(process.argv))).usage('Usage: startup <command> [options]').epilogue(_chalk.default.bold.cyan(`startup cli v${(0, _utils.getStartupVersion)()}\n`) + `Run ${_chalk.default.bold.cyan('startup <command> --help')} to see command options.\n` + `For detailed documentation, see ${_chalk.default.bold.cyan('https://docs.st.dev/docs/frontend/uikit/startup')}.\n`).demandCommand(1, '').strictCommands().updateStrings({
19
+ const yargsInstance = (0, _yargs.default)((0, _helpers.hideBin)(process.argv));
20
+ Object.values(_utils.CommandName).reduce((y, name)=>addCommand(name, y), yargsInstance).usage('Usage: startup <command> [options]').epilogue(_chalk.default.bold.cyan(`startup cli v${(0, _utils.getStartupVersion)()}\n`) + `Run ${_chalk.default.bold.cyan('startup <command> --help')} to see command options.\n` + `For detailed documentation, see ${_chalk.default.bold.cyan('https://docs.st.dev/docs/frontend/uikit/startup')}.\n`).demandCommand(1, '').strictCommands().updateStrings({
19
21
  'Unknown command: %s': {
20
22
  one: _chalk.default.bold.red('Unknown command: %s'),
21
23
  other: _chalk.default.bold.red('Unknown command: %s')
22
24
  }
23
- }).version().wrap(Math.min(100, _yargs.default.terminalWidth())).help().parse();
25
+ }).version().wrap(Math.min(100, yargsInstance.terminalWidth())).help().parse();
24
26
  function addCommand(name, y) {
25
27
  const klass = (0, _commands.getCommand)(name);
26
28
  // eslint-disable-next-line @typescript-eslint/naming-convention
27
29
  const { description, options: { _, ...options } = {} } = klass;
28
30
  const nameWithArgs = name + ((_ === null || _ === void 0 ? void 0 : _.description) ? ` ${_.description}` : '');
29
31
  const groupedOptions = Object.entries(options).reduce((result, [key, value])=>{
30
- result[key] = {
32
+ result[(0, _lodashkebabcase.default)(key)] = {
31
33
  group: 'Command Options:',
32
34
  ...value
33
35
  };
@@ -43,12 +45,13 @@ function addCommand(name, y) {
43
45
  }
44
46
  function handleCommand(name, argv) {
45
47
  const Command = (0, _commands.getCommand)(name);
46
- checkNodeVersion();
47
48
  // eslint-disable-next-line @typescript-eslint/naming-convention
48
49
  const command = new Command({
49
50
  ...argv,
50
51
  _: argv._.slice(1)
51
52
  });
53
+ checkNodeVersion();
54
+ (0, _utils1.checkStartupLocation)(name, command);
52
55
  if ((0, _utils1.setNodeOptions)(name, command)) {
53
56
  _utils.log.debug('run', `Running ${name} in child process with amended NODE_OPTIONS`);
54
57
  (0, _execa.default)(process.argv[0], process.argv.slice(1), {
@@ -70,7 +73,7 @@ function checkNodeVersion() {
70
73
  const { engines } = require(_path.default.join(__dirname, '../../package.json'));
71
74
  _utils.log.error(`error: node v${nodeVersion} detected, only even-numbered LTS versions ${engines.node} are supported`);
72
75
  _utils.log.text('See https://nodejs.org/en/download for LTS versions');
73
- process.exit(127);
76
+ process.exit(1);
74
77
  }
75
78
 
76
79
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cli/index.ts"],"sourcesContent":["import chalk from 'chalk';\nimport execa from 'execa';\nimport path from 'path';\nimport yargs from 'yargs';\nimport { hideBin } from 'yargs/helpers';\nimport { CommandName, getStartupVersion, log } from '../utils';\nimport { Command, getCommand } from './commands';\nimport { setNodeOptions } from './utils';\n\nObject.values(CommandName)\n .reduce((y, name) => addCommand(name, y), yargs(hideBin(process.argv)))\n .usage('Usage: startup <command> [options]')\n .epilogue(\n chalk.bold.cyan(`startup cli v${getStartupVersion()}\\n`) +\n `Run ${chalk.bold.cyan('startup <command> --help')} to see command options.\\n` +\n `For detailed documentation, see ${chalk.bold.cyan('https://docs.st.dev/docs/frontend/uikit/startup')}.\\n`\n )\n .demandCommand(1, '')\n .strictCommands()\n .updateStrings({\n 'Unknown command: %s': {\n one: chalk.bold.red('Unknown command: %s'),\n other: chalk.bold.red('Unknown command: %s'),\n } as any,\n })\n .version()\n .wrap(Math.min(100, yargs.terminalWidth()))\n .help()\n .parse();\n\nfunction addCommand(name: CommandName, y: typeof yargs) {\n const klass = getCommand(name)! as typeof Command;\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const { description, options: { _, ...options } = {} } = klass;\n const nameWithArgs = name + (_?.description ? ` ${_.description}` : '');\n const groupedOptions = Object.entries(options).reduce(\n (result, [key, value]) => {\n result[key] = { group: 'Command Options:', ...value };\n return result;\n },\n {} as NonNullable<typeof klass.options>\n );\n const handler = (argv: any) => handleCommand(name, argv);\n if (description) {\n y.command(nameWithArgs, description, groupedOptions, handler);\n } else {\n y.command(nameWithArgs, false, groupedOptions, handler);\n }\n return y;\n}\n\nfunction handleCommand(name: CommandName, argv: any) {\n const Command = getCommand(name)!;\n\n checkNodeVersion();\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const command = new Command({ ...argv, _: argv._.slice(1) });\n if (setNodeOptions(name, command)) {\n log.debug('run', `Running ${name} in child process with amended NODE_OPTIONS`);\n execa(process.argv[0], process.argv.slice(1), { stdio: 'inherit' }).catch(reason => {\n process.exit(reason.exitCode);\n });\n } else {\n command.execute().catch(() => {\n process.exit(1);\n });\n }\n}\n\nfunction checkNodeVersion() {\n const nodeVersion = Number(process.versions.node.split('.')[0]);\n if (nodeVersion % 2 === 0 || process.env.SKIP_NODE_VERSION_CHECK) {\n return;\n }\n\n const { engines } = require(path.join(__dirname, '../../package.json'));\n log.error(\n `error: node v${nodeVersion} detected, only even-numbered LTS versions ${engines.node} are supported`\n );\n log.text('See https://nodejs.org/en/download for LTS versions');\n process.exit(127);\n}\n"],"names":["Object","values","CommandName","reduce","y","name","addCommand","yargs","hideBin","process","argv","usage","epilogue","chalk","bold","cyan","getStartupVersion","demandCommand","strictCommands","updateStrings","one","red","other","version","wrap","Math","min","terminalWidth","help","parse","klass","getCommand","description","options","_","nameWithArgs","groupedOptions","entries","result","key","value","group","handler","handleCommand","command","Command","checkNodeVersion","slice","setNodeOptions","log","debug","execa","stdio","catch","reason","exit","exitCode","execute","nodeVersion","Number","versions","node","split","env","SKIP_NODE_VERSION_CHECK","engines","require","path","join","__dirname","error","text"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/cli/index.ts"],"sourcesContent":["import chalk from 'chalk';\nimport execa from 'execa';\nimport kebabCase from 'lodash.kebabcase';\nimport path from 'path';\nimport yargs from 'yargs';\nimport { hideBin } from 'yargs/helpers';\nimport { CommandName, getStartupVersion, log } from '../utils';\nimport { Command, getCommand } from './commands';\nimport { checkStartupLocation, setNodeOptions } from './utils';\n\nconst yargsInstance = yargs(hideBin(process.argv));\n\nObject.values(CommandName)\n .reduce((y, name) => addCommand(name, y), yargsInstance)\n .usage('Usage: startup <command> [options]')\n .epilogue(\n chalk.bold.cyan(`startup cli v${getStartupVersion()}\\n`) +\n `Run ${chalk.bold.cyan('startup <command> --help')} to see command options.\\n` +\n `For detailed documentation, see ${chalk.bold.cyan('https://docs.st.dev/docs/frontend/uikit/startup')}.\\n`\n )\n .demandCommand(1, '')\n .strictCommands()\n .updateStrings({\n 'Unknown command: %s': {\n one: chalk.bold.red('Unknown command: %s'),\n other: chalk.bold.red('Unknown command: %s'),\n } as any,\n })\n .version()\n .wrap(Math.min(100, yargsInstance.terminalWidth()))\n .help()\n .parse();\n\nfunction addCommand(name: CommandName, y: typeof yargs) {\n const klass = getCommand(name)! as typeof Command;\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const { description, options: { _, ...options } = {} } = klass;\n const nameWithArgs = name + (_?.description ? ` ${_.description}` : '');\n const groupedOptions = Object.entries(options).reduce(\n (result, [key, value]) => {\n result[kebabCase(key)] = { group: 'Command Options:', ...value };\n return result;\n },\n {} as NonNullable<typeof klass.options>\n );\n const handler = (argv: any) => handleCommand(name, argv);\n if (description) {\n y.command(nameWithArgs, description, groupedOptions, handler);\n } else {\n y.command(nameWithArgs, false, groupedOptions, handler);\n }\n return y;\n}\n\nfunction handleCommand(name: CommandName, argv: any) {\n const Command = getCommand(name)!;\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const command = new Command({ ...argv, _: argv._.slice(1) });\n\n checkNodeVersion();\n checkStartupLocation(name, command);\n\n if (setNodeOptions(name, command)) {\n log.debug('run', `Running ${name} in child process with amended NODE_OPTIONS`);\n execa(process.argv[0], process.argv.slice(1), { stdio: 'inherit' }).catch(reason => {\n process.exit(reason.exitCode);\n });\n } else {\n command.execute().catch(() => {\n process.exit(1);\n });\n }\n}\n\nfunction checkNodeVersion() {\n const nodeVersion = Number(process.versions.node.split('.')[0]);\n if (nodeVersion % 2 === 0 || process.env.SKIP_NODE_VERSION_CHECK) {\n return;\n }\n\n const { engines } = require(path.join(__dirname, '../../package.json'));\n log.error(\n `error: node v${nodeVersion} detected, only even-numbered LTS versions ${engines.node} are supported`\n );\n log.text('See https://nodejs.org/en/download for LTS versions');\n process.exit(1);\n}\n"],"names":["yargsInstance","yargs","hideBin","process","argv","Object","values","CommandName","reduce","y","name","addCommand","usage","epilogue","chalk","bold","cyan","getStartupVersion","demandCommand","strictCommands","updateStrings","one","red","other","version","wrap","Math","min","terminalWidth","help","parse","klass","getCommand","description","options","_","nameWithArgs","groupedOptions","entries","result","key","value","kebabCase","group","handler","handleCommand","command","Command","slice","checkNodeVersion","checkStartupLocation","setNodeOptions","log","debug","execa","stdio","catch","reason","exit","exitCode","execute","nodeVersion","Number","versions","node","split","env","SKIP_NODE_VERSION_CHECK","engines","require","path","join","__dirname","error","text"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cli-task.d.ts","sourceRoot":"","sources":["../../../src/cli/tasks/cli-task.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAG9C,MAAM,WAAW,UAAU;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACrD,UAAU,EAAE,UAAU,CAAC;CAC1B;AAED,8BAAsB,OAAQ,SAAQ,IAAI;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;gBAE5B,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,EAAE,iBAAiB;cAKtC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;CAmClE"}
1
+ {"version":3,"file":"cli-task.d.ts","sourceRoot":"","sources":["../../../src/cli/tasks/cli-task.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAE9C,MAAM,WAAW,UAAU;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACrD,UAAU,EAAE,UAAU,CAAC;CAC1B;AAED,8BAAsB,OAAQ,SAAQ,IAAI;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;gBAE5B,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,EAAE,iBAAiB;cAKtC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;CAmClE"}
@@ -9,8 +9,8 @@ Object.defineProperty(exports, "CliTask", {
9
9
  }
10
10
  });
11
11
  const _execa = /*#__PURE__*/ _interop_require_default(require("execa"));
12
- const _task = require("./task");
13
12
  const _utils = require("../utils");
13
+ const _task = require("./task");
14
14
  function _define_property(obj, key, value) {
15
15
  if (key in obj) {
16
16
  Object.defineProperty(obj, key, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/tasks/cli-task.ts"],"sourcesContent":["import execa from 'execa';\nimport { Task, TaskParameters } from './task';\nimport { pipeStdout, watchStdout } from '../utils';\n\nexport interface Indicators {\n end: string;\n watchStart: string;\n watchEnd?: string;\n}\n\nexport interface CliTaskParameters extends TaskParameters {\n indicators: Indicators;\n}\n\nexport abstract class CliTask extends Task {\n private readonly indicators: Indicators;\n\n constructor({ indicators, ...rest }: CliTaskParameters) {\n super(rest);\n this.indicators = indicators;\n }\n\n protected async runChildProcess(command: string, args: string[]) {\n const childProcess = execa(\n command,\n args,\n this.watch\n ? {\n stdio: ['inherit', 'pipe', 'inherit'],\n }\n : {\n stdio: 'inherit',\n }\n );\n\n if (!this.watch) {\n try {\n await childProcess;\n } finally {\n this.logCompletionResults(this.taskTimer.end());\n }\n return;\n }\n\n pipeStdout(childProcess);\n watchStdout(childProcess, this.indicators.watchStart, () => {\n this.taskTimer.start();\n });\n watchStdout(childProcess, this.indicators.end, () => {\n this.logCompletionResults(this.taskTimer.end());\n });\n watchStdout(childProcess, this.indicators.watchEnd, () => {\n this.logCompletionResults(this.taskTimer.end());\n });\n\n await childProcess;\n }\n}\n"],"names":["CliTask","Task","runChildProcess","command","args","childProcess","execa","watch","stdio","logCompletionResults","taskTimer","end","pipeStdout","watchStdout","indicators","watchStart","start","watchEnd","rest"],"mappings":";;;;+BAcsBA;;;eAAAA;;;8DAdJ;sBACmB;uBACG;;;;;;;;;;;;;;;;;;;AAYjC,MAAeA,gBAAgBC,UAAI;IAQtC,MAAgBC,gBAAgBC,OAAe,EAAEC,IAAc,EAAE;QAC7D,MAAMC,eAAeC,IAAAA,cAAK,EACtBH,SACAC,MACA,IAAI,CAACG,KAAK,GACJ;YACIC,OAAO;gBAAC;gBAAW;gBAAQ;aAAU;QACzC,IACA;YACIA,OAAO;QACX;QAGV,IAAI,CAAC,IAAI,CAACD,KAAK,EAAE;YACb,IAAI;gBACA,MAAMF;YACV,SAAU;gBACN,IAAI,CAACI,oBAAoB,CAAC,IAAI,CAACC,SAAS,CAACC,GAAG;YAChD;YACA;QACJ;QAEAC,IAAAA,iBAAU,EAACP;QACXQ,IAAAA,kBAAW,EAACR,cAAc,IAAI,CAACS,UAAU,CAACC,UAAU,EAAE;YAClD,IAAI,CAACL,SAAS,CAACM,KAAK;QACxB;QACAH,IAAAA,kBAAW,EAACR,cAAc,IAAI,CAACS,UAAU,CAACH,GAAG,EAAE;YAC3C,IAAI,CAACF,oBAAoB,CAAC,IAAI,CAACC,SAAS,CAACC,GAAG;QAChD;QACAE,IAAAA,kBAAW,EAACR,cAAc,IAAI,CAACS,UAAU,CAACG,QAAQ,EAAE;YAChD,IAAI,CAACR,oBAAoB,CAAC,IAAI,CAACC,SAAS,CAACC,GAAG;QAChD;QAEA,MAAMN;IACV;IAvCA,YAAY,EAAES,UAAU,EAAE,GAAGI,MAAyB,CAAE;QACpD,KAAK,CAACA,OAHV,uBAAiBJ,cAAjB,KAAA;QAII,IAAI,CAACA,UAAU,GAAGA;IACtB;AAqCJ"}
1
+ {"version":3,"sources":["../../../src/cli/tasks/cli-task.ts"],"sourcesContent":["import execa from 'execa';\nimport { pipeStdout, watchStdout } from '../utils';\nimport { Task, TaskParameters } from './task';\n\nexport interface Indicators {\n end: string;\n watchStart: string;\n watchEnd?: string;\n}\n\nexport interface CliTaskParameters extends TaskParameters {\n indicators: Indicators;\n}\n\nexport abstract class CliTask extends Task {\n private readonly indicators: Indicators;\n\n constructor({ indicators, ...rest }: CliTaskParameters) {\n super(rest);\n this.indicators = indicators;\n }\n\n protected async runChildProcess(command: string, args: string[]) {\n const childProcess = execa(\n command,\n args,\n this.watch\n ? {\n stdio: ['inherit', 'pipe', 'inherit'],\n }\n : {\n stdio: 'inherit',\n }\n );\n\n if (!this.watch) {\n try {\n await childProcess;\n } finally {\n this.logCompletionResults(this.taskTimer.end());\n }\n return;\n }\n\n pipeStdout(childProcess);\n watchStdout(childProcess, this.indicators.watchStart, () => {\n this.taskTimer.start();\n });\n watchStdout(childProcess, this.indicators.end, () => {\n this.logCompletionResults(this.taskTimer.end());\n });\n watchStdout(childProcess, this.indicators.watchEnd, () => {\n this.logCompletionResults(this.taskTimer.end());\n });\n\n await childProcess;\n }\n}\n"],"names":["CliTask","Task","runChildProcess","command","args","childProcess","execa","watch","stdio","logCompletionResults","taskTimer","end","pipeStdout","watchStdout","indicators","watchStart","start","watchEnd","rest"],"mappings":";;;;+BAcsBA;;;eAAAA;;;8DAdJ;uBACsB;sBACH;;;;;;;;;;;;;;;;;;;AAY9B,MAAeA,gBAAgBC,UAAI;IAQtC,MAAgBC,gBAAgBC,OAAe,EAAEC,IAAc,EAAE;QAC7D,MAAMC,eAAeC,IAAAA,cAAK,EACtBH,SACAC,MACA,IAAI,CAACG,KAAK,GACJ;YACIC,OAAO;gBAAC;gBAAW;gBAAQ;aAAU;QACzC,IACA;YACIA,OAAO;QACX;QAGV,IAAI,CAAC,IAAI,CAACD,KAAK,EAAE;YACb,IAAI;gBACA,MAAMF;YACV,SAAU;gBACN,IAAI,CAACI,oBAAoB,CAAC,IAAI,CAACC,SAAS,CAACC,GAAG;YAChD;YACA;QACJ;QAEAC,IAAAA,iBAAU,EAACP;QACXQ,IAAAA,kBAAW,EAACR,cAAc,IAAI,CAACS,UAAU,CAACC,UAAU,EAAE;YAClD,IAAI,CAACL,SAAS,CAACM,KAAK;QACxB;QACAH,IAAAA,kBAAW,EAACR,cAAc,IAAI,CAACS,UAAU,CAACH,GAAG,EAAE;YAC3C,IAAI,CAACF,oBAAoB,CAAC,IAAI,CAACC,SAAS,CAACC,GAAG;QAChD;QACAE,IAAAA,kBAAW,EAACR,cAAc,IAAI,CAACS,UAAU,CAACG,QAAQ,EAAE;YAChD,IAAI,CAACR,oBAAoB,CAAC,IAAI,CAACC,SAAS,CAACC,GAAG;QAChD;QAEA,MAAMN;IACV;IAvCA,YAAY,EAAES,UAAU,EAAE,GAAGI,MAAyB,CAAE;QACpD,KAAK,CAACA,OAHV,uBAAiBJ,cAAjB,KAAA;QAII,IAAI,CAACA,UAAU,GAAGA;IACtB;AAqCJ"}
@@ -1,6 +1,5 @@
1
- import { CommandArgs } from '../commands';
2
1
  import { Task } from './task';
3
- interface Args extends CommandArgs {
2
+ interface Args {
4
3
  watch?: boolean;
5
4
  }
6
5
  export declare class SwcCompilePackage extends Task {
@@ -1 +1 @@
1
- {"version":3,"file":"swc-compile-package.d.ts","sourceRoot":"","sources":["../../../src/cli/tasks/swc-compile-package.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,UAAU,IAAK,SAAQ,WAAW;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAQD,qBAAa,iBAAkB,SAAQ,IAAI;gBAC3B,EAAE,KAAK,EAAE,EAAE,IAAI;IAIrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAqC9B,OAAO,CAAC,SAAS;CAyDpB"}
1
+ {"version":3,"file":"swc-compile-package.d.ts","sourceRoot":"","sources":["../../../src/cli/tasks/swc-compile-package.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,UAAU,IAAI;IACV,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAQD,qBAAa,iBAAkB,SAAQ,IAAI;gBAC3B,EAAE,KAAK,EAAE,EAAE,IAAI;IAIrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAqC9B,OAAO,CAAC,SAAS;CAyDpB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/tasks/swc-compile-package.ts"],"sourcesContent":["import { Options, swcDir } from '@swc/cli';\nimport debounce from 'debounce';\nimport deepmerge from 'deepmerge';\n\nimport { getFolders, getSwcCompilePackageConfiguration, getTsConfig, log } from '../../utils';\nimport { CommandArgs } from '../commands';\nimport { TSConfig } from '../utils';\nimport { Task } from './task';\n\ninterface Args extends CommandArgs {\n watch?: boolean;\n}\n\nfunction overwriteMerge(_destinationArray: unknown[], sourceArray: unknown[]) {\n return sourceArray;\n}\n\nconst typedefsPattern = '**/*.d.ts';\n\nexport class SwcCompilePackage extends Task {\n constructor({ watch }: Args) {\n super({ name: 'swc-compile-package', global: false, watch });\n }\n\n async execute(): Promise<void> {\n const config = this.getConfig();\n\n /* istanbul ignore next: debug only */\n log.debug('swc-compile-package:config', () => JSON.stringify(config, null, 2));\n\n /*\n * @swc/cli@0.5.0 doesn't implement \"ignore\" in watch mode so debounce\n * noisy output. See https://servicetitan.atlassian.net/browse/FAR-1592\n * and DEVELOPER_NOTES in file://./../../../package.json\n */\n const logSuccessResults = this.watch\n ? debounce(this.logCompletionResults.bind(this), 200)\n : this.logCompletionResults.bind(this);\n\n return new Promise((resolve, reject) => {\n swcDir({\n ...config,\n callbacks: {\n onSuccess: (e: { duration: number }) => {\n logSuccessResults(this.taskTimer.add(e.duration));\n if (!this.watch) {\n resolve();\n }\n },\n onFail: (e: { duration: number; reasons: Map<string, string> }) => {\n log.text([...e.reasons.values()][0]);\n this.logCompletionResults(this.taskTimer.add(e.duration));\n if (!this.watch) {\n reject(new Error('Compilation failed'));\n }\n },\n },\n });\n });\n }\n\n private getConfig(): Options {\n const { source, destination } = getFolders();\n const packageConfig = getSwcCompilePackageConfiguration();\n const tsConfig = new TSConfig(getTsConfig());\n const target = tsConfig.getValue('compilerOptions.target');\n const legacyDecorator = tsConfig.getValue('compilerOptions.experimentalDecorators');\n const decoratorMetadata = tsConfig.getValue('compilerOptions.emitDecoratorMetadata');\n const sourceMaps = tsConfig.getValue('compilerOptions.sourceMap');\n const module = tsConfig.getValue<string>('compilerOptions.module')?.toLowerCase();\n const ignore = tsConfig.getValue('exclude', [\n '**/*.d.ts',\n '**/__tests__/*',\n '**/*.test.*',\n '**/__mocks__/*',\n '**/*.stories.*',\n ]);\n\n if (!ignore.includes(typedefsPattern)) {\n ignore.push(typedefsPattern);\n }\n\n return deepmerge(\n {\n cliOptions: {\n watch: this.watch,\n outDir: destination,\n stripLeadingPaths: true,\n extensions: ['.ts', '.tsx'],\n filenames: [source],\n ignore,\n },\n swcOptions: {\n jsc: {\n parser: {\n syntax: 'typescript',\n tsx: true,\n decorators: true,\n },\n target,\n transform: {\n legacyDecorator,\n decoratorMetadata,\n react: {\n runtime: 'automatic',\n },\n },\n },\n sourceMaps,\n module: {\n type: module === 'commonjs' || module === 'nodenext' ? 'commonjs' : 'es6',\n },\n },\n },\n packageConfig,\n { arrayMerge: overwriteMerge, clone: false }\n );\n }\n}\n"],"names":["SwcCompilePackage","overwriteMerge","_destinationArray","sourceArray","typedefsPattern","Task","execute","config","getConfig","log","debug","JSON","stringify","logSuccessResults","watch","debounce","logCompletionResults","bind","Promise","resolve","reject","swcDir","callbacks","onSuccess","e","taskTimer","add","duration","onFail","text","reasons","values","Error","tsConfig","source","destination","getFolders","packageConfig","getSwcCompilePackageConfiguration","TSConfig","getTsConfig","target","getValue","legacyDecorator","decoratorMetadata","sourceMaps","module","toLowerCase","ignore","includes","push","deepmerge","cliOptions","outDir","stripLeadingPaths","extensions","filenames","swcOptions","jsc","parser","syntax","tsx","decorators","transform","react","runtime","type","arrayMerge","clone","name","global"],"mappings":";;;;+BAmBaA;;;eAAAA;;;qBAnBmB;iEACX;kEACC;uBAE0D;wBAEvD;sBACJ;;;;;;AAMrB,SAASC,eAAeC,iBAA4B,EAAEC,WAAsB;IACxE,OAAOA;AACX;AAEA,MAAMC,kBAAkB;AAEjB,MAAMJ,0BAA0BK,UAAI;IAKvC,MAAMC,UAAyB;QAC3B,MAAMC,SAAS,IAAI,CAACC,SAAS;QAE7B,oCAAoC,GACpCC,UAAG,CAACC,KAAK,CAAC,8BAA8B,IAAMC,KAAKC,SAAS,CAACL,QAAQ,MAAM;QAE3E;;;;SAIC,GACD,MAAMM,oBAAoB,IAAI,CAACC,KAAK,GAC9BC,IAAAA,iBAAQ,EAAC,IAAI,CAACC,oBAAoB,CAACC,IAAI,CAAC,IAAI,GAAG,OAC/C,IAAI,CAACD,oBAAoB,CAACC,IAAI,CAAC,IAAI;QAEzC,OAAO,IAAIC,QAAQ,CAACC,SAASC;YACzBC,IAAAA,WAAM,EAAC;gBACH,GAAGd,MAAM;gBACTe,WAAW;oBACPC,WAAW,CAACC;wBACRX,kBAAkB,IAAI,CAACY,SAAS,CAACC,GAAG,CAACF,EAAEG,QAAQ;wBAC/C,IAAI,CAAC,IAAI,CAACb,KAAK,EAAE;4BACbK;wBACJ;oBACJ;oBACAS,QAAQ,CAACJ;wBACLf,UAAG,CAACoB,IAAI,CAAC;+BAAIL,EAAEM,OAAO,CAACC,MAAM;yBAAG,CAAC,EAAE;wBACnC,IAAI,CAACf,oBAAoB,CAAC,IAAI,CAACS,SAAS,CAACC,GAAG,CAACF,EAAEG,QAAQ;wBACvD,IAAI,CAAC,IAAI,CAACb,KAAK,EAAE;4BACbM,OAAO,IAAIY,MAAM;wBACrB;oBACJ;gBACJ;YACJ;QACJ;IACJ;IAEQxB,YAAqB;YAQVyB;QAPf,MAAM,EAAEC,MAAM,EAAEC,WAAW,EAAE,GAAGC,IAAAA,iBAAU;QAC1C,MAAMC,gBAAgBC,IAAAA,wCAAiC;QACvD,MAAML,WAAW,IAAIM,gBAAQ,CAACC,IAAAA,kBAAW;QACzC,MAAMC,SAASR,SAASS,QAAQ,CAAC;QACjC,MAAMC,kBAAkBV,SAASS,QAAQ,CAAC;QAC1C,MAAME,oBAAoBX,SAASS,QAAQ,CAAC;QAC5C,MAAMG,aAAaZ,SAASS,QAAQ,CAAC;QACrC,MAAMI,UAASb,qBAAAA,SAASS,QAAQ,CAAS,uCAA1BT,yCAAAA,mBAAqDc,WAAW;QAC/E,MAAMC,SAASf,SAASS,QAAQ,CAAC,WAAW;YACxC;YACA;YACA;YACA;YACA;SACH;QAED,IAAI,CAACM,OAAOC,QAAQ,CAAC7C,kBAAkB;YACnC4C,OAAOE,IAAI,CAAC9C;QAChB;QAEA,OAAO+C,IAAAA,kBAAS,EACZ;YACIC,YAAY;gBACRtC,OAAO,IAAI,CAACA,KAAK;gBACjBuC,QAAQlB;gBACRmB,mBAAmB;gBACnBC,YAAY;oBAAC;oBAAO;iBAAO;gBAC3BC,WAAW;oBAACtB;iBAAO;gBACnBc;YACJ;YACAS,YAAY;gBACRC,KAAK;oBACDC,QAAQ;wBACJC,QAAQ;wBACRC,KAAK;wBACLC,YAAY;oBAChB;oBACArB;oBACAsB,WAAW;wBACPpB;wBACAC;wBACAoB,OAAO;4BACHC,SAAS;wBACb;oBACJ;gBACJ;gBACApB;gBACAC,QAAQ;oBACJoB,MAAMpB,WAAW,cAAcA,WAAW,aAAa,aAAa;gBACxE;YACJ;QACJ,GACAT,eACA;YAAE8B,YAAYlE;YAAgBmE,OAAO;QAAM;IAEnD;IAjGA,YAAY,EAAEtD,KAAK,EAAQ,CAAE;QACzB,KAAK,CAAC;YAAEuD,MAAM;YAAuBC,QAAQ;YAAOxD;QAAM;IAC9D;AAgGJ"}
1
+ {"version":3,"sources":["../../../src/cli/tasks/swc-compile-package.ts"],"sourcesContent":["import { Options, swcDir } from '@swc/cli';\nimport debounce from 'debounce';\nimport deepmerge from 'deepmerge';\nimport { getFolders, getSwcCompilePackageConfiguration, getTsConfig, log } from '../../utils';\nimport { TSConfig } from '../utils';\nimport { Task } from './task';\n\ninterface Args {\n watch?: boolean;\n}\n\nfunction overwriteMerge(_destinationArray: unknown[], sourceArray: unknown[]) {\n return sourceArray;\n}\n\nconst typedefsPattern = '**/*.d.ts';\n\nexport class SwcCompilePackage extends Task {\n constructor({ watch }: Args) {\n super({ name: 'swc-compile-package', global: false, watch });\n }\n\n async execute(): Promise<void> {\n const config = this.getConfig();\n\n /* istanbul ignore next: debug only */\n log.debug('swc-compile-package:config', () => JSON.stringify(config, null, 2));\n\n /*\n * @swc/cli@0.5.0 doesn't implement \"ignore\" in watch mode so debounce\n * noisy output. See https://servicetitan.atlassian.net/browse/FAR-1592\n * and DEVELOPER_NOTES in file://./../../../package.json\n */\n const logSuccessResults = this.watch\n ? debounce(this.logCompletionResults.bind(this), 200)\n : this.logCompletionResults.bind(this);\n\n return new Promise((resolve, reject) => {\n swcDir({\n ...config,\n callbacks: {\n onSuccess: (e: { duration: number }) => {\n logSuccessResults(this.taskTimer.add(e.duration));\n if (!this.watch) {\n resolve();\n }\n },\n onFail: (e: { duration: number; reasons: Map<string, string> }) => {\n log.text([...e.reasons.values()][0]);\n this.logCompletionResults(this.taskTimer.add(e.duration));\n if (!this.watch) {\n reject(new Error('Compilation failed'));\n }\n },\n },\n });\n });\n }\n\n private getConfig(): Options {\n const { source, destination } = getFolders();\n const packageConfig = getSwcCompilePackageConfiguration();\n const tsConfig = new TSConfig(getTsConfig());\n const target = tsConfig.getValue('compilerOptions.target');\n const legacyDecorator = tsConfig.getValue('compilerOptions.experimentalDecorators');\n const decoratorMetadata = tsConfig.getValue('compilerOptions.emitDecoratorMetadata');\n const sourceMaps = tsConfig.getValue('compilerOptions.sourceMap');\n const module = tsConfig.getValue<string>('compilerOptions.module')?.toLowerCase();\n const ignore = tsConfig.getValue('exclude', [\n '**/*.d.ts',\n '**/__tests__/*',\n '**/*.test.*',\n '**/__mocks__/*',\n '**/*.stories.*',\n ]);\n\n if (!ignore.includes(typedefsPattern)) {\n ignore.push(typedefsPattern);\n }\n\n return deepmerge(\n {\n cliOptions: {\n watch: this.watch,\n outDir: destination,\n stripLeadingPaths: true,\n extensions: ['.ts', '.tsx'],\n filenames: [source],\n ignore,\n },\n swcOptions: {\n jsc: {\n parser: {\n syntax: 'typescript',\n tsx: true,\n decorators: true,\n },\n target,\n transform: {\n legacyDecorator,\n decoratorMetadata,\n react: {\n runtime: 'automatic',\n },\n },\n },\n sourceMaps,\n module: {\n type: module === 'commonjs' || module === 'nodenext' ? 'commonjs' : 'es6',\n },\n },\n },\n packageConfig,\n { arrayMerge: overwriteMerge, clone: false }\n );\n }\n}\n"],"names":["SwcCompilePackage","overwriteMerge","_destinationArray","sourceArray","typedefsPattern","Task","execute","config","getConfig","log","debug","JSON","stringify","logSuccessResults","watch","debounce","logCompletionResults","bind","Promise","resolve","reject","swcDir","callbacks","onSuccess","e","taskTimer","add","duration","onFail","text","reasons","values","Error","tsConfig","source","destination","getFolders","packageConfig","getSwcCompilePackageConfiguration","TSConfig","getTsConfig","target","getValue","legacyDecorator","decoratorMetadata","sourceMaps","module","toLowerCase","ignore","includes","push","deepmerge","cliOptions","outDir","stripLeadingPaths","extensions","filenames","swcOptions","jsc","parser","syntax","tsx","decorators","transform","react","runtime","type","arrayMerge","clone","name","global"],"mappings":";;;;+BAiBaA;;;eAAAA;;;qBAjBmB;iEACX;kEACC;uBAC0D;wBACvD;sBACJ;;;;;;AAMrB,SAASC,eAAeC,iBAA4B,EAAEC,WAAsB;IACxE,OAAOA;AACX;AAEA,MAAMC,kBAAkB;AAEjB,MAAMJ,0BAA0BK,UAAI;IAKvC,MAAMC,UAAyB;QAC3B,MAAMC,SAAS,IAAI,CAACC,SAAS;QAE7B,oCAAoC,GACpCC,UAAG,CAACC,KAAK,CAAC,8BAA8B,IAAMC,KAAKC,SAAS,CAACL,QAAQ,MAAM;QAE3E;;;;SAIC,GACD,MAAMM,oBAAoB,IAAI,CAACC,KAAK,GAC9BC,IAAAA,iBAAQ,EAAC,IAAI,CAACC,oBAAoB,CAACC,IAAI,CAAC,IAAI,GAAG,OAC/C,IAAI,CAACD,oBAAoB,CAACC,IAAI,CAAC,IAAI;QAEzC,OAAO,IAAIC,QAAQ,CAACC,SAASC;YACzBC,IAAAA,WAAM,EAAC;gBACH,GAAGd,MAAM;gBACTe,WAAW;oBACPC,WAAW,CAACC;wBACRX,kBAAkB,IAAI,CAACY,SAAS,CAACC,GAAG,CAACF,EAAEG,QAAQ;wBAC/C,IAAI,CAAC,IAAI,CAACb,KAAK,EAAE;4BACbK;wBACJ;oBACJ;oBACAS,QAAQ,CAACJ;wBACLf,UAAG,CAACoB,IAAI,CAAC;+BAAIL,EAAEM,OAAO,CAACC,MAAM;yBAAG,CAAC,EAAE;wBACnC,IAAI,CAACf,oBAAoB,CAAC,IAAI,CAACS,SAAS,CAACC,GAAG,CAACF,EAAEG,QAAQ;wBACvD,IAAI,CAAC,IAAI,CAACb,KAAK,EAAE;4BACbM,OAAO,IAAIY,MAAM;wBACrB;oBACJ;gBACJ;YACJ;QACJ;IACJ;IAEQxB,YAAqB;YAQVyB;QAPf,MAAM,EAAEC,MAAM,EAAEC,WAAW,EAAE,GAAGC,IAAAA,iBAAU;QAC1C,MAAMC,gBAAgBC,IAAAA,wCAAiC;QACvD,MAAML,WAAW,IAAIM,gBAAQ,CAACC,IAAAA,kBAAW;QACzC,MAAMC,SAASR,SAASS,QAAQ,CAAC;QACjC,MAAMC,kBAAkBV,SAASS,QAAQ,CAAC;QAC1C,MAAME,oBAAoBX,SAASS,QAAQ,CAAC;QAC5C,MAAMG,aAAaZ,SAASS,QAAQ,CAAC;QACrC,MAAMI,UAASb,qBAAAA,SAASS,QAAQ,CAAS,uCAA1BT,yCAAAA,mBAAqDc,WAAW;QAC/E,MAAMC,SAASf,SAASS,QAAQ,CAAC,WAAW;YACxC;YACA;YACA;YACA;YACA;SACH;QAED,IAAI,CAACM,OAAOC,QAAQ,CAAC7C,kBAAkB;YACnC4C,OAAOE,IAAI,CAAC9C;QAChB;QAEA,OAAO+C,IAAAA,kBAAS,EACZ;YACIC,YAAY;gBACRtC,OAAO,IAAI,CAACA,KAAK;gBACjBuC,QAAQlB;gBACRmB,mBAAmB;gBACnBC,YAAY;oBAAC;oBAAO;iBAAO;gBAC3BC,WAAW;oBAACtB;iBAAO;gBACnBc;YACJ;YACAS,YAAY;gBACRC,KAAK;oBACDC,QAAQ;wBACJC,QAAQ;wBACRC,KAAK;wBACLC,YAAY;oBAChB;oBACArB;oBACAsB,WAAW;wBACPpB;wBACAC;wBACAoB,OAAO;4BACHC,SAAS;wBACb;oBACJ;gBACJ;gBACApB;gBACAC,QAAQ;oBACJoB,MAAMpB,WAAW,cAAcA,WAAW,aAAa,aAAa;gBACxE;YACJ;QACJ,GACAT,eACA;YAAE8B,YAAYlE;YAAgBmE,OAAO;QAAM;IAEnD;IAjGA,YAAY,EAAEtD,KAAK,EAAQ,CAAE;QACzB,KAAK,CAAC;YAAEuD,MAAM;YAAuBC,QAAQ;YAAOxD;QAAM;IAC9D;AAgGJ"}
@@ -1,6 +1,5 @@
1
- import { CommandArgs } from '../commands';
2
1
  import { CliTask } from './cli-task';
3
- interface Args extends CommandArgs {
2
+ interface Args {
4
3
  watch?: boolean;
5
4
  }
6
5
  export declare class TscCompilePackage extends CliTask {