@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
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/cli/commands/review/rules/require-one-collection-version.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { log } from '../../../../utils';\nimport { FixCategory, Package, PackageError, PackageRule, Project } from '../types';\nimport { applyFilter, compareVersion, formatDependsOn, nameToLocation, setVersion } from '../utils';\n\nexport interface Collection {\n name: string;\n packages: string[];\n}\n\n/**\n * Maps version number to packages with that version and their dependents.\n */\ninterface Versions {\n [version: string]: {\n [packageName: string]: string[];\n };\n}\n\ninterface ErrorData {\n targetVersion: string;\n otherVersions: Versions;\n}\n\ninterface ErrorDetail {\n dependents: string[];\n extra: boolean;\n packageName: string;\n}\n\nexport class RequireOneCollectionVersion implements PackageRule {\n constructor(private readonly collection: Collection) {}\n\n get id() {\n return `require-one-${this.collection.name}-version`;\n }\n\n run(project: Project): PackageError<ErrorData> | undefined {\n const versions = this.collateVersions(project);\n\n /* istanbul ignore next: debug only */\n log.debug(`review:${this.collection.name}-versions`, () =>\n JSON.stringify(versions, null, 2)\n );\n\n const keys = Object.keys(versions);\n if (keys.length <= 1) {\n return;\n }\n\n const message = `project depends on multiple versions of ${this.collection.name} packages`;\n const details = this.composeDetails(project, versions);\n const targetVersion = keys[0];\n const otherVersions = Object.fromEntries(Object.entries(versions).slice(1));\n return {\n id: this.id,\n message,\n details,\n fixable: FixCategory.normal,\n data: { targetVersion, otherVersions },\n };\n }\n\n fix({ data }: PackageError<ErrorData>, project: Project) {\n const { targetVersion, otherVersions } = data ?? {};\n if (!(targetVersion && otherVersions)) {\n return;\n }\n\n Object.values(otherVersions).forEach(packages => {\n Object.entries(packages).forEach(([name, dependents]) => {\n dependents.forEach(dependent =>\n setVersion({\n project,\n packageName: dependent,\n dependency: name,\n version: targetVersion,\n })\n );\n });\n });\n }\n\n private collateVersions(project: Project) {\n const dependencies = this.getDependencies(project);\n return this.sortVersions(\n this.collection.packages.reduce<Versions>((result, name) => {\n Object.entries(dependencies[name] ?? {}).forEach(([version, dependents]) => {\n result[version] ??= {};\n result[version][name] = dependents;\n });\n return result;\n }, {})\n );\n }\n\n private composeDetails({ packages }: Project, versions: Versions) {\n const extra = this.getExtra(versions);\n return this.sortDetails(this.getDetails(packages, versions, extra)).map(detail =>\n this.formatDetail(detail)\n );\n }\n\n private formatDetail({ dependents, packageName, extra }: ErrorDetail) {\n return formatDependsOn(dependents, chalk[extra ? 'red' : 'yellow'](packageName));\n }\n\n private getDependencies({ config, dependencies }: Project) {\n const ruleConfig = config.rules?.[this.id];\n return Object.fromEntries(\n applyFilter(ruleConfig, Object.entries(dependencies), ([name]) => name)\n ) as Project['dependencies'];\n }\n\n private getDetails(packages: Package[], versions: Versions, extra: Set<string>) {\n return Object.entries(versions).reduce((result, [version, dependencies]) => {\n Object.entries(dependencies).forEach(([pkg, dependents]) => {\n result.push({\n packageName: `${pkg}@${version}`,\n dependents: dependents.map(name => nameToLocation(name, packages)),\n extra: extra.has(pkg),\n });\n });\n return result;\n }, [] as ErrorDetail[]);\n }\n\n /**\n * Assumes first version is the most common and the other ones are extra (see sortVersions)\n */\n private getExtra(versions: Versions): Set<string> {\n return new Set(\n Object.entries(versions)\n .slice(1)\n .flatMap(([_version, dependencies]) => Object.keys(dependencies))\n );\n }\n\n /**\n * Orders details so that extraneous packages are at the top\n */\n private sortDetails(details: ErrorDetail[]) {\n return details.sort((a, b) => {\n if (a.extra === b.extra) {\n return 0;\n }\n return a.extra === true ? -1 : 1;\n });\n }\n\n /**\n * Orders versions in descending order by the number of packages using the version\n * and then by version number. I.e., It puts most common version at the top and if\n * multiple versions tie for the top position, it puts the highest version first.\n */\n private sortVersions(versions: Versions): Versions {\n return Object.fromEntries(\n Object.entries(versions)\n .sort(\n ([v1, depsV1], [v2, depsV2]) =>\n Object.keys(depsV1).length - Object.keys(depsV2).length ||\n compareVersion(v1, v2)\n )\n .reverse()\n );\n }\n}\n"],"names":["RequireOneCollectionVersion","id","collection","name","run","project","versions","collateVersions","log","debug","JSON","stringify","keys","Object","length","message","details","composeDetails","targetVersion","otherVersions","fromEntries","entries","slice","fixable","FixCategory","normal","data","fix","values","forEach","packages","dependents","dependent","setVersion","packageName","dependency","version","dependencies","getDependencies","sortVersions","reduce","result","extra","getExtra","sortDetails","getDetails","map","detail","formatDetail","formatDependsOn","chalk","config","ruleConfig","rules","applyFilter","pkg","push","nameToLocation","has","Set","flatMap","_version","sort","a","b","v1","depsV1","v2","depsV2","compareVersion","reverse"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/cli/commands/review/rules/require-one-collection-version.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { log } from '../../../../utils';\nimport { FixCategory, Package, PackageError, PackageRule, Project } from '../types';\nimport { applyFilter, compareVersion, formatDependsOn, nameToLocation, setVersion } from '../utils';\n\nexport interface Collection {\n name: string;\n packages: string[];\n}\n\n/**\n * Maps version number to packages with that version and their dependents.\n */\ninterface Versions {\n [version: string]: {\n [packageName: string]: string[];\n };\n}\n\ninterface ErrorData {\n targetVersion: string;\n otherVersions: Versions;\n}\n\ninterface ErrorDetail {\n dependents: string[];\n extra: boolean;\n packageName: string;\n}\n\nexport class RequireOneCollectionVersion implements PackageRule {\n constructor(private readonly collection: Collection) {}\n\n get id() {\n return `require-one-${this.collection.name}-version`;\n }\n\n run(project: Project): PackageError<ErrorData> | undefined {\n const versions = this.collateVersions(project);\n\n /* istanbul ignore next: debug only */\n log.debug(`review:${this.collection.name}-versions`, () =>\n JSON.stringify(versions, null, 2)\n );\n\n const keys = Object.keys(versions);\n if (keys.length <= 1) {\n return;\n }\n\n const message = `project depends on multiple versions of ${this.collection.name} packages`;\n const details = this.composeDetails(project, versions);\n const targetVersion = keys[0];\n const otherVersions = Object.fromEntries(Object.entries(versions).slice(1));\n return {\n id: this.id,\n message,\n details,\n fixable: FixCategory.normal,\n data: { targetVersion, otherVersions },\n };\n }\n\n fix({ data }: PackageError<ErrorData>, project: Project) {\n const { targetVersion, otherVersions } = data ?? {};\n if (!(targetVersion && otherVersions)) {\n return;\n }\n\n Object.values(otherVersions).forEach(packages => {\n Object.entries(packages).forEach(([name, dependents]) => {\n dependents.forEach(dependent =>\n setVersion({\n project,\n packageName: dependent,\n dependency: name,\n version: targetVersion,\n })\n );\n });\n });\n }\n\n private collateVersions(project: Project) {\n const dependencies = this.getDependencies(project);\n return this.sortVersions(\n this.collection.packages.reduce<Versions>((result, name) => {\n Object.entries(dependencies[name] ?? {}).forEach(([version, dependents]) => {\n result[version] ??= {};\n result[version][name] = dependents;\n });\n return result;\n }, {})\n );\n }\n\n private composeDetails({ packages }: Project, versions: Versions) {\n const extra = this.getExtra(versions);\n return this.sortDetails(this.getDetails(packages, versions, extra)).map(detail =>\n this.formatDetail(detail)\n );\n }\n\n private formatDetail({ dependents, packageName, extra }: ErrorDetail) {\n return formatDependsOn(dependents, chalk[extra ? 'red' : 'yellow'](packageName));\n }\n\n private getDependencies({ config, dependencies }: Project) {\n const ruleConfig = config.rules?.[this.id];\n return Object.fromEntries(\n applyFilter(ruleConfig, Object.entries(dependencies), ([name]) => name)\n ) as Project['dependencies'];\n }\n\n private getDetails(packages: Package[], versions: Versions, extra: Set<string>) {\n return Object.entries(versions).reduce((result, [version, dependencies]) => {\n Object.entries(dependencies).forEach(([pkg, dependents]) => {\n result.push({\n packageName: `${pkg}@${version}`,\n dependents: dependents.map(name => nameToLocation(name, packages)),\n extra: extra.has(pkg),\n });\n });\n return result;\n }, [] as ErrorDetail[]);\n }\n\n /**\n * Assumes first version is the most common and the other ones are extra (see sortVersions)\n */\n private getExtra(versions: Versions): Set<string> {\n return new Set(\n Object.entries(versions)\n .slice(1)\n .flatMap(([_version, dependencies]) => Object.keys(dependencies))\n );\n }\n\n /**\n * Orders details so that extraneous packages are at the top\n */\n private sortDetails(details: ErrorDetail[]) {\n return details.sort((a, b) => {\n if (a.extra === b.extra) {\n return 0;\n }\n return a.extra === true ? -1 : 1;\n });\n }\n\n /**\n * Orders versions in descending order by the number of packages using the version\n * and then by version number. I.e., It puts most common version at the top and if\n * multiple versions tie for the top position, it puts the highest version first.\n */\n private sortVersions(versions: Versions): Versions {\n return Object.fromEntries(\n Object.entries(versions)\n .sort(\n ([v1, depsV1], [v2, depsV2]) =>\n Object.keys(depsV1).length - Object.keys(depsV2).length ||\n compareVersion(v1, v2)\n )\n .reverse()\n );\n }\n}\n"],"names":["RequireOneCollectionVersion","id","collection","name","run","project","versions","collateVersions","log","debug","JSON","stringify","keys","Object","length","message","details","composeDetails","targetVersion","otherVersions","fromEntries","entries","slice","fixable","FixCategory","normal","data","fix","values","forEach","packages","dependents","dependent","setVersion","packageName","dependency","version","dependencies","getDependencies","sortVersions","reduce","result","extra","getExtra","sortDetails","getDetails","map","detail","formatDetail","formatDependsOn","chalk","config","ruleConfig","rules","applyFilter","pkg","push","nameToLocation","has","Set","flatMap","_version","sort","a","b","v1","depsV1","v2","depsV2","compareVersion","reverse"],"mappings":"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"}
@@ -18,9 +18,7 @@ function _define_property(obj, key, value) {
18
18
  configurable: true,
19
19
  writable: true
20
20
  });
21
- } else {
22
- obj[key] = value;
23
- }
21
+ } else obj[key] = value;
24
22
  return obj;
25
23
  }
26
24
  class RequireServiceTitanScope {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/cli/commands/review/rules/require-servicetitan-scope.ts"],"sourcesContent":["import { ErrorSeverity, Package, PackageError, PackageRule, Project } from '../types';\nimport { checkPackages, isLibrary } from '../utils';\n\nexport class RequireServiceTitanScope implements PackageRule {\n get id() {\n return 'require-servicetitan-scope';\n }\n\n run(project: Project): PackageError[] {\n return checkPackages(this, project, this.checkScope);\n }\n\n private readonly checkScope = (pkg: Package) => {\n if (this.needsScope(pkg)) {\n return {\n id: this.id,\n message: `package \"${pkg.name}\" should have @servicetitan scope`,\n severity: ErrorSeverity.warning,\n location: pkg.location,\n };\n }\n };\n\n private needsScope(pkg: Package) {\n return isLibrary(pkg) && pkg.private !== true && !pkg.name.startsWith('@servicetitan/');\n }\n}\n"],"names":["RequireServiceTitanScope","id","run","project","checkPackages","checkScope","needsScope","pkg","isLibrary","private","name","startsWith","message","severity","ErrorSeverity","warning","location"],"mappings":";;;;+BAGaA;;;eAAAA;;;uBAH8D;uBAClC;;;;;;;;;;;;;;AAElC,MAAMA;IACT,IAAIC,KAAK;QACL,OAAO;IACX;IAEAC,IAAIC,OAAgB,EAAkB;QAClC,OAAOC,IAAAA,oBAAa,EAAC,IAAI,EAAED,SAAS,IAAI,CAACE,UAAU;IACvD;IAaQC,WAAWC,GAAY,EAAE;QAC7B,OAAOC,IAAAA,gBAAS,EAACD,QAAQA,IAAIE,OAAO,KAAK,QAAQ,CAACF,IAAIG,IAAI,CAACC,UAAU,CAAC;IAC1E;;QAbA,uBAAiBN,cAAa,CAACE;YAC3B,IAAI,IAAI,CAACD,UAAU,CAACC,MAAM;gBACtB,OAAO;oBACHN,IAAI,IAAI,CAACA,EAAE;oBACXW,SAAS,CAAC,SAAS,EAAEL,IAAIG,IAAI,CAAC,iCAAiC,CAAC;oBAChEG,UAAUC,oBAAa,CAACC,OAAO;oBAC/BC,UAAUT,IAAIS,QAAQ;gBAC1B;YACJ;QACJ;;AAKJ"}
1
+ {"version":3,"sources":["../../../../../src/cli/commands/review/rules/require-servicetitan-scope.ts"],"sourcesContent":["import { ErrorSeverity, Package, PackageError, PackageRule, Project } from '../types';\nimport { checkPackages, isLibrary } from '../utils';\n\nexport class RequireServiceTitanScope implements PackageRule {\n get id() {\n return 'require-servicetitan-scope';\n }\n\n run(project: Project): PackageError[] {\n return checkPackages(this, project, this.checkScope);\n }\n\n private readonly checkScope = (pkg: Package) => {\n if (this.needsScope(pkg)) {\n return {\n id: this.id,\n message: `package \"${pkg.name}\" should have @servicetitan scope`,\n severity: ErrorSeverity.warning,\n location: pkg.location,\n };\n }\n };\n\n private needsScope(pkg: Package) {\n return isLibrary(pkg) && pkg.private !== true && !pkg.name.startsWith('@servicetitan/');\n }\n}\n"],"names":["RequireServiceTitanScope","id","run","project","checkPackages","checkScope","needsScope","pkg","isLibrary","private","name","startsWith","message","severity","ErrorSeverity","warning","location"],"mappings":";;;;+BAGaA;;;eAAAA;;;uBAH8D;uBAClC;;;;;;;;;;;;AAElC,MAAMA;IACT,IAAIC,KAAK;QACL,OAAO;IACX;IAEAC,IAAIC,OAAgB,EAAkB;QAClC,OAAOC,IAAAA,oBAAa,EAAC,IAAI,EAAED,SAAS,IAAI,CAACE,UAAU;IACvD;IAaQC,WAAWC,GAAY,EAAE;QAC7B,OAAOC,IAAAA,gBAAS,EAACD,QAAQA,IAAIE,OAAO,KAAK,QAAQ,CAACF,IAAIG,IAAI,CAACC,UAAU,CAAC;IAC1E;;QAbA,uBAAiBN,cAAa,CAACE;YAC3B,IAAI,IAAI,CAACD,UAAU,CAACC,MAAM;gBACtB,OAAO;oBACHN,IAAI,IAAI,CAACA,EAAE;oBACXW,SAAS,CAAC,SAAS,EAAEL,IAAIG,IAAI,CAAC,iCAAiC,CAAC;oBAChEG,UAAUC,oBAAa,CAACC,OAAO;oBAC/BC,UAAUT,IAAIS,QAAQ;gBAC1B;YACJ;QACJ;;AAKJ"}
@@ -22,9 +22,7 @@ function _define_property(obj, key, value) {
22
22
  configurable: true,
23
23
  writable: true
24
24
  });
25
- } else {
26
- obj[key] = value;
27
- }
25
+ } else obj[key] = value;
28
26
  return obj;
29
27
  }
30
28
  function _interop_require_default(obj) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/cli/commands/review/rules/require-tsconfig-references.ts"],"sourcesContent":["import { globSync } from 'glob';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport { getTsConfig, prettifySync, readJson, readJsonSafe } from '../../../../utils';\nimport { FixCategory, Package, PackageError, PackageRule, Project } from '../types';\nimport { checkPackages } from '../utils';\n\ninterface TsConfig {\n references?: { path: string }[];\n}\n\ninterface ErrorData {\n tsconfigPath: string;\n missingReference: string;\n expectedPath: string;\n}\n\nexport type RuleError = PackageError<ErrorData>;\n\nexport class RequireTsconfigReferences implements PackageRule {\n private packageNameToLocation!: Map<string, string>;\n private locationToPackageName!: Map<string, string>;\n private workspacePackageNames!: Set<string>;\n\n get id() {\n return 'require-tsconfig-references';\n }\n\n run(project: Project): RuleError[] {\n this.packageNameToLocation = new Map(\n project.packages.map(({ name, location }) => [name, location])\n );\n this.locationToPackageName = new Map(\n project.packages.map(({ name, location }) => [path.resolve(location), name])\n );\n this.workspacePackageNames = new Set(project.packages.map(({ name }) => name));\n\n return checkPackages(this, project, this.checkTsConfigReferences);\n }\n\n fix({ data }: RuleError) {\n if (!data) {\n return;\n }\n\n const { tsconfigPath, expectedPath } = data;\n const tsconfig = readJson<TsConfig>(tsconfigPath);\n\n const references = tsconfig.references ?? [];\n references.push({ path: expectedPath });\n tsconfig.references = references;\n\n fs.writeFileSync(tsconfigPath, JSON.stringify(tsconfig) + '\\n', 'utf-8');\n prettifySync(tsconfigPath);\n }\n\n private getLocalDependencies(pkg: Package) {\n const dependencies = {\n ...pkg.dependencies,\n ...pkg.devDependencies,\n ...pkg.peerDependencies,\n };\n\n return Object.keys(dependencies).filter(dependency =>\n this.workspacePackageNames.has(dependency)\n );\n }\n\n private normalizeTsConfigPath(filePath: string): string {\n if (this.isDirectory(filePath)) {\n return path.join(filePath, 'tsconfig.json');\n }\n return filePath.endsWith('.json') ? filePath : `${filePath}.json`;\n }\n\n private getTsConfigReferencedPackages(tsconfigPath: string) {\n const config = readJsonSafe<TsConfig>(tsconfigPath);\n if (!config?.references) {\n return new Set<string>();\n }\n\n const tsconfigDir = path.dirname(tsconfigPath);\n const referencedPackages = new Set<string>();\n\n for (const reference of config.references) {\n const resolvedRefPath = this.normalizeTsConfigPath(\n path.resolve(tsconfigDir, reference.path)\n );\n const refDir = path.dirname(resolvedRefPath);\n const packageName = this.locationToPackageName.get(refDir);\n\n if (packageName) {\n referencedPackages.add(packageName);\n }\n }\n\n return referencedPackages;\n }\n\n private getExpectedReferencePath(fromLocation: string, toLocation: string) {\n const relativePath = path.relative(fromLocation, toLocation);\n const tsconfigFile = getTsConfig(toLocation);\n const tsconfigName = path.basename(tsconfigFile);\n const referencePath = this.isDefaultTsConfig(tsconfigName)\n ? relativePath\n : path.join(relativePath, tsconfigName);\n\n return referencePath.replaceAll('\\\\', '/');\n }\n\n private collectTsConfigFiles(location: string): string[] {\n const tsconfigFiles = globSync(['tsconfig.json', 'tsconfig.*.json'], {\n absolute: false,\n cwd: location,\n });\n\n return tsconfigFiles.map(tsconfigFile => path.join(location, tsconfigFile));\n }\n\n private findMissingDependencyReferences(\n pkg: Package,\n tsconfigPath: string,\n localDependencies: string[]\n ): RuleError[] {\n const referencedPackages = this.getTsConfigReferencedPackages(tsconfigPath);\n\n return localDependencies\n .filter(dependency => !referencedPackages.has(dependency))\n .map(dependency => {\n const dependencyLocation = this.packageNameToLocation.get(dependency)!;\n\n return {\n id: this.id,\n message: `missing reference for dependency: ${dependency}`,\n location: tsconfigPath,\n fixable: FixCategory.normal,\n data: {\n tsconfigPath,\n missingReference: dependency,\n expectedPath: this.getExpectedReferencePath(\n pkg.location,\n dependencyLocation\n ),\n },\n };\n });\n }\n\n private readonly checkTsConfigReferences = (pkg: Package) => {\n if (pkg.location === '.') {\n return [];\n }\n\n const tsconfigFiles = this.collectTsConfigFiles(pkg.location);\n const localDependencies = this.getLocalDependencies(pkg);\n\n return tsconfigFiles.flatMap(tsconfigPath =>\n this.findMissingDependencyReferences(pkg, tsconfigPath, localDependencies)\n );\n };\n\n private isDefaultTsConfig(name: string) {\n return name === 'tsconfig.json';\n }\n\n private isDirectory(file: string) {\n try {\n return fs.statSync(file).isDirectory();\n } catch {\n return false;\n }\n }\n}\n"],"names":["RequireTsconfigReferences","id","run","project","packageNameToLocation","Map","packages","map","name","location","locationToPackageName","path","resolve","workspacePackageNames","Set","checkPackages","checkTsConfigReferences","fix","data","tsconfig","tsconfigPath","expectedPath","readJson","references","push","fs","writeFileSync","JSON","stringify","prettifySync","getLocalDependencies","pkg","dependencies","devDependencies","peerDependencies","Object","keys","filter","dependency","has","normalizeTsConfigPath","filePath","isDirectory","join","endsWith","getTsConfigReferencedPackages","config","readJsonSafe","tsconfigDir","dirname","referencedPackages","reference","resolvedRefPath","refDir","packageName","get","add","getExpectedReferencePath","fromLocation","toLocation","relativePath","relative","tsconfigFile","getTsConfig","tsconfigName","basename","referencePath","isDefaultTsConfig","replaceAll","collectTsConfigFiles","tsconfigFiles","globSync","absolute","cwd","findMissingDependencyReferences","localDependencies","dependencyLocation","message","fixable","FixCategory","normal","missingReference","file","statSync","flatMap"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/cli/commands/review/rules/require-tsconfig-references.ts"],"sourcesContent":["import { globSync } from 'glob';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport { getTsConfig, prettifySync, readJson, readJsonSafe } from '../../../../utils';\nimport { FixCategory, Package, PackageError, PackageRule, Project } from '../types';\nimport { checkPackages } from '../utils';\n\ninterface TsConfig {\n references?: { path: string }[];\n}\n\ninterface ErrorData {\n tsconfigPath: string;\n missingReference: string;\n expectedPath: string;\n}\n\nexport type RuleError = PackageError<ErrorData>;\n\nexport class RequireTsconfigReferences implements PackageRule {\n private packageNameToLocation!: Map<string, string>;\n private locationToPackageName!: Map<string, string>;\n private workspacePackageNames!: Set<string>;\n\n get id() {\n return 'require-tsconfig-references';\n }\n\n run(project: Project): RuleError[] {\n this.packageNameToLocation = new Map(\n project.packages.map(({ name, location }) => [name, location])\n );\n this.locationToPackageName = new Map(\n project.packages.map(({ name, location }) => [path.resolve(location), name])\n );\n this.workspacePackageNames = new Set(project.packages.map(({ name }) => name));\n\n return checkPackages(this, project, this.checkTsConfigReferences);\n }\n\n fix({ data }: RuleError) {\n if (!data) {\n return;\n }\n\n const { tsconfigPath, expectedPath } = data;\n const tsconfig = readJson<TsConfig>(tsconfigPath);\n\n const references = tsconfig.references ?? [];\n references.push({ path: expectedPath });\n tsconfig.references = references;\n\n fs.writeFileSync(tsconfigPath, JSON.stringify(tsconfig) + '\\n', 'utf-8');\n prettifySync(tsconfigPath);\n }\n\n private getLocalDependencies(pkg: Package) {\n const dependencies = {\n ...pkg.dependencies,\n ...pkg.devDependencies,\n ...pkg.peerDependencies,\n };\n\n return Object.keys(dependencies).filter(dependency =>\n this.workspacePackageNames.has(dependency)\n );\n }\n\n private normalizeTsConfigPath(filePath: string): string {\n if (this.isDirectory(filePath)) {\n return path.join(filePath, 'tsconfig.json');\n }\n return filePath.endsWith('.json') ? filePath : `${filePath}.json`;\n }\n\n private getTsConfigReferencedPackages(tsconfigPath: string) {\n const config = readJsonSafe<TsConfig>(tsconfigPath);\n if (!config?.references) {\n return new Set<string>();\n }\n\n const tsconfigDir = path.dirname(tsconfigPath);\n const referencedPackages = new Set<string>();\n\n for (const reference of config.references) {\n const resolvedRefPath = this.normalizeTsConfigPath(\n path.resolve(tsconfigDir, reference.path)\n );\n const refDir = path.dirname(resolvedRefPath);\n const packageName = this.locationToPackageName.get(refDir);\n\n if (packageName) {\n referencedPackages.add(packageName);\n }\n }\n\n return referencedPackages;\n }\n\n private getExpectedReferencePath(fromLocation: string, toLocation: string) {\n const relativePath = path.relative(fromLocation, toLocation);\n const tsconfigFile = getTsConfig(toLocation);\n const tsconfigName = path.basename(tsconfigFile);\n const referencePath = this.isDefaultTsConfig(tsconfigName)\n ? relativePath\n : path.join(relativePath, tsconfigName);\n\n return referencePath.replaceAll('\\\\', '/');\n }\n\n private collectTsConfigFiles(location: string): string[] {\n const tsconfigFiles = globSync(['tsconfig.json', 'tsconfig.*.json'], {\n absolute: false,\n cwd: location,\n });\n\n return tsconfigFiles.map(tsconfigFile => path.join(location, tsconfigFile));\n }\n\n private findMissingDependencyReferences(\n pkg: Package,\n tsconfigPath: string,\n localDependencies: string[]\n ): RuleError[] {\n const referencedPackages = this.getTsConfigReferencedPackages(tsconfigPath);\n\n return localDependencies\n .filter(dependency => !referencedPackages.has(dependency))\n .map(dependency => {\n const dependencyLocation = this.packageNameToLocation.get(dependency)!;\n\n return {\n id: this.id,\n message: `missing reference for dependency: ${dependency}`,\n location: tsconfigPath,\n fixable: FixCategory.normal,\n data: {\n tsconfigPath,\n missingReference: dependency,\n expectedPath: this.getExpectedReferencePath(\n pkg.location,\n dependencyLocation\n ),\n },\n };\n });\n }\n\n private readonly checkTsConfigReferences = (pkg: Package) => {\n if (pkg.location === '.') {\n return [];\n }\n\n const tsconfigFiles = this.collectTsConfigFiles(pkg.location);\n const localDependencies = this.getLocalDependencies(pkg);\n\n return tsconfigFiles.flatMap(tsconfigPath =>\n this.findMissingDependencyReferences(pkg, tsconfigPath, localDependencies)\n );\n };\n\n private isDefaultTsConfig(name: string) {\n return name === 'tsconfig.json';\n }\n\n private isDirectory(file: string) {\n try {\n return fs.statSync(file).isDirectory();\n } catch {\n return false;\n }\n }\n}\n"],"names":["RequireTsconfigReferences","id","run","project","packageNameToLocation","Map","packages","map","name","location","locationToPackageName","path","resolve","workspacePackageNames","Set","checkPackages","checkTsConfigReferences","fix","data","tsconfig","tsconfigPath","expectedPath","readJson","references","push","fs","writeFileSync","JSON","stringify","prettifySync","getLocalDependencies","pkg","dependencies","devDependencies","peerDependencies","Object","keys","filter","dependency","has","normalizeTsConfigPath","filePath","isDirectory","join","endsWith","getTsConfigReferencedPackages","config","readJsonSafe","tsconfigDir","dirname","referencedPackages","reference","resolvedRefPath","refDir","packageName","get","add","getExpectedReferencePath","fromLocation","toLocation","relativePath","relative","tsconfigFile","getTsConfig","tsconfigName","basename","referencePath","isDefaultTsConfig","replaceAll","collectTsConfigFiles","tsconfigFiles","globSync","absolute","cwd","findMissingDependencyReferences","localDependencies","dependencyLocation","message","fixable","FixCategory","normal","missingReference","file","statSync","flatMap"],"mappings":"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"}
@@ -18,18 +18,12 @@ function _getRequireWildcardCache(nodeInterop) {
18
18
  })(nodeInterop);
19
19
  }
20
20
  function _interop_require_wildcard(obj, nodeInterop) {
21
- if (!nodeInterop && obj && obj.__esModule) {
22
- return obj;
23
- }
24
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
25
- return {
26
- default: obj
27
- };
28
- }
21
+ if (!nodeInterop && obj && obj.__esModule) return obj;
22
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") return {
23
+ default: obj
24
+ };
29
25
  var cache = _getRequireWildcardCache(nodeInterop);
30
- if (cache && cache.has(obj)) {
31
- return cache.get(obj);
32
- }
26
+ if (cache && cache.has(obj)) return cache.get(obj);
33
27
  var newObj = {
34
28
  __proto__: null
35
29
  };
@@ -37,17 +31,12 @@ function _interop_require_wildcard(obj, nodeInterop) {
37
31
  for(var key in obj){
38
32
  if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
39
33
  var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
40
- if (desc && (desc.get || desc.set)) {
41
- Object.defineProperty(newObj, key, desc);
42
- } else {
43
- newObj[key] = obj[key];
44
- }
34
+ if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);
35
+ else newObj[key] = obj[key];
45
36
  }
46
37
  }
47
38
  newObj.default = obj;
48
- if (cache) {
49
- cache.set(obj, newObj);
50
- }
39
+ if (cache) cache.set(obj, newObj);
51
40
  return newObj;
52
41
  }
53
42
  const REGEX_PREFIX = /^(\D{1,2})/;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/cli/commands/review/utils/compare-version.ts"],"sourcesContent":["import * as semver from 'semver';\n\nconst REGEX_PREFIX = /^(\\D{1,2})/;\nconst REGEX_N_DOT_X = /^\\D*\\d\\.x/; // E.g., 1.x\nconst REGEX_N_DOT_N_DOT_X = /^\\D*\\d\\.\\d\\.x/; // E.g., 1.0.x\n\nconst prefixOrder = Object.fromEntries(\n ['<', '<=', '=', '', '~', '^', '>=', '>'].map((prefix, index) => [prefix, index])\n);\n\n/**\n * Compare two semver strings.\n * @returns\n * - `0` if a == b\n * - `>0` if a is semantically greater than b (e.g., \"^1.0.0\" is greater than \"~1.0.0\")\n * - `<0` if a is semantically less than b (e.g., \"<1\" is less than \"<=1\")\n */\nexport function compareVersion(a: string, b: string) {\n const max = { a: maxVersion(a), b: maxVersion(b) };\n if (!(max.a && max.b)) {\n return a.localeCompare(b);\n }\n\n const min = { a: semver.minVersion(a), b: semver.minVersion(b) };\n const result =\n semver.compare(max.a, max.b) || // e.g., ^1.0.0 gt ~1.0.0\n comparePrefix(a, b) || // e.g., ^1 gt 1.x\n (min.a && min.b ? semver.compare(min.a, min.b) : 0) || // e.g., ^1.1.1 gt ^1.0.0\n a.length - b.length; // >=1.0.0 gt >=1\n return result > 0 ? 1 : result < 0 ? -1 : 0;\n}\n\nfunction comparePrefix(a: string, b: string) {\n return prefixOrder[getPrefix(a)] - prefixOrder[getPrefix(b)];\n}\n\nfunction getPrefix(version: string, { infer = false }: { infer?: boolean } = {}) {\n if (infer) {\n if (REGEX_N_DOT_X.test(version)) {\n return '^';\n }\n if (REGEX_N_DOT_N_DOT_X.test(version)) {\n return '~';\n }\n }\n return REGEX_PREFIX.exec(version)?.[1].trim() ?? '';\n}\n\nfunction maxVersion(str: string) {\n if (!semver.validRange(str)) {\n return;\n }\n\n const v = semver.coerce(str);\n if (!v) {\n return;\n }\n\n const prefix = getPrefix(str, { infer: true });\n if (prefix === '<') {\n if (v.patch) {\n return new semver.SemVer(`${v.major}.${v.minor}.${v.patch - 1}`);\n }\n if (v.minor) {\n return new semver.SemVer(`${v.major}.${v.minor - 1}.999`);\n }\n if (v.major) {\n return new semver.SemVer(`${v.major - 1}.999.999`);\n }\n }\n if (prefix === '~') {\n return new semver.SemVer(`${v.major}.${v.minor}.999`);\n }\n if (prefix === '^') {\n return new semver.SemVer(`${v.major}.999.999`);\n }\n if (prefix === '>=' || prefix === '>') {\n return new semver.SemVer('999.999.999');\n }\n\n return v;\n}\n"],"names":["compareVersion","REGEX_PREFIX","REGEX_N_DOT_X","REGEX_N_DOT_N_DOT_X","prefixOrder","Object","fromEntries","map","prefix","index","a","b","max","maxVersion","localeCompare","min","semver","minVersion","result","compare","comparePrefix","length","getPrefix","version","infer","test","exec","trim","str","validRange","v","coerce","patch","SemVer","major","minor"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/cli/commands/review/utils/compare-version.ts"],"sourcesContent":["import * as semver from 'semver';\n\nconst REGEX_PREFIX = /^(\\D{1,2})/;\nconst REGEX_N_DOT_X = /^\\D*\\d\\.x/; // E.g., 1.x\nconst REGEX_N_DOT_N_DOT_X = /^\\D*\\d\\.\\d\\.x/; // E.g., 1.0.x\n\nconst prefixOrder = Object.fromEntries(\n ['<', '<=', '=', '', '~', '^', '>=', '>'].map((prefix, index) => [prefix, index])\n);\n\n/**\n * Compare two semver strings.\n * @returns\n * - `0` if a == b\n * - `>0` if a is semantically greater than b (e.g., \"^1.0.0\" is greater than \"~1.0.0\")\n * - `<0` if a is semantically less than b (e.g., \"<1\" is less than \"<=1\")\n */\nexport function compareVersion(a: string, b: string) {\n const max = { a: maxVersion(a), b: maxVersion(b) };\n if (!(max.a && max.b)) {\n return a.localeCompare(b);\n }\n\n const min = { a: semver.minVersion(a), b: semver.minVersion(b) };\n const result =\n semver.compare(max.a, max.b) || // e.g., ^1.0.0 gt ~1.0.0\n comparePrefix(a, b) || // e.g., ^1 gt 1.x\n (min.a && min.b ? semver.compare(min.a, min.b) : 0) || // e.g., ^1.1.1 gt ^1.0.0\n a.length - b.length; // >=1.0.0 gt >=1\n return result > 0 ? 1 : result < 0 ? -1 : 0;\n}\n\nfunction comparePrefix(a: string, b: string) {\n return prefixOrder[getPrefix(a)] - prefixOrder[getPrefix(b)];\n}\n\nfunction getPrefix(version: string, { infer = false }: { infer?: boolean } = {}) {\n if (infer) {\n if (REGEX_N_DOT_X.test(version)) {\n return '^';\n }\n if (REGEX_N_DOT_N_DOT_X.test(version)) {\n return '~';\n }\n }\n return REGEX_PREFIX.exec(version)?.[1].trim() ?? '';\n}\n\nfunction maxVersion(str: string) {\n if (!semver.validRange(str)) {\n return;\n }\n\n const v = semver.coerce(str);\n if (!v) {\n return;\n }\n\n const prefix = getPrefix(str, { infer: true });\n if (prefix === '<') {\n if (v.patch) {\n return new semver.SemVer(`${v.major}.${v.minor}.${v.patch - 1}`);\n }\n if (v.minor) {\n return new semver.SemVer(`${v.major}.${v.minor - 1}.999`);\n }\n if (v.major) {\n return new semver.SemVer(`${v.major - 1}.999.999`);\n }\n }\n if (prefix === '~') {\n return new semver.SemVer(`${v.major}.${v.minor}.999`);\n }\n if (prefix === '^') {\n return new semver.SemVer(`${v.major}.999.999`);\n }\n if (prefix === '>=' || prefix === '>') {\n return new semver.SemVer('999.999.999');\n }\n\n return v;\n}\n"],"names":["compareVersion","REGEX_PREFIX","REGEX_N_DOT_X","REGEX_N_DOT_N_DOT_X","prefixOrder","Object","fromEntries","map","prefix","index","a","b","max","maxVersion","localeCompare","min","semver","minVersion","result","compare","comparePrefix","length","getPrefix","version","infer","test","exec","trim","str","validRange","v","coerce","patch","SemVer","major","minor"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { entry } from './registry/task';
2
2
  import { Command } from './types';
3
3
  export declare class RunTask extends Command<typeof entry> {
4
+ watchForParentExit(): void;
4
5
  execute(): Promise<void>;
5
6
  }
6
7
  //# sourceMappingURL=run-task.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-task.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/run-task.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAQlC,qBAAa,OAAQ,SAAQ,OAAO,CAAC,OAAO,KAAK,CAAC;IAExC,OAAO;CAchB"}
1
+ {"version":3,"file":"run-task.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/run-task.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAQlC,qBAAa,OAAQ,SAAQ,OAAO,CAAC,OAAO,KAAK,CAAC;IAC9C,kBAAkB,IAAI,IAAI;IAKpB,OAAO;CAgBhB"}
@@ -13,12 +13,21 @@ const _tasks = require("../tasks");
13
13
  const _types = require("./types");
14
14
  function _ts_decorate(decorators, target, key, desc) {
15
15
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
17
- 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;
16
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
17
+ r = Reflect.decorate(decorators, target, key, desc);
18
+ } else {
19
+ for(var i = decorators.length - 1; i >= 0; i--){
20
+ if (d = decorators[i]) {
21
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ }
23
+ }
24
+ }
18
25
  return c > 3 && r && Object.defineProperty(target, key, r), r;
19
26
  }
20
- function _ts_metadata(k, v) {
21
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
27
+ function _ts_metadata(metadataKey, metadataValue) {
28
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
29
+ return Reflect.metadata(metadataKey, metadataValue);
30
+ }
22
31
  }
23
32
  const tasks = {
24
33
  'tsc-compile-package': _tasks.TscCompilePackage,
@@ -26,17 +35,22 @@ const tasks = {
26
35
  'tsc-compile': _tasks.TscCompile
27
36
  };
28
37
  class RunTask extends _types.Command {
38
+ watchForParentExit() {
39
+ // No-op: the task being run handles its own parent-exit watch.
40
+ }
29
41
  async execute() {
30
42
  var _this_args__;
31
43
  const { _ = [], taskName = (_this_args__ = this.args._) === null || _this_args__ === void 0 ? void 0 : _this_args__[0], taskArgs = [], ...restOptions } = this.args;
32
44
  if (taskName && taskName in tasks) {
33
- await new tasks[taskName]({
45
+ const task = new tasks[taskName]({
34
46
  _: [
35
47
  ..._,
36
48
  ...taskArgs
37
49
  ],
38
50
  ...restOptions
39
- }).execute();
51
+ });
52
+ task.watchForParentExit();
53
+ await task.execute();
40
54
  return;
41
55
  }
42
56
  _utils.log.error(`Unknown task: "${taskName}"`);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/commands/run-task.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport { log, logErrors } from '../../utils';\nimport { SwcCompilePackage, TscCompile, TscCompilePackage } from '../tasks';\nimport { Task } from '../tasks/task';\nimport type { entry } from './registry/task';\nimport { Command } from './types';\n\nconst tasks: Record<string, new (args: { [key: string]: unknown }) => Task> = {\n 'tsc-compile-package': TscCompilePackage,\n 'swc-compile-package': SwcCompilePackage,\n 'tsc-compile': TscCompile,\n};\n\nexport class RunTask extends Command<typeof entry> {\n @logErrors\n async execute() {\n const { _ = [], taskName = this.args._?.[0], taskArgs = [], ...restOptions } = this.args;\n\n if (taskName && taskName in tasks) {\n await new tasks[taskName]({\n _: [..._, ...taskArgs],\n ...restOptions,\n }).execute();\n return;\n }\n\n log.error(`Unknown task: \"${taskName}\"`);\n log.text(`\\nSupported tasks: \"${Object.keys(tasks).join('\", \"')}\"`);\n }\n}\n"],"names":["RunTask","tasks","TscCompilePackage","SwcCompilePackage","TscCompile","Command","execute","_","taskName","args","taskArgs","restOptions","log","error","text","Object","keys","join"],"mappings":"AAAA,uDAAuD;;;;+BAa1CA;;;eAAAA;;;uBAZkB;uBACkC;uBAGzC;;;;;;;;;;AAExB,MAAMC,QAAwE;IAC1E,uBAAuBC,wBAAiB;IACxC,uBAAuBC,wBAAiB;IACxC,eAAeC,iBAAU;AAC7B;AAEO,MAAMJ,gBAAgBK,cAAO;IAChC,MACMC,UAAU;YACe;QAA3B,MAAM,EAAEC,IAAI,EAAE,EAAEC,YAAW,eAAA,IAAI,CAACC,IAAI,CAACF,CAAC,cAAX,mCAAA,YAAa,CAAC,EAAE,EAAEG,WAAW,EAAE,EAAE,GAAGC,aAAa,GAAG,IAAI,CAACF,IAAI;QAExF,IAAID,YAAYA,YAAYP,OAAO;YAC/B,MAAM,IAAIA,KAAK,CAACO,SAAS,CAAC;gBACtBD,GAAG;uBAAIA;uBAAMG;iBAAS;gBACtB,GAAGC,WAAW;YAClB,GAAGL,OAAO;YACV;QACJ;QAEAM,UAAG,CAACC,KAAK,CAAC,CAAC,eAAe,EAAEL,SAAS,CAAC,CAAC;QACvCI,UAAG,CAACE,IAAI,CAAC,CAAC,oBAAoB,EAAEC,OAAOC,IAAI,CAACf,OAAOgB,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtE;AACJ"}
1
+ {"version":3,"sources":["../../../src/cli/commands/run-task.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport { log, logErrors } from '../../utils';\nimport { SwcCompilePackage, TscCompile, TscCompilePackage } from '../tasks';\nimport { Task } from '../tasks/task';\nimport type { entry } from './registry/task';\nimport { Command } from './types';\n\nconst tasks: Record<string, new (args: { [key: string]: unknown }) => Task> = {\n 'tsc-compile-package': TscCompilePackage,\n 'swc-compile-package': SwcCompilePackage,\n 'tsc-compile': TscCompile,\n};\n\nexport class RunTask extends Command<typeof entry> {\n watchForParentExit(): void {\n // No-op: the task being run handles its own parent-exit watch.\n }\n\n @logErrors\n async execute() {\n const { _ = [], taskName = this.args._?.[0], taskArgs = [], ...restOptions } = this.args;\n\n if (taskName && taskName in tasks) {\n const task = new tasks[taskName]({\n _: [..._, ...taskArgs],\n ...restOptions,\n });\n task.watchForParentExit();\n await task.execute();\n return;\n }\n\n log.error(`Unknown task: \"${taskName}\"`);\n log.text(`\\nSupported tasks: \"${Object.keys(tasks).join('\", \"')}\"`);\n }\n}\n"],"names":["RunTask","tasks","TscCompilePackage","SwcCompilePackage","TscCompile","Command","watchForParentExit","execute","_","taskName","args","taskArgs","restOptions","task","log","error","text","Object","keys","join"],"mappings":"AAAA,uDAAuD;;;;+BAa1CA;;;eAAAA;;;uBAZkB;uBACkC;uBAGzC;;;;;;;;;;;;;;;;;;;AAExB,MAAMC,QAAwE;IAC1E,uBAAuBC,wBAAiB;IACxC,uBAAuBC,wBAAiB;IACxC,eAAeC,iBAAU;AAC7B;AAEO,MAAMJ,gBAAgBK,cAAO;IAChCC,qBAA2B;IACvB,+DAA+D;IACnE;IAEA,MACMC,UAAU;YACe;QAA3B,MAAM,EAAEC,IAAI,EAAE,EAAEC,YAAW,eAAA,IAAI,CAACC,IAAI,CAACF,CAAC,cAAX,mCAAA,YAAa,CAAC,EAAE,EAAEG,WAAW,EAAE,EAAE,GAAGC,aAAa,GAAG,IAAI,CAACF,IAAI;QAExF,IAAID,YAAYA,YAAYR,OAAO;YAC/B,MAAMY,OAAO,IAAIZ,KAAK,CAACQ,SAAS,CAAC;gBAC7BD,GAAG;uBAAIA;uBAAMG;iBAAS;gBACtB,GAAGC,WAAW;YAClB;YACAC,KAAKP,kBAAkB;YACvB,MAAMO,KAAKN,OAAO;YAClB;QACJ;QAEAO,UAAG,CAACC,KAAK,CAAC,CAAC,eAAe,EAAEN,SAAS,CAAC,CAAC;QACvCK,UAAG,CAACE,IAAI,CAAC,CAAC,oBAAoB,EAAEC,OAAOC,IAAI,CAACjB,OAAOkB,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtE;AACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAalC,qBAAa,KAAM,SAAQ,OAAO,CAAC,OAAO,KAAK,CAAC;IAEtC,OAAO;CAqIhB"}
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAalC,qBAAa,KAAM,SAAQ,OAAO,CAAC,OAAO,KAAK,CAAC;IAEtC,OAAO;CAgJhB"}
@@ -13,12 +13,21 @@ const _utils1 = require("../utils");
13
13
  const _types = require("./types");
14
14
  function _ts_decorate(decorators, target, key, desc) {
15
15
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
17
- 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;
16
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
17
+ r = Reflect.decorate(decorators, target, key, desc);
18
+ } else {
19
+ for(var i = decorators.length - 1; i >= 0; i--){
20
+ if (d = decorators[i]) {
21
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ }
23
+ }
24
+ }
18
25
  return c > 3 && r && Object.defineProperty(target, key, r), r;
19
26
  }
20
- function _ts_metadata(k, v) {
21
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
27
+ function _ts_metadata(metadataKey, metadataValue) {
28
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
29
+ return Reflect.metadata(metadataKey, metadataValue);
30
+ }
22
31
  }
23
32
  var StartProcesses = /*#__PURE__*/ function(StartProcesses) {
24
33
  StartProcesses[StartProcesses["Precompile"] = 0] = "Precompile";
@@ -39,6 +48,8 @@ class Start extends _types.Command {
39
48
  '--experimental-bundlers'
40
49
  ]
41
50
  });
51
+ // Used by sub-processes to detect this process dying
52
+ process.env.STARTUP_PARENT_PID = String(process.pid);
42
53
  const useTsc = this.args.useTsc;
43
54
  const packages = (0, _utils.getPackages)({
44
55
  scope: this.args.scope,
@@ -51,9 +62,14 @@ class Start extends _types.Command {
51
62
  if (packages.length === 0) {
52
63
  return;
53
64
  }
65
+ this.recordStart('start', {
66
+ bundler: (0, _utils1.resolveBundler)(this.args)
67
+ });
54
68
  const scope = packages.map(({ name })=>name);
55
69
  const bundleScope = packages.filter(({ type })=>type === _utils.PackageType.Bundle).map(({ name })=>name);
56
- const bundleCmd = (0, _utils1.getBundleCommand)(this.args);
70
+ const bundlerArg = [
71
+ `--bundler ${(0, _utils1.resolveBundler)(this.args)}`
72
+ ];
57
73
  const precompileScope = packages.filter(({ scripts })=>!!(scripts === null || scripts === void 0 ? void 0 : scripts.precompile)).map(({ name })=>name);
58
74
  const processTree = new _utils1.ProcessTree();
59
75
  processTree.add(0, ()=>{
@@ -68,15 +84,15 @@ class Start extends _types.Command {
68
84
  });
69
85
  });
70
86
  processTree.add(1, ()=>{
71
- const process = (0, _utils1.compile)({
87
+ const process1 = (0, _utils1.compile)({
72
88
  packages: scope,
73
89
  watch: true,
74
90
  useTsc
75
91
  });
76
- (0, _utils1.pipeStdout)(process);
92
+ (0, _utils1.pipeStdout)(process1);
77
93
  const onComplete = new Promise((resolve)=>{
78
94
  let counter = 0;
79
- (0, _utils1.watchStdout)(process, useTsc ? 'Initial tsc-compile-package task completed' : 'Initial swc-compile-package task completed', (count)=>{
95
+ (0, _utils1.watchStdout)(process1, useTsc ? 'Initial tsc-compile-package task completed' : 'Initial swc-compile-package task completed', (count)=>{
80
96
  counter += count;
81
97
  if (counter === scope.length) {
82
98
  resolve();
@@ -84,7 +100,7 @@ class Start extends _types.Command {
84
100
  });
85
101
  });
86
102
  return {
87
- process,
103
+ process: process1,
88
104
  onComplete
89
105
  };
90
106
  }, {
@@ -123,13 +139,14 @@ class Start extends _types.Command {
123
139
  return Promise.resolve();
124
140
  }
125
141
  return (0, _utils1.lernaExec)({
126
- 'cmd': bundleCmd,
142
+ 'cmd': 'startup bundle-package',
127
143
  'scope': bundleScope,
128
144
  'parallel': true,
129
145
  'stream': true,
130
146
  '--': [
131
147
  '--exposed-dependencies',
132
- '--use-watch-config'
148
+ '--use-watch-config',
149
+ ...bundlerArg
133
150
  ]
134
151
  });
135
152
  }, {
@@ -143,14 +160,15 @@ class Start extends _types.Command {
143
160
  return Promise.resolve();
144
161
  }
145
162
  return (0, _utils1.lernaExec)({
146
- 'cmd': bundleCmd,
163
+ 'cmd': 'startup bundle-package',
147
164
  'scope': bundleScope,
148
165
  'parallel': true,
149
166
  'stream': true,
150
167
  '--': [
151
168
  '--watch',
152
169
  this.args.config ? `--config "${this.args.config}"` : undefined,
153
- this.args.codeCoverage ? '--code-coverage' : undefined
170
+ this.args.codeCoverage ? '--code-coverage' : undefined,
171
+ ...bundlerArg
154
172
  ].filter((item)=>!!item)
155
173
  });
156
174
  }, {
@@ -158,7 +176,12 @@ class Start extends _types.Command {
158
176
  6
159
177
  ]
160
178
  });
161
- await processTree.run();
179
+ try {
180
+ await processTree.run();
181
+ } catch (error) {
182
+ await this.recordEnd(error);
183
+ throw error;
184
+ }
162
185
  }
163
186
  }
164
187
  _ts_decorate([
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/commands/start.ts"],"sourcesContent":["import { getPackages, logErrors, PackageType } from '../../utils';\nimport {\n checkArgs,\n compile,\n getBundleCommand,\n lernaExec,\n pipeStdout,\n ProcessTree,\n typeCheck,\n watchStdout,\n} from '../utils';\nimport type { entry } from './registry/start';\nimport { Command } from './types';\n\nenum StartProcesses {\n Precompile,\n Compile,\n KendoUILicense,\n PreparePackage,\n PreparePackageWatch,\n TypeCheck,\n BundleExposedDependencies,\n Bundle,\n}\n\nexport class Start 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 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 StartProcesses>();\n\n processTree.add(StartProcesses.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\n processTree.add(\n StartProcesses.Compile,\n () => {\n const process = compile({\n packages: scope,\n watch: true,\n useTsc,\n });\n\n pipeStdout(process);\n\n const onComplete = new Promise<void>(resolve => {\n let counter = 0;\n\n watchStdout(\n process,\n useTsc\n ? 'Initial tsc-compile-package task completed'\n : 'Initial swc-compile-package task completed',\n count => {\n counter += count;\n\n if (counter === scope.length) {\n resolve();\n }\n }\n );\n });\n\n return { process, onComplete };\n },\n { dependsOn: [StartProcesses.Precompile] }\n );\n processTree.add(StartProcesses.PreparePackage, () =>\n lernaExec({\n cmd: 'startup prepare-package',\n scope,\n stream: true,\n })\n );\n processTree.add(\n StartProcesses.PreparePackageWatch,\n () =>\n lernaExec({\n 'cmd': 'startup prepare-package',\n scope,\n 'parallel': true,\n 'stream': true,\n '--': ['--watch'],\n }),\n { dependsOn: [StartProcesses.PreparePackage] }\n );\n processTree.add(\n StartProcesses.TypeCheck,\n () => typeCheck({ packages: scope, watch: true }),\n { dependsOn: [StartProcesses.PreparePackage] }\n );\n processTree.add(\n StartProcesses.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', '--use-watch-config'],\n });\n },\n { dependsOn: [StartProcesses.Compile, StartProcesses.PreparePackage] }\n );\n processTree.add(\n StartProcesses.Bundle,\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 '--': [\n '--watch',\n this.args.config ? `--config \"${this.args.config}\"` : undefined,\n this.args.codeCoverage ? '--code-coverage' : undefined,\n ].filter(item => !!item) as string[],\n });\n },\n { dependsOn: [StartProcesses.BundleExposedDependencies] }\n );\n\n await processTree.run();\n }\n}\n"],"names":["Start","StartProcesses","Command","execute","checkArgs","args","obsolete","useTsc","packages","getPackages","scope","ignore","type","PackageType","TSC","Bundle","length","map","name","bundleScope","filter","bundleCmd","getBundleCommand","precompileScope","scripts","precompile","processTree","ProcessTree","add","Promise","resolve","lernaExec","cmd","parallel","stream","process","compile","watch","pipeStdout","onComplete","counter","watchStdout","count","dependsOn","typeCheck","config","undefined","codeCoverage","item","run"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/cli/commands/start.ts"],"sourcesContent":["import { getPackages, logErrors, PackageType } from '../../utils';\nimport {\n checkArgs,\n compile,\n lernaExec,\n pipeStdout,\n ProcessTree,\n resolveBundler,\n typeCheck,\n watchStdout,\n} from '../utils';\nimport type { entry } from './registry/start';\nimport { Command } from './types';\n\nenum StartProcesses {\n Precompile,\n Compile,\n KendoUILicense,\n PreparePackage,\n PreparePackageWatch,\n TypeCheck,\n BundleExposedDependencies,\n Bundle,\n}\n\nexport class Start extends Command<typeof entry> {\n @logErrors\n async execute() {\n checkArgs(this.args, { obsolete: ['--esbuild', '--experimental-bundlers'] });\n\n // Used by sub-processes to detect this process dying\n process.env.STARTUP_PARENT_PID = String(process.pid);\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('start', { bundler: resolveBundler(this.args) });\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 StartProcesses>();\n\n processTree.add(StartProcesses.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\n processTree.add(\n StartProcesses.Compile,\n () => {\n const process = compile({\n packages: scope,\n watch: true,\n useTsc,\n });\n\n pipeStdout(process);\n\n const onComplete = new Promise<void>(resolve => {\n let counter = 0;\n\n watchStdout(\n process,\n useTsc\n ? 'Initial tsc-compile-package task completed'\n : 'Initial swc-compile-package task completed',\n count => {\n counter += count;\n\n if (counter === scope.length) {\n resolve();\n }\n }\n );\n });\n\n return { process, onComplete };\n },\n { dependsOn: [StartProcesses.Precompile] }\n );\n processTree.add(StartProcesses.PreparePackage, () =>\n lernaExec({\n cmd: 'startup prepare-package',\n scope,\n stream: true,\n })\n );\n processTree.add(\n StartProcesses.PreparePackageWatch,\n () =>\n lernaExec({\n 'cmd': 'startup prepare-package',\n scope,\n 'parallel': true,\n 'stream': true,\n '--': ['--watch'],\n }),\n { dependsOn: [StartProcesses.PreparePackage] }\n );\n processTree.add(\n StartProcesses.TypeCheck,\n () => typeCheck({ packages: scope, watch: true }),\n { dependsOn: [StartProcesses.PreparePackage] }\n );\n processTree.add(\n StartProcesses.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', '--use-watch-config', ...bundlerArg],\n });\n },\n { dependsOn: [StartProcesses.Compile, StartProcesses.PreparePackage] }\n );\n processTree.add(\n StartProcesses.Bundle,\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 '--': [\n '--watch',\n this.args.config ? `--config \"${this.args.config}\"` : undefined,\n this.args.codeCoverage ? '--code-coverage' : undefined,\n ...bundlerArg,\n ].filter(item => !!item) as string[],\n });\n },\n { dependsOn: [StartProcesses.BundleExposedDependencies] }\n );\n\n try {\n await processTree.run();\n } catch (error) {\n await this.recordEnd(error);\n throw error;\n }\n }\n}\n"],"names":["Start","StartProcesses","Command","execute","checkArgs","args","obsolete","process","env","STARTUP_PARENT_PID","String","pid","useTsc","packages","getPackages","scope","ignore","type","PackageType","TSC","Bundle","length","recordStart","bundler","resolveBundler","map","name","bundleScope","filter","bundlerArg","precompileScope","scripts","precompile","processTree","ProcessTree","add","Promise","resolve","lernaExec","cmd","parallel","stream","compile","watch","pipeStdout","onComplete","counter","watchStdout","count","dependsOn","typeCheck","config","undefined","codeCoverage","item","run","error","recordEnd"],"mappings":"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"}
@@ -13,12 +13,21 @@ const _stylelint = require("../utils/stylelint");
13
13
  const _types = require("./types");
14
14
  function _ts_decorate(decorators, target, key, desc) {
15
15
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
17
- 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;
16
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
17
+ r = Reflect.decorate(decorators, target, key, desc);
18
+ } else {
19
+ for(var i = decorators.length - 1; i >= 0; i--){
20
+ if (d = decorators[i]) {
21
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ }
23
+ }
24
+ }
18
25
  return c > 3 && r && Object.defineProperty(target, key, r), r;
19
26
  }
20
- function _ts_metadata(k, v) {
21
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
27
+ function _ts_metadata(metadataKey, metadataValue) {
28
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
29
+ return Reflect.metadata(metadataKey, metadataValue);
30
+ }
22
31
  }
23
32
  class Stylelint extends _types.Command {
24
33
  async execute() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/commands/stylelint.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport { logErrors } from '../../utils';\nimport { stylelint } from '../utils/stylelint';\nimport type { entry } from './registry/stylelint';\nimport { Command } from './types';\n\nexport class Stylelint extends Command<typeof entry> {\n @logErrors\n async execute() {\n await stylelint({ fix: this.args.fix, paths: this.paths });\n }\n\n private get paths() {\n const { _ = [], paths = [] } = this.args;\n return [..._, ...paths];\n }\n}\n"],"names":["Stylelint","Command","execute","stylelint","fix","args","paths","_"],"mappings":"AAAA,uDAAuD;;;;+BAM1CA;;;eAAAA;;;uBALa;2BACA;uBAEF;;;;;;;;;;AAEjB,MAAMA,kBAAkBC,cAAO;IAClC,MACMC,UAAU;QACZ,MAAMC,IAAAA,oBAAS,EAAC;YAAEC,KAAK,IAAI,CAACC,IAAI,CAACD,GAAG;YAAEE,OAAO,IAAI,CAACA,KAAK;QAAC;IAC5D;IAEA,IAAYA,QAAQ;QAChB,MAAM,EAAEC,IAAI,EAAE,EAAED,QAAQ,EAAE,EAAE,GAAG,IAAI,CAACD,IAAI;QACxC,OAAO;eAAIE;eAAMD;SAAM;IAC3B;AACJ"}
1
+ {"version":3,"sources":["../../../src/cli/commands/stylelint.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport { logErrors } from '../../utils';\nimport { stylelint } from '../utils/stylelint';\nimport type { entry } from './registry/stylelint';\nimport { Command } from './types';\n\nexport class Stylelint extends Command<typeof entry> {\n @logErrors\n async execute() {\n await stylelint({ fix: this.args.fix, paths: this.paths });\n }\n\n private get paths() {\n const { _ = [], paths = [] } = this.args;\n return [..._, ...paths];\n }\n}\n"],"names":["Stylelint","Command","execute","stylelint","fix","args","paths","_"],"mappings":"AAAA,uDAAuD;;;;+BAM1CA;;;eAAAA;;;uBALa;2BACA;uBAEF;;;;;;;;;;;;;;;;;;;AAEjB,MAAMA,kBAAkBC,cAAO;IAClC,MACMC,UAAU;QACZ,MAAMC,IAAAA,oBAAS,EAAC;YAAEC,KAAK,IAAI,CAACC,IAAI,CAACD,GAAG;YAAEE,OAAO,IAAI,CAACA,KAAK;QAAC;IAC5D;IAEA,IAAYA,QAAQ;QAChB,MAAM,EAAEC,IAAI,EAAE,EAAED,QAAQ,EAAE,EAAE,GAAG,IAAI,CAACD,IAAI;QACxC,OAAO;eAAIE;eAAMD;SAAM;IAC3B;AACJ"}
@@ -20,12 +20,21 @@ function _interop_require_default(obj) {
20
20
  }
21
21
  function _ts_decorate(decorators, target, key, desc) {
22
22
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
23
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
24
- 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;
23
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
24
+ r = Reflect.decorate(decorators, target, key, desc);
25
+ } else {
26
+ for(var i = decorators.length - 1; i >= 0; i--){
27
+ if (d = decorators[i]) {
28
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
29
+ }
30
+ }
31
+ }
25
32
  return c > 3 && r && Object.defineProperty(target, key, r), r;
26
33
  }
27
- function _ts_metadata(k, v) {
28
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
34
+ function _ts_metadata(metadataKey, metadataValue) {
35
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
36
+ return Reflect.metadata(metadataKey, metadataValue);
37
+ }
29
38
  }
30
39
  const patterns = [
31
40
  "@import '~@servicetitan/tokens/core/tokens.css';",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/commands/styles-check.ts"],"sourcesContent":["import fs from 'fs';\nimport { glob } from 'glob';\nimport path from 'path';\nimport { getFolders, isBundle, isLegacy, isStyleCheckDisabled, log, logErrors } from '../../utils';\nimport type { entry } from './registry/styles-check';\nimport { Command } from './types';\n\nconst patterns = [\n \"@import '~@servicetitan/tokens/core/tokens.css';\",\n \"@import '~@servicetitan/anvil-fonts/dist/css/anvil-fonts.css';\",\n \"@import '~@servicetitan/design-system/dist/system.min.css';\",\n];\n\nexport class StylesCheck extends Command<typeof entry> {\n @logErrors\n async execute() {\n if (isLegacy() || !isBundle()) {\n return;\n }\n\n if (isStyleCheckDisabled()) {\n log.info('style check is disabled');\n return;\n }\n\n let ok = true;\n const { source } = getFolders();\n const files = await glob(`${source}/**/*.{css,less}`);\n\n for (const file of files) {\n const relativePath = path.relative(source, file);\n if (relativePath === 'design-system.css') {\n continue;\n }\n\n const content = fs.readFileSync(file, { encoding: 'utf-8' });\n patterns.forEach(pattern => {\n if (content.includes(pattern)) {\n log.error(`Error: file ${relativePath} contains \"${pattern}\"`);\n ok = false;\n }\n });\n }\n\n if (!ok) {\n throw new Error('style check failed, see errors above');\n }\n }\n}\n"],"names":["StylesCheck","patterns","Command","execute","isLegacy","isBundle","isStyleCheckDisabled","log","info","ok","source","getFolders","files","glob","file","relativePath","path","relative","content","fs","readFileSync","encoding","forEach","pattern","includes","error","Error"],"mappings":";;;;+BAaaA;;;eAAAA;;;2DAbE;sBACM;6DACJ;uBACoE;uBAE7D;;;;;;;;;;;;;;;AAExB,MAAMC,WAAW;IACb;IACA;IACA;CACH;AAEM,MAAMD,oBAAoBE,cAAO;IACpC,MACMC,UAAU;QACZ,IAAIC,IAAAA,eAAQ,OAAM,CAACC,IAAAA,eAAQ,KAAI;YAC3B;QACJ;QAEA,IAAIC,IAAAA,2BAAoB,KAAI;YACxBC,UAAG,CAACC,IAAI,CAAC;YACT;QACJ;QAEA,IAAIC,KAAK;QACT,MAAM,EAAEC,MAAM,EAAE,GAAGC,IAAAA,iBAAU;QAC7B,MAAMC,QAAQ,MAAMC,IAAAA,UAAI,EAAC,GAAGH,OAAO,gBAAgB,CAAC;QAEpD,KAAK,MAAMI,QAAQF,MAAO;YACtB,MAAMG,eAAeC,aAAI,CAACC,QAAQ,CAACP,QAAQI;YAC3C,IAAIC,iBAAiB,qBAAqB;gBACtC;YACJ;YAEA,MAAMG,UAAUC,WAAE,CAACC,YAAY,CAACN,MAAM;gBAAEO,UAAU;YAAQ;YAC1DpB,SAASqB,OAAO,CAACC,CAAAA;gBACb,IAAIL,QAAQM,QAAQ,CAACD,UAAU;oBAC3BhB,UAAG,CAACkB,KAAK,CAAC,CAAC,YAAY,EAAEV,aAAa,WAAW,EAAEQ,QAAQ,CAAC,CAAC;oBAC7Dd,KAAK;gBACT;YACJ;QACJ;QAEA,IAAI,CAACA,IAAI;YACL,MAAM,IAAIiB,MAAM;QACpB;IACJ;AACJ"}
1
+ {"version":3,"sources":["../../../src/cli/commands/styles-check.ts"],"sourcesContent":["import fs from 'fs';\nimport { glob } from 'glob';\nimport path from 'path';\nimport { getFolders, isBundle, isLegacy, isStyleCheckDisabled, log, logErrors } from '../../utils';\nimport type { entry } from './registry/styles-check';\nimport { Command } from './types';\n\nconst patterns = [\n \"@import '~@servicetitan/tokens/core/tokens.css';\",\n \"@import '~@servicetitan/anvil-fonts/dist/css/anvil-fonts.css';\",\n \"@import '~@servicetitan/design-system/dist/system.min.css';\",\n];\n\nexport class StylesCheck extends Command<typeof entry> {\n @logErrors\n async execute() {\n if (isLegacy() || !isBundle()) {\n return;\n }\n\n if (isStyleCheckDisabled()) {\n log.info('style check is disabled');\n return;\n }\n\n let ok = true;\n const { source } = getFolders();\n const files = await glob(`${source}/**/*.{css,less}`);\n\n for (const file of files) {\n const relativePath = path.relative(source, file);\n if (relativePath === 'design-system.css') {\n continue;\n }\n\n const content = fs.readFileSync(file, { encoding: 'utf-8' });\n patterns.forEach(pattern => {\n if (content.includes(pattern)) {\n log.error(`Error: file ${relativePath} contains \"${pattern}\"`);\n ok = false;\n }\n });\n }\n\n if (!ok) {\n throw new Error('style check failed, see errors above');\n }\n }\n}\n"],"names":["StylesCheck","patterns","Command","execute","isLegacy","isBundle","isStyleCheckDisabled","log","info","ok","source","getFolders","files","glob","file","relativePath","path","relative","content","fs","readFileSync","encoding","forEach","pattern","includes","error","Error"],"mappings":";;;;+BAaaA;;;eAAAA;;;2DAbE;sBACM;6DACJ;uBACoE;uBAE7D;;;;;;;;;;;;;;;;;;;;;;;;AAExB,MAAMC,WAAW;IACb;IACA;IACA;CACH;AAEM,MAAMD,oBAAoBE,cAAO;IACpC,MACMC,UAAU;QACZ,IAAIC,IAAAA,eAAQ,OAAM,CAACC,IAAAA,eAAQ,KAAI;YAC3B;QACJ;QAEA,IAAIC,IAAAA,2BAAoB,KAAI;YACxBC,UAAG,CAACC,IAAI,CAAC;YACT;QACJ;QAEA,IAAIC,KAAK;QACT,MAAM,EAAEC,MAAM,EAAE,GAAGC,IAAAA,iBAAU;QAC7B,MAAMC,QAAQ,MAAMC,IAAAA,UAAI,EAAC,GAAGH,OAAO,gBAAgB,CAAC;QAEpD,KAAK,MAAMI,QAAQF,MAAO;YACtB,MAAMG,eAAeC,aAAI,CAACC,QAAQ,CAACP,QAAQI;YAC3C,IAAIC,iBAAiB,qBAAqB;gBACtC;YACJ;YAEA,MAAMG,UAAUC,WAAE,CAACC,YAAY,CAACN,MAAM;gBAAEO,UAAU;YAAQ;YAC1DpB,SAASqB,OAAO,CAACC,CAAAA;gBACb,IAAIL,QAAQM,QAAQ,CAACD,UAAU;oBAC3BhB,UAAG,CAACkB,KAAK,CAAC,CAAC,YAAY,EAAEV,aAAa,WAAW,EAAEQ,QAAQ,CAAC,CAAC;oBAC7Dd,KAAK;gBACT;YACJ;QACJ;QAEA,IAAI,CAACA,IAAI;YACL,MAAM,IAAIiB,MAAM;QACpB;IACJ;AACJ"}
@@ -18,9 +18,7 @@ function _define_property(obj, key, value) {
18
18
  configurable: true,
19
19
  writable: true
20
20
  });
21
- } else {
22
- obj[key] = value;
23
- }
21
+ } else obj[key] = value;
24
22
  return obj;
25
23
  }
26
24
  class Jest {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/cli/commands/test/runners/jest.ts"],"sourcesContent":["import { runCLI } from '@jest/core';\nimport { Config } from '@jest/types';\nimport { getJestConfigCLI } from '../../../../utils';\n\nexport class Jest {\n constructor(private readonly args: Config.Argv) {}\n\n async run() {\n const jestConfig = getJestConfigCLI(this.args);\n const {\n results: { success },\n } = await runCLI(jestConfig, [process.cwd()]);\n\n if (!success) {\n // eslint-disable-next-line require-atomic-updates\n process.exitCode = 1;\n }\n }\n}\n"],"names":["Jest","run","jestConfig","getJestConfigCLI","args","results","success","runCLI","process","cwd","exitCode"],"mappings":";;;;+BAIaA;;;eAAAA;;;sBAJU;uBAEU;;;;;;;;;;;;;;AAE1B,MAAMA;IAGT,MAAMC,MAAM;QACR,MAAMC,aAAaC,IAAAA,uBAAgB,EAAC,IAAI,CAACC,IAAI;QAC7C,MAAM,EACFC,SAAS,EAAEC,OAAO,EAAE,EACvB,GAAG,MAAMC,IAAAA,YAAM,EAACL,YAAY;YAACM,QAAQC,GAAG;SAAG;QAE5C,IAAI,CAACH,SAAS;YACV,kDAAkD;YAClDE,QAAQE,QAAQ,GAAG;QACvB;IACJ;IAZA,YAAY,AAAiBN,IAAiB,CAAE;;aAAnBA,OAAAA;IAAoB;AAarD"}
1
+ {"version":3,"sources":["../../../../../src/cli/commands/test/runners/jest.ts"],"sourcesContent":["import { runCLI } from '@jest/core';\nimport { Config } from '@jest/types';\nimport { getJestConfigCLI } from '../../../../utils';\n\nexport class Jest {\n constructor(private readonly args: Config.Argv) {}\n\n async run() {\n const jestConfig = getJestConfigCLI(this.args);\n const {\n results: { success },\n } = await runCLI(jestConfig, [process.cwd()]);\n\n if (!success) {\n // eslint-disable-next-line require-atomic-updates\n process.exitCode = 1;\n }\n }\n}\n"],"names":["Jest","run","jestConfig","getJestConfigCLI","args","results","success","runCLI","process","cwd","exitCode"],"mappings":";;;;+BAIaA;;;eAAAA;;;sBAJU;uBAEU;;;;;;;;;;;;AAE1B,MAAMA;IAGT,MAAMC,MAAM;QACR,MAAMC,aAAaC,IAAAA,uBAAgB,EAAC,IAAI,CAACC,IAAI;QAC7C,MAAM,EACFC,SAAS,EAAEC,OAAO,EAAE,EACvB,GAAG,MAAMC,IAAAA,YAAM,EAACL,YAAY;YAACM,QAAQC,GAAG;SAAG;QAE5C,IAAI,CAACH,SAAS;YACV,kDAAkD;YAClDE,QAAQE,QAAQ,GAAG;QACvB;IACJ;IAZA,YAAY,AAAiBN,IAAiB,CAAE;;aAAnBA,OAAAA;IAAoB;AAarD"}