@servicetitan/startup 38.0.0 → 38.2.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 (429) hide show
  1. package/bin/js-yaml.js +2 -2
  2. package/dist/cli/commands/build.d.ts.map +1 -1
  3. package/dist/cli/commands/build.js +32 -10
  4. package/dist/cli/commands/build.js.map +1 -1
  5. package/dist/cli/commands/bundle-package.d.ts +6 -0
  6. package/dist/cli/commands/bundle-package.d.ts.map +1 -0
  7. package/dist/cli/commands/bundle-package.js +59 -0
  8. package/dist/cli/commands/bundle-package.js.map +1 -0
  9. package/dist/cli/commands/bundle-vite.js +13 -4
  10. package/dist/cli/commands/bundle-vite.js.map +1 -1
  11. package/dist/cli/commands/bundle-webpack.js +13 -4
  12. package/dist/cli/commands/bundle-webpack.js.map +1 -1
  13. package/dist/cli/commands/clean.js +13 -4
  14. package/dist/cli/commands/clean.js.map +1 -1
  15. package/dist/cli/commands/command.d.ts +13 -0
  16. package/dist/cli/commands/command.d.ts.map +1 -0
  17. package/dist/cli/commands/command.js +74 -0
  18. package/dist/cli/commands/command.js.map +1 -0
  19. package/dist/cli/commands/convert-eslint-config.js +14 -7
  20. package/dist/cli/commands/convert-eslint-config.js.map +1 -1
  21. package/dist/cli/commands/eslint.js +13 -4
  22. package/dist/cli/commands/eslint.js.map +1 -1
  23. package/dist/cli/commands/init.d.ts.map +1 -1
  24. package/dist/cli/commands/init.js +13 -5
  25. package/dist/cli/commands/init.js.map +1 -1
  26. package/dist/cli/commands/install.d.ts.map +1 -1
  27. package/dist/cli/commands/install.js +14 -21
  28. package/dist/cli/commands/install.js.map +1 -1
  29. package/dist/cli/commands/kendo-ui-license.js +13 -4
  30. package/dist/cli/commands/kendo-ui-license.js.map +1 -1
  31. package/dist/cli/commands/lint.js +13 -4
  32. package/dist/cli/commands/lint.js.map +1 -1
  33. package/dist/cli/commands/mfe-check.d.ts.map +1 -1
  34. package/dist/cli/commands/mfe-check.js +15 -7
  35. package/dist/cli/commands/mfe-check.js.map +1 -1
  36. package/dist/cli/commands/mfe-generate-metadata.js +13 -4
  37. package/dist/cli/commands/mfe-generate-metadata.js.map +1 -1
  38. package/dist/cli/commands/mfe-list.js +13 -4
  39. package/dist/cli/commands/mfe-list.js.map +1 -1
  40. package/dist/cli/commands/mfe-package-clean.js +13 -4
  41. package/dist/cli/commands/mfe-package-clean.js.map +1 -1
  42. package/dist/cli/commands/mfe-package-publish.js +13 -4
  43. package/dist/cli/commands/mfe-package-publish.js.map +1 -1
  44. package/dist/cli/commands/mfe-package-rollback.js +13 -4
  45. package/dist/cli/commands/mfe-package-rollback.js.map +1 -1
  46. package/dist/cli/commands/mfe-publish.js +13 -4
  47. package/dist/cli/commands/mfe-publish.js.map +1 -1
  48. package/dist/cli/commands/mfe-purge-cache.js +13 -4
  49. package/dist/cli/commands/mfe-purge-cache.js.map +1 -1
  50. package/dist/cli/commands/prepare-package.js +13 -4
  51. package/dist/cli/commands/prepare-package.js.map +1 -1
  52. package/dist/cli/commands/registry/build.d.ts +1 -1
  53. package/dist/cli/commands/registry/build.d.ts.map +1 -1
  54. package/dist/cli/commands/registry/build.js +3 -5
  55. package/dist/cli/commands/registry/build.js.map +1 -1
  56. package/dist/cli/commands/registry/bundle-package.d.ts +41 -0
  57. package/dist/cli/commands/registry/bundle-package.d.ts.map +1 -0
  58. package/dist/cli/commands/registry/bundle-package.js +54 -0
  59. package/dist/cli/commands/registry/bundle-package.js.map +1 -0
  60. package/dist/cli/commands/registry/command-registry.d.ts +42 -18
  61. package/dist/cli/commands/registry/command-registry.d.ts.map +1 -1
  62. package/dist/cli/commands/registry/command-registry.js +10 -19
  63. package/dist/cli/commands/registry/command-registry.js.map +1 -1
  64. package/dist/cli/commands/registry/install.d.ts +0 -16
  65. package/dist/cli/commands/registry/install.d.ts.map +1 -1
  66. package/dist/cli/commands/registry/install.js +1 -17
  67. package/dist/cli/commands/registry/install.js.map +1 -1
  68. package/dist/cli/commands/registry/start.d.ts +1 -1
  69. package/dist/cli/commands/registry/start.d.ts.map +1 -1
  70. package/dist/cli/commands/registry/start.js +3 -5
  71. package/dist/cli/commands/registry/start.js.map +1 -1
  72. package/dist/cli/commands/review/review.js +14 -7
  73. package/dist/cli/commands/review/review.js.map +1 -1
  74. package/dist/cli/commands/review/rules/no-deprecated-content-base.js +1 -3
  75. package/dist/cli/commands/review/rules/no-deprecated-content-base.js.map +1 -1
  76. package/dist/cli/commands/review/rules/no-direct-peer-dependencies.js +1 -3
  77. package/dist/cli/commands/review/rules/no-direct-peer-dependencies.js.map +1 -1
  78. package/dist/cli/commands/review/rules/no-typescript-entry-point.js +1 -3
  79. package/dist/cli/commands/review/rules/no-typescript-entry-point.js.map +1 -1
  80. package/dist/cli/commands/review/rules/prefer-open-ended-peer-dependencies.js +5 -12
  81. package/dist/cli/commands/review/rules/prefer-open-ended-peer-dependencies.js.map +1 -1
  82. package/dist/cli/commands/review/rules/require-compatible-launch-darkly-sdk.js +5 -12
  83. package/dist/cli/commands/review/rules/require-compatible-launch-darkly-sdk.js.map +1 -1
  84. package/dist/cli/commands/review/rules/require-explicit-side-effects.js +1 -3
  85. package/dist/cli/commands/review/rules/require-explicit-side-effects.js.map +1 -1
  86. package/dist/cli/commands/review/rules/require-one-collection-version.js +1 -3
  87. package/dist/cli/commands/review/rules/require-one-collection-version.js.map +1 -1
  88. package/dist/cli/commands/review/rules/require-servicetitan-scope.js +1 -3
  89. package/dist/cli/commands/review/rules/require-servicetitan-scope.js.map +1 -1
  90. package/dist/cli/commands/review/rules/require-tsconfig-references.js +1 -3
  91. package/dist/cli/commands/review/rules/require-tsconfig-references.js.map +1 -1
  92. package/dist/cli/commands/review/utils/compare-version.js +8 -19
  93. package/dist/cli/commands/review/utils/compare-version.js.map +1 -1
  94. package/dist/cli/commands/run-task.d.ts +1 -0
  95. package/dist/cli/commands/run-task.d.ts.map +1 -1
  96. package/dist/cli/commands/run-task.js +20 -6
  97. package/dist/cli/commands/run-task.js.map +1 -1
  98. package/dist/cli/commands/start.d.ts.map +1 -1
  99. package/dist/cli/commands/start.js +37 -14
  100. package/dist/cli/commands/start.js.map +1 -1
  101. package/dist/cli/commands/stylelint.js +13 -4
  102. package/dist/cli/commands/stylelint.js.map +1 -1
  103. package/dist/cli/commands/styles-check.js +13 -4
  104. package/dist/cli/commands/styles-check.js.map +1 -1
  105. package/dist/cli/commands/test/runners/jest.js +1 -3
  106. package/dist/cli/commands/test/runners/jest.js.map +1 -1
  107. package/dist/cli/commands/test/tests.js +13 -4
  108. package/dist/cli/commands/test/tests.js.map +1 -1
  109. package/dist/cli/commands/types.d.ts +1 -6
  110. package/dist/cli/commands/types.d.ts.map +1 -1
  111. package/dist/cli/commands/types.js +2 -20
  112. package/dist/cli/commands/types.js.map +1 -1
  113. package/dist/cli/commands/upload-sourcemaps.js +17 -13
  114. package/dist/cli/commands/upload-sourcemaps.js.map +1 -1
  115. package/dist/cli/index.js +1 -0
  116. package/dist/cli/index.js.map +1 -1
  117. package/dist/cli/tasks/cli-task.d.ts +3 -0
  118. package/dist/cli/tasks/cli-task.d.ts.map +1 -1
  119. package/dist/cli/tasks/cli-task.js +41 -9
  120. package/dist/cli/tasks/cli-task.js.map +1 -1
  121. package/dist/cli/tasks/swc-compile-package/get-swc-options.d.ts +9 -1
  122. package/dist/cli/tasks/swc-compile-package/get-swc-options.d.ts.map +1 -1
  123. package/dist/cli/tasks/swc-compile-package/get-swc-options.js +18 -2
  124. package/dist/cli/tasks/swc-compile-package/get-swc-options.js.map +1 -1
  125. package/dist/cli/tasks/swc-compile-package/swc-compile-package.d.ts +3 -1
  126. package/dist/cli/tasks/swc-compile-package/swc-compile-package.d.ts.map +1 -1
  127. package/dist/cli/tasks/swc-compile-package/swc-compile-package.js +17 -3
  128. package/dist/cli/tasks/swc-compile-package/swc-compile-package.js.map +1 -1
  129. package/dist/cli/tasks/task.d.ts +2 -1
  130. package/dist/cli/tasks/task.d.ts.map +1 -1
  131. package/dist/cli/tasks/task.js +6 -3
  132. package/dist/cli/tasks/task.js.map +1 -1
  133. package/dist/cli/tasks/tsc-compile/tsc-compile.js +1 -3
  134. package/dist/cli/tasks/tsc-compile/tsc-compile.js.map +1 -1
  135. package/dist/cli/utils/cli-git.d.ts +7 -0
  136. package/dist/cli/utils/cli-git.d.ts.map +1 -1
  137. package/dist/cli/utils/cli-git.js +30 -0
  138. package/dist/cli/utils/cli-git.js.map +1 -1
  139. package/dist/cli/utils/cli-npm.d.ts.map +1 -1
  140. package/dist/cli/utils/cli-npm.js +8 -1
  141. package/dist/cli/utils/cli-npm.js.map +1 -1
  142. package/dist/cli/utils/cli-os.d.ts +7 -1
  143. package/dist/cli/utils/cli-os.d.ts.map +1 -1
  144. package/dist/cli/utils/cli-os.js +42 -0
  145. package/dist/cli/utils/cli-os.js.map +1 -1
  146. package/dist/cli/utils/compile.d.ts.map +1 -1
  147. package/dist/cli/utils/compile.js +7 -4
  148. package/dist/cli/utils/compile.js.map +1 -1
  149. package/dist/cli/utils/copy-files.js +1 -0
  150. package/dist/cli/utils/copy-files.js.map +1 -1
  151. package/dist/cli/utils/index.d.ts +1 -1
  152. package/dist/cli/utils/index.d.ts.map +1 -1
  153. package/dist/cli/utils/index.js +1 -1
  154. package/dist/cli/utils/index.js.map +1 -1
  155. package/dist/cli/utils/process-tree.js +2 -6
  156. package/dist/cli/utils/process-tree.js.map +1 -1
  157. package/dist/cli/utils/resolve-bundler.d.ts.map +1 -1
  158. package/dist/cli/utils/resolve-bundler.js +2 -1
  159. package/dist/cli/utils/resolve-bundler.js.map +1 -1
  160. package/dist/cli/utils/ts-config.d.ts +1 -1
  161. package/dist/cli/utils/ts-config.d.ts.map +1 -1
  162. package/dist/cli/utils/ts-config.js +1 -3
  163. package/dist/cli/utils/ts-config.js.map +1 -1
  164. package/dist/cli/utils/with-exponential-backoff.d.ts +7 -0
  165. package/dist/cli/utils/with-exponential-backoff.d.ts.map +1 -0
  166. package/dist/cli/utils/with-exponential-backoff.js +28 -0
  167. package/dist/cli/utils/with-exponential-backoff.js.map +1 -0
  168. package/dist/core/constants.d.ts +2 -0
  169. package/dist/core/constants.d.ts.map +1 -1
  170. package/dist/core/constants.js +6 -1
  171. package/dist/core/constants.js.map +1 -1
  172. package/dist/postinstall.js +118 -0
  173. package/dist/scripts/generate-bin-wrappers.js +203 -0
  174. package/dist/storybook-config/swc.d.ts +6 -0
  175. package/dist/storybook-config/swc.d.ts.map +1 -1
  176. package/dist/storybook-config/webpack-final.d.ts.map +1 -1
  177. package/dist/storybook-config/webpack-final.js +2 -1
  178. package/dist/storybook-config/webpack-final.js.map +1 -1
  179. package/dist/telemetry/index.d.ts +3 -0
  180. package/dist/telemetry/index.d.ts.map +1 -0
  181. package/dist/telemetry/index.js +21 -0
  182. package/dist/telemetry/index.js.map +1 -0
  183. package/dist/telemetry/telemetry.d.ts +15 -0
  184. package/dist/telemetry/telemetry.d.ts.map +1 -0
  185. package/dist/telemetry/telemetry.js +176 -0
  186. package/dist/telemetry/telemetry.js.map +1 -0
  187. package/dist/utils/exit-when-parent-exits.d.ts +6 -0
  188. package/dist/utils/exit-when-parent-exits.d.ts.map +1 -0
  189. package/dist/utils/exit-when-parent-exits.js +37 -0
  190. package/dist/utils/exit-when-parent-exits.js.map +1 -0
  191. package/dist/utils/find-up.d.ts +1 -1
  192. package/dist/utils/find-up.d.ts.map +1 -1
  193. package/dist/utils/find-up.js +2 -2
  194. package/dist/utils/find-up.js.map +1 -1
  195. package/dist/utils/get-configuration.d.ts +6 -3
  196. package/dist/utils/get-configuration.d.ts.map +1 -1
  197. package/dist/utils/get-configuration.js +10 -2
  198. package/dist/utils/get-configuration.js.map +1 -1
  199. package/dist/utils/index.d.ts +1 -0
  200. package/dist/utils/index.d.ts.map +1 -1
  201. package/dist/utils/index.js +1 -0
  202. package/dist/utils/index.js.map +1 -1
  203. package/dist/utils/log.js +1 -3
  204. package/dist/utils/log.js.map +1 -1
  205. package/dist/vite/build-shared-dependencies.d.ts.map +1 -1
  206. package/dist/vite/build-shared-dependencies.js +2 -0
  207. package/dist/vite/build-shared-dependencies.js.map +1 -1
  208. package/dist/vite/config/base-config.d.ts.map +1 -1
  209. package/dist/vite/config/base-config.js +12 -1
  210. package/dist/vite/config/base-config.js.map +1 -1
  211. package/dist/vite/config/create-filtering-logger.d.ts.map +1 -1
  212. package/dist/vite/config/create-filtering-logger.js +6 -2
  213. package/dist/vite/config/create-filtering-logger.js.map +1 -1
  214. package/dist/vite/config/create-vite-config.js +7 -2
  215. package/dist/vite/config/create-vite-config.js.map +1 -1
  216. package/dist/vite/config/load-config-file.js +8 -19
  217. package/dist/vite/config/load-config-file.js.map +1 -1
  218. package/dist/vite/index.d.ts +2 -0
  219. package/dist/vite/index.d.ts.map +1 -1
  220. package/dist/vite/index.html +2 -2
  221. package/dist/vite/index.js +16 -0
  222. package/dist/vite/index.js.map +1 -1
  223. package/dist/vite/plugins/chain-source-maps-plugin.js +1 -1
  224. package/dist/vite/plugins/chain-source-maps-plugin.js.map +1 -1
  225. package/dist/vite/plugins/clean-plugin.js +1 -1
  226. package/dist/vite/plugins/clean-plugin.js.map +1 -1
  227. package/dist/vite/plugins/css-injector-plugin.js +1 -1
  228. package/dist/vite/plugins/css-injector-plugin.js.map +1 -1
  229. package/dist/vite/plugins/design-system-guard-plugin.d.ts.map +1 -1
  230. package/dist/vite/plugins/design-system-guard-plugin.js +10 -5
  231. package/dist/vite/plugins/design-system-guard-plugin.js.map +1 -1
  232. package/dist/vite/plugins/dev-server-routing-plugin.js +1 -1
  233. package/dist/vite/plugins/dev-server-routing-plugin.js.map +1 -1
  234. package/dist/vite/plugins/externals-plugin.d.ts.map +1 -1
  235. package/dist/vite/plugins/externals-plugin.js +11 -5
  236. package/dist/vite/plugins/externals-plugin.js.map +1 -1
  237. package/dist/vite/plugins/html-plugin.d.ts.map +1 -1
  238. package/dist/vite/plugins/html-plugin.js +5 -3
  239. package/dist/vite/plugins/html-plugin.js.map +1 -1
  240. package/dist/vite/plugins/ignore-modules-plugin.d.ts +2 -2
  241. package/dist/vite/plugins/ignore-modules-plugin.d.ts.map +1 -1
  242. package/dist/vite/plugins/ignore-modules-plugin.js +36 -24
  243. package/dist/vite/plugins/ignore-modules-plugin.js.map +1 -1
  244. package/dist/vite/plugins/index.d.ts +3 -0
  245. package/dist/vite/plugins/index.d.ts.map +1 -1
  246. package/dist/vite/plugins/index.js +3 -0
  247. package/dist/vite/plugins/index.js.map +1 -1
  248. package/dist/vite/plugins/less-tilde-plugin.d.ts +8 -0
  249. package/dist/vite/plugins/less-tilde-plugin.d.ts.map +1 -0
  250. package/dist/vite/plugins/less-tilde-plugin.js +53 -0
  251. package/dist/vite/plugins/less-tilde-plugin.js.map +1 -0
  252. package/dist/vite/plugins/magic-comments-plugin/magic-comments-plugin.js +1 -1
  253. package/dist/vite/plugins/magic-comments-plugin/magic-comments-plugin.js.map +1 -1
  254. package/dist/vite/plugins/metadata-plugin.js +1 -1
  255. package/dist/vite/plugins/metadata-plugin.js.map +1 -1
  256. package/dist/vite/plugins/moment-locales-plugin.d.ts +1 -1
  257. package/dist/vite/plugins/moment-locales-plugin.d.ts.map +1 -1
  258. package/dist/vite/plugins/moment-locales-plugin.js +30 -14
  259. package/dist/vite/plugins/moment-locales-plugin.js.map +1 -1
  260. package/dist/vite/plugins/react-refresh-plugin/index.d.ts +2 -0
  261. package/dist/vite/plugins/react-refresh-plugin/index.d.ts.map +1 -0
  262. package/dist/vite/plugins/react-refresh-plugin/index.js +20 -0
  263. package/dist/vite/plugins/react-refresh-plugin/index.js.map +1 -0
  264. package/dist/vite/plugins/react-refresh-plugin/react-refresh-plugin.d.ts +4 -0
  265. package/dist/vite/plugins/react-refresh-plugin/react-refresh-plugin.d.ts.map +1 -0
  266. package/dist/vite/plugins/react-refresh-plugin/react-refresh-plugin.js +143 -0
  267. package/dist/vite/plugins/react-refresh-plugin/react-refresh-plugin.js.map +1 -0
  268. package/dist/vite/plugins/react-refresh-plugin/refresh-runtime.js +113 -0
  269. package/dist/vite/plugins/shared-dependencies-plugin/shared-dependencies-plugin.d.ts.map +1 -1
  270. package/dist/vite/plugins/shared-dependencies-plugin/shared-dependencies-plugin.js +14 -11
  271. package/dist/vite/plugins/shared-dependencies-plugin/shared-dependencies-plugin.js.map +1 -1
  272. package/dist/vite/plugins/style-urls-plugin.js +1 -1
  273. package/dist/vite/plugins/style-urls-plugin.js.map +1 -1
  274. package/dist/vite/plugins/virtual-modules-plugin.d.ts.map +1 -1
  275. package/dist/vite/plugins/virtual-modules-plugin.js +9 -6
  276. package/dist/vite/plugins/virtual-modules-plugin.js.map +1 -1
  277. package/dist/vite/plugins/window-externals-plugin.d.ts +22 -0
  278. package/dist/vite/plugins/window-externals-plugin.d.ts.map +1 -0
  279. package/dist/vite/plugins/window-externals-plugin.js +74 -0
  280. package/dist/vite/plugins/window-externals-plugin.js.map +1 -0
  281. package/dist/webpack/bundle-webpack.d.ts.map +1 -1
  282. package/dist/webpack/bundle-webpack.js +6 -1
  283. package/dist/webpack/bundle-webpack.js.map +1 -1
  284. package/dist/webpack/configs/optimization-config.js +17 -12
  285. package/dist/webpack/configs/optimization-config.js.map +1 -1
  286. package/dist/webpack/configs/output-config.js +1 -1
  287. package/dist/webpack/configs/output-config.js.map +1 -1
  288. package/dist/webpack/configs/plugins/ignore-plugin/ignore-plugin.js +1 -3
  289. package/dist/webpack/configs/plugins/ignore-plugin/ignore-plugin.js.map +1 -1
  290. package/dist/webpack/loaders/expose-loader/__tests__/__mocks__/configuration.expose-loader.js +13 -0
  291. package/dist/webpack/loaders/expose-loader/__tests__/__mocks__/index.js +1 -0
  292. package/dist/webpack/utils/index.d.ts +1 -0
  293. package/dist/webpack/utils/index.d.ts.map +1 -1
  294. package/dist/webpack/utils/index.js +1 -0
  295. package/dist/webpack/utils/index.js.map +1 -1
  296. package/dist/webpack/utils/normalize-proxy-config.d.ts +6 -0
  297. package/dist/webpack/utils/normalize-proxy-config.d.ts.map +1 -0
  298. package/dist/webpack/utils/normalize-proxy-config.js +52 -0
  299. package/dist/webpack/utils/normalize-proxy-config.js.map +1 -0
  300. package/package.json +32 -26
  301. package/src/cli/commands/__tests__/build.test.ts +81 -20
  302. package/src/cli/commands/__tests__/bundle-package.test.ts +65 -0
  303. package/src/cli/commands/__tests__/command.test.ts +154 -0
  304. package/src/cli/commands/__tests__/init.test.ts +1 -1
  305. package/src/cli/commands/__tests__/install.test.ts +5 -72
  306. package/src/cli/commands/__tests__/mfe-check.test.ts +26 -5
  307. package/src/cli/commands/__tests__/run-task.test.ts +20 -1
  308. package/src/cli/commands/__tests__/start.test.ts +77 -16
  309. package/src/cli/commands/build.ts +15 -6
  310. package/src/cli/commands/bundle-package.ts +20 -0
  311. package/src/cli/commands/command.ts +64 -0
  312. package/src/cli/commands/init.ts +0 -1
  313. package/src/cli/commands/install.ts +5 -21
  314. package/src/cli/commands/mfe-check.ts +6 -10
  315. package/src/cli/commands/registry/build.ts +3 -2
  316. package/src/cli/commands/registry/bundle-package.ts +22 -0
  317. package/src/cli/commands/registry/command-registry.ts +2 -0
  318. package/src/cli/commands/registry/install.ts +1 -6
  319. package/src/cli/commands/registry/start.ts +3 -2
  320. package/src/cli/commands/run-task.ts +8 -2
  321. package/src/cli/commands/start.ts +17 -6
  322. package/src/cli/commands/types.ts +2 -6
  323. package/src/cli/index.ts +3 -0
  324. package/src/cli/tasks/__tests__/cli-task.test.ts +181 -69
  325. package/src/cli/tasks/__tests__/task.test.ts +40 -45
  326. package/src/cli/tasks/cli-task.ts +43 -2
  327. package/src/cli/tasks/swc-compile-package/__tests__/get-swc-options.test.ts +46 -4
  328. package/src/cli/tasks/swc-compile-package/__tests__/swc-compile-package.test.ts +25 -4
  329. package/src/cli/tasks/swc-compile-package/get-swc-options.ts +14 -1
  330. package/src/cli/tasks/swc-compile-package/swc-compile-package.ts +6 -2
  331. package/src/cli/tasks/task.ts +8 -2
  332. package/src/cli/tasks/tsc-compile/__tests__/tsc-compile.test.ts +8 -32
  333. package/src/cli/tasks/tsc-compile-package/__tests__/tsc-compile-package.test.ts +10 -19
  334. package/src/cli/utils/__tests__/cli-git.test.ts +54 -3
  335. package/src/cli/utils/__tests__/cli-npm.test.ts +33 -0
  336. package/src/cli/utils/__tests__/cli-os.test.ts +183 -4
  337. package/src/cli/utils/__tests__/compile.test.ts +37 -2
  338. package/src/cli/utils/__tests__/copy-files.test.ts +1 -1
  339. package/src/cli/utils/__tests__/with-exponential-backoff.test.ts +119 -0
  340. package/src/cli/utils/cli-git.ts +27 -1
  341. package/src/cli/utils/cli-npm.ts +19 -4
  342. package/src/cli/utils/cli-os.ts +44 -0
  343. package/src/cli/utils/compile.ts +8 -1
  344. package/src/cli/utils/copy-files.ts +1 -1
  345. package/src/cli/utils/index.ts +1 -1
  346. package/src/cli/utils/resolve-bundler.ts +2 -1
  347. package/src/cli/utils/ts-config.ts +1 -1
  348. package/src/cli/utils/with-exponential-backoff.ts +28 -0
  349. package/src/core/constants.ts +2 -0
  350. package/src/storybook-config/__tests__/vite-final.test.ts +6 -0
  351. package/src/storybook-config/__tests__/webpack-final.test.ts +26 -12
  352. package/src/storybook-config/webpack-final.ts +10 -4
  353. package/src/telemetry/__tests__/telemetry.test.ts +326 -0
  354. package/src/telemetry/index.ts +2 -0
  355. package/src/telemetry/telemetry.ts +134 -0
  356. package/src/utils/__tests__/exit-when-parent-exits.test.ts +87 -0
  357. package/src/utils/__tests__/find-up.test.ts +49 -0
  358. package/src/utils/__tests__/get-configuration.test.ts +62 -0
  359. package/src/utils/exit-when-parent-exits.ts +33 -0
  360. package/src/utils/find-up.ts +2 -2
  361. package/src/utils/get-configuration.ts +14 -5
  362. package/src/utils/index.ts +1 -0
  363. package/src/vite/__tests__/build-shared-dependencies.test.ts +39 -5
  364. package/src/vite/build-shared-dependencies.ts +2 -1
  365. package/src/vite/config/__tests__/base-config.test.ts +12 -4
  366. package/src/vite/config/__tests__/create-css-config.test.ts +2 -6
  367. package/src/vite/config/__tests__/create-filtering-logger.test.ts +3 -2
  368. package/src/vite/config/__tests__/create-vite-config.test.ts +6 -3
  369. package/src/vite/config/base-config.ts +13 -1
  370. package/src/vite/config/create-filtering-logger.ts +8 -2
  371. package/src/vite/config/create-vite-config.ts +6 -3
  372. package/src/vite/index.html +2 -2
  373. package/src/vite/index.ts +2 -0
  374. package/src/vite/plugins/__tests__/chain-source-maps-plugin.test.ts +1 -1
  375. package/src/vite/plugins/__tests__/clean-plugin.test.ts +1 -1
  376. package/src/vite/plugins/__tests__/css-injector-plugin.test.ts +1 -1
  377. package/src/vite/plugins/__tests__/design-system-guard-plugin.test.ts +15 -3
  378. package/src/vite/plugins/__tests__/dev-server-routing-plugin.test.ts +1 -1
  379. package/src/vite/plugins/__tests__/externals-plugin.test.ts +24 -3
  380. package/src/vite/plugins/__tests__/html-plugin.test.ts +10 -3
  381. package/src/vite/plugins/__tests__/html-template.test.ts +10 -2
  382. package/src/vite/plugins/__tests__/ignore-modules-plugin.test.ts +30 -6
  383. package/src/vite/plugins/__tests__/less-tilde-plugin.test.ts +91 -0
  384. package/src/vite/plugins/__tests__/metadata-plugin.test.ts +1 -1
  385. package/src/vite/plugins/__tests__/moment-locales-plugin.test.ts +35 -25
  386. package/src/vite/plugins/__tests__/style-urls-plugin.test.ts +1 -1
  387. package/src/vite/plugins/__tests__/virtual-modules-plugin.test.ts +20 -9
  388. package/src/vite/plugins/__tests__/window-externals-plugin.test.ts +128 -0
  389. package/src/vite/plugins/chain-source-maps-plugin.ts +1 -1
  390. package/src/vite/plugins/clean-plugin.ts +1 -1
  391. package/src/vite/plugins/css-injector-plugin.ts +1 -1
  392. package/src/vite/plugins/design-system-guard-plugin.ts +11 -8
  393. package/src/vite/plugins/dev-server-routing-plugin.ts +1 -1
  394. package/src/vite/plugins/externals-plugin.ts +15 -6
  395. package/src/vite/plugins/html-plugin.ts +4 -2
  396. package/src/vite/plugins/ignore-modules-plugin.ts +32 -23
  397. package/src/vite/plugins/index.ts +3 -0
  398. package/src/vite/plugins/less-tilde-plugin.ts +64 -0
  399. package/src/vite/plugins/magic-comments-plugin/magic-comments-plugin.ts +1 -1
  400. package/src/vite/plugins/metadata-plugin.ts +1 -1
  401. package/src/vite/plugins/moment-locales-plugin.ts +24 -14
  402. package/src/vite/plugins/react-refresh-plugin/README.md +165 -0
  403. package/src/vite/plugins/react-refresh-plugin/__tests__/react-refresh-plugin.test.ts +366 -0
  404. package/src/vite/plugins/react-refresh-plugin/__tests__/refresh-runtime.test.ts +193 -0
  405. package/src/vite/plugins/react-refresh-plugin/index.ts +1 -0
  406. package/src/vite/plugins/react-refresh-plugin/react-refresh-plugin.ts +144 -0
  407. package/src/vite/plugins/react-refresh-plugin/refresh-runtime.js +113 -0
  408. package/src/vite/plugins/shared-dependencies-plugin/__tests__/shared-dependencies-plugin.test.ts +21 -16
  409. package/src/vite/plugins/shared-dependencies-plugin/shared-dependencies-plugin.ts +13 -12
  410. package/src/vite/plugins/style-urls-plugin.ts +1 -1
  411. package/src/vite/plugins/virtual-modules-plugin.ts +8 -7
  412. package/src/vite/plugins/window-externals-plugin.ts +94 -0
  413. package/src/webpack/__tests__/bundle-webpack.test.ts +32 -0
  414. package/src/webpack/__tests__/create-webpack-config-shared-dependencies.test.ts +27 -1
  415. package/src/webpack/__tests__/create-webpack-config-web-component.test.ts +17 -5
  416. package/src/webpack/__tests__/create-webpack-config.test.ts +10 -6
  417. package/src/webpack/bundle-webpack.ts +7 -1
  418. package/src/webpack/configs/optimization-config.ts +22 -11
  419. package/src/webpack/configs/output-config.ts +1 -1
  420. package/src/webpack/utils/__tests__/normalize-proxy-config.test.ts +121 -0
  421. package/src/webpack/utils/index.ts +1 -0
  422. package/src/webpack/utils/normalize-proxy-config.ts +59 -0
  423. package/tsconfig/types.d.ts +10 -0
  424. package/dist/cli/utils/get-bundle-command.d.ts +0 -3
  425. package/dist/cli/utils/get-bundle-command.d.ts.map +0 -1
  426. package/dist/cli/utils/get-bundle-command.js +0 -16
  427. package/dist/cli/utils/get-bundle-command.js.map +0 -1
  428. package/src/cli/utils/__tests__/get-bundle-command.test.ts +0 -23
  429. package/src/cli/utils/get-bundle-command.ts +0 -5
package/bin/js-yaml.js CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- // Auto-generated by scripts/generate-bin-wrappers.js - wraps: js-yaml -> bin/js-yaml.js
3
- require('./_run')('js-yaml', 'bin/js-yaml.js');
2
+ // Auto-generated by scripts/generate-bin-wrappers.js - wraps: js-yaml -> bin/js-yaml.mjs
3
+ require('./_run')('js-yaml', 'bin/js-yaml.mjs');
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/build.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAYlC,qBAAa,KAAM,SAAQ,OAAO,CAAC,OAAO,KAAK,CAAC;IAEtC,OAAO;CAoGhB"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/build.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAYlC,qBAAa,KAAM,SAAQ,OAAO,CAAC,OAAO,KAAK,CAAC;IAEtC,OAAO;CA6GhB"}
@@ -14,12 +14,21 @@ const _kendouilicense = require("./kendo-ui-license");
14
14
  const _types = require("./types");
15
15
  function _ts_decorate(decorators, target, key, desc) {
16
16
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
17
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
18
- else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
17
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
18
+ r = Reflect.decorate(decorators, target, key, desc);
19
+ } else {
20
+ for(var i = decorators.length - 1; i >= 0; i--){
21
+ if (d = decorators[i]) {
22
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
23
+ }
24
+ }
25
+ }
19
26
  return c > 3 && r && Object.defineProperty(target, key, r), r;
20
27
  }
21
- function _ts_metadata(k, v) {
22
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
28
+ function _ts_metadata(metadataKey, metadataValue) {
29
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
30
+ return Reflect.metadata(metadataKey, metadataValue);
31
+ }
23
32
  }
24
33
  var BuildProcesses = /*#__PURE__*/ function(BuildProcesses) {
25
34
  BuildProcesses[BuildProcesses["Precompile"] = 0] = "Precompile";
@@ -51,12 +60,17 @@ class Build extends _types.Command {
51
60
  if (packages.length === 0) {
52
61
  return;
53
62
  }
63
+ this.recordStart('build', {
64
+ bundler: (0, _utils1.resolveBundler)(this.args)
65
+ });
54
66
  if (this.args.cdnPath) {
55
67
  process.env.CLIENT_CDN_PATH = this.args.cdnPath;
56
68
  }
57
69
  const scope = packages.map(({ name })=>name);
58
70
  const bundleScope = packages.filter(({ type })=>type === _utils.PackageType.Bundle).map(({ name })=>name);
59
- const bundleCmd = (0, _utils1.getBundleCommand)(this.args);
71
+ const bundlerArg = [
72
+ `--bundler ${(0, _utils1.resolveBundler)(this.args)}`
73
+ ];
60
74
  const precompileScope = packages.filter(({ scripts })=>!!(scripts === null || scripts === void 0 ? void 0 : scripts.precompile)).map(({ name })=>name);
61
75
  const processTree = new _utils1.ProcessTree();
62
76
  processTree.add(0, ()=>{
@@ -96,12 +110,13 @@ class Build extends _types.Command {
96
110
  return Promise.resolve();
97
111
  }
98
112
  return (0, _utils1.lernaExec)({
99
- 'cmd': bundleCmd,
113
+ 'cmd': 'startup bundle-package',
100
114
  'scope': bundleScope,
101
115
  'parallel': true,
102
116
  'stream': true,
103
117
  '--': [
104
- '--exposed-dependencies'
118
+ '--exposed-dependencies',
119
+ ...bundlerArg
105
120
  ]
106
121
  });
107
122
  }, {
@@ -116,7 +131,7 @@ class Build extends _types.Command {
116
131
  return Promise.resolve();
117
132
  }
118
133
  return (0, _utils1.lernaExec)({
119
- 'cmd': bundleCmd,
134
+ 'cmd': 'startup bundle-package',
120
135
  'scope': bundleScope,
121
136
  'stream': true,
122
137
  '--': [
@@ -131,7 +146,8 @@ class Build extends _types.Command {
131
146
  ],
132
147
  ...[
133
148
  this.args.preview ? '--preview' : undefined
134
- ]
149
+ ],
150
+ ...bundlerArg
135
151
  ].filter((item)=>!!item)
136
152
  });
137
153
  }, {
@@ -139,7 +155,13 @@ class Build extends _types.Command {
139
155
  5
140
156
  ]
141
157
  });
142
- await processTree.run();
158
+ try {
159
+ await processTree.run();
160
+ } catch (error) {
161
+ await this.recordEnd(error);
162
+ throw error;
163
+ }
164
+ this.recordEnd();
143
165
  }
144
166
  }
145
167
  _ts_decorate([
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/commands/build.ts"],"sourcesContent":["import { getPackages, logErrors, PackageType } from '../../utils';\nimport { checkArgs, compile, getBundleCommand, lernaExec, ProcessTree, typeCheck } from '../utils';\nimport { kendoUILicense } from './kendo-ui-license';\nimport type { entry } from './registry/build';\nimport { Command } from './types';\n\nenum BuildProcesses {\n Precompile,\n Compile,\n KendoUILicense,\n PreparePackage,\n TypeCheck,\n BundleExposedDependencies,\n Bundle,\n}\n\nexport class Build extends Command<typeof entry> {\n @logErrors\n async execute() {\n checkArgs(this.args, { obsolete: ['--esbuild', '--experimental-bundlers'] });\n\n const useTsc = this.args.useTsc;\n\n const packages = getPackages({\n scope: this.args.scope,\n ignore: this.args.ignore,\n type: [PackageType.TSC, PackageType.Bundle],\n });\n if (packages.length === 0) {\n return;\n }\n\n if (this.args.cdnPath) {\n process.env.CLIENT_CDN_PATH = this.args.cdnPath;\n }\n\n const scope = packages.map(({ name }) => name);\n const bundleScope = packages\n .filter(({ type }) => type === PackageType.Bundle)\n .map(({ name }) => name);\n const bundleCmd = getBundleCommand(this.args);\n const precompileScope = packages\n .filter(({ scripts }) => !!scripts?.precompile)\n .map(({ name }) => name);\n\n const processTree = new ProcessTree<typeof BuildProcesses>();\n\n processTree.add(BuildProcesses.Precompile, () => {\n if (precompileScope.length === 0) {\n return Promise.resolve();\n }\n return lernaExec({\n cmd: 'npm run precompile',\n scope: precompileScope,\n parallel: true,\n stream: true,\n });\n });\n processTree.add(BuildProcesses.Compile, () => compile({ packages: scope, useTsc }), {\n dependsOn: [BuildProcesses.Precompile],\n });\n processTree.add(BuildProcesses.KendoUILicense, () => kendoUILicense());\n processTree.add(BuildProcesses.PreparePackage, () =>\n lernaExec({\n cmd: 'startup prepare-package',\n scope,\n stream: true,\n })\n );\n processTree.add(BuildProcesses.TypeCheck, () => typeCheck({ packages: scope }), {\n dependsOn: [BuildProcesses.PreparePackage],\n });\n processTree.add(\n BuildProcesses.BundleExposedDependencies,\n () => {\n if (bundleScope.length === 0) {\n return Promise.resolve();\n }\n return lernaExec({\n 'cmd': bundleCmd,\n 'scope': bundleScope,\n 'parallel': true,\n 'stream': true,\n '--': ['--exposed-dependencies'],\n });\n },\n {\n dependsOn: [\n BuildProcesses.Compile,\n BuildProcesses.KendoUILicense,\n BuildProcesses.PreparePackage,\n ],\n }\n );\n processTree.add(\n BuildProcesses.Bundle,\n () => {\n if (bundleScope.length === 0) {\n return Promise.resolve();\n }\n\n return lernaExec({\n 'cmd': bundleCmd,\n 'scope': bundleScope,\n 'stream': true,\n '--': [\n ...[this.args.config ? `--config \"${this.args.config}\"` : undefined],\n ...[this.args.codeCoverage ? '--code-coverage' : undefined],\n ...[this.args.stat ? '--stat' : undefined],\n ...[this.args.preview ? '--preview' : undefined],\n ].filter(item => !!item) as string[],\n });\n },\n { dependsOn: [BuildProcesses.BundleExposedDependencies] }\n );\n\n await processTree.run();\n }\n}\n"],"names":["Build","BuildProcesses","Command","execute","checkArgs","args","obsolete","useTsc","packages","getPackages","scope","ignore","type","PackageType","TSC","Bundle","length","cdnPath","process","env","CLIENT_CDN_PATH","map","name","bundleScope","filter","bundleCmd","getBundleCommand","precompileScope","scripts","precompile","processTree","ProcessTree","add","Promise","resolve","lernaExec","cmd","parallel","stream","compile","dependsOn","kendoUILicense","typeCheck","config","undefined","codeCoverage","stat","preview","item","run"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/cli/commands/build.ts"],"sourcesContent":["import { getPackages, logErrors, PackageType } from '../../utils';\nimport { checkArgs, compile, lernaExec, ProcessTree, resolveBundler, typeCheck } from '../utils';\nimport { kendoUILicense } from './kendo-ui-license';\nimport type { entry } from './registry/build';\nimport { Command } from './types';\n\nenum BuildProcesses {\n Precompile,\n Compile,\n KendoUILicense,\n PreparePackage,\n TypeCheck,\n BundleExposedDependencies,\n Bundle,\n}\n\nexport class Build extends Command<typeof entry> {\n @logErrors\n async execute() {\n checkArgs(this.args, { obsolete: ['--esbuild', '--experimental-bundlers'] });\n\n const useTsc = this.args.useTsc;\n\n const packages = getPackages({\n scope: this.args.scope,\n ignore: this.args.ignore,\n type: [PackageType.TSC, PackageType.Bundle],\n });\n if (packages.length === 0) {\n return;\n }\n\n this.recordStart('build', { bundler: resolveBundler(this.args) });\n\n if (this.args.cdnPath) {\n process.env.CLIENT_CDN_PATH = this.args.cdnPath;\n }\n\n const scope = packages.map(({ name }) => name);\n const bundleScope = packages\n .filter(({ type }) => type === PackageType.Bundle)\n .map(({ name }) => name);\n const bundlerArg = [`--bundler ${resolveBundler(this.args)}`];\n const precompileScope = packages\n .filter(({ scripts }) => !!scripts?.precompile)\n .map(({ name }) => name);\n\n const processTree = new ProcessTree<typeof BuildProcesses>();\n\n processTree.add(BuildProcesses.Precompile, () => {\n if (precompileScope.length === 0) {\n return Promise.resolve();\n }\n return lernaExec({\n cmd: 'npm run precompile',\n scope: precompileScope,\n parallel: true,\n stream: true,\n });\n });\n processTree.add(BuildProcesses.Compile, () => compile({ packages: scope, useTsc }), {\n dependsOn: [BuildProcesses.Precompile],\n });\n processTree.add(BuildProcesses.KendoUILicense, () => kendoUILicense());\n processTree.add(BuildProcesses.PreparePackage, () =>\n lernaExec({\n cmd: 'startup prepare-package',\n scope,\n stream: true,\n })\n );\n processTree.add(BuildProcesses.TypeCheck, () => typeCheck({ packages: scope }), {\n dependsOn: [BuildProcesses.PreparePackage],\n });\n processTree.add(\n BuildProcesses.BundleExposedDependencies,\n () => {\n if (bundleScope.length === 0) {\n return Promise.resolve();\n }\n return lernaExec({\n 'cmd': 'startup bundle-package',\n 'scope': bundleScope,\n 'parallel': true,\n 'stream': true,\n '--': ['--exposed-dependencies', ...bundlerArg],\n });\n },\n {\n dependsOn: [\n BuildProcesses.Compile,\n BuildProcesses.KendoUILicense,\n BuildProcesses.PreparePackage,\n ],\n }\n );\n processTree.add(\n BuildProcesses.Bundle,\n () => {\n if (bundleScope.length === 0) {\n return Promise.resolve();\n }\n\n return lernaExec({\n 'cmd': 'startup bundle-package',\n 'scope': bundleScope,\n 'stream': true,\n '--': [\n ...[this.args.config ? `--config \"${this.args.config}\"` : undefined],\n ...[this.args.codeCoverage ? '--code-coverage' : undefined],\n ...[this.args.stat ? '--stat' : undefined],\n ...[this.args.preview ? '--preview' : undefined],\n ...bundlerArg,\n ].filter(item => !!item) as string[],\n });\n },\n { dependsOn: [BuildProcesses.BundleExposedDependencies] }\n );\n\n try {\n await processTree.run();\n } catch (error) {\n await this.recordEnd(error);\n throw error;\n }\n this.recordEnd();\n }\n}\n"],"names":["Build","BuildProcesses","Command","execute","checkArgs","args","obsolete","useTsc","packages","getPackages","scope","ignore","type","PackageType","TSC","Bundle","length","recordStart","bundler","resolveBundler","cdnPath","process","env","CLIENT_CDN_PATH","map","name","bundleScope","filter","bundlerArg","precompileScope","scripts","precompile","processTree","ProcessTree","add","Promise","resolve","lernaExec","cmd","parallel","stream","compile","dependsOn","kendoUILicense","typeCheck","config","undefined","codeCoverage","stat","preview","item","run","error","recordEnd"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { entry } from './registry/bundle-package';
2
+ import { Command } from './types';
3
+ export declare class BundlePackage extends Command<typeof entry> {
4
+ execute(): Promise<void>;
5
+ }
6
+ //# sourceMappingURL=bundle-package.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle-package.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/bundle-package.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,qBAAa,aAAc,SAAQ,OAAO,CAAC,OAAO,KAAK,CAAC;IAC9C,OAAO;CAahB"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "BundlePackage", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return BundlePackage;
9
+ }
10
+ });
11
+ const _core = require("../../core");
12
+ const _utils = require("../../utils");
13
+ const _types = require("./types");
14
+ function _getRequireWildcardCache(nodeInterop) {
15
+ if (typeof WeakMap !== "function") return null;
16
+ var cacheBabelInterop = new WeakMap();
17
+ var cacheNodeInterop = new WeakMap();
18
+ return (_getRequireWildcardCache = function(nodeInterop) {
19
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
20
+ })(nodeInterop);
21
+ }
22
+ function _interop_require_wildcard(obj, nodeInterop) {
23
+ if (!nodeInterop && obj && obj.__esModule) return obj;
24
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") return {
25
+ default: obj
26
+ };
27
+ var cache = _getRequireWildcardCache(nodeInterop);
28
+ if (cache && cache.has(obj)) return cache.get(obj);
29
+ var newObj = {
30
+ __proto__: null
31
+ };
32
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
33
+ for(var key in obj){
34
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
35
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
36
+ if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);
37
+ else newObj[key] = obj[key];
38
+ }
39
+ }
40
+ newObj.default = obj;
41
+ if (cache) cache.set(obj, newObj);
42
+ return newObj;
43
+ }
44
+ class BundlePackage extends _types.Command {
45
+ async execute() {
46
+ var _ref, _getConfiguration_bundler;
47
+ // Local cli.bundler overrides project-wide default in this.args.bundler
48
+ const bundler = (_ref = (_getConfiguration_bundler = (0, _utils.getConfiguration)().bundler) !== null && _getConfiguration_bundler !== void 0 ? _getConfiguration_bundler : this.args.bundler) !== null && _ref !== void 0 ? _ref : _core.bundleConstants.defaultBundler;
49
+ if (bundler === 'vite') {
50
+ const { BundleVite } = await Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("./bundle-vite")));
51
+ await new BundleVite(this.args).execute();
52
+ } else {
53
+ const { BundleWebpack } = await Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("./bundle-webpack")));
54
+ await new BundleWebpack(this.args).execute();
55
+ }
56
+ }
57
+ }
58
+
59
+ //# sourceMappingURL=bundle-package.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/cli/commands/bundle-package.ts"],"sourcesContent":["import { bundleConstants } from '../../core';\nimport { getConfiguration } from '../../utils';\nimport { entry } from './registry/bundle-package';\nimport { Command } from './types';\n\nexport class BundlePackage extends Command<typeof entry> {\n async execute() {\n // Local cli.bundler overrides project-wide default in this.args.bundler\n const bundler =\n getConfiguration().bundler ?? this.args.bundler ?? bundleConstants.defaultBundler;\n\n if (bundler === 'vite') {\n const { BundleVite } = await import('./bundle-vite');\n await new BundleVite(this.args).execute();\n } else {\n const { BundleWebpack } = await import('./bundle-webpack');\n await new BundleWebpack(this.args).execute();\n }\n }\n}\n"],"names":["BundlePackage","Command","execute","getConfiguration","bundler","args","bundleConstants","defaultBundler","BundleVite","BundleWebpack"],"mappings":";;;;+BAKaA;;;eAAAA;;;sBALmB;uBACC;uBAET;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEjB,MAAMA,sBAAsBC,cAAO;IACtC,MAAMC,UAAU;YAGRC,MAAAA;QAFJ,wEAAwE;QACxE,MAAMC,WACFD,QAAAA,4BAAAA,IAAAA,uBAAgB,IAAGC,OAAO,cAA1BD,uCAAAA,4BAA8B,IAAI,CAACE,IAAI,CAACD,OAAO,cAA/CD,kBAAAA,OAAmDG,qBAAe,CAACC,cAAc;QAErF,IAAIH,YAAY,QAAQ;YACpB,MAAM,EAAEI,UAAU,EAAE,GAAG,MAAM,mEAAA,QAAO;YACpC,MAAM,IAAIA,WAAW,IAAI,CAACH,IAAI,EAAEH,OAAO;QAC3C,OAAO;YACH,MAAM,EAAEO,aAAa,EAAE,GAAG,MAAM,mEAAA,QAAO;YACvC,MAAM,IAAIA,cAAc,IAAI,CAACJ,IAAI,EAAEH,OAAO;QAC9C;IACJ;AACJ"}
@@ -17,12 +17,21 @@ const _validateshareddependencies = require("../../vite/validate-shared-dependen
17
17
  const _types = require("./types");
18
18
  function _ts_decorate(decorators, target, key, desc) {
19
19
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
- else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
21
+ r = Reflect.decorate(decorators, target, key, desc);
22
+ } else {
23
+ for(var i = decorators.length - 1; i >= 0; i--){
24
+ if (d = decorators[i]) {
25
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
26
+ }
27
+ }
28
+ }
22
29
  return c > 3 && r && Object.defineProperty(target, key, r), r;
23
30
  }
24
- function _ts_metadata(k, v) {
25
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
31
+ function _ts_metadata(metadataKey, metadataValue) {
32
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
33
+ return Reflect.metadata(metadataKey, metadataValue);
34
+ }
26
35
  }
27
36
  class BundleVite extends _types.Command {
28
37
  async execute() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/commands/bundle-vite.ts"],"sourcesContent":["import { build, createServer, preview as previewServer } from 'vite';\nimport { BuildContextOptions, getBuildName, stringifyConfig } from '../../core';\nimport {\n hasHeadlessBundle,\n isExposeSharedDependencies,\n isViteDevServerDisabled,\n isWebComponent,\n log,\n logErrors,\n} from '../../utils';\nimport { buildSharedDependencies } from '../../vite/build-shared-dependencies';\nimport { createViteConfig } from '../../vite/config';\nimport { validateViteSharedDependencies } from '../../vite/validate-shared-dependencies';\nimport { entry } from './registry/bundle-vite';\nimport { Command } from './types';\n\nexport class BundleVite extends Command<typeof entry> {\n @logErrors\n async execute() {\n validateViteSharedDependencies();\n\n const { preview = false, useWatchConfig = false, watch = false } = this.args;\n const isProduction = !(watch || useWatchConfig);\n\n const options: BuildContextOptions = {\n name: getBuildName(),\n isProduction,\n buildStat: this.args.stat,\n };\n\n if (this.args.printConfig) {\n const config = await createViteConfig(options);\n log.text(stringifyConfig(config));\n return;\n }\n\n if (this.args.exposedDependencies) {\n if (watch) {\n throw new Error('cannot bundle exposed dependencies in watch mode');\n }\n if (!isExposeSharedDependencies()) {\n return;\n }\n await buildSharedDependencies(options);\n return;\n }\n\n if (isWebComponent()) {\n // Start builds sequentially to avoid I/O contention during startup\n await buildAndServe({ ...options, light: true }, { watch });\n if (hasHeadlessBundle()) {\n await buildAndServe({ ...options, headless: true }, { watch });\n }\n }\n\n await buildAndServe(options, { watch, preview });\n }\n}\n\nasync function buildAndServe(\n options: BuildContextOptions,\n { watch, preview = false }: { watch: boolean; preview?: boolean }\n): Promise<void> {\n const config = await createViteConfig(options);\n if (watch) {\n if (isViteDevServerDisabled()) {\n /*\n * Create a development build with no HTTP server, using Vite's watcher to rebuild\n * on change. `vite build` forces NODE_ENV to production regardless of `mode`, because\n * Vite treats the two as independent. Set NODE_ENV directly to get a development\n * build; `mode` alone does not change it.\n */\n process.env.NODE_ENV = 'development';\n await build({ ...config, build: { ...config.build, watch: {} } });\n return;\n }\n await serve(config);\n return;\n }\n\n await build(config);\n if (preview) {\n await serve({ ...config, preview: { port: config.server?.port, open: true } }, true);\n }\n}\n\nasync function serve(config: import('vite').InlineConfig, preview = false) {\n const server = preview ? await previewServer(config) : await createServer(config);\n if ('listen' in server) {\n await server.listen();\n }\n server.printUrls();\n server.bindCLIShortcuts({ print: true });\n return server;\n}\n"],"names":["BundleVite","Command","execute","validateViteSharedDependencies","preview","useWatchConfig","watch","args","isProduction","options","name","getBuildName","buildStat","stat","printConfig","config","createViteConfig","log","text","stringifyConfig","exposedDependencies","Error","isExposeSharedDependencies","buildSharedDependencies","isWebComponent","buildAndServe","light","hasHeadlessBundle","headless","isViteDevServerDisabled","process","env","NODE_ENV","build","serve","port","server","open","previewServer","createServer","listen","printUrls","bindCLIShortcuts","print"],"mappings":";;;;+BAgBaA;;;eAAAA;;;sBAhBiD;sBACK;uBAQ5D;yCACiC;wBACP;4CACc;uBAEvB;;;;;;;;;;AAEjB,MAAMA,mBAAmBC,cAAO;IACnC,MACMC,UAAU;QACZC,IAAAA,0DAA8B;QAE9B,MAAM,EAAEC,UAAU,KAAK,EAAEC,iBAAiB,KAAK,EAAEC,QAAQ,KAAK,EAAE,GAAG,IAAI,CAACC,IAAI;QAC5E,MAAMC,eAAe,CAAEF,CAAAA,SAASD,cAAa;QAE7C,MAAMI,UAA+B;YACjCC,MAAMC,IAAAA,kBAAY;YAClBH;YACAI,WAAW,IAAI,CAACL,IAAI,CAACM,IAAI;QAC7B;QAEA,IAAI,IAAI,CAACN,IAAI,CAACO,WAAW,EAAE;YACvB,MAAMC,SAAS,MAAMC,IAAAA,wBAAgB,EAACP;YACtCQ,UAAG,CAACC,IAAI,CAACC,IAAAA,qBAAe,EAACJ;YACzB;QACJ;QAEA,IAAI,IAAI,CAACR,IAAI,CAACa,mBAAmB,EAAE;YAC/B,IAAId,OAAO;gBACP,MAAM,IAAIe,MAAM;YACpB;YACA,IAAI,CAACC,IAAAA,iCAA0B,KAAI;gBAC/B;YACJ;YACA,MAAMC,IAAAA,gDAAuB,EAACd;YAC9B;QACJ;QAEA,IAAIe,IAAAA,qBAAc,KAAI;YAClB,mEAAmE;YACnE,MAAMC,cAAc;gBAAE,GAAGhB,OAAO;gBAAEiB,OAAO;YAAK,GAAG;gBAAEpB;YAAM;YACzD,IAAIqB,IAAAA,wBAAiB,KAAI;gBACrB,MAAMF,cAAc;oBAAE,GAAGhB,OAAO;oBAAEmB,UAAU;gBAAK,GAAG;oBAAEtB;gBAAM;YAChE;QACJ;QAEA,MAAMmB,cAAchB,SAAS;YAAEH;YAAOF;QAAQ;IAClD;AACJ;;;;;;;AAEA,eAAeqB,cACXhB,OAA4B,EAC5B,EAAEH,KAAK,EAAEF,UAAU,KAAK,EAAyC;IAEjE,MAAMW,SAAS,MAAMC,IAAAA,wBAAgB,EAACP;IACtC,IAAIH,OAAO;QACP,IAAIuB,IAAAA,8BAAuB,KAAI;YAC3B;;;;;aAKC,GACDC,QAAQC,GAAG,CAACC,QAAQ,GAAG;YACvB,MAAMC,IAAAA,WAAK,EAAC;gBAAE,GAAGlB,MAAM;gBAAEkB,OAAO;oBAAE,GAAGlB,OAAOkB,KAAK;oBAAE3B,OAAO,CAAC;gBAAE;YAAE;YAC/D;QACJ;QACA,MAAM4B,MAAMnB;QACZ;IACJ;IAEA,MAAMkB,IAAAA,WAAK,EAAClB;IACZ,IAAIX,SAAS;YACiCW;QAA1C,MAAMmB,MAAM;YAAE,GAAGnB,MAAM;YAAEX,SAAS;gBAAE+B,IAAI,GAAEpB,iBAAAA,OAAOqB,MAAM,cAAbrB,qCAAAA,eAAeoB,IAAI;gBAAEE,MAAM;YAAK;QAAE,GAAG;IACnF;AACJ;AAEA,eAAeH,MAAMnB,MAAmC,EAAEX,UAAU,KAAK;IACrE,MAAMgC,SAAShC,UAAU,MAAMkC,IAAAA,aAAa,EAACvB,UAAU,MAAMwB,IAAAA,kBAAY,EAACxB;IAC1E,IAAI,YAAYqB,QAAQ;QACpB,MAAMA,OAAOI,MAAM;IACvB;IACAJ,OAAOK,SAAS;IAChBL,OAAOM,gBAAgB,CAAC;QAAEC,OAAO;IAAK;IACtC,OAAOP;AACX"}
1
+ {"version":3,"sources":["../../../src/cli/commands/bundle-vite.ts"],"sourcesContent":["import { build, createServer, preview as previewServer } from 'vite';\nimport { BuildContextOptions, getBuildName, stringifyConfig } from '../../core';\nimport {\n hasHeadlessBundle,\n isExposeSharedDependencies,\n isViteDevServerDisabled,\n isWebComponent,\n log,\n logErrors,\n} from '../../utils';\nimport { buildSharedDependencies } from '../../vite/build-shared-dependencies';\nimport { createViteConfig } from '../../vite/config';\nimport { validateViteSharedDependencies } from '../../vite/validate-shared-dependencies';\nimport { entry } from './registry/bundle-vite';\nimport { Command } from './types';\n\nexport class BundleVite extends Command<typeof entry> {\n @logErrors\n async execute() {\n validateViteSharedDependencies();\n\n const { preview = false, useWatchConfig = false, watch = false } = this.args;\n const isProduction = !(watch || useWatchConfig);\n\n const options: BuildContextOptions = {\n name: getBuildName(),\n isProduction,\n buildStat: this.args.stat,\n };\n\n if (this.args.printConfig) {\n const config = await createViteConfig(options);\n log.text(stringifyConfig(config));\n return;\n }\n\n if (this.args.exposedDependencies) {\n if (watch) {\n throw new Error('cannot bundle exposed dependencies in watch mode');\n }\n if (!isExposeSharedDependencies()) {\n return;\n }\n await buildSharedDependencies(options);\n return;\n }\n\n if (isWebComponent()) {\n // Start builds sequentially to avoid I/O contention during startup\n await buildAndServe({ ...options, light: true }, { watch });\n if (hasHeadlessBundle()) {\n await buildAndServe({ ...options, headless: true }, { watch });\n }\n }\n\n await buildAndServe(options, { watch, preview });\n }\n}\n\nasync function buildAndServe(\n options: BuildContextOptions,\n { watch, preview = false }: { watch: boolean; preview?: boolean }\n): Promise<void> {\n const config = await createViteConfig(options);\n if (watch) {\n if (isViteDevServerDisabled()) {\n /*\n * Create a development build with no HTTP server, using Vite's watcher to rebuild\n * on change. `vite build` forces NODE_ENV to production regardless of `mode`, because\n * Vite treats the two as independent. Set NODE_ENV directly to get a development\n * build; `mode` alone does not change it.\n */\n process.env.NODE_ENV = 'development';\n await build({ ...config, build: { ...config.build, watch: {} } });\n return;\n }\n await serve(config);\n return;\n }\n\n await build(config);\n if (preview) {\n await serve({ ...config, preview: { port: config.server?.port, open: true } }, true);\n }\n}\n\nasync function serve(config: import('vite').InlineConfig, preview = false) {\n const server = preview ? await previewServer(config) : await createServer(config);\n if ('listen' in server) {\n await server.listen();\n }\n server.printUrls();\n server.bindCLIShortcuts({ print: true });\n return server;\n}\n"],"names":["BundleVite","Command","execute","validateViteSharedDependencies","preview","useWatchConfig","watch","args","isProduction","options","name","getBuildName","buildStat","stat","printConfig","config","createViteConfig","log","text","stringifyConfig","exposedDependencies","Error","isExposeSharedDependencies","buildSharedDependencies","isWebComponent","buildAndServe","light","hasHeadlessBundle","headless","isViteDevServerDisabled","process","env","NODE_ENV","build","serve","port","server","open","previewServer","createServer","listen","printUrls","bindCLIShortcuts","print"],"mappings":";;;;+BAgBaA;;;eAAAA;;;sBAhBiD;sBACK;uBAQ5D;yCACiC;wBACP;4CACc;uBAEvB;;;;;;;;;;;;;;;;;;;AAEjB,MAAMA,mBAAmBC,cAAO;IACnC,MACMC,UAAU;QACZC,IAAAA,0DAA8B;QAE9B,MAAM,EAAEC,UAAU,KAAK,EAAEC,iBAAiB,KAAK,EAAEC,QAAQ,KAAK,EAAE,GAAG,IAAI,CAACC,IAAI;QAC5E,MAAMC,eAAe,CAAEF,CAAAA,SAASD,cAAa;QAE7C,MAAMI,UAA+B;YACjCC,MAAMC,IAAAA,kBAAY;YAClBH;YACAI,WAAW,IAAI,CAACL,IAAI,CAACM,IAAI;QAC7B;QAEA,IAAI,IAAI,CAACN,IAAI,CAACO,WAAW,EAAE;YACvB,MAAMC,SAAS,MAAMC,IAAAA,wBAAgB,EAACP;YACtCQ,UAAG,CAACC,IAAI,CAACC,IAAAA,qBAAe,EAACJ;YACzB;QACJ;QAEA,IAAI,IAAI,CAACR,IAAI,CAACa,mBAAmB,EAAE;YAC/B,IAAId,OAAO;gBACP,MAAM,IAAIe,MAAM;YACpB;YACA,IAAI,CAACC,IAAAA,iCAA0B,KAAI;gBAC/B;YACJ;YACA,MAAMC,IAAAA,gDAAuB,EAACd;YAC9B;QACJ;QAEA,IAAIe,IAAAA,qBAAc,KAAI;YAClB,mEAAmE;YACnE,MAAMC,cAAc;gBAAE,GAAGhB,OAAO;gBAAEiB,OAAO;YAAK,GAAG;gBAAEpB;YAAM;YACzD,IAAIqB,IAAAA,wBAAiB,KAAI;gBACrB,MAAMF,cAAc;oBAAE,GAAGhB,OAAO;oBAAEmB,UAAU;gBAAK,GAAG;oBAAEtB;gBAAM;YAChE;QACJ;QAEA,MAAMmB,cAAchB,SAAS;YAAEH;YAAOF;QAAQ;IAClD;AACJ;;;;;;;AAEA,eAAeqB,cACXhB,OAA4B,EAC5B,EAAEH,KAAK,EAAEF,UAAU,KAAK,EAAyC;IAEjE,MAAMW,SAAS,MAAMC,IAAAA,wBAAgB,EAACP;IACtC,IAAIH,OAAO;QACP,IAAIuB,IAAAA,8BAAuB,KAAI;YAC3B;;;;;aAKC,GACDC,QAAQC,GAAG,CAACC,QAAQ,GAAG;YACvB,MAAMC,IAAAA,WAAK,EAAC;gBAAE,GAAGlB,MAAM;gBAAEkB,OAAO;oBAAE,GAAGlB,OAAOkB,KAAK;oBAAE3B,OAAO,CAAC;gBAAE;YAAE;YAC/D;QACJ;QACA,MAAM4B,MAAMnB;QACZ;IACJ;IAEA,MAAMkB,IAAAA,WAAK,EAAClB;IACZ,IAAIX,SAAS;YACiCW;QAA1C,MAAMmB,MAAM;YAAE,GAAGnB,MAAM;YAAEX,SAAS;gBAAE+B,IAAI,GAAEpB,iBAAAA,OAAOqB,MAAM,cAAbrB,qCAAAA,eAAeoB,IAAI;gBAAEE,MAAM;YAAK;QAAE,GAAG;IACnF;AACJ;AAEA,eAAeH,MAAMnB,MAAmC,EAAEX,UAAU,KAAK;IACrE,MAAMgC,SAAShC,UAAU,MAAMkC,IAAAA,aAAa,EAACvB,UAAU,MAAMwB,IAAAA,kBAAY,EAACxB;IAC1E,IAAI,YAAYqB,QAAQ;QACpB,MAAMA,OAAOI,MAAM;IACvB;IACAJ,OAAOK,SAAS;IAChBL,OAAOM,gBAAgB,CAAC;QAAEC,OAAO;IAAK;IACtC,OAAOP;AACX"}
@@ -14,12 +14,21 @@ const _utils1 = require("../utils");
14
14
  const _types = require("./types");
15
15
  function _ts_decorate(decorators, target, key, desc) {
16
16
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
17
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
18
- else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
17
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
18
+ r = Reflect.decorate(decorators, target, key, desc);
19
+ } else {
20
+ for(var i = decorators.length - 1; i >= 0; i--){
21
+ if (d = decorators[i]) {
22
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
23
+ }
24
+ }
25
+ }
19
26
  return c > 3 && r && Object.defineProperty(target, key, r), r;
20
27
  }
21
- function _ts_metadata(k, v) {
22
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
28
+ function _ts_metadata(metadataKey, metadataValue) {
29
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
30
+ return Reflect.metadata(metadataKey, metadataValue);
31
+ }
23
32
  }
24
33
  class BundleWebpack extends _types.Command {
25
34
  async execute() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/commands/bundle-webpack.ts"],"sourcesContent":["import { getTsConfig, log, logErrors, validateSharedDependencies } from '../../utils';\nimport { bundleWebpack } from '../../webpack';\nimport { getModuleType } from '../utils';\nimport type { entry } from './registry/bundle-webpack';\nimport { Command } from './types';\n\nexport class BundleWebpack extends Command<typeof entry> {\n @logErrors\n async execute() {\n validateSharedDependencies();\n\n const {\n config,\n codeCoverage,\n exposedDependencies: emitExposedDependencies,\n stat = false,\n useWatchConfig,\n watch,\n } = this.args;\n\n if (getModuleType(getTsConfig()) !== 'esnext') {\n log.warning(\n 'webpack packages should set compilerOptions.module to \"esnext\" in tsconfig.json'\n );\n }\n\n const options: Parameters<typeof bundleWebpack>[0] = {\n ...(emitExposedDependencies ? {} : { config }),\n codeCoverage,\n emitExposedDependencies,\n useWatchConfig,\n };\n\n await bundleWebpack({ buildStat: stat, ...options, watch });\n }\n}\n"],"names":["BundleWebpack","Command","execute","validateSharedDependencies","config","codeCoverage","exposedDependencies","emitExposedDependencies","stat","useWatchConfig","watch","args","getModuleType","getTsConfig","log","warning","options","bundleWebpack","buildStat"],"mappings":";;;;+BAMaA;;;eAAAA;;;uBAN2D;yBAC1C;wBACA;uBAEN;;;;;;;;;;AAEjB,MAAMA,sBAAsBC,cAAO;IACtC,MACMC,UAAU;QACZC,IAAAA,iCAA0B;QAE1B,MAAM,EACFC,MAAM,EACNC,YAAY,EACZC,qBAAqBC,uBAAuB,EAC5CC,OAAO,KAAK,EACZC,cAAc,EACdC,KAAK,EACR,GAAG,IAAI,CAACC,IAAI;QAEb,IAAIC,IAAAA,qBAAa,EAACC,IAAAA,kBAAW,SAAQ,UAAU;YAC3CC,UAAG,CAACC,OAAO,CACP;QAER;QAEA,MAAMC,UAA+C;YACjD,GAAIT,0BAA0B,CAAC,IAAI;gBAAEH;YAAO,CAAC;YAC7CC;YACAE;YACAE;QACJ;QAEA,MAAMQ,IAAAA,sBAAa,EAAC;YAAEC,WAAWV;YAAM,GAAGQ,OAAO;YAAEN;QAAM;IAC7D;AACJ"}
1
+ {"version":3,"sources":["../../../src/cli/commands/bundle-webpack.ts"],"sourcesContent":["import { getTsConfig, log, logErrors, validateSharedDependencies } from '../../utils';\nimport { bundleWebpack } from '../../webpack';\nimport { getModuleType } from '../utils';\nimport type { entry } from './registry/bundle-webpack';\nimport { Command } from './types';\n\nexport class BundleWebpack extends Command<typeof entry> {\n @logErrors\n async execute() {\n validateSharedDependencies();\n\n const {\n config,\n codeCoverage,\n exposedDependencies: emitExposedDependencies,\n stat = false,\n useWatchConfig,\n watch,\n } = this.args;\n\n if (getModuleType(getTsConfig()) !== 'esnext') {\n log.warning(\n 'webpack packages should set compilerOptions.module to \"esnext\" in tsconfig.json'\n );\n }\n\n const options: Parameters<typeof bundleWebpack>[0] = {\n ...(emitExposedDependencies ? {} : { config }),\n codeCoverage,\n emitExposedDependencies,\n useWatchConfig,\n };\n\n await bundleWebpack({ buildStat: stat, ...options, watch });\n }\n}\n"],"names":["BundleWebpack","Command","execute","validateSharedDependencies","config","codeCoverage","exposedDependencies","emitExposedDependencies","stat","useWatchConfig","watch","args","getModuleType","getTsConfig","log","warning","options","bundleWebpack","buildStat"],"mappings":";;;;+BAMaA;;;eAAAA;;;uBAN2D;yBAC1C;wBACA;uBAEN;;;;;;;;;;;;;;;;;;;AAEjB,MAAMA,sBAAsBC,cAAO;IACtC,MACMC,UAAU;QACZC,IAAAA,iCAA0B;QAE1B,MAAM,EACFC,MAAM,EACNC,YAAY,EACZC,qBAAqBC,uBAAuB,EAC5CC,OAAO,KAAK,EACZC,cAAc,EACdC,KAAK,EACR,GAAG,IAAI,CAACC,IAAI;QAEb,IAAIC,IAAAA,qBAAa,EAACC,IAAAA,kBAAW,SAAQ,UAAU;YAC3CC,UAAG,CAACC,OAAO,CACP;QAER;QAEA,MAAMC,UAA+C;YACjD,GAAIT,0BAA0B,CAAC,IAAI;gBAAEH;YAAO,CAAC;YAC7CC;YACAE;YACAE;QACJ;QAEA,MAAMQ,IAAAA,sBAAa,EAAC;YAAEC,WAAWV;YAAM,GAAGQ,OAAO;YAAEN;QAAM;IAC7D;AACJ"}
@@ -23,12 +23,21 @@ function _interop_require_default(obj) {
23
23
  }
24
24
  function _ts_decorate(decorators, target, key, desc) {
25
25
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
26
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
27
- else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
26
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
27
+ r = Reflect.decorate(decorators, target, key, desc);
28
+ } else {
29
+ for(var i = decorators.length - 1; i >= 0; i--){
30
+ if (d = decorators[i]) {
31
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
32
+ }
33
+ }
34
+ }
28
35
  return c > 3 && r && Object.defineProperty(target, key, r), r;
29
36
  }
30
- function _ts_metadata(k, v) {
31
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
37
+ function _ts_metadata(metadataKey, metadataValue) {
38
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
39
+ return Reflect.metadata(metadataKey, metadataValue);
40
+ }
32
41
  }
33
42
  const exec = (0, _nodeutil.promisify)(_nodechild_process.exec);
34
43
  var CleanProcesses = /*#__PURE__*/ function(CleanProcesses) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/commands/clean.ts"],"sourcesContent":["import { getPackageManager } from '@servicetitan/install';\nimport { exec as execAsync, execSync } from 'node:child_process';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport { promisify } from 'node:util';\nimport { log, logErrors } from '../../utils';\nimport { ProcessTree } from '../utils/process-tree';\nimport type { entry } from './registry/clean';\nimport { Command } from './types';\n\nconst exec = promisify(execAsync);\n\nenum CleanProcesses {\n CleanGitWorkingTree,\n ClearJestCache,\n ClearNpxCache,\n ClearPackageManagerCache,\n ResetNx,\n}\n\nexport class Clean extends Command<typeof entry> {\n @logErrors\n async execute() {\n const processTree = new ProcessTree<typeof CleanProcesses>();\n\n processTree.add(CleanProcesses.ResetNx, () => this.runCommand('nx reset'));\n processTree.add(CleanProcesses.ClearJestCache, () => this.runCommand('jest --clearCache'));\n processTree.add(CleanProcesses.ClearPackageManagerCache, () =>\n Promise.resolve(this.clearPackageManagerCache())\n );\n processTree.add(CleanProcesses.ClearNpxCache, () => this.clearNpxCache());\n\n await processTree.run();\n\n this.cleanGitWorkingTree();\n }\n\n private async runCommand(command: string) {\n try {\n log.info(`Running: ${command}`);\n await exec(command);\n } catch (error) {\n log.error(`Error running ${command}: ${error}`);\n }\n }\n\n private cleanGitWorkingTree() {\n // Use exec() to avoid error when startup dependencies are deleted while startup is running\n const command = 'git clean -fdX';\n log.info(`Running: ${command}`);\n exec(command);\n }\n\n private async clearNpxCache() {\n try {\n const npmCacheDir = execSync('npm config get cache').toString().trim();\n const npxCachePath = path.join(npmCacheDir, '_npx');\n\n log.info('Clearing npx cache');\n await fs.promises.rm(npxCachePath, { recursive: true, force: true });\n } catch (error) {\n log.error(`Error clearing npx cache: ${error}`);\n }\n }\n\n private clearPackageManagerCache() {\n try {\n const packageManager = getPackageManager();\n log.info(`Clearing ${packageManager.command} cache`);\n packageManager.clearCache();\n } catch (error) {\n log.error(`Error clearing package manager cache: ${error}`);\n }\n }\n}\n"],"names":["Clean","exec","promisify","execAsync","CleanProcesses","Command","execute","processTree","ProcessTree","add","runCommand","Promise","resolve","clearPackageManagerCache","clearNpxCache","run","cleanGitWorkingTree","command","log","info","error","npmCacheDir","execSync","toString","trim","npxCachePath","path","join","fs","promises","rm","recursive","force","packageManager","getPackageManager","clearCache"],"mappings":";;;;+BAoBaA;;;eAAAA;;;yBApBqB;mCACU;+DAC7B;iEACE;0BACS;uBACK;6BACH;uBAEJ;;;;;;;;;;;;;;;AAExB,MAAMC,OAAOC,IAAAA,mBAAS,EAACC,uBAAS;AAEhC,IAAA,AAAKC,wCAAAA;;;;;;WAAAA;EAAAA;AAQE,MAAMJ,cAAcK,cAAO;IAC9B,MACMC,UAAU;QACZ,MAAMC,cAAc,IAAIC,wBAAW;QAEnCD,YAAYE,GAAG,IAAyB,IAAM,IAAI,CAACC,UAAU,CAAC;QAC9DH,YAAYE,GAAG,IAAgC,IAAM,IAAI,CAACC,UAAU,CAAC;QACrEH,YAAYE,GAAG,IAA0C,IACrDE,QAAQC,OAAO,CAAC,IAAI,CAACC,wBAAwB;QAEjDN,YAAYE,GAAG,IAA+B,IAAM,IAAI,CAACK,aAAa;QAEtE,MAAMP,YAAYQ,GAAG;QAErB,IAAI,CAACC,mBAAmB;IAC5B;IAEA,MAAcN,WAAWO,OAAe,EAAE;QACtC,IAAI;YACAC,UAAG,CAACC,IAAI,CAAC,CAAC,SAAS,EAAEF,SAAS;YAC9B,MAAMhB,KAAKgB;QACf,EAAE,OAAOG,OAAO;YACZF,UAAG,CAACE,KAAK,CAAC,CAAC,cAAc,EAAEH,QAAQ,EAAE,EAAEG,OAAO;QAClD;IACJ;IAEQJ,sBAAsB;QAC1B,2FAA2F;QAC3F,MAAMC,UAAU;QAChBC,UAAG,CAACC,IAAI,CAAC,CAAC,SAAS,EAAEF,SAAS;QAC9BhB,KAAKgB;IACT;IAEA,MAAcH,gBAAgB;QAC1B,IAAI;YACA,MAAMO,cAAcC,IAAAA,2BAAQ,EAAC,wBAAwBC,QAAQ,GAAGC,IAAI;YACpE,MAAMC,eAAeC,iBAAI,CAACC,IAAI,CAACN,aAAa;YAE5CH,UAAG,CAACC,IAAI,CAAC;YACT,MAAMS,eAAE,CAACC,QAAQ,CAACC,EAAE,CAACL,cAAc;gBAAEM,WAAW;gBAAMC,OAAO;YAAK;QACtE,EAAE,OAAOZ,OAAO;YACZF,UAAG,CAACE,KAAK,CAAC,CAAC,0BAA0B,EAAEA,OAAO;QAClD;IACJ;IAEQP,2BAA2B;QAC/B,IAAI;YACA,MAAMoB,iBAAiBC,IAAAA,0BAAiB;YACxChB,UAAG,CAACC,IAAI,CAAC,CAAC,SAAS,EAAEc,eAAehB,OAAO,CAAC,MAAM,CAAC;YACnDgB,eAAeE,UAAU;QAC7B,EAAE,OAAOf,OAAO;YACZF,UAAG,CAACE,KAAK,CAAC,CAAC,sCAAsC,EAAEA,OAAO;QAC9D;IACJ;AACJ"}
1
+ {"version":3,"sources":["../../../src/cli/commands/clean.ts"],"sourcesContent":["import { getPackageManager } from '@servicetitan/install';\nimport { exec as execAsync, execSync } from 'node:child_process';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport { promisify } from 'node:util';\nimport { log, logErrors } from '../../utils';\nimport { ProcessTree } from '../utils/process-tree';\nimport type { entry } from './registry/clean';\nimport { Command } from './types';\n\nconst exec = promisify(execAsync);\n\nenum CleanProcesses {\n CleanGitWorkingTree,\n ClearJestCache,\n ClearNpxCache,\n ClearPackageManagerCache,\n ResetNx,\n}\n\nexport class Clean extends Command<typeof entry> {\n @logErrors\n async execute() {\n const processTree = new ProcessTree<typeof CleanProcesses>();\n\n processTree.add(CleanProcesses.ResetNx, () => this.runCommand('nx reset'));\n processTree.add(CleanProcesses.ClearJestCache, () => this.runCommand('jest --clearCache'));\n processTree.add(CleanProcesses.ClearPackageManagerCache, () =>\n Promise.resolve(this.clearPackageManagerCache())\n );\n processTree.add(CleanProcesses.ClearNpxCache, () => this.clearNpxCache());\n\n await processTree.run();\n\n this.cleanGitWorkingTree();\n }\n\n private async runCommand(command: string) {\n try {\n log.info(`Running: ${command}`);\n await exec(command);\n } catch (error) {\n log.error(`Error running ${command}: ${error}`);\n }\n }\n\n private cleanGitWorkingTree() {\n // Use exec() to avoid error when startup dependencies are deleted while startup is running\n const command = 'git clean -fdX';\n log.info(`Running: ${command}`);\n exec(command);\n }\n\n private async clearNpxCache() {\n try {\n const npmCacheDir = execSync('npm config get cache').toString().trim();\n const npxCachePath = path.join(npmCacheDir, '_npx');\n\n log.info('Clearing npx cache');\n await fs.promises.rm(npxCachePath, { recursive: true, force: true });\n } catch (error) {\n log.error(`Error clearing npx cache: ${error}`);\n }\n }\n\n private clearPackageManagerCache() {\n try {\n const packageManager = getPackageManager();\n log.info(`Clearing ${packageManager.command} cache`);\n packageManager.clearCache();\n } catch (error) {\n log.error(`Error clearing package manager cache: ${error}`);\n }\n }\n}\n"],"names":["Clean","exec","promisify","execAsync","CleanProcesses","Command","execute","processTree","ProcessTree","add","runCommand","Promise","resolve","clearPackageManagerCache","clearNpxCache","run","cleanGitWorkingTree","command","log","info","error","npmCacheDir","execSync","toString","trim","npxCachePath","path","join","fs","promises","rm","recursive","force","packageManager","getPackageManager","clearCache"],"mappings":";;;;+BAoBaA;;;eAAAA;;;yBApBqB;mCACU;+DAC7B;iEACE;0BACS;uBACK;6BACH;uBAEJ;;;;;;;;;;;;;;;;;;;;;;;;AAExB,MAAMC,OAAOC,IAAAA,mBAAS,EAACC,uBAAS;AAEhC,IAAA,AAAKC,wCAAAA;;;;;;WAAAA;EAAAA;AAQE,MAAMJ,cAAcK,cAAO;IAC9B,MACMC,UAAU;QACZ,MAAMC,cAAc,IAAIC,wBAAW;QAEnCD,YAAYE,GAAG,IAAyB,IAAM,IAAI,CAACC,UAAU,CAAC;QAC9DH,YAAYE,GAAG,IAAgC,IAAM,IAAI,CAACC,UAAU,CAAC;QACrEH,YAAYE,GAAG,IAA0C,IACrDE,QAAQC,OAAO,CAAC,IAAI,CAACC,wBAAwB;QAEjDN,YAAYE,GAAG,IAA+B,IAAM,IAAI,CAACK,aAAa;QAEtE,MAAMP,YAAYQ,GAAG;QAErB,IAAI,CAACC,mBAAmB;IAC5B;IAEA,MAAcN,WAAWO,OAAe,EAAE;QACtC,IAAI;YACAC,UAAG,CAACC,IAAI,CAAC,CAAC,SAAS,EAAEF,SAAS;YAC9B,MAAMhB,KAAKgB;QACf,EAAE,OAAOG,OAAO;YACZF,UAAG,CAACE,KAAK,CAAC,CAAC,cAAc,EAAEH,QAAQ,EAAE,EAAEG,OAAO;QAClD;IACJ;IAEQJ,sBAAsB;QAC1B,2FAA2F;QAC3F,MAAMC,UAAU;QAChBC,UAAG,CAACC,IAAI,CAAC,CAAC,SAAS,EAAEF,SAAS;QAC9BhB,KAAKgB;IACT;IAEA,MAAcH,gBAAgB;QAC1B,IAAI;YACA,MAAMO,cAAcC,IAAAA,2BAAQ,EAAC,wBAAwBC,QAAQ,GAAGC,IAAI;YACpE,MAAMC,eAAeC,iBAAI,CAACC,IAAI,CAACN,aAAa;YAE5CH,UAAG,CAACC,IAAI,CAAC;YACT,MAAMS,eAAE,CAACC,QAAQ,CAACC,EAAE,CAACL,cAAc;gBAAEM,WAAW;gBAAMC,OAAO;YAAK;QACtE,EAAE,OAAOZ,OAAO;YACZF,UAAG,CAACE,KAAK,CAAC,CAAC,0BAA0B,EAAEA,OAAO;QAClD;IACJ;IAEQP,2BAA2B;QAC/B,IAAI;YACA,MAAMoB,iBAAiBC,IAAAA,0BAAiB;YACxChB,UAAG,CAACC,IAAI,CAAC,CAAC,SAAS,EAAEc,eAAehB,OAAO,CAAC,MAAM,CAAC;YACnDgB,eAAeE,UAAU;QAC7B,EAAE,OAAOf,OAAO;YACZF,UAAG,CAACE,KAAK,CAAC,CAAC,sCAAsC,EAAEA,OAAO;QAC9D;IACJ;AACJ"}
@@ -0,0 +1,13 @@
1
+ import { Attributes } from '../../telemetry';
2
+ import { CommandName } from '../../utils';
3
+ import { CommandEntry, InferArgs } from './types';
4
+ export declare abstract class Command<T extends CommandEntry = CommandEntry, U = unknown> {
5
+ protected readonly args: InferArgs<NonNullable<T['options']>, U>;
6
+ private commandRun?;
7
+ constructor(args: InferArgs<NonNullable<T['options']>, U>);
8
+ watchForParentExit(name: CommandName): void;
9
+ protected recordStart(command: string, attributes?: Attributes): void;
10
+ protected recordEnd(error?: unknown): Promise<void>;
11
+ abstract execute(): Promise<void>;
12
+ }
13
+ //# sourceMappingURL=command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAa,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAuB,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAWlD,8BAAsB,OAAO,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,CAAC,GAAG,OAAO;IAGhE,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IAF5E,OAAO,CAAC,UAAU,CAAC,CAAa;gBAED,IAAI,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IAE5E,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAM3C,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI;IAiBrE,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBnD,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CACpC"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "Command", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return Command;
9
+ }
10
+ });
11
+ const _crypto = require("crypto");
12
+ const _telemetry = require("../../telemetry");
13
+ const _utils = require("../../utils");
14
+ function _define_property(obj, key, value) {
15
+ if (key in obj) {
16
+ Object.defineProperty(obj, key, {
17
+ value: value,
18
+ enumerable: true,
19
+ configurable: true,
20
+ writable: true
21
+ });
22
+ } else obj[key] = value;
23
+ return obj;
24
+ }
25
+ const NS_PER_MS = 1000000;
26
+ class Command {
27
+ watchForParentExit(name) {
28
+ if ('watch' in this.args && this.args.watch === true) {
29
+ (0, _utils.exitWhenParentExits)(name);
30
+ }
31
+ }
32
+ recordStart(command, attributes) {
33
+ if (this.commandRun) {
34
+ return;
35
+ }
36
+ this.commandRun = {
37
+ command,
38
+ runId: (0, _crypto.randomUUID)(),
39
+ startedAt: globalThis.performance.now(),
40
+ attributes
41
+ };
42
+ _telemetry.telemetry.info('command.started', {
43
+ ...attributes,
44
+ command,
45
+ runId: this.commandRun.runId
46
+ });
47
+ }
48
+ recordEnd(error) {
49
+ const run = this.commandRun;
50
+ if (!run) {
51
+ return Promise.resolve();
52
+ }
53
+ this.commandRun = undefined;
54
+ const attributes = {
55
+ ...run.attributes,
56
+ command: run.command,
57
+ runId: run.runId,
58
+ duration: Math.round((globalThis.performance.now() - run.startedAt) * NS_PER_MS)
59
+ };
60
+ if (error !== undefined) {
61
+ _telemetry.telemetry.error('command.finished', error, attributes);
62
+ } else {
63
+ _telemetry.telemetry.info('command.finished', attributes);
64
+ }
65
+ return _telemetry.telemetry.flush();
66
+ }
67
+ constructor(args){
68
+ _define_property(this, "args", void 0);
69
+ _define_property(this, "commandRun", void 0);
70
+ this.args = args;
71
+ }
72
+ }
73
+
74
+ //# sourceMappingURL=command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/cli/commands/command.ts"],"sourcesContent":["import { randomUUID } from 'crypto';\nimport { Attributes, telemetry } from '../../telemetry';\nimport { CommandName, exitWhenParentExits } from '../../utils';\nimport { CommandEntry, InferArgs } from './types';\n\nconst NS_PER_MS = 1_000_000;\n\ninterface CommandRun {\n command: string;\n runId: string;\n startedAt: number;\n attributes?: Attributes;\n}\n\nexport abstract class Command<T extends CommandEntry = CommandEntry, U = unknown> {\n private commandRun?: CommandRun;\n\n constructor(protected readonly args: InferArgs<NonNullable<T['options']>, U>) {}\n\n watchForParentExit(name: CommandName): void {\n if ('watch' in this.args && this.args.watch === true) {\n exitWhenParentExits(name);\n }\n }\n\n protected recordStart(command: string, attributes?: Attributes): void {\n if (this.commandRun) {\n return;\n }\n this.commandRun = {\n command,\n runId: randomUUID(),\n startedAt: globalThis.performance.now(),\n attributes,\n };\n telemetry.info('command.started', {\n ...attributes,\n command,\n runId: this.commandRun.runId,\n });\n }\n\n protected recordEnd(error?: unknown): Promise<void> {\n const run = this.commandRun;\n if (!run) {\n return Promise.resolve();\n }\n this.commandRun = undefined;\n const attributes = {\n ...run.attributes,\n command: run.command,\n runId: run.runId,\n duration: Math.round((globalThis.performance.now() - run.startedAt) * NS_PER_MS),\n };\n if (error !== undefined) {\n telemetry.error('command.finished', error, attributes);\n } else {\n telemetry.info('command.finished', attributes);\n }\n return telemetry.flush();\n }\n\n abstract execute(): Promise<void>;\n}\n"],"names":["Command","NS_PER_MS","watchForParentExit","name","args","watch","exitWhenParentExits","recordStart","command","attributes","commandRun","runId","randomUUID","startedAt","globalThis","performance","now","telemetry","info","recordEnd","error","run","Promise","resolve","undefined","duration","Math","round","flush"],"mappings":";;;;+BAcsBA;;;eAAAA;;;wBAdK;2BACW;uBACW;;;;;;;;;;;;AAGjD,MAAMC,YAAY;AASX,MAAeD;IAKlBE,mBAAmBC,IAAiB,EAAQ;QACxC,IAAI,WAAW,IAAI,CAACC,IAAI,IAAI,IAAI,CAACA,IAAI,CAACC,KAAK,KAAK,MAAM;YAClDC,IAAAA,0BAAmB,EAACH;QACxB;IACJ;IAEUI,YAAYC,OAAe,EAAEC,UAAuB,EAAQ;QAClE,IAAI,IAAI,CAACC,UAAU,EAAE;YACjB;QACJ;QACA,IAAI,CAACA,UAAU,GAAG;YACdF;YACAG,OAAOC,IAAAA,kBAAU;YACjBC,WAAWC,WAAWC,WAAW,CAACC,GAAG;YACrCP;QACJ;QACAQ,oBAAS,CAACC,IAAI,CAAC,mBAAmB;YAC9B,GAAGT,UAAU;YACbD;YACAG,OAAO,IAAI,CAACD,UAAU,CAACC,KAAK;QAChC;IACJ;IAEUQ,UAAUC,KAAe,EAAiB;QAChD,MAAMC,MAAM,IAAI,CAACX,UAAU;QAC3B,IAAI,CAACW,KAAK;YACN,OAAOC,QAAQC,OAAO;QAC1B;QACA,IAAI,CAACb,UAAU,GAAGc;QAClB,MAAMf,aAAa;YACf,GAAGY,IAAIZ,UAAU;YACjBD,SAASa,IAAIb,OAAO;YACpBG,OAAOU,IAAIV,KAAK;YAChBc,UAAUC,KAAKC,KAAK,CAAC,AAACb,CAAAA,WAAWC,WAAW,CAACC,GAAG,KAAKK,IAAIR,SAAS,AAAD,IAAKZ;QAC1E;QACA,IAAImB,UAAUI,WAAW;YACrBP,oBAAS,CAACG,KAAK,CAAC,oBAAoBA,OAAOX;QAC/C,OAAO;YACHQ,oBAAS,CAACC,IAAI,CAAC,oBAAoBT;QACvC;QACA,OAAOQ,oBAAS,CAACW,KAAK;IAC1B;IA3CA,YAAY,AAAmBxB,IAA6C,CAAE;;QAF9E,uBAAQM,cAAR,KAAA;aAE+BN,OAAAA;IAAgD;AA8CnF"}
@@ -21,9 +21,7 @@ function _define_property(obj, key, value) {
21
21
  configurable: true,
22
22
  writable: true
23
23
  });
24
- } else {
25
- obj[key] = value;
26
- }
24
+ } else obj[key] = value;
27
25
  return obj;
28
26
  }
29
27
  function _interop_require_default(obj) {
@@ -33,12 +31,21 @@ function _interop_require_default(obj) {
33
31
  }
34
32
  function _ts_decorate(decorators, target, key, desc) {
35
33
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
36
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
37
- else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
34
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
35
+ r = Reflect.decorate(decorators, target, key, desc);
36
+ } else {
37
+ for(var i = decorators.length - 1; i >= 0; i--){
38
+ if (d = decorators[i]) {
39
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
40
+ }
41
+ }
42
+ }
38
43
  return c > 3 && r && Object.defineProperty(target, key, r), r;
39
44
  }
40
- function _ts_metadata(k, v) {
41
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
45
+ function _ts_metadata(metadataKey, metadataValue) {
46
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
47
+ return Reflect.metadata(metadataKey, metadataValue);
48
+ }
42
49
  }
43
50
  const oldConfigFile = '.eslintrc.json';
44
51
  const newConfigFile = 'eslint.config.mjs';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/commands/convert-eslint-config.ts"],"sourcesContent":["import fs from 'fs';\nimport { globSync } from 'glob';\nimport JSON5 from 'json5';\nimport { log, logErrors, prettify, toArray } from '../../utils';\nimport type { entry } from './registry/convert-eslint-config';\nimport { Command } from './types';\n\nconst oldConfigFile = '.eslintrc.json';\nconst newConfigFile = 'eslint.config.mjs';\nconst eslintIgnoreFile = '.eslintignore';\n\ninterface Override {\n [key: string]: unknown;\n files?: string[];\n}\n\ninterface V8Config {\n extends?: string | string[];\n ignorePatterns?: string[];\n overrides?: Override[];\n plugins?: string[];\n parserOptions?: Record<string, unknown>;\n rules?: Record<string, unknown>;\n settings?: Record<string, unknown>;\n}\n\ninterface Context {\n flatConfigs: string[];\n imports: {\n [key: string]: string | string[];\n 'eslint/config': string[];\n };\n source: V8Config;\n}\n\ninterface Recipe {\n config: string;\n files?: string[];\n import: { as: string; from?: string };\n}\n\nexport class ConvertEslintConfig extends Command<typeof entry> {\n private static readonly recipes: Record<string, Recipe | null> = {\n '@servicetitan/eslint-config/mono': {\n import: { as: 'mono' },\n config: 'mono',\n },\n '@servicetitan/eslint-config/single': {\n import: { as: 'single' },\n config: 'single',\n },\n 'plugin:chai-friendly/recommended': {\n import: { as: 'pluginChaiFriendly', from: 'eslint-plugin-chai-friendly' },\n config: 'pluginChaiFriendly.configs.recommendedFlat',\n },\n 'plugin:cypress/recommended': {\n import: { as: 'pluginCypress', from: 'eslint-plugin-cypress/flat' },\n config: 'pluginCypress.configs.recommended',\n },\n 'plugin:mocha/recommended': {\n import: { as: 'pluginMocha', from: 'eslint-plugin-mocha' },\n config: 'pluginMocha.configs.flat.recommended',\n },\n 'plugin:storybook/recommended': {\n import: { as: 'storybook', from: 'eslint-plugin-storybook' },\n config: \"storybook.configs['flat/recommended']\",\n },\n 'plugin:testing-library/react': {\n import: { as: 'pluginTestingLibrary', from: 'eslint-plugin-testing-library' },\n config: \"pluginTestingLibrary.configs['flat/react']\",\n files: ['**/*.test.*'],\n },\n 'prettier': null,\n };\n\n @logErrors\n async execute() {\n if (!fs.existsSync(oldConfigFile)) {\n throw new Error(`${oldConfigFile} not found`);\n }\n\n const configFiles = globSync('eslint.config.{js,cjs,mjs}');\n if (configFiles.length > 0) {\n throw new Error(`flat config \"${configFiles[0]}\" already exists`);\n }\n\n log.info(`Processing ${oldConfigFile}`);\n\n const json = this.readJson(oldConfigFile);\n fs.writeFileSync(newConfigFile, this.convert(json), 'utf-8');\n await prettify(newConfigFile);\n\n log.success(`Created ${newConfigFile}`);\n }\n\n private convert(source: V8Config) {\n const context: Context = {\n flatConfigs: [],\n imports: { 'eslint/config': ['defineConfig'] },\n source,\n };\n\n const handlers: { [K in keyof V8Config]: (context: Context) => void } = {\n extends: this.handleExtends.bind(this),\n overrides: this.handleOverrides.bind(this),\n parserOptions: this.handleParserOptions.bind(this),\n plugins: this.handlePlugins.bind(this),\n rules: this.handleRules.bind(this),\n settings: this.handleSettings.bind(this),\n };\n\n // Don't limit handleIgnores to a specific key because it also reads .eslintignore.rc\n this.handleIgnores(context);\n\n // Run handlers in key order to preserve ordering of configs\n Object.keys(context.source).forEach((key: keyof V8Config) => {\n handlers[key]?.(context);\n });\n\n return this.format(context);\n }\n\n private format(context: Context) {\n return `${this.formatImports(context)}\\n\\n${this.formatConfigs(context)}`;\n }\n\n private formatConfigs(context: Context) {\n return `export default defineConfig([\n ${context.flatConfigs.join()}\n ]);`;\n }\n\n private formatImports({ imports }: Context) {\n return Object.entries(imports)\n .map(([pkg, itemOrItems]) => {\n if (typeof itemOrItems === 'string') {\n return `import ${itemOrItems} from '${pkg}';`;\n }\n return `import { ${itemOrItems.join()} } from '${pkg}';`;\n })\n .join('\\n');\n }\n\n private handleExtends({ flatConfigs, imports, source }: Context) {\n const unrecognized: string[] = [];\n const extendsArray = toArray(source.extends);\n\n extendsArray.forEach(entry => {\n const recipe = ConvertEslintConfig.recipes[entry];\n if (recipe) {\n imports[recipe.import.from ?? entry] = recipe.import.as;\n if (recipe.files) {\n flatConfigs.push(`{\n files: ${JSON.stringify(recipe.files)},\n ...${recipe.config}\n }`);\n } else {\n flatConfigs.push(recipe.config);\n }\n } else if (recipe !== null) {\n unrecognized.push(entry);\n }\n });\n\n /*\n * Use extends workaround for anything we didn't recognized\n * https://eslint.org/blog/2025/03/flat-config-extends-define-config-global-ignores/#bringing-back-extends\n */\n\n if (unrecognized.length) {\n flatConfigs.push(JSON.stringify({ extends: unrecognized }));\n }\n }\n\n private handleIgnores({ flatConfigs, imports, source: { ignorePatterns = [] } }: Context) {\n const globs = ignorePatterns.filter(glob => !!glob);\n\n if (fs.existsSync(eslintIgnoreFile)) {\n const fileGlobs = fs\n .readFileSync(eslintIgnoreFile, 'utf-8')\n .split('\\n')\n .map(line => line.trim())\n .filter(line => !!line);\n globs.push(...fileGlobs);\n }\n\n if (globs.length === 0) {\n return;\n }\n\n const normalized = globs.map(normalizeGlob);\n\n imports['eslint/config'].push('globalIgnores');\n flatConfigs.push(`globalIgnores(${JSON.stringify(normalized)})`);\n }\n\n private handleOverrides({\n flatConfigs,\n source: { overrides },\n }: Context & { source: { overrides: NonNullable<Context['source']['overrides']> } }) {\n overrides.forEach(override => {\n flatConfigs.push(JSON.stringify(this.handleOverride(override), null, 2));\n });\n }\n\n private handleOverride({ parserOptions, ...rest }: Override) {\n rest.files = rest.files?.map(normalizeGlob);\n const languageOptions = parserOptions ? { parserOptions } : undefined;\n return { ...rest, languageOptions };\n }\n\n private handlePlugins({\n flatConfigs,\n imports,\n source,\n }: Context & { source: { plugins: NonNullable<Context['source']['plugins']> } }) {\n const plugins: Record<string, string> = {};\n\n source.plugins.forEach(name => {\n const camelized = toCamelCase(name);\n imports[`eslint-plugin-${name}`] = camelized;\n plugins[name] = camelized;\n });\n\n flatConfigs.push(`{\n plugins: {\n ${Object.entries(plugins)\n .map(([key, value]) => `'${key}': ${value}`)\n .join(',\\n')}\n } \n }`);\n }\n\n private handleParserOptions({ flatConfigs, source: { parserOptions } }: Context) {\n flatConfigs.push(JSON.stringify({ languageOptions: { parserOptions } }));\n }\n\n private handleRules({\n flatConfigs,\n source: { rules },\n }: Context & { source: { rules: NonNullable<Context['source']['rules']> } }) {\n const tsPrefix = '@typescript-eslint/';\n const nonTsRules = Object.fromEntries(\n Object.entries(rules).filter(([key]) => !key.startsWith(tsPrefix))\n );\n if (Object.keys(nonTsRules).length) {\n flatConfigs.push(JSON.stringify({ rules: nonTsRules }, null, 2));\n }\n\n const tsRules = Object.fromEntries(\n Object.entries(rules).filter(([key]) => key.startsWith(tsPrefix))\n );\n if (Object.keys(tsRules).length) {\n flatConfigs.push(JSON.stringify({ files: ['**/*.ts{,x}'], rules: tsRules }, null, 2));\n }\n }\n\n private handleSettings({\n flatConfigs,\n source: { settings },\n }: Context & { source: { settings: NonNullable<Context['source']['settings']> } }) {\n flatConfigs.push(JSON.stringify({ settings }));\n }\n\n private readJson(filename: string) {\n return JSON5.parse(fs.readFileSync(filename, 'utf8'));\n }\n}\n\nfunction toCamelCase(str: string) {\n return str.replace(/(-[a-z])/g, ([, letter]) => letter.toUpperCase());\n}\n\nfunction normalizeGlob(glob: string) {\n return glob.includes('/') ? glob.replace(/^(!)?\\//, '$1') : `**/${glob}`;\n}\n"],"names":["ConvertEslintConfig","oldConfigFile","newConfigFile","eslintIgnoreFile","Command","execute","fs","existsSync","Error","configFiles","globSync","length","log","info","json","readJson","writeFileSync","convert","prettify","success","source","context","flatConfigs","imports","handlers","extends","handleExtends","bind","overrides","handleOverrides","parserOptions","handleParserOptions","plugins","handlePlugins","rules","handleRules","settings","handleSettings","handleIgnores","Object","keys","forEach","key","format","formatImports","formatConfigs","join","entries","map","pkg","itemOrItems","unrecognized","extendsArray","toArray","entry","recipe","recipes","import","from","as","files","push","JSON","stringify","config","ignorePatterns","globs","filter","glob","fileGlobs","readFileSync","split","line","trim","normalized","normalizeGlob","override","handleOverride","rest","languageOptions","undefined","name","camelized","toCamelCase","value","tsPrefix","nonTsRules","fromEntries","startsWith","tsRules","filename","JSON5","parse","str","replace","letter","toUpperCase","includes"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/cli/commands/convert-eslint-config.ts"],"sourcesContent":["import fs from 'fs';\nimport { globSync } from 'glob';\nimport JSON5 from 'json5';\nimport { log, logErrors, prettify, toArray } from '../../utils';\nimport type { entry } from './registry/convert-eslint-config';\nimport { Command } from './types';\n\nconst oldConfigFile = '.eslintrc.json';\nconst newConfigFile = 'eslint.config.mjs';\nconst eslintIgnoreFile = '.eslintignore';\n\ninterface Override {\n [key: string]: unknown;\n files?: string[];\n}\n\ninterface V8Config {\n extends?: string | string[];\n ignorePatterns?: string[];\n overrides?: Override[];\n plugins?: string[];\n parserOptions?: Record<string, unknown>;\n rules?: Record<string, unknown>;\n settings?: Record<string, unknown>;\n}\n\ninterface Context {\n flatConfigs: string[];\n imports: {\n [key: string]: string | string[];\n 'eslint/config': string[];\n };\n source: V8Config;\n}\n\ninterface Recipe {\n config: string;\n files?: string[];\n import: { as: string; from?: string };\n}\n\nexport class ConvertEslintConfig extends Command<typeof entry> {\n private static readonly recipes: Record<string, Recipe | null> = {\n '@servicetitan/eslint-config/mono': {\n import: { as: 'mono' },\n config: 'mono',\n },\n '@servicetitan/eslint-config/single': {\n import: { as: 'single' },\n config: 'single',\n },\n 'plugin:chai-friendly/recommended': {\n import: { as: 'pluginChaiFriendly', from: 'eslint-plugin-chai-friendly' },\n config: 'pluginChaiFriendly.configs.recommendedFlat',\n },\n 'plugin:cypress/recommended': {\n import: { as: 'pluginCypress', from: 'eslint-plugin-cypress/flat' },\n config: 'pluginCypress.configs.recommended',\n },\n 'plugin:mocha/recommended': {\n import: { as: 'pluginMocha', from: 'eslint-plugin-mocha' },\n config: 'pluginMocha.configs.flat.recommended',\n },\n 'plugin:storybook/recommended': {\n import: { as: 'storybook', from: 'eslint-plugin-storybook' },\n config: \"storybook.configs['flat/recommended']\",\n },\n 'plugin:testing-library/react': {\n import: { as: 'pluginTestingLibrary', from: 'eslint-plugin-testing-library' },\n config: \"pluginTestingLibrary.configs['flat/react']\",\n files: ['**/*.test.*'],\n },\n 'prettier': null,\n };\n\n @logErrors\n async execute() {\n if (!fs.existsSync(oldConfigFile)) {\n throw new Error(`${oldConfigFile} not found`);\n }\n\n const configFiles = globSync('eslint.config.{js,cjs,mjs}');\n if (configFiles.length > 0) {\n throw new Error(`flat config \"${configFiles[0]}\" already exists`);\n }\n\n log.info(`Processing ${oldConfigFile}`);\n\n const json = this.readJson(oldConfigFile);\n fs.writeFileSync(newConfigFile, this.convert(json), 'utf-8');\n await prettify(newConfigFile);\n\n log.success(`Created ${newConfigFile}`);\n }\n\n private convert(source: V8Config) {\n const context: Context = {\n flatConfigs: [],\n imports: { 'eslint/config': ['defineConfig'] },\n source,\n };\n\n const handlers: { [K in keyof V8Config]: (context: Context) => void } = {\n extends: this.handleExtends.bind(this),\n overrides: this.handleOverrides.bind(this),\n parserOptions: this.handleParserOptions.bind(this),\n plugins: this.handlePlugins.bind(this),\n rules: this.handleRules.bind(this),\n settings: this.handleSettings.bind(this),\n };\n\n // Don't limit handleIgnores to a specific key because it also reads .eslintignore.rc\n this.handleIgnores(context);\n\n // Run handlers in key order to preserve ordering of configs\n Object.keys(context.source).forEach((key: keyof V8Config) => {\n handlers[key]?.(context);\n });\n\n return this.format(context);\n }\n\n private format(context: Context) {\n return `${this.formatImports(context)}\\n\\n${this.formatConfigs(context)}`;\n }\n\n private formatConfigs(context: Context) {\n return `export default defineConfig([\n ${context.flatConfigs.join()}\n ]);`;\n }\n\n private formatImports({ imports }: Context) {\n return Object.entries(imports)\n .map(([pkg, itemOrItems]) => {\n if (typeof itemOrItems === 'string') {\n return `import ${itemOrItems} from '${pkg}';`;\n }\n return `import { ${itemOrItems.join()} } from '${pkg}';`;\n })\n .join('\\n');\n }\n\n private handleExtends({ flatConfigs, imports, source }: Context) {\n const unrecognized: string[] = [];\n const extendsArray = toArray(source.extends);\n\n extendsArray.forEach(entry => {\n const recipe = ConvertEslintConfig.recipes[entry];\n if (recipe) {\n imports[recipe.import.from ?? entry] = recipe.import.as;\n if (recipe.files) {\n flatConfigs.push(`{\n files: ${JSON.stringify(recipe.files)},\n ...${recipe.config}\n }`);\n } else {\n flatConfigs.push(recipe.config);\n }\n } else if (recipe !== null) {\n unrecognized.push(entry);\n }\n });\n\n /*\n * Use extends workaround for anything we didn't recognized\n * https://eslint.org/blog/2025/03/flat-config-extends-define-config-global-ignores/#bringing-back-extends\n */\n\n if (unrecognized.length) {\n flatConfigs.push(JSON.stringify({ extends: unrecognized }));\n }\n }\n\n private handleIgnores({ flatConfigs, imports, source: { ignorePatterns = [] } }: Context) {\n const globs = ignorePatterns.filter(glob => !!glob);\n\n if (fs.existsSync(eslintIgnoreFile)) {\n const fileGlobs = fs\n .readFileSync(eslintIgnoreFile, 'utf-8')\n .split('\\n')\n .map(line => line.trim())\n .filter(line => !!line);\n globs.push(...fileGlobs);\n }\n\n if (globs.length === 0) {\n return;\n }\n\n const normalized = globs.map(normalizeGlob);\n\n imports['eslint/config'].push('globalIgnores');\n flatConfigs.push(`globalIgnores(${JSON.stringify(normalized)})`);\n }\n\n private handleOverrides({\n flatConfigs,\n source: { overrides },\n }: Context & { source: { overrides: NonNullable<Context['source']['overrides']> } }) {\n overrides.forEach(override => {\n flatConfigs.push(JSON.stringify(this.handleOverride(override), null, 2));\n });\n }\n\n private handleOverride({ parserOptions, ...rest }: Override) {\n rest.files = rest.files?.map(normalizeGlob);\n const languageOptions = parserOptions ? { parserOptions } : undefined;\n return { ...rest, languageOptions };\n }\n\n private handlePlugins({\n flatConfigs,\n imports,\n source,\n }: Context & { source: { plugins: NonNullable<Context['source']['plugins']> } }) {\n const plugins: Record<string, string> = {};\n\n source.plugins.forEach(name => {\n const camelized = toCamelCase(name);\n imports[`eslint-plugin-${name}`] = camelized;\n plugins[name] = camelized;\n });\n\n flatConfigs.push(`{\n plugins: {\n ${Object.entries(plugins)\n .map(([key, value]) => `'${key}': ${value}`)\n .join(',\\n')}\n } \n }`);\n }\n\n private handleParserOptions({ flatConfigs, source: { parserOptions } }: Context) {\n flatConfigs.push(JSON.stringify({ languageOptions: { parserOptions } }));\n }\n\n private handleRules({\n flatConfigs,\n source: { rules },\n }: Context & { source: { rules: NonNullable<Context['source']['rules']> } }) {\n const tsPrefix = '@typescript-eslint/';\n const nonTsRules = Object.fromEntries(\n Object.entries(rules).filter(([key]) => !key.startsWith(tsPrefix))\n );\n if (Object.keys(nonTsRules).length) {\n flatConfigs.push(JSON.stringify({ rules: nonTsRules }, null, 2));\n }\n\n const tsRules = Object.fromEntries(\n Object.entries(rules).filter(([key]) => key.startsWith(tsPrefix))\n );\n if (Object.keys(tsRules).length) {\n flatConfigs.push(JSON.stringify({ files: ['**/*.ts{,x}'], rules: tsRules }, null, 2));\n }\n }\n\n private handleSettings({\n flatConfigs,\n source: { settings },\n }: Context & { source: { settings: NonNullable<Context['source']['settings']> } }) {\n flatConfigs.push(JSON.stringify({ settings }));\n }\n\n private readJson(filename: string) {\n return JSON5.parse(fs.readFileSync(filename, 'utf8'));\n }\n}\n\nfunction toCamelCase(str: string) {\n return str.replace(/(-[a-z])/g, ([, letter]) => letter.toUpperCase());\n}\n\nfunction normalizeGlob(glob: string) {\n return glob.includes('/') ? glob.replace(/^(!)?\\//, '$1') : `**/${glob}`;\n}\n"],"names":["ConvertEslintConfig","oldConfigFile","newConfigFile","eslintIgnoreFile","Command","execute","fs","existsSync","Error","configFiles","globSync","length","log","info","json","readJson","writeFileSync","convert","prettify","success","source","context","flatConfigs","imports","handlers","extends","handleExtends","bind","overrides","handleOverrides","parserOptions","handleParserOptions","plugins","handlePlugins","rules","handleRules","settings","handleSettings","handleIgnores","Object","keys","forEach","key","format","formatImports","formatConfigs","join","entries","map","pkg","itemOrItems","unrecognized","extendsArray","toArray","entry","recipe","recipes","import","from","as","files","push","JSON","stringify","config","ignorePatterns","globs","filter","glob","fileGlobs","readFileSync","split","line","trim","normalized","normalizeGlob","override","handleOverride","rest","languageOptions","undefined","name","camelized","toCamelCase","value","tsPrefix","nonTsRules","fromEntries","startsWith","tsRules","filename","JSON5","parse","str","replace","letter","toUpperCase","includes"],"mappings":"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"}