@servicetitan/startup 37.0.2 → 38.1.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 (433) 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 +22 -9
  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 +9 -0
  16. package/dist/cli/commands/command.d.ts.map +1 -0
  17. package/dist/cli/commands/command.js +35 -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.js +13 -4
  24. package/dist/cli/commands/init.js.map +1 -1
  25. package/dist/cli/commands/install.js +13 -4
  26. package/dist/cli/commands/install.js.map +1 -1
  27. package/dist/cli/commands/kendo-ui-license.js +13 -4
  28. package/dist/cli/commands/kendo-ui-license.js.map +1 -1
  29. package/dist/cli/commands/lint.js +13 -4
  30. package/dist/cli/commands/lint.js.map +1 -1
  31. package/dist/cli/commands/mfe-check.d.ts.map +1 -1
  32. package/dist/cli/commands/mfe-check.js +15 -7
  33. package/dist/cli/commands/mfe-check.js.map +1 -1
  34. package/dist/cli/commands/mfe-generate-metadata.js +13 -4
  35. package/dist/cli/commands/mfe-generate-metadata.js.map +1 -1
  36. package/dist/cli/commands/mfe-list.js +13 -4
  37. package/dist/cli/commands/mfe-list.js.map +1 -1
  38. package/dist/cli/commands/mfe-package-clean.js +13 -4
  39. package/dist/cli/commands/mfe-package-clean.js.map +1 -1
  40. package/dist/cli/commands/mfe-package-publish.js +13 -4
  41. package/dist/cli/commands/mfe-package-publish.js.map +1 -1
  42. package/dist/cli/commands/mfe-package-rollback.js +13 -4
  43. package/dist/cli/commands/mfe-package-rollback.js.map +1 -1
  44. package/dist/cli/commands/mfe-publish.js +13 -4
  45. package/dist/cli/commands/mfe-publish.js.map +1 -1
  46. package/dist/cli/commands/mfe-purge-cache.js +13 -4
  47. package/dist/cli/commands/mfe-purge-cache.js.map +1 -1
  48. package/dist/cli/commands/prepare-package.js +13 -4
  49. package/dist/cli/commands/prepare-package.js.map +1 -1
  50. package/dist/cli/commands/registry/build.d.ts +1 -1
  51. package/dist/cli/commands/registry/build.d.ts.map +1 -1
  52. package/dist/cli/commands/registry/build.js +3 -5
  53. package/dist/cli/commands/registry/build.js.map +1 -1
  54. package/dist/cli/commands/registry/bundle-package.d.ts +41 -0
  55. package/dist/cli/commands/registry/bundle-package.d.ts.map +1 -0
  56. package/dist/cli/commands/registry/bundle-package.js +54 -0
  57. package/dist/cli/commands/registry/bundle-package.js.map +1 -0
  58. package/dist/cli/commands/registry/command-registry.d.ts +42 -2
  59. package/dist/cli/commands/registry/command-registry.d.ts.map +1 -1
  60. package/dist/cli/commands/registry/command-registry.js +10 -19
  61. package/dist/cli/commands/registry/command-registry.js.map +1 -1
  62. package/dist/cli/commands/registry/start.d.ts +1 -1
  63. package/dist/cli/commands/registry/start.d.ts.map +1 -1
  64. package/dist/cli/commands/registry/start.js +3 -5
  65. package/dist/cli/commands/registry/start.js.map +1 -1
  66. package/dist/cli/commands/review/review.js +14 -7
  67. package/dist/cli/commands/review/review.js.map +1 -1
  68. package/dist/cli/commands/review/rules/no-deprecated-content-base.js +1 -3
  69. package/dist/cli/commands/review/rules/no-deprecated-content-base.js.map +1 -1
  70. package/dist/cli/commands/review/rules/no-direct-peer-dependencies.js +1 -3
  71. package/dist/cli/commands/review/rules/no-direct-peer-dependencies.js.map +1 -1
  72. package/dist/cli/commands/review/rules/no-typescript-entry-point.js +1 -3
  73. package/dist/cli/commands/review/rules/no-typescript-entry-point.js.map +1 -1
  74. package/dist/cli/commands/review/rules/prefer-open-ended-peer-dependencies.js +5 -12
  75. package/dist/cli/commands/review/rules/prefer-open-ended-peer-dependencies.js.map +1 -1
  76. package/dist/cli/commands/review/rules/require-compatible-launch-darkly-sdk.js +5 -12
  77. package/dist/cli/commands/review/rules/require-compatible-launch-darkly-sdk.js.map +1 -1
  78. package/dist/cli/commands/review/rules/require-explicit-side-effects.js +1 -3
  79. package/dist/cli/commands/review/rules/require-explicit-side-effects.js.map +1 -1
  80. package/dist/cli/commands/review/rules/require-one-collection-version.js +1 -3
  81. package/dist/cli/commands/review/rules/require-one-collection-version.js.map +1 -1
  82. package/dist/cli/commands/review/rules/require-servicetitan-scope.js +1 -3
  83. package/dist/cli/commands/review/rules/require-servicetitan-scope.js.map +1 -1
  84. package/dist/cli/commands/review/rules/require-tsconfig-references.js +1 -3
  85. package/dist/cli/commands/review/rules/require-tsconfig-references.js.map +1 -1
  86. package/dist/cli/commands/review/types.d.ts.map +1 -1
  87. package/dist/cli/commands/review/types.js.map +1 -1
  88. package/dist/cli/commands/review/utils/compare-version.js +8 -19
  89. package/dist/cli/commands/review/utils/compare-version.js.map +1 -1
  90. package/dist/cli/commands/run-task.d.ts +1 -0
  91. package/dist/cli/commands/run-task.d.ts.map +1 -1
  92. package/dist/cli/commands/run-task.js +20 -6
  93. package/dist/cli/commands/run-task.js.map +1 -1
  94. package/dist/cli/commands/start.d.ts.map +1 -1
  95. package/dist/cli/commands/start.js +28 -13
  96. package/dist/cli/commands/start.js.map +1 -1
  97. package/dist/cli/commands/stylelint.js +13 -4
  98. package/dist/cli/commands/stylelint.js.map +1 -1
  99. package/dist/cli/commands/styles-check.js +13 -4
  100. package/dist/cli/commands/styles-check.js.map +1 -1
  101. package/dist/cli/commands/test/runners/jest.js +1 -3
  102. package/dist/cli/commands/test/runners/jest.js.map +1 -1
  103. package/dist/cli/commands/test/tests.js +13 -4
  104. package/dist/cli/commands/test/tests.js.map +1 -1
  105. package/dist/cli/commands/types.d.ts +1 -6
  106. package/dist/cli/commands/types.d.ts.map +1 -1
  107. package/dist/cli/commands/types.js +2 -20
  108. package/dist/cli/commands/types.js.map +1 -1
  109. package/dist/cli/commands/upload-sourcemaps.js +17 -13
  110. package/dist/cli/commands/upload-sourcemaps.js.map +1 -1
  111. package/dist/cli/index.js +1 -0
  112. package/dist/cli/index.js.map +1 -1
  113. package/dist/cli/tasks/cli-task.d.ts +3 -0
  114. package/dist/cli/tasks/cli-task.d.ts.map +1 -1
  115. package/dist/cli/tasks/cli-task.js +41 -9
  116. package/dist/cli/tasks/cli-task.js.map +1 -1
  117. package/dist/cli/tasks/swc-compile-package/get-swc-options.d.ts +9 -1
  118. package/dist/cli/tasks/swc-compile-package/get-swc-options.d.ts.map +1 -1
  119. package/dist/cli/tasks/swc-compile-package/get-swc-options.js +18 -2
  120. package/dist/cli/tasks/swc-compile-package/get-swc-options.js.map +1 -1
  121. package/dist/cli/tasks/swc-compile-package/swc-compile-package.d.ts +3 -1
  122. package/dist/cli/tasks/swc-compile-package/swc-compile-package.d.ts.map +1 -1
  123. package/dist/cli/tasks/swc-compile-package/swc-compile-package.js +17 -3
  124. package/dist/cli/tasks/swc-compile-package/swc-compile-package.js.map +1 -1
  125. package/dist/cli/tasks/task.d.ts +2 -1
  126. package/dist/cli/tasks/task.d.ts.map +1 -1
  127. package/dist/cli/tasks/task.js +6 -3
  128. package/dist/cli/tasks/task.js.map +1 -1
  129. package/dist/cli/tasks/tsc-compile/tsc-compile.js +1 -3
  130. package/dist/cli/tasks/tsc-compile/tsc-compile.js.map +1 -1
  131. package/dist/cli/utils/cli-npm.d.ts.map +1 -1
  132. package/dist/cli/utils/cli-npm.js +8 -1
  133. package/dist/cli/utils/cli-npm.js.map +1 -1
  134. package/dist/cli/utils/cli-os.d.ts +1 -0
  135. package/dist/cli/utils/cli-os.d.ts.map +1 -1
  136. package/dist/cli/utils/cli-os.js +20 -0
  137. package/dist/cli/utils/cli-os.js.map +1 -1
  138. package/dist/cli/utils/compile.d.ts.map +1 -1
  139. package/dist/cli/utils/compile.js +7 -4
  140. package/dist/cli/utils/compile.js.map +1 -1
  141. package/dist/cli/utils/copy-files.js +1 -0
  142. package/dist/cli/utils/copy-files.js.map +1 -1
  143. package/dist/cli/utils/index.d.ts +1 -1
  144. package/dist/cli/utils/index.d.ts.map +1 -1
  145. package/dist/cli/utils/index.js +1 -1
  146. package/dist/cli/utils/index.js.map +1 -1
  147. package/dist/cli/utils/process-tree.js +2 -6
  148. package/dist/cli/utils/process-tree.js.map +1 -1
  149. package/dist/cli/utils/resolve-bundler.d.ts.map +1 -1
  150. package/dist/cli/utils/resolve-bundler.js +2 -1
  151. package/dist/cli/utils/resolve-bundler.js.map +1 -1
  152. package/dist/cli/utils/ts-config.d.ts +1 -1
  153. package/dist/cli/utils/ts-config.d.ts.map +1 -1
  154. package/dist/cli/utils/ts-config.js +1 -3
  155. package/dist/cli/utils/ts-config.js.map +1 -1
  156. package/dist/cli/utils/with-exponential-backoff.d.ts +7 -0
  157. package/dist/cli/utils/with-exponential-backoff.d.ts.map +1 -0
  158. package/dist/cli/utils/with-exponential-backoff.js +28 -0
  159. package/dist/cli/utils/with-exponential-backoff.js.map +1 -0
  160. package/dist/core/constants.d.ts +2 -0
  161. package/dist/core/constants.d.ts.map +1 -1
  162. package/dist/core/constants.js +6 -1
  163. package/dist/core/constants.js.map +1 -1
  164. package/dist/cypress/config/vite-config.d.ts.map +1 -1
  165. package/dist/cypress/config/vite-config.js +23 -3
  166. package/dist/cypress/config/vite-config.js.map +1 -1
  167. package/dist/cypress/config/webpack-config.d.ts.map +1 -1
  168. package/dist/cypress/config/webpack-config.js +5 -0
  169. package/dist/cypress/config/webpack-config.js.map +1 -1
  170. package/dist/postinstall.js +118 -0
  171. package/dist/scripts/generate-bin-wrappers.js +203 -0
  172. package/dist/storybook-config/swc.d.ts +6 -0
  173. package/dist/storybook-config/swc.d.ts.map +1 -1
  174. package/dist/storybook-config/vite-final.d.ts.map +1 -1
  175. package/dist/storybook-config/vite-final.js +32 -6
  176. package/dist/storybook-config/vite-final.js.map +1 -1
  177. package/dist/storybook-config/webpack-final.d.ts.map +1 -1
  178. package/dist/storybook-config/webpack-final.js +3 -1
  179. package/dist/storybook-config/webpack-final.js.map +1 -1
  180. package/dist/utils/exit-when-parent-exits.d.ts +6 -0
  181. package/dist/utils/exit-when-parent-exits.d.ts.map +1 -0
  182. package/dist/utils/exit-when-parent-exits.js +37 -0
  183. package/dist/utils/exit-when-parent-exits.js.map +1 -0
  184. package/dist/utils/find-up.d.ts +1 -1
  185. package/dist/utils/find-up.d.ts.map +1 -1
  186. package/dist/utils/find-up.js +2 -2
  187. package/dist/utils/find-up.js.map +1 -1
  188. package/dist/utils/get-configuration.d.ts +6 -3
  189. package/dist/utils/get-configuration.d.ts.map +1 -1
  190. package/dist/utils/get-configuration.js +10 -2
  191. package/dist/utils/get-configuration.js.map +1 -1
  192. package/dist/utils/index.d.ts +1 -0
  193. package/dist/utils/index.d.ts.map +1 -1
  194. package/dist/utils/index.js +1 -0
  195. package/dist/utils/index.js.map +1 -1
  196. package/dist/utils/log.js +1 -3
  197. package/dist/utils/log.js.map +1 -1
  198. package/dist/vite/build-shared-dependencies.d.ts.map +1 -1
  199. package/dist/vite/build-shared-dependencies.js +2 -0
  200. package/dist/vite/build-shared-dependencies.js.map +1 -1
  201. package/dist/vite/config/base-config.d.ts.map +1 -1
  202. package/dist/vite/config/base-config.js +14 -1
  203. package/dist/vite/config/base-config.js.map +1 -1
  204. package/dist/vite/config/create-filtering-logger.d.ts.map +1 -1
  205. package/dist/vite/config/create-filtering-logger.js +12 -1
  206. package/dist/vite/config/create-filtering-logger.js.map +1 -1
  207. package/dist/vite/config/create-vite-build-context.d.ts.map +1 -1
  208. package/dist/vite/config/create-vite-build-context.js +4 -1
  209. package/dist/vite/config/create-vite-build-context.js.map +1 -1
  210. package/dist/vite/config/create-vite-config.js +7 -2
  211. package/dist/vite/config/create-vite-config.js.map +1 -1
  212. package/dist/vite/config/load-config-file.js +8 -19
  213. package/dist/vite/config/load-config-file.js.map +1 -1
  214. package/dist/vite/index.d.ts +2 -0
  215. package/dist/vite/index.d.ts.map +1 -1
  216. package/dist/vite/index.html +2 -2
  217. package/dist/vite/index.js +16 -0
  218. package/dist/vite/index.js.map +1 -1
  219. package/dist/vite/plugins/chain-source-maps-plugin.js +1 -1
  220. package/dist/vite/plugins/chain-source-maps-plugin.js.map +1 -1
  221. package/dist/vite/plugins/clean-plugin.js +1 -1
  222. package/dist/vite/plugins/clean-plugin.js.map +1 -1
  223. package/dist/vite/plugins/css-injector-plugin.js +1 -1
  224. package/dist/vite/plugins/css-injector-plugin.js.map +1 -1
  225. package/dist/vite/plugins/design-system-guard-plugin.d.ts.map +1 -1
  226. package/dist/vite/plugins/design-system-guard-plugin.js +10 -5
  227. package/dist/vite/plugins/design-system-guard-plugin.js.map +1 -1
  228. package/dist/vite/plugins/dev-server-routing-plugin.d.ts +1 -1
  229. package/dist/vite/plugins/dev-server-routing-plugin.d.ts.map +1 -1
  230. package/dist/vite/plugins/dev-server-routing-plugin.js +4 -3
  231. package/dist/vite/plugins/dev-server-routing-plugin.js.map +1 -1
  232. package/dist/vite/plugins/externals-plugin.d.ts.map +1 -1
  233. package/dist/vite/plugins/externals-plugin.js +11 -5
  234. package/dist/vite/plugins/externals-plugin.js.map +1 -1
  235. package/dist/vite/plugins/html-plugin.d.ts.map +1 -1
  236. package/dist/vite/plugins/html-plugin.js +5 -3
  237. package/dist/vite/plugins/html-plugin.js.map +1 -1
  238. package/dist/vite/plugins/ignore-modules-plugin.d.ts +2 -2
  239. package/dist/vite/plugins/ignore-modules-plugin.d.ts.map +1 -1
  240. package/dist/vite/plugins/ignore-modules-plugin.js +36 -24
  241. package/dist/vite/plugins/ignore-modules-plugin.js.map +1 -1
  242. package/dist/vite/plugins/index.d.ts +3 -0
  243. package/dist/vite/plugins/index.d.ts.map +1 -1
  244. package/dist/vite/plugins/index.js +3 -0
  245. package/dist/vite/plugins/index.js.map +1 -1
  246. package/dist/vite/plugins/istanbul-plugin.d.ts.map +1 -1
  247. package/dist/vite/plugins/istanbul-plugin.js +33 -1
  248. package/dist/vite/plugins/istanbul-plugin.js.map +1 -1
  249. package/dist/vite/plugins/less-tilde-plugin.d.ts +8 -0
  250. package/dist/vite/plugins/less-tilde-plugin.d.ts.map +1 -0
  251. package/dist/vite/plugins/less-tilde-plugin.js +53 -0
  252. package/dist/vite/plugins/less-tilde-plugin.js.map +1 -0
  253. package/dist/vite/plugins/magic-comments-plugin/magic-comments-plugin.js +1 -1
  254. package/dist/vite/plugins/magic-comments-plugin/magic-comments-plugin.js.map +1 -1
  255. package/dist/vite/plugins/metadata-plugin.js +1 -1
  256. package/dist/vite/plugins/metadata-plugin.js.map +1 -1
  257. package/dist/vite/plugins/moment-locales-plugin.d.ts +1 -1
  258. package/dist/vite/plugins/moment-locales-plugin.d.ts.map +1 -1
  259. package/dist/vite/plugins/moment-locales-plugin.js +30 -14
  260. package/dist/vite/plugins/moment-locales-plugin.js.map +1 -1
  261. package/dist/vite/plugins/react-refresh-plugin/index.d.ts +2 -0
  262. package/dist/vite/plugins/react-refresh-plugin/index.d.ts.map +1 -0
  263. package/dist/vite/plugins/react-refresh-plugin/index.js +20 -0
  264. package/dist/vite/plugins/react-refresh-plugin/index.js.map +1 -0
  265. package/dist/vite/plugins/react-refresh-plugin/react-refresh-plugin.d.ts +4 -0
  266. package/dist/vite/plugins/react-refresh-plugin/react-refresh-plugin.d.ts.map +1 -0
  267. package/dist/vite/plugins/react-refresh-plugin/react-refresh-plugin.js +143 -0
  268. package/dist/vite/plugins/react-refresh-plugin/react-refresh-plugin.js.map +1 -0
  269. package/dist/vite/plugins/react-refresh-plugin/refresh-runtime.js +113 -0
  270. package/dist/vite/plugins/shared-dependencies-plugin/shared-dependencies-plugin.d.ts.map +1 -1
  271. package/dist/vite/plugins/shared-dependencies-plugin/shared-dependencies-plugin.js +14 -11
  272. package/dist/vite/plugins/shared-dependencies-plugin/shared-dependencies-plugin.js.map +1 -1
  273. package/dist/vite/plugins/style-urls-plugin.js +1 -1
  274. package/dist/vite/plugins/style-urls-plugin.js.map +1 -1
  275. package/dist/vite/plugins/virtual-modules-plugin.d.ts.map +1 -1
  276. package/dist/vite/plugins/virtual-modules-plugin.js +9 -6
  277. package/dist/vite/plugins/virtual-modules-plugin.js.map +1 -1
  278. package/dist/vite/plugins/window-externals-plugin.d.ts +22 -0
  279. package/dist/vite/plugins/window-externals-plugin.d.ts.map +1 -0
  280. package/dist/vite/plugins/window-externals-plugin.js +74 -0
  281. package/dist/vite/plugins/window-externals-plugin.js.map +1 -0
  282. package/dist/vite/types.d.ts +4 -1
  283. package/dist/vite/types.d.ts.map +1 -1
  284. package/dist/webpack/bundle-webpack.d.ts.map +1 -1
  285. package/dist/webpack/bundle-webpack.js +6 -1
  286. package/dist/webpack/bundle-webpack.js.map +1 -1
  287. package/dist/webpack/configs/optimization-config.js +4 -4
  288. package/dist/webpack/configs/optimization-config.js.map +1 -1
  289. package/dist/webpack/configs/output-config.js +1 -1
  290. package/dist/webpack/configs/output-config.js.map +1 -1
  291. package/dist/webpack/configs/plugins/ignore-plugin/ignore-plugin.js +1 -3
  292. package/dist/webpack/configs/plugins/ignore-plugin/ignore-plugin.js.map +1 -1
  293. package/dist/webpack/loaders/expose-loader/__tests__/__mocks__/configuration.expose-loader.js +13 -0
  294. package/dist/webpack/loaders/expose-loader/__tests__/__mocks__/index.js +1 -0
  295. package/dist/webpack/utils/index.d.ts +1 -0
  296. package/dist/webpack/utils/index.d.ts.map +1 -1
  297. package/dist/webpack/utils/index.js +1 -0
  298. package/dist/webpack/utils/index.js.map +1 -1
  299. package/dist/webpack/utils/normalize-proxy-config.d.ts +6 -0
  300. package/dist/webpack/utils/normalize-proxy-config.d.ts.map +1 -0
  301. package/dist/webpack/utils/normalize-proxy-config.js +52 -0
  302. package/dist/webpack/utils/normalize-proxy-config.js.map +1 -0
  303. package/package.json +25 -22
  304. package/src/cli/commands/__tests__/build.test.ts +33 -19
  305. package/src/cli/commands/__tests__/bundle-package.test.ts +65 -0
  306. package/src/cli/commands/__tests__/bundle-vite.test.ts +1 -0
  307. package/src/cli/commands/__tests__/command.test.ts +42 -0
  308. package/src/cli/commands/__tests__/mfe-check.test.ts +26 -5
  309. package/src/cli/commands/__tests__/run-task.test.ts +20 -1
  310. package/src/cli/commands/__tests__/start.test.ts +35 -15
  311. package/src/cli/commands/build.ts +6 -5
  312. package/src/cli/commands/bundle-package.ts +20 -0
  313. package/src/cli/commands/command.ts +14 -0
  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/start.ts +3 -2
  319. package/src/cli/commands/review/types.ts +1 -3
  320. package/src/cli/commands/run-task.ts +8 -2
  321. package/src/cli/commands/start.ts +9 -5
  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-npm.test.ts +33 -0
  335. package/src/cli/utils/__tests__/cli-os.test.ts +86 -3
  336. package/src/cli/utils/__tests__/compile.test.ts +37 -2
  337. package/src/cli/utils/__tests__/copy-files.test.ts +1 -1
  338. package/src/cli/utils/__tests__/with-exponential-backoff.test.ts +119 -0
  339. package/src/cli/utils/cli-npm.ts +19 -4
  340. package/src/cli/utils/cli-os.ts +14 -0
  341. package/src/cli/utils/compile.ts +8 -1
  342. package/src/cli/utils/copy-files.ts +1 -1
  343. package/src/cli/utils/index.ts +1 -1
  344. package/src/cli/utils/resolve-bundler.ts +2 -1
  345. package/src/cli/utils/ts-config.ts +1 -1
  346. package/src/cli/utils/with-exponential-backoff.ts +28 -0
  347. package/src/core/constants.ts +2 -0
  348. package/src/cypress/config/__tests__/vite-config.test.ts +21 -11
  349. package/src/cypress/config/__tests__/webpack-config.test.ts +17 -0
  350. package/src/cypress/config/vite-config.ts +18 -3
  351. package/src/cypress/config/webpack-config.ts +2 -0
  352. package/src/storybook-config/__tests__/vite-final.test.ts +71 -11
  353. package/src/storybook-config/__tests__/webpack-final.test.ts +30 -6
  354. package/src/storybook-config/vite-final.ts +23 -2
  355. package/src/storybook-config/webpack-final.ts +10 -2
  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 +16 -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 +9 -0
  368. package/src/vite/config/__tests__/create-vite-build-context.test.ts +25 -0
  369. package/src/vite/config/__tests__/create-vite-config.test.ts +6 -3
  370. package/src/vite/config/base-config.ts +18 -2
  371. package/src/vite/config/create-filtering-logger.ts +13 -2
  372. package/src/vite/config/create-vite-build-context.ts +1 -0
  373. package/src/vite/config/create-vite-config.ts +6 -3
  374. package/src/vite/index.html +2 -2
  375. package/src/vite/index.ts +2 -0
  376. package/src/vite/plugins/__tests__/chain-source-maps-plugin.test.ts +1 -1
  377. package/src/vite/plugins/__tests__/clean-plugin.test.ts +1 -1
  378. package/src/vite/plugins/__tests__/css-injector-plugin.test.ts +1 -1
  379. package/src/vite/plugins/__tests__/design-system-guard-plugin.test.ts +15 -3
  380. package/src/vite/plugins/__tests__/dev-server-routing-plugin.test.ts +121 -99
  381. package/src/vite/plugins/__tests__/externals-plugin.test.ts +24 -3
  382. package/src/vite/plugins/__tests__/html-plugin.test.ts +10 -3
  383. package/src/vite/plugins/__tests__/html-template.test.ts +10 -2
  384. package/src/vite/plugins/__tests__/ignore-modules-plugin.test.ts +30 -6
  385. package/src/vite/plugins/__tests__/istanbul-plugin.test.ts +42 -1
  386. package/src/vite/plugins/__tests__/less-tilde-plugin.test.ts +91 -0
  387. package/src/vite/plugins/__tests__/metadata-plugin.test.ts +1 -1
  388. package/src/vite/plugins/__tests__/moment-locales-plugin.test.ts +35 -25
  389. package/src/vite/plugins/__tests__/style-urls-plugin.test.ts +1 -1
  390. package/src/vite/plugins/__tests__/virtual-modules-plugin.test.ts +20 -9
  391. package/src/vite/plugins/__tests__/window-externals-plugin.test.ts +128 -0
  392. package/src/vite/plugins/chain-source-maps-plugin.ts +1 -1
  393. package/src/vite/plugins/clean-plugin.ts +1 -1
  394. package/src/vite/plugins/css-injector-plugin.ts +1 -1
  395. package/src/vite/plugins/design-system-guard-plugin.ts +11 -8
  396. package/src/vite/plugins/dev-server-routing-plugin.ts +4 -4
  397. package/src/vite/plugins/externals-plugin.ts +15 -6
  398. package/src/vite/plugins/html-plugin.ts +4 -2
  399. package/src/vite/plugins/ignore-modules-plugin.ts +32 -23
  400. package/src/vite/plugins/index.ts +3 -0
  401. package/src/vite/plugins/istanbul-plugin.ts +28 -1
  402. package/src/vite/plugins/less-tilde-plugin.ts +64 -0
  403. package/src/vite/plugins/magic-comments-plugin/magic-comments-plugin.ts +1 -1
  404. package/src/vite/plugins/metadata-plugin.ts +1 -1
  405. package/src/vite/plugins/moment-locales-plugin.ts +24 -14
  406. package/src/vite/plugins/react-refresh-plugin/README.md +165 -0
  407. package/src/vite/plugins/react-refresh-plugin/__tests__/react-refresh-plugin.test.ts +366 -0
  408. package/src/vite/plugins/react-refresh-plugin/__tests__/refresh-runtime.test.ts +193 -0
  409. package/src/vite/plugins/react-refresh-plugin/index.ts +1 -0
  410. package/src/vite/plugins/react-refresh-plugin/react-refresh-plugin.ts +144 -0
  411. package/src/vite/plugins/react-refresh-plugin/refresh-runtime.js +113 -0
  412. package/src/vite/plugins/shared-dependencies-plugin/__tests__/shared-dependencies-plugin.test.ts +21 -16
  413. package/src/vite/plugins/shared-dependencies-plugin/shared-dependencies-plugin.ts +13 -12
  414. package/src/vite/plugins/style-urls-plugin.ts +1 -1
  415. package/src/vite/plugins/virtual-modules-plugin.ts +8 -7
  416. package/src/vite/plugins/window-externals-plugin.ts +94 -0
  417. package/src/vite/types.ts +4 -1
  418. package/src/webpack/__tests__/bundle-webpack.test.ts +32 -0
  419. package/src/webpack/__tests__/create-webpack-config-web-component.test.ts +17 -5
  420. package/src/webpack/__tests__/create-webpack-config.test.ts +10 -6
  421. package/src/webpack/bundle-webpack.ts +7 -1
  422. package/src/webpack/configs/optimization-config.ts +3 -3
  423. package/src/webpack/configs/output-config.ts +1 -1
  424. package/src/webpack/utils/__tests__/normalize-proxy-config.test.ts +121 -0
  425. package/src/webpack/utils/index.ts +1 -0
  426. package/src/webpack/utils/normalize-proxy-config.ts +59 -0
  427. package/tsconfig/types.d.ts +10 -0
  428. package/dist/cli/utils/get-bundle-command.d.ts +0 -3
  429. package/dist/cli/utils/get-bundle-command.d.ts.map +0 -1
  430. package/dist/cli/utils/get-bundle-command.js +0 -16
  431. package/dist/cli/utils/get-bundle-command.js.map +0 -1
  432. package/src/cli/utils/__tests__/get-bundle-command.test.ts +0 -23
  433. package/src/cli/utils/get-bundle-command.ts +0 -5
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/commands/upload-sourcemaps.ts"],"sourcesContent":["import { isCI } from '@servicetitan/install';\nimport { execSync } from 'child_process';\nimport path from 'path';\nimport { getTsConfig, isWebComponent, log, logErrors, readJson } from '../../utils';\nimport { TSConfig } from '../utils';\nimport type { entry } from './registry/upload-sourcemaps';\nimport { Command } from './types';\n\ninterface PackageJson {\n name: string;\n}\n\nexport class UploadSourcemaps extends Command<typeof entry> {\n #outDir?: string;\n #packageJson?: PackageJson;\n\n @logErrors\n // eslint-disable-next-line @typescript-eslint/require-await\n async execute() {\n this.checkLocation();\n if (!this.checkArgs()) {\n return;\n }\n\n const bundleDir = this.getBundleDir();\n const options = this.getOptions().join(' ');\n this.run(`npx --yes @datadog/datadog-ci@3 sourcemaps upload ${bundleDir} ${options}`);\n }\n\n private checkArgs() {\n if (!process.env.DATADOG_API_KEY) {\n const message = 'DATADOG_API_KEY environment variable is not set';\n if (!isCI()) {\n throw new Error(message);\n }\n log.warning(`${message}; skipping sourcemaps`);\n return false;\n }\n\n return true;\n }\n\n private checkLocation() {\n if (!isWebComponent()) {\n throw new Error(`this command must be run inside a web-component directory`);\n }\n }\n\n private getBundleDir() {\n return path.relative('.', path.join(this.getOutDir(), 'bundle'));\n }\n\n private getMinifiedPrefixPath() {\n const { name } = this.getPackageJson();\n const baseUrl = `https://unpkg.servicetitan.com/${name}@${this.args.releaseVersion}`;\n return `${baseUrl}/${this.getBundleDir().replace(/\\\\/g, '/')}`;\n }\n\n private getOptions() {\n const { dry, releaseVersion } = this.args;\n const service = this.getPackageJson().name.replace(/^[^/]+\\//, '');\n return [\n ...[dry && `--dry-run`],\n `--service=${service}`,\n `--release-version=${releaseVersion}`,\n `--minified-path-prefix=${this.getMinifiedPrefixPath()}`,\n `--project-path=${this.getProjectPath()}`,\n ].filter(item => !!item) as string[];\n }\n\n private getOutDir() {\n if (!this.#outDir) {\n const outDir = new TSConfig(getTsConfig()).getValue<string>('compilerOptions.outDir');\n if (!outDir) {\n throw new Error('compilerOptions.outDir is not configured');\n }\n\n this.#outDir = outDir;\n }\n return this.#outDir;\n }\n\n private getPackageJson() {\n if (!this.#packageJson) {\n this.#packageJson = readJson<PackageJson>('package.json');\n }\n return this.#packageJson;\n }\n\n private getProjectPath() {\n const name = readJson(path.join(this.getOutDir(), 'metadata.json')).name;\n return `${name}/`;\n }\n\n private run(command: string) {\n log.info(`Running: ${command}`);\n return execSync(command, { stdio: 'inherit' });\n }\n}\n"],"names":["UploadSourcemaps","Command","execute","checkLocation","checkArgs","bundleDir","getBundleDir","options","getOptions","join","run","process","env","DATADOG_API_KEY","message","isCI","Error","log","warning","isWebComponent","path","relative","getOutDir","getMinifiedPrefixPath","name","getPackageJson","baseUrl","args","releaseVersion","replace","dry","service","getProjectPath","filter","item","outDir","TSConfig","getTsConfig","getValue","readJson","command","info","execSync","stdio"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/cli/commands/upload-sourcemaps.ts"],"sourcesContent":["import { isCI } from '@servicetitan/install';\nimport { execSync } from 'child_process';\nimport path from 'path';\nimport { getTsConfig, isWebComponent, log, logErrors, readJson } from '../../utils';\nimport { TSConfig } from '../utils';\nimport type { entry } from './registry/upload-sourcemaps';\nimport { Command } from './types';\n\ninterface PackageJson {\n name: string;\n}\n\nexport class UploadSourcemaps extends Command<typeof entry> {\n #outDir?: string;\n #packageJson?: PackageJson;\n\n @logErrors\n // eslint-disable-next-line @typescript-eslint/require-await\n async execute() {\n this.checkLocation();\n if (!this.checkArgs()) {\n return;\n }\n\n const bundleDir = this.getBundleDir();\n const options = this.getOptions().join(' ');\n this.run(`npx --yes @datadog/datadog-ci@3 sourcemaps upload ${bundleDir} ${options}`);\n }\n\n private checkArgs() {\n if (!process.env.DATADOG_API_KEY) {\n const message = 'DATADOG_API_KEY environment variable is not set';\n if (!isCI()) {\n throw new Error(message);\n }\n log.warning(`${message}; skipping sourcemaps`);\n return false;\n }\n\n return true;\n }\n\n private checkLocation() {\n if (!isWebComponent()) {\n throw new Error(`this command must be run inside a web-component directory`);\n }\n }\n\n private getBundleDir() {\n return path.relative('.', path.join(this.getOutDir(), 'bundle'));\n }\n\n private getMinifiedPrefixPath() {\n const { name } = this.getPackageJson();\n const baseUrl = `https://unpkg.servicetitan.com/${name}@${this.args.releaseVersion}`;\n return `${baseUrl}/${this.getBundleDir().replace(/\\\\/g, '/')}`;\n }\n\n private getOptions() {\n const { dry, releaseVersion } = this.args;\n const service = this.getPackageJson().name.replace(/^[^/]+\\//, '');\n return [\n ...[dry && `--dry-run`],\n `--service=${service}`,\n `--release-version=${releaseVersion}`,\n `--minified-path-prefix=${this.getMinifiedPrefixPath()}`,\n `--project-path=${this.getProjectPath()}`,\n ].filter(item => !!item) as string[];\n }\n\n private getOutDir() {\n if (!this.#outDir) {\n const outDir = new TSConfig(getTsConfig()).getValue<string>('compilerOptions.outDir');\n if (!outDir) {\n throw new Error('compilerOptions.outDir is not configured');\n }\n\n this.#outDir = outDir;\n }\n return this.#outDir;\n }\n\n private getPackageJson() {\n if (!this.#packageJson) {\n this.#packageJson = readJson<PackageJson>('package.json');\n }\n return this.#packageJson;\n }\n\n private getProjectPath() {\n const name = readJson(path.join(this.getOutDir(), 'metadata.json')).name;\n return `${name}/`;\n }\n\n private run(command: string) {\n log.info(`Running: ${command}`);\n return execSync(command, { stdio: 'inherit' });\n }\n}\n"],"names":["UploadSourcemaps","Command","execute","checkLocation","checkArgs","bundleDir","getBundleDir","options","getOptions","join","run","process","env","DATADOG_API_KEY","message","isCI","Error","log","warning","isWebComponent","path","relative","getOutDir","getMinifiedPrefixPath","name","getPackageJson","baseUrl","args","releaseVersion","replace","dry","service","getProjectPath","filter","item","outDir","TSConfig","getTsConfig","getValue","readJson","command","info","execSync","stdio"],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -63,6 +63,7 @@ async function handleCommand(name, argv) {
63
63
  ...argv,
64
64
  _: argv._.slice(1)
65
65
  });
66
+ command.watchForParentExit(name);
66
67
  command.execute().catch(()=>{
67
68
  process.exit(1);
68
69
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cli/index.ts"],"sourcesContent":["import chalk from 'chalk';\nimport execa from 'execa';\nimport kebabCase from 'lodash.kebabcase';\nimport path from 'path';\nimport yargs from 'yargs';\nimport { hideBin } from 'yargs/helpers';\nimport { getStartupVersion } from '../core';\nimport { CommandName, log } from '../utils';\nimport { commandRegistry } from './commands/registry';\nimport type { CommandOptions } from './commands/types';\nimport { checkStartupLocation, getExitCode, setNodeOptions } from './utils';\n\nconst yargsInstance = yargs(hideBin(process.argv));\n\nObject.values(CommandName)\n .reduce((y, name) => addCommand(name, y), yargsInstance)\n .usage('Usage: startup <command> [options]')\n .epilogue(\n chalk.bold.cyan(`startup cli v${getStartupVersion()}\\n`) +\n `Run ${chalk.bold.cyan('startup <command> --help')} to see command options.\\n` +\n `For detailed documentation, see ${chalk.bold.cyan('https://docs.st.dev/docs/frontend/uikit/startup')}.\\n`\n )\n .demandCommand(1, '')\n .strictCommands()\n .updateStrings({\n 'Unknown command: %s': {\n one: chalk.bold.red('Unknown command: %s'),\n other: chalk.bold.red('Unknown command: %s'),\n } as any,\n })\n .version()\n .wrap(Math.min(100, yargsInstance.terminalWidth()))\n .help()\n .parse();\n\nfunction addCommand(name: CommandName, y: typeof yargs) {\n const entry = commandRegistry[name];\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const { description, options: { _, ...options } = {} } = entry;\n const nameWithArgs = name + (_?.description ? ` ${_.description}` : '');\n const groupedOptions = Object.entries(options).reduce((result, [key, value]) => {\n result[kebabCase(key)] = { group: 'Command Options:', ...value };\n return result;\n }, {} as CommandOptions);\n const handler = (argv: any) => handleCommand(name, argv);\n if (description) {\n y.command(nameWithArgs, description, groupedOptions, handler);\n } else {\n y.command(nameWithArgs, false, groupedOptions, handler);\n }\n return y;\n}\n\nasync function handleCommand(name: CommandName, argv: any) {\n const entry = commandRegistry[name];\n\n checkNodeVersion();\n checkStartupLocation(name, entry);\n\n if (setNodeOptions(name, entry)) {\n log.debug('run', `Running ${name} in child process with amended NODE_OPTIONS`);\n execa(process.argv[0], process.argv.slice(1), { stdio: 'inherit' }).catch(reason => {\n process.exit(getExitCode(reason));\n });\n return;\n }\n\n const CommandClass = await entry.load();\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const command = new CommandClass({ ...argv, _: argv._.slice(1) });\n command.execute().catch(() => {\n process.exit(1);\n });\n}\n\nfunction checkNodeVersion() {\n const nodeVersion = Number(process.versions.node.split('.')[0]);\n if (nodeVersion % 2 === 0 || process.env.SKIP_NODE_VERSION_CHECK) {\n return;\n }\n\n const { engines } = require(path.join(__dirname, '../../package.json'));\n log.error(\n `error: node v${nodeVersion} detected, only even-numbered LTS versions ${engines.node} are supported`\n );\n log.text('See https://nodejs.org/en/download for LTS versions');\n process.exit(1);\n}\n"],"names":["yargsInstance","yargs","hideBin","process","argv","Object","values","CommandName","reduce","y","name","addCommand","usage","epilogue","chalk","bold","cyan","getStartupVersion","demandCommand","strictCommands","updateStrings","one","red","other","version","wrap","Math","min","terminalWidth","help","parse","entry","commandRegistry","description","options","_","nameWithArgs","groupedOptions","entries","result","key","value","kebabCase","group","handler","handleCommand","command","checkNodeVersion","checkStartupLocation","setNodeOptions","log","debug","execa","slice","stdio","catch","reason","exit","getExitCode","CommandClass","load","execute","nodeVersion","Number","versions","node","split","env","SKIP_NODE_VERSION_CHECK","engines","require","path","join","__dirname","error","text"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/cli/index.ts"],"sourcesContent":["import chalk from 'chalk';\nimport execa from 'execa';\nimport kebabCase from 'lodash.kebabcase';\nimport path from 'path';\nimport yargs from 'yargs';\nimport { hideBin } from 'yargs/helpers';\nimport { getStartupVersion } from '../core';\nimport { CommandName, log } from '../utils';\nimport { commandRegistry } from './commands/registry';\nimport type { CommandOptions } from './commands/types';\nimport { checkStartupLocation, getExitCode, setNodeOptions } from './utils';\n\nconst yargsInstance = yargs(hideBin(process.argv));\n\nObject.values(CommandName)\n .reduce((y, name) => addCommand(name, y), yargsInstance)\n .usage('Usage: startup <command> [options]')\n .epilogue(\n chalk.bold.cyan(`startup cli v${getStartupVersion()}\\n`) +\n `Run ${chalk.bold.cyan('startup <command> --help')} to see command options.\\n` +\n `For detailed documentation, see ${chalk.bold.cyan('https://docs.st.dev/docs/frontend/uikit/startup')}.\\n`\n )\n .demandCommand(1, '')\n .strictCommands()\n .updateStrings({\n 'Unknown command: %s': {\n one: chalk.bold.red('Unknown command: %s'),\n other: chalk.bold.red('Unknown command: %s'),\n } as any,\n })\n .version()\n .wrap(Math.min(100, yargsInstance.terminalWidth()))\n .help()\n .parse();\n\nfunction addCommand(name: CommandName, y: typeof yargs) {\n const entry = commandRegistry[name];\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const { description, options: { _, ...options } = {} } = entry;\n const nameWithArgs = name + (_?.description ? ` ${_.description}` : '');\n const groupedOptions = Object.entries(options).reduce((result, [key, value]) => {\n result[kebabCase(key)] = { group: 'Command Options:', ...value };\n return result;\n }, {} as CommandOptions);\n const handler = (argv: any) => handleCommand(name, argv);\n if (description) {\n y.command(nameWithArgs, description, groupedOptions, handler);\n } else {\n y.command(nameWithArgs, false, groupedOptions, handler);\n }\n return y;\n}\n\nasync function handleCommand(name: CommandName, argv: any) {\n const entry = commandRegistry[name];\n\n checkNodeVersion();\n checkStartupLocation(name, entry);\n\n if (setNodeOptions(name, entry)) {\n log.debug('run', `Running ${name} in child process with amended NODE_OPTIONS`);\n execa(process.argv[0], process.argv.slice(1), { stdio: 'inherit' }).catch(reason => {\n process.exit(getExitCode(reason));\n });\n return;\n }\n\n const CommandClass = await entry.load();\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const command = new CommandClass({ ...argv, _: argv._.slice(1) });\n\n command.watchForParentExit(name);\n\n command.execute().catch(() => {\n process.exit(1);\n });\n}\n\nfunction checkNodeVersion() {\n const nodeVersion = Number(process.versions.node.split('.')[0]);\n if (nodeVersion % 2 === 0 || process.env.SKIP_NODE_VERSION_CHECK) {\n return;\n }\n\n const { engines } = require(path.join(__dirname, '../../package.json'));\n log.error(\n `error: node v${nodeVersion} detected, only even-numbered LTS versions ${engines.node} are supported`\n );\n log.text('See https://nodejs.org/en/download for LTS versions');\n process.exit(1);\n}\n"],"names":["yargsInstance","yargs","hideBin","process","argv","Object","values","CommandName","reduce","y","name","addCommand","usage","epilogue","chalk","bold","cyan","getStartupVersion","demandCommand","strictCommands","updateStrings","one","red","other","version","wrap","Math","min","terminalWidth","help","parse","entry","commandRegistry","description","options","_","nameWithArgs","groupedOptions","entries","result","key","value","kebabCase","group","handler","handleCommand","command","checkNodeVersion","checkStartupLocation","setNodeOptions","log","debug","execa","slice","stdio","catch","reason","exit","getExitCode","CommandClass","load","watchForParentExit","execute","nodeVersion","Number","versions","node","split","env","SKIP_NODE_VERSION_CHECK","engines","require","path","join","__dirname","error","text"],"mappings":"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"}
@@ -10,6 +10,9 @@ export interface CliTaskParameters extends TaskParameters {
10
10
  export declare abstract class CliTask extends Task {
11
11
  private readonly indicators;
12
12
  constructor({ indicators, ...rest }: CliTaskParameters);
13
+ watchForParentExit(): void;
13
14
  protected runChildProcess(command: string, args: string[]): Promise<void>;
15
+ private forwardSignalToChild;
16
+ private killOnParentExit;
14
17
  }
15
18
  //# sourceMappingURL=cli-task.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-task.d.ts","sourceRoot":"","sources":["../../../src/cli/tasks/cli-task.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAE9C,MAAM,WAAW,UAAU;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACrD,UAAU,EAAE,UAAU,CAAC;CAC1B;AAED,8BAAsB,OAAQ,SAAQ,IAAI;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;gBAE5B,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,EAAE,iBAAiB;cAKtC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;CAmClE"}
1
+ {"version":3,"file":"cli-task.d.ts","sourceRoot":"","sources":["../../../src/cli/tasks/cli-task.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAE9C,MAAM,WAAW,UAAU;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACrD,UAAU,EAAE,UAAU,CAAC;CAC1B;AAED,8BAAsB,OAAQ,SAAQ,IAAI;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;gBAE5B,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,EAAE,iBAAiB;IAKtD,kBAAkB,IAAI,IAAI;cAIV,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;IA6C/D,OAAO,CAAC,oBAAoB;IAkB5B,OAAO,CAAC,gBAAgB;CAQ3B"}
@@ -9,7 +9,8 @@ Object.defineProperty(exports, "CliTask", {
9
9
  }
10
10
  });
11
11
  const _execa = /*#__PURE__*/ _interop_require_default(require("execa"));
12
- const _utils = require("../utils");
12
+ const _utils = require("../../utils");
13
+ const _utils1 = require("../utils");
13
14
  const _task = require("./task");
14
15
  function _define_property(obj, key, value) {
15
16
  if (key in obj) {
@@ -19,9 +20,7 @@ function _define_property(obj, key, value) {
19
20
  configurable: true,
20
21
  writable: true
21
22
  });
22
- } else {
23
- obj[key] = value;
24
- }
23
+ } else obj[key] = value;
25
24
  return obj;
26
25
  }
27
26
  function _interop_require_default(obj) {
@@ -30,13 +29,20 @@ function _interop_require_default(obj) {
30
29
  };
31
30
  }
32
31
  class CliTask extends _task.Task {
32
+ watchForParentExit() {
33
+ // No-op: this task exits automatically when its child process ends
34
+ }
33
35
  async runChildProcess(command, args) {
34
36
  const childProcess = (0, _execa.default)(command, args, this.watch ? {
35
37
  stdio: [
36
38
  'inherit',
37
39
  'pipe',
38
40
  'inherit'
39
- ]
41
+ ],
42
+ /*
43
+ * Put the child in its own process group so we can take down bin
44
+ * wrappers that fork children of their own. Not needed on Windows.
45
+ */ detached: process.platform !== 'win32'
40
46
  } : {
41
47
  stdio: 'inherit'
42
48
  });
@@ -48,18 +54,44 @@ class CliTask extends _task.Task {
48
54
  }
49
55
  return;
50
56
  }
51
- (0, _utils.pipeStdout)(childProcess);
52
- (0, _utils.watchStdout)(childProcess, this.indicators.watchStart, ()=>{
57
+ (0, _utils1.pipeStdout)(childProcess);
58
+ (0, _utils1.watchStdout)(childProcess, this.indicators.watchStart, ()=>{
53
59
  this.taskTimer.start();
54
60
  });
55
- (0, _utils.watchStdout)(childProcess, this.indicators.end, ()=>{
61
+ (0, _utils1.watchStdout)(childProcess, this.indicators.end, ()=>{
56
62
  this.logCompletionResults(this.taskTimer.end());
57
63
  });
58
- (0, _utils.watchStdout)(childProcess, this.indicators.watchEnd, ()=>{
64
+ (0, _utils1.watchStdout)(childProcess, this.indicators.watchEnd, ()=>{
59
65
  this.logCompletionResults(this.taskTimer.end());
60
66
  });
67
+ this.killOnParentExit(childProcess);
68
+ // Forward CTRL-C when signalled, rather than wait for killOnParentExit's slower poll.
69
+ this.forwardSignalToChild(childProcess);
61
70
  await childProcess;
62
71
  }
72
+ forwardSignalToChild(childProcess) {
73
+ if (process.platform === 'win32') {
74
+ return;
75
+ }
76
+ const forward = (signal)=>{
77
+ if (childProcess.pid) {
78
+ _utils.log.info(`${this.name} forwarding signal to child process tree`);
79
+ (0, _utils1.killProcessTree)(childProcess.pid, signal);
80
+ }
81
+ // Re-raise to get Node's default behavior
82
+ process.kill(process.pid, signal);
83
+ };
84
+ process.once('SIGINT', ()=>forward('SIGINT'));
85
+ process.once('SIGTERM', ()=>forward('SIGTERM'));
86
+ }
87
+ killOnParentExit(childProcess) {
88
+ (0, _utils.exitWhenParentExits)(this.name, ()=>{
89
+ if (childProcess.pid) {
90
+ _utils.log.info(`${this.name} killing child process tree`);
91
+ (0, _utils1.killProcessTree)(childProcess.pid);
92
+ }
93
+ });
94
+ }
63
95
  constructor({ indicators, ...rest }){
64
96
  super(rest), _define_property(this, "indicators", void 0);
65
97
  this.indicators = indicators;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/tasks/cli-task.ts"],"sourcesContent":["import execa from 'execa';\nimport { pipeStdout, watchStdout } from '../utils';\nimport { Task, TaskParameters } from './task';\n\nexport interface Indicators {\n end: string;\n watchStart: string;\n watchEnd?: string;\n}\n\nexport interface CliTaskParameters extends TaskParameters {\n indicators: Indicators;\n}\n\nexport abstract class CliTask extends Task {\n private readonly indicators: Indicators;\n\n constructor({ indicators, ...rest }: CliTaskParameters) {\n super(rest);\n this.indicators = indicators;\n }\n\n protected async runChildProcess(command: string, args: string[]) {\n const childProcess = execa(\n command,\n args,\n this.watch\n ? {\n stdio: ['inherit', 'pipe', 'inherit'],\n }\n : {\n stdio: 'inherit',\n }\n );\n\n if (!this.watch) {\n try {\n await childProcess;\n } finally {\n this.logCompletionResults(this.taskTimer.end());\n }\n return;\n }\n\n pipeStdout(childProcess);\n watchStdout(childProcess, this.indicators.watchStart, () => {\n this.taskTimer.start();\n });\n watchStdout(childProcess, this.indicators.end, () => {\n this.logCompletionResults(this.taskTimer.end());\n });\n watchStdout(childProcess, this.indicators.watchEnd, () => {\n this.logCompletionResults(this.taskTimer.end());\n });\n\n await childProcess;\n }\n}\n"],"names":["CliTask","Task","runChildProcess","command","args","childProcess","execa","watch","stdio","logCompletionResults","taskTimer","end","pipeStdout","watchStdout","indicators","watchStart","start","watchEnd","rest"],"mappings":";;;;+BAcsBA;;;eAAAA;;;8DAdJ;uBACsB;sBACH;;;;;;;;;;;;;;;;;;;AAY9B,MAAeA,gBAAgBC,UAAI;IAQtC,MAAgBC,gBAAgBC,OAAe,EAAEC,IAAc,EAAE;QAC7D,MAAMC,eAAeC,IAAAA,cAAK,EACtBH,SACAC,MACA,IAAI,CAACG,KAAK,GACJ;YACIC,OAAO;gBAAC;gBAAW;gBAAQ;aAAU;QACzC,IACA;YACIA,OAAO;QACX;QAGV,IAAI,CAAC,IAAI,CAACD,KAAK,EAAE;YACb,IAAI;gBACA,MAAMF;YACV,SAAU;gBACN,IAAI,CAACI,oBAAoB,CAAC,IAAI,CAACC,SAAS,CAACC,GAAG;YAChD;YACA;QACJ;QAEAC,IAAAA,iBAAU,EAACP;QACXQ,IAAAA,kBAAW,EAACR,cAAc,IAAI,CAACS,UAAU,CAACC,UAAU,EAAE;YAClD,IAAI,CAACL,SAAS,CAACM,KAAK;QACxB;QACAH,IAAAA,kBAAW,EAACR,cAAc,IAAI,CAACS,UAAU,CAACH,GAAG,EAAE;YAC3C,IAAI,CAACF,oBAAoB,CAAC,IAAI,CAACC,SAAS,CAACC,GAAG;QAChD;QACAE,IAAAA,kBAAW,EAACR,cAAc,IAAI,CAACS,UAAU,CAACG,QAAQ,EAAE;YAChD,IAAI,CAACR,oBAAoB,CAAC,IAAI,CAACC,SAAS,CAACC,GAAG;QAChD;QAEA,MAAMN;IACV;IAvCA,YAAY,EAAES,UAAU,EAAE,GAAGI,MAAyB,CAAE;QACpD,KAAK,CAACA,OAHV,uBAAiBJ,cAAjB,KAAA;QAII,IAAI,CAACA,UAAU,GAAGA;IACtB;AAqCJ"}
1
+ {"version":3,"sources":["../../../src/cli/tasks/cli-task.ts"],"sourcesContent":["import execa, { ExecaChildProcess } from 'execa';\nimport { exitWhenParentExits, log } from '../../utils';\nimport { killProcessTree, pipeStdout, watchStdout } from '../utils';\nimport { Task, TaskParameters } from './task';\n\nexport interface Indicators {\n end: string;\n watchStart: string;\n watchEnd?: string;\n}\n\nexport interface CliTaskParameters extends TaskParameters {\n indicators: Indicators;\n}\n\nexport abstract class CliTask extends Task {\n private readonly indicators: Indicators;\n\n constructor({ indicators, ...rest }: CliTaskParameters) {\n super(rest);\n this.indicators = indicators;\n }\n\n watchForParentExit(): void {\n // No-op: this task exits automatically when its child process ends\n }\n\n protected async runChildProcess(command: string, args: string[]) {\n const childProcess = execa(\n command,\n args,\n this.watch\n ? {\n stdio: ['inherit', 'pipe', 'inherit'],\n /*\n * Put the child in its own process group so we can take down bin\n * wrappers that fork children of their own. Not needed on Windows.\n */\n detached: process.platform !== 'win32',\n }\n : {\n stdio: 'inherit',\n }\n );\n\n if (!this.watch) {\n try {\n await childProcess;\n } finally {\n this.logCompletionResults(this.taskTimer.end());\n }\n return;\n }\n\n pipeStdout(childProcess);\n watchStdout(childProcess, this.indicators.watchStart, () => {\n this.taskTimer.start();\n });\n watchStdout(childProcess, this.indicators.end, () => {\n this.logCompletionResults(this.taskTimer.end());\n });\n watchStdout(childProcess, this.indicators.watchEnd, () => {\n this.logCompletionResults(this.taskTimer.end());\n });\n\n this.killOnParentExit(childProcess);\n // Forward CTRL-C when signalled, rather than wait for killOnParentExit's slower poll.\n this.forwardSignalToChild(childProcess);\n\n await childProcess;\n }\n\n private forwardSignalToChild(childProcess: ExecaChildProcess) {\n if (process.platform === 'win32') {\n return;\n }\n\n const forward = (signal: NodeJS.Signals) => {\n if (childProcess.pid) {\n log.info(`${this.name} forwarding signal to child process tree`);\n killProcessTree(childProcess.pid, signal);\n }\n // Re-raise to get Node's default behavior\n process.kill(process.pid, signal);\n };\n\n process.once('SIGINT', () => forward('SIGINT'));\n process.once('SIGTERM', () => forward('SIGTERM'));\n }\n\n private killOnParentExit(childProcess: ExecaChildProcess) {\n exitWhenParentExits(this.name, () => {\n if (childProcess.pid) {\n log.info(`${this.name} killing child process tree`);\n killProcessTree(childProcess.pid);\n }\n });\n }\n}\n"],"names":["CliTask","Task","watchForParentExit","runChildProcess","command","args","childProcess","execa","watch","stdio","detached","process","platform","logCompletionResults","taskTimer","end","pipeStdout","watchStdout","indicators","watchStart","start","watchEnd","killOnParentExit","forwardSignalToChild","forward","signal","pid","log","info","name","killProcessTree","kill","once","exitWhenParentExits","rest"],"mappings":";;;;+BAesBA;;;eAAAA;;;8DAfmB;uBACA;wBACgB;sBACpB;;;;;;;;;;;;;;;;;AAY9B,MAAeA,gBAAgBC,UAAI;IAQtCC,qBAA2B;IACvB,mEAAmE;IACvE;IAEA,MAAgBC,gBAAgBC,OAAe,EAAEC,IAAc,EAAE;QAC7D,MAAMC,eAAeC,IAAAA,cAAK,EACtBH,SACAC,MACA,IAAI,CAACG,KAAK,GACJ;YACIC,OAAO;gBAAC;gBAAW;gBAAQ;aAAU;YACrC;;;uBAGC,GACDC,UAAUC,QAAQC,QAAQ,KAAK;QACnC,IACA;YACIH,OAAO;QACX;QAGV,IAAI,CAAC,IAAI,CAACD,KAAK,EAAE;YACb,IAAI;gBACA,MAAMF;YACV,SAAU;gBACN,IAAI,CAACO,oBAAoB,CAAC,IAAI,CAACC,SAAS,CAACC,GAAG;YAChD;YACA;QACJ;QAEAC,IAAAA,kBAAU,EAACV;QACXW,IAAAA,mBAAW,EAACX,cAAc,IAAI,CAACY,UAAU,CAACC,UAAU,EAAE;YAClD,IAAI,CAACL,SAAS,CAACM,KAAK;QACxB;QACAH,IAAAA,mBAAW,EAACX,cAAc,IAAI,CAACY,UAAU,CAACH,GAAG,EAAE;YAC3C,IAAI,CAACF,oBAAoB,CAAC,IAAI,CAACC,SAAS,CAACC,GAAG;QAChD;QACAE,IAAAA,mBAAW,EAACX,cAAc,IAAI,CAACY,UAAU,CAACG,QAAQ,EAAE;YAChD,IAAI,CAACR,oBAAoB,CAAC,IAAI,CAACC,SAAS,CAACC,GAAG;QAChD;QAEA,IAAI,CAACO,gBAAgB,CAAChB;QACtB,sFAAsF;QACtF,IAAI,CAACiB,oBAAoB,CAACjB;QAE1B,MAAMA;IACV;IAEQiB,qBAAqBjB,YAA+B,EAAE;QAC1D,IAAIK,QAAQC,QAAQ,KAAK,SAAS;YAC9B;QACJ;QAEA,MAAMY,UAAU,CAACC;YACb,IAAInB,aAAaoB,GAAG,EAAE;gBAClBC,UAAG,CAACC,IAAI,CAAC,GAAG,IAAI,CAACC,IAAI,CAAC,wCAAwC,CAAC;gBAC/DC,IAAAA,uBAAe,EAACxB,aAAaoB,GAAG,EAAED;YACtC;YACA,0CAA0C;YAC1Cd,QAAQoB,IAAI,CAACpB,QAAQe,GAAG,EAAED;QAC9B;QAEAd,QAAQqB,IAAI,CAAC,UAAU,IAAMR,QAAQ;QACrCb,QAAQqB,IAAI,CAAC,WAAW,IAAMR,QAAQ;IAC1C;IAEQF,iBAAiBhB,YAA+B,EAAE;QACtD2B,IAAAA,0BAAmB,EAAC,IAAI,CAACJ,IAAI,EAAE;YAC3B,IAAIvB,aAAaoB,GAAG,EAAE;gBAClBC,UAAG,CAACC,IAAI,CAAC,GAAG,IAAI,CAACC,IAAI,CAAC,2BAA2B,CAAC;gBAClDC,IAAAA,uBAAe,EAACxB,aAAaoB,GAAG;YACpC;QACJ;IACJ;IA/EA,YAAY,EAAER,UAAU,EAAE,GAAGgB,MAAyB,CAAE;QACpD,KAAK,CAACA,OAHV,uBAAiBhB,cAAjB,KAAA;QAII,IAAI,CAACA,UAAU,GAAGA;IACtB;AA6EJ"}
@@ -1,5 +1,7 @@
1
1
  import { TSConfig } from '../../utils';
2
- export declare function getSwcOptions(tsConfig: TSConfig): {
2
+ export declare function getSwcOptions(tsConfig: TSConfig, { reactRefresh }?: {
3
+ reactRefresh?: boolean | undefined;
4
+ }): {
3
5
  jsc: {
4
6
  parser: {
5
7
  syntax: "typescript";
@@ -7,11 +9,17 @@ export declare function getSwcOptions(tsConfig: TSConfig): {
7
9
  decorators: true;
8
10
  };
9
11
  target: import("@swc/types").JscTarget | undefined;
12
+ baseUrl: string | undefined;
13
+ paths: {
14
+ [from: string]: string[];
15
+ } | undefined;
10
16
  transform: {
11
17
  legacyDecorator: boolean | undefined;
12
18
  decoratorMetadata: boolean | undefined;
13
19
  react: {
14
20
  runtime: "automatic";
21
+ refresh: boolean;
22
+ development: boolean;
15
23
  };
16
24
  };
17
25
  };
@@ -1 +1 @@
1
- {"version":3,"file":"get-swc-options.d.ts","sourceRoot":"","sources":["../../../../src/cli/tasks/swc-compile-package/get-swc-options.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAIvC,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ;;;;;;;;;;;;;;;;;;;;EA4B/C"}
1
+ {"version":3,"file":"get-swc-options.d.ts","sourceRoot":"","sources":["../../../../src/cli/tasks/swc-compile-package/get-swc-options.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAIvC,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,YAAoB,EAAE;;CAAK;;;;;;;;;;;;;;;;;;;;;;;;;;EAwC9E"}
@@ -8,13 +8,25 @@ Object.defineProperty(exports, "getSwcOptions", {
8
8
  return getSwcOptions;
9
9
  }
10
10
  });
11
- function getSwcOptions(tsConfig) {
11
+ const _path = /*#__PURE__*/ _interop_require_default(require("path"));
12
+ function _interop_require_default(obj) {
13
+ return obj && obj.__esModule ? obj : {
14
+ default: obj
15
+ };
16
+ }
17
+ function getSwcOptions(tsConfig, { reactRefresh = false } = {}) {
12
18
  var _tsConfig_getValue;
13
19
  const target = tsConfig.getValue('compilerOptions.target');
14
20
  const legacyDecorator = tsConfig.getValue('compilerOptions.experimentalDecorators');
15
21
  const decoratorMetadata = tsConfig.getValue('compilerOptions.emitDecoratorMetadata');
16
22
  const sourceMaps = tsConfig.getValue('compilerOptions.sourceMap');
17
23
  const module = (_tsConfig_getValue = tsConfig.getValue('compilerOptions.module')) === null || _tsConfig_getValue === void 0 ? void 0 : _tsConfig_getValue.toLowerCase();
24
+ const paths = tsConfig.getValue('compilerOptions.paths');
25
+ /*
26
+ * `compilerOptions.baseUrl` is deprecated in TypeScript, so it's not read here.
27
+ * TS resolves `paths` relative to the tsconfig directory; SWC requires an
28
+ * absolute `jsc.baseUrl` whenever `jsc.paths` is set.
29
+ */ const baseUrl = paths !== undefined ? _path.default.resolve(_path.default.dirname(tsConfig.configPath)) : undefined;
18
30
  return {
19
31
  jsc: {
20
32
  parser: {
@@ -23,11 +35,15 @@ function getSwcOptions(tsConfig) {
23
35
  decorators: true
24
36
  },
25
37
  target,
38
+ baseUrl,
39
+ paths,
26
40
  transform: {
27
41
  legacyDecorator,
28
42
  decoratorMetadata,
29
43
  react: {
30
- runtime: 'automatic'
44
+ runtime: 'automatic',
45
+ refresh: reactRefresh,
46
+ development: reactRefresh
31
47
  }
32
48
  }
33
49
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/tasks/swc-compile-package/get-swc-options.ts"],"sourcesContent":["import type { SwcOptions } from '@swc/cli';\nimport { TSConfig } from '../../utils';\n\ntype JscConfig = NonNullable<SwcOptions['jsc']>;\n\nexport function getSwcOptions(tsConfig: TSConfig) {\n const target = tsConfig.getValue<JscConfig['target']>('compilerOptions.target');\n const legacyDecorator = tsConfig.getValue<boolean>('compilerOptions.experimentalDecorators');\n const decoratorMetadata = tsConfig.getValue<boolean>('compilerOptions.emitDecoratorMetadata');\n const sourceMaps = tsConfig.getValue<SwcOptions['sourceMaps']>('compilerOptions.sourceMap');\n const module = tsConfig.getValue<string>('compilerOptions.module')?.toLowerCase();\n\n return {\n jsc: {\n parser: {\n syntax: 'typescript',\n tsx: true,\n decorators: true,\n },\n target,\n transform: {\n legacyDecorator,\n decoratorMetadata,\n react: {\n runtime: 'automatic',\n },\n },\n },\n sourceMaps,\n module: {\n type: module === 'commonjs' || module === 'nodenext' ? 'commonjs' : 'es6',\n },\n } satisfies SwcOptions;\n}\n"],"names":["getSwcOptions","tsConfig","target","getValue","legacyDecorator","decoratorMetadata","sourceMaps","module","toLowerCase","jsc","parser","syntax","tsx","decorators","transform","react","runtime","type"],"mappings":";;;;+BAKgBA;;;eAAAA;;;AAAT,SAASA,cAAcC,QAAkB;QAK7BA;IAJf,MAAMC,SAASD,SAASE,QAAQ,CAAsB;IACtD,MAAMC,kBAAkBH,SAASE,QAAQ,CAAU;IACnD,MAAME,oBAAoBJ,SAASE,QAAQ,CAAU;IACrD,MAAMG,aAAaL,SAASE,QAAQ,CAA2B;IAC/D,MAAMI,UAASN,qBAAAA,SAASE,QAAQ,CAAS,uCAA1BF,yCAAAA,mBAAqDO,WAAW;IAE/E,OAAO;QACHC,KAAK;YACDC,QAAQ;gBACJC,QAAQ;gBACRC,KAAK;gBACLC,YAAY;YAChB;YACAX;YACAY,WAAW;gBACPV;gBACAC;gBACAU,OAAO;oBACHC,SAAS;gBACb;YACJ;QACJ;QACAV;QACAC,QAAQ;YACJU,MAAMV,WAAW,cAAcA,WAAW,aAAa,aAAa;QACxE;IACJ;AACJ"}
1
+ {"version":3,"sources":["../../../../src/cli/tasks/swc-compile-package/get-swc-options.ts"],"sourcesContent":["import type { SwcOptions } from '@swc/cli';\nimport path from 'path';\nimport { TSConfig } from '../../utils';\n\ntype JscConfig = NonNullable<SwcOptions['jsc']>;\n\nexport function getSwcOptions(tsConfig: TSConfig, { reactRefresh = false } = {}) {\n const target = tsConfig.getValue<JscConfig['target']>('compilerOptions.target');\n const legacyDecorator = tsConfig.getValue<boolean>('compilerOptions.experimentalDecorators');\n const decoratorMetadata = tsConfig.getValue<boolean>('compilerOptions.emitDecoratorMetadata');\n const sourceMaps = tsConfig.getValue<SwcOptions['sourceMaps']>('compilerOptions.sourceMap');\n const module = tsConfig.getValue<string>('compilerOptions.module')?.toLowerCase();\n const paths = tsConfig.getValue<JscConfig['paths']>('compilerOptions.paths');\n /*\n * `compilerOptions.baseUrl` is deprecated in TypeScript, so it's not read here.\n * TS resolves `paths` relative to the tsconfig directory; SWC requires an\n * absolute `jsc.baseUrl` whenever `jsc.paths` is set.\n */\n const baseUrl =\n paths !== undefined ? path.resolve(path.dirname(tsConfig.configPath)) : undefined;\n\n return {\n jsc: {\n parser: {\n syntax: 'typescript',\n tsx: true,\n decorators: true,\n },\n target,\n baseUrl,\n paths,\n transform: {\n legacyDecorator,\n decoratorMetadata,\n react: {\n runtime: 'automatic',\n refresh: reactRefresh,\n development: reactRefresh,\n },\n },\n },\n sourceMaps,\n module: {\n type: module === 'commonjs' || module === 'nodenext' ? 'commonjs' : 'es6',\n },\n } satisfies SwcOptions;\n}\n"],"names":["getSwcOptions","tsConfig","reactRefresh","target","getValue","legacyDecorator","decoratorMetadata","sourceMaps","module","toLowerCase","paths","baseUrl","undefined","path","resolve","dirname","configPath","jsc","parser","syntax","tsx","decorators","transform","react","runtime","refresh","development","type"],"mappings":";;;;+BAMgBA;;;eAAAA;;;6DALC;;;;;;AAKV,SAASA,cAAcC,QAAkB,EAAE,EAAEC,eAAe,KAAK,EAAE,GAAG,CAAC,CAAC;QAK5DD;IAJf,MAAME,SAASF,SAASG,QAAQ,CAAsB;IACtD,MAAMC,kBAAkBJ,SAASG,QAAQ,CAAU;IACnD,MAAME,oBAAoBL,SAASG,QAAQ,CAAU;IACrD,MAAMG,aAAaN,SAASG,QAAQ,CAA2B;IAC/D,MAAMI,UAASP,qBAAAA,SAASG,QAAQ,CAAS,uCAA1BH,yCAAAA,mBAAqDQ,WAAW;IAC/E,MAAMC,QAAQT,SAASG,QAAQ,CAAqB;IACpD;;;;KAIC,GACD,MAAMO,UACFD,UAAUE,YAAYC,aAAI,CAACC,OAAO,CAACD,aAAI,CAACE,OAAO,CAACd,SAASe,UAAU,KAAKJ;IAE5E,OAAO;QACHK,KAAK;YACDC,QAAQ;gBACJC,QAAQ;gBACRC,KAAK;gBACLC,YAAY;YAChB;YACAlB;YACAQ;YACAD;YACAY,WAAW;gBACPjB;gBACAC;gBACAiB,OAAO;oBACHC,SAAS;oBACTC,SAASvB;oBACTwB,aAAaxB;gBACjB;YACJ;QACJ;QACAK;QACAC,QAAQ;YACJmB,MAAMnB,WAAW,cAAcA,WAAW,aAAa,aAAa;QACxE;IACJ;AACJ"}
@@ -1,9 +1,11 @@
1
1
  import { Task } from '../task';
2
2
  interface Args {
3
+ reactRefresh?: boolean;
3
4
  watch?: boolean;
4
5
  }
5
6
  export declare class SwcCompilePackage extends Task {
6
- constructor({ watch }: Args);
7
+ private readonly reactRefresh;
8
+ constructor({ reactRefresh, watch }: Args);
7
9
  execute(): Promise<void>;
8
10
  private getConfig;
9
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"swc-compile-package.d.ts","sourceRoot":"","sources":["../../../../src/cli/tasks/swc-compile-package/swc-compile-package.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG/B,UAAU,IAAI;IACV,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAMD,qBAAa,iBAAkB,SAAQ,IAAI;gBAC3B,EAAE,KAAK,EAAE,EAAE,IAAI;IAIrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkC9B,OAAO,CAAC,SAAS;CAapB"}
1
+ {"version":3,"file":"swc-compile-package.d.ts","sourceRoot":"","sources":["../../../../src/cli/tasks/swc-compile-package/swc-compile-package.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG/B,UAAU,IAAI;IACV,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAMD,qBAAa,iBAAkB,SAAQ,IAAI;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;gBAEvC,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,IAAI;IAKnC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkC9B,OAAO,CAAC,SAAS;CAapB"}
@@ -14,6 +14,17 @@ const _utils = require("../../../utils");
14
14
  const _utils1 = require("../../utils");
15
15
  const _task = require("../task");
16
16
  const _getswcoptions = require("./get-swc-options");
17
+ function _define_property(obj, key, value) {
18
+ if (key in obj) {
19
+ Object.defineProperty(obj, key, {
20
+ value: value,
21
+ enumerable: true,
22
+ configurable: true,
23
+ writable: true
24
+ });
25
+ } else obj[key] = value;
26
+ return obj;
27
+ }
17
28
  function _interop_require_default(obj) {
18
29
  return obj && obj.__esModule ? obj : {
19
30
  default: obj
@@ -61,18 +72,21 @@ class SwcCompilePackage extends _task.Task {
61
72
  cliOptions: getCliOptions(tsConfig, {
62
73
  watch: this.watch
63
74
  }),
64
- swcOptions: (0, _getswcoptions.getSwcOptions)(tsConfig)
75
+ swcOptions: (0, _getswcoptions.getSwcOptions)(tsConfig, {
76
+ reactRefresh: this.reactRefresh
77
+ })
65
78
  }, packageConfig, {
66
79
  arrayMerge: overwriteMerge,
67
80
  clone: false
68
81
  });
69
82
  }
70
- constructor({ watch }){
83
+ constructor({ reactRefresh, watch }){
71
84
  super({
72
85
  name: 'swc-compile-package',
73
86
  global: false,
74
87
  watch
75
- });
88
+ }), _define_property(this, "reactRefresh", void 0);
89
+ this.reactRefresh = reactRefresh;
76
90
  }
77
91
  }
78
92
  function getCliOptions(tsConfig, { watch }) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/tasks/swc-compile-package/swc-compile-package.ts"],"sourcesContent":["import type { Options } from '@swc/cli';\nimport { swcDir } from '@swc/cli';\nimport deepmerge from 'deepmerge';\nimport { getFolders, getSwcCompilePackageConfiguration, getTsConfig, log } from '../../../utils';\nimport { TSConfig } from '../../utils';\nimport { Task } from '../task';\nimport { getSwcOptions } from './get-swc-options';\n\ninterface Args {\n watch?: boolean;\n}\n\nfunction overwriteMerge(_destinationArray: unknown[], sourceArray: unknown[]) {\n return sourceArray;\n}\n\nexport class SwcCompilePackage extends Task {\n constructor({ watch }: Args) {\n super({ name: 'swc-compile-package', global: false, watch });\n }\n\n async execute(): Promise<void> {\n const config = this.getConfig();\n\n /* istanbul ignore next: debug only */\n log.debug('swc-compile-package:config', () => JSON.stringify(config, null, 2));\n\n let callbackFired = false;\n\n return new Promise((resolve, reject) => {\n swcDir({\n ...config,\n callbacks: {\n onSuccess: (e: { duration: number }) => {\n callbackFired = true;\n this.logCompletionResults(this.taskTimer.add(e.duration));\n },\n onFail: (e: { duration: number; reasons: Map<string, string> }) => {\n callbackFired = true;\n log.text([...e.reasons.values()][0]);\n this.logCompletionResults(this.taskTimer.add(e.duration));\n if (!this.watch) {\n reject(new Error('Compilation failed'));\n }\n },\n },\n }).then(() => {\n if (!callbackFired) {\n this.logCompletionResults(this.taskTimer.add(0));\n }\n resolve();\n });\n });\n }\n\n private getConfig(): Options {\n const packageConfig = getSwcCompilePackageConfiguration();\n const tsConfig = new TSConfig(getTsConfig());\n\n return deepmerge(\n {\n cliOptions: getCliOptions(tsConfig, { watch: this.watch }),\n swcOptions: getSwcOptions(tsConfig),\n },\n packageConfig,\n { arrayMerge: overwriteMerge, clone: false }\n );\n }\n}\n\nfunction getCliOptions(tsConfig: TSConfig, { watch }: { watch?: boolean }): Options['cliOptions'] {\n const { source, destination } = getFolders();\n const typedefsPattern = '**/*.d.ts';\n const ignore = tsConfig.getValue('exclude', [\n typedefsPattern,\n '**/__tests__/*',\n '**/*.test.*',\n '**/__mocks__/*',\n '**/*.stories.*',\n ]);\n\n if (!ignore.includes(typedefsPattern)) {\n ignore.push(typedefsPattern);\n }\n\n return {\n extensions: ['.ts', '.tsx'],\n filenames: [source],\n ignore,\n outDir: destination,\n stripLeadingPaths: true,\n watch,\n };\n}\n"],"names":["SwcCompilePackage","overwriteMerge","_destinationArray","sourceArray","Task","execute","config","getConfig","log","debug","JSON","stringify","callbackFired","Promise","resolve","reject","swcDir","callbacks","onSuccess","e","logCompletionResults","taskTimer","add","duration","onFail","text","reasons","values","watch","Error","then","packageConfig","getSwcCompilePackageConfiguration","tsConfig","TSConfig","getTsConfig","deepmerge","cliOptions","getCliOptions","swcOptions","getSwcOptions","arrayMerge","clone","name","global","source","destination","getFolders","typedefsPattern","ignore","getValue","includes","push","extensions","filenames","outDir","stripLeadingPaths"],"mappings":";;;;+BAgBaA;;;eAAAA;;;qBAfU;kEACD;uBAC0D;wBACvD;sBACJ;+BACS;;;;;;AAM9B,SAASC,eAAeC,iBAA4B,EAAEC,WAAsB;IACxE,OAAOA;AACX;AAEO,MAAMH,0BAA0BI,UAAI;IAKvC,MAAMC,UAAyB;QAC3B,MAAMC,SAAS,IAAI,CAACC,SAAS;QAE7B,oCAAoC,GACpCC,UAAG,CAACC,KAAK,CAAC,8BAA8B,IAAMC,KAAKC,SAAS,CAACL,QAAQ,MAAM;QAE3E,IAAIM,gBAAgB;QAEpB,OAAO,IAAIC,QAAQ,CAACC,SAASC;YACzBC,IAAAA,WAAM,EAAC;gBACH,GAAGV,MAAM;gBACTW,WAAW;oBACPC,WAAW,CAACC;wBACRP,gBAAgB;wBAChB,IAAI,CAACQ,oBAAoB,CAAC,IAAI,CAACC,SAAS,CAACC,GAAG,CAACH,EAAEI,QAAQ;oBAC3D;oBACAC,QAAQ,CAACL;wBACLP,gBAAgB;wBAChBJ,UAAG,CAACiB,IAAI,CAAC;+BAAIN,EAAEO,OAAO,CAACC,MAAM;yBAAG,CAAC,EAAE;wBACnC,IAAI,CAACP,oBAAoB,CAAC,IAAI,CAACC,SAAS,CAACC,GAAG,CAACH,EAAEI,QAAQ;wBACvD,IAAI,CAAC,IAAI,CAACK,KAAK,EAAE;4BACbb,OAAO,IAAIc,MAAM;wBACrB;oBACJ;gBACJ;YACJ,GAAGC,IAAI,CAAC;gBACJ,IAAI,CAAClB,eAAe;oBAChB,IAAI,CAACQ,oBAAoB,CAAC,IAAI,CAACC,SAAS,CAACC,GAAG,CAAC;gBACjD;gBACAR;YACJ;QACJ;IACJ;IAEQP,YAAqB;QACzB,MAAMwB,gBAAgBC,IAAAA,wCAAiC;QACvD,MAAMC,WAAW,IAAIC,gBAAQ,CAACC,IAAAA,kBAAW;QAEzC,OAAOC,IAAAA,kBAAS,EACZ;YACIC,YAAYC,cAAcL,UAAU;gBAAEL,OAAO,IAAI,CAACA,KAAK;YAAC;YACxDW,YAAYC,IAAAA,4BAAa,EAACP;QAC9B,GACAF,eACA;YAAEU,YAAYxC;YAAgByC,OAAO;QAAM;IAEnD;IAlDA,YAAY,EAAEd,KAAK,EAAQ,CAAE;QACzB,KAAK,CAAC;YAAEe,MAAM;YAAuBC,QAAQ;YAAOhB;QAAM;IAC9D;AAiDJ;AAEA,SAASU,cAAcL,QAAkB,EAAE,EAAEL,KAAK,EAAuB;IACrE,MAAM,EAAEiB,MAAM,EAAEC,WAAW,EAAE,GAAGC,IAAAA,iBAAU;IAC1C,MAAMC,kBAAkB;IACxB,MAAMC,SAAShB,SAASiB,QAAQ,CAAC,WAAW;QACxCF;QACA;QACA;QACA;QACA;KACH;IAED,IAAI,CAACC,OAAOE,QAAQ,CAACH,kBAAkB;QACnCC,OAAOG,IAAI,CAACJ;IAChB;IAEA,OAAO;QACHK,YAAY;YAAC;YAAO;SAAO;QAC3BC,WAAW;YAACT;SAAO;QACnBI;QACAM,QAAQT;QACRU,mBAAmB;QACnB5B;IACJ;AACJ"}
1
+ {"version":3,"sources":["../../../../src/cli/tasks/swc-compile-package/swc-compile-package.ts"],"sourcesContent":["import type { Options } from '@swc/cli';\nimport { swcDir } from '@swc/cli';\nimport deepmerge from 'deepmerge';\nimport { getFolders, getSwcCompilePackageConfiguration, getTsConfig, log } from '../../../utils';\nimport { TSConfig } from '../../utils';\nimport { Task } from '../task';\nimport { getSwcOptions } from './get-swc-options';\n\ninterface Args {\n reactRefresh?: boolean;\n watch?: boolean;\n}\n\nfunction overwriteMerge(_destinationArray: unknown[], sourceArray: unknown[]) {\n return sourceArray;\n}\n\nexport class SwcCompilePackage extends Task {\n private readonly reactRefresh: boolean | undefined;\n\n constructor({ reactRefresh, watch }: Args) {\n super({ name: 'swc-compile-package', global: false, watch });\n this.reactRefresh = reactRefresh;\n }\n\n async execute(): Promise<void> {\n const config = this.getConfig();\n\n /* istanbul ignore next: debug only */\n log.debug('swc-compile-package:config', () => JSON.stringify(config, null, 2));\n\n let callbackFired = false;\n\n return new Promise((resolve, reject) => {\n swcDir({\n ...config,\n callbacks: {\n onSuccess: (e: { duration: number }) => {\n callbackFired = true;\n this.logCompletionResults(this.taskTimer.add(e.duration));\n },\n onFail: (e: { duration: number; reasons: Map<string, string> }) => {\n callbackFired = true;\n log.text([...e.reasons.values()][0]);\n this.logCompletionResults(this.taskTimer.add(e.duration));\n if (!this.watch) {\n reject(new Error('Compilation failed'));\n }\n },\n },\n }).then(() => {\n if (!callbackFired) {\n this.logCompletionResults(this.taskTimer.add(0));\n }\n resolve();\n });\n });\n }\n\n private getConfig(): Options {\n const packageConfig = getSwcCompilePackageConfiguration();\n const tsConfig = new TSConfig(getTsConfig());\n\n return deepmerge(\n {\n cliOptions: getCliOptions(tsConfig, { watch: this.watch }),\n swcOptions: getSwcOptions(tsConfig, { reactRefresh: this.reactRefresh }),\n },\n packageConfig,\n { arrayMerge: overwriteMerge, clone: false }\n );\n }\n}\n\nfunction getCliOptions(tsConfig: TSConfig, { watch }: { watch?: boolean }): Options['cliOptions'] {\n const { source, destination } = getFolders();\n const typedefsPattern = '**/*.d.ts';\n const ignore = tsConfig.getValue('exclude', [\n typedefsPattern,\n '**/__tests__/*',\n '**/*.test.*',\n '**/__mocks__/*',\n '**/*.stories.*',\n ]);\n\n if (!ignore.includes(typedefsPattern)) {\n ignore.push(typedefsPattern);\n }\n\n return {\n extensions: ['.ts', '.tsx'],\n filenames: [source],\n ignore,\n outDir: destination,\n stripLeadingPaths: true,\n watch,\n };\n}\n"],"names":["SwcCompilePackage","overwriteMerge","_destinationArray","sourceArray","Task","execute","config","getConfig","log","debug","JSON","stringify","callbackFired","Promise","resolve","reject","swcDir","callbacks","onSuccess","e","logCompletionResults","taskTimer","add","duration","onFail","text","reasons","values","watch","Error","then","packageConfig","getSwcCompilePackageConfiguration","tsConfig","TSConfig","getTsConfig","deepmerge","cliOptions","getCliOptions","swcOptions","getSwcOptions","reactRefresh","arrayMerge","clone","name","global","source","destination","getFolders","typedefsPattern","ignore","getValue","includes","push","extensions","filenames","outDir","stripLeadingPaths"],"mappings":";;;;+BAiBaA;;;eAAAA;;;qBAhBU;kEACD;uBAC0D;wBACvD;sBACJ;+BACS;;;;;;;;;;;;;;;;;AAO9B,SAASC,eAAeC,iBAA4B,EAAEC,WAAsB;IACxE,OAAOA;AACX;AAEO,MAAMH,0BAA0BI,UAAI;IAQvC,MAAMC,UAAyB;QAC3B,MAAMC,SAAS,IAAI,CAACC,SAAS;QAE7B,oCAAoC,GACpCC,UAAG,CAACC,KAAK,CAAC,8BAA8B,IAAMC,KAAKC,SAAS,CAACL,QAAQ,MAAM;QAE3E,IAAIM,gBAAgB;QAEpB,OAAO,IAAIC,QAAQ,CAACC,SAASC;YACzBC,IAAAA,WAAM,EAAC;gBACH,GAAGV,MAAM;gBACTW,WAAW;oBACPC,WAAW,CAACC;wBACRP,gBAAgB;wBAChB,IAAI,CAACQ,oBAAoB,CAAC,IAAI,CAACC,SAAS,CAACC,GAAG,CAACH,EAAEI,QAAQ;oBAC3D;oBACAC,QAAQ,CAACL;wBACLP,gBAAgB;wBAChBJ,UAAG,CAACiB,IAAI,CAAC;+BAAIN,EAAEO,OAAO,CAACC,MAAM;yBAAG,CAAC,EAAE;wBACnC,IAAI,CAACP,oBAAoB,CAAC,IAAI,CAACC,SAAS,CAACC,GAAG,CAACH,EAAEI,QAAQ;wBACvD,IAAI,CAAC,IAAI,CAACK,KAAK,EAAE;4BACbb,OAAO,IAAIc,MAAM;wBACrB;oBACJ;gBACJ;YACJ,GAAGC,IAAI,CAAC;gBACJ,IAAI,CAAClB,eAAe;oBAChB,IAAI,CAACQ,oBAAoB,CAAC,IAAI,CAACC,SAAS,CAACC,GAAG,CAAC;gBACjD;gBACAR;YACJ;QACJ;IACJ;IAEQP,YAAqB;QACzB,MAAMwB,gBAAgBC,IAAAA,wCAAiC;QACvD,MAAMC,WAAW,IAAIC,gBAAQ,CAACC,IAAAA,kBAAW;QAEzC,OAAOC,IAAAA,kBAAS,EACZ;YACIC,YAAYC,cAAcL,UAAU;gBAAEL,OAAO,IAAI,CAACA,KAAK;YAAC;YACxDW,YAAYC,IAAAA,4BAAa,EAACP,UAAU;gBAAEQ,cAAc,IAAI,CAACA,YAAY;YAAC;QAC1E,GACAV,eACA;YAAEW,YAAYzC;YAAgB0C,OAAO;QAAM;IAEnD;IAnDA,YAAY,EAAEF,YAAY,EAAEb,KAAK,EAAQ,CAAE;QACvC,KAAK,CAAC;YAAEgB,MAAM;YAAuBC,QAAQ;YAAOjB;QAAM,IAH9D,uBAAiBa,gBAAjB,KAAA;QAII,IAAI,CAACA,YAAY,GAAGA;IACxB;AAiDJ;AAEA,SAASH,cAAcL,QAAkB,EAAE,EAAEL,KAAK,EAAuB;IACrE,MAAM,EAAEkB,MAAM,EAAEC,WAAW,EAAE,GAAGC,IAAAA,iBAAU;IAC1C,MAAMC,kBAAkB;IACxB,MAAMC,SAASjB,SAASkB,QAAQ,CAAC,WAAW;QACxCF;QACA;QACA;QACA;QACA;KACH;IAED,IAAI,CAACC,OAAOE,QAAQ,CAACH,kBAAkB;QACnCC,OAAOG,IAAI,CAACJ;IAChB;IAEA,OAAO;QACHK,YAAY;YAAC;YAAO;SAAO;QAC3BC,WAAW;YAACT;SAAO;QACnBI;QACAM,QAAQT;QACRU,mBAAmB;QACnB7B;IACJ;AACJ"}
@@ -26,9 +26,10 @@ export interface TaskParameters {
26
26
  export declare abstract class Task {
27
27
  protected readonly watch: boolean;
28
28
  protected readonly taskTimer: TaskTimer;
29
- private readonly name;
29
+ protected readonly name: string;
30
30
  private readonly global;
31
31
  constructor({ name, watch, global }: TaskParameters);
32
+ watchForParentExit(): void;
32
33
  protected logCompletionResults({ measure, counter, }: {
33
34
  measure: PerformanceMeasure;
34
35
  counter: number;
@@ -1 +1 @@
1
- {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../../src/cli/tasks/task.ts"],"names":[],"mappings":"AAEA,cAAM,SAAS;IAWC,OAAO,CAAC,QAAQ,CAAC,IAAI;IAVjC,OAAO,CAAC,OAAO,CAAK;IAEpB,OAAO,KAAK,eAAe,GAE1B;IAED,OAAO,KAAK,eAAe,GAE1B;gBAE4B,IAAI,EAAE,MAAM;IAIzC,KAAK;IAQL,GAAG;;;;IASH,MAAM;;;;IAeN,GAAG,CAAC,QAAQ,EAAE,MAAM;;;;CAOvB;AAED,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACnB;AAED,8BAAsB,IAAI;IACtB,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IAClC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IACxC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;gBAErB,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,cAAc;IAQnD,SAAS,CAAC,oBAAoB,CAAC,EAC3B,OAAO,EACP,OAAO,GACV,EAAE;QACC,OAAO,EAAE,kBAAkB,CAAC;QAC5B,OAAO,EAAE,MAAM,CAAC;KACnB;IAOD,OAAO,CAAC,gBAAgB;IAUxB,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CACpC"}
1
+ {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../../src/cli/tasks/task.ts"],"names":[],"mappings":"AAEA,cAAM,SAAS;IAWC,OAAO,CAAC,QAAQ,CAAC,IAAI;IAVjC,OAAO,CAAC,OAAO,CAAK;IAEpB,OAAO,KAAK,eAAe,GAE1B;IAED,OAAO,KAAK,eAAe,GAE1B;gBAE4B,IAAI,EAAE,MAAM;IAIzC,KAAK;IAQL,GAAG;;;;IASH,MAAM;;;;IAeN,GAAG,CAAC,QAAQ,EAAE,MAAM;;;;CAOvB;AAED,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACnB;AAED,8BAAsB,IAAI;IACtB,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IAClC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IACxC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;gBAErB,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,cAAc;IAQnD,kBAAkB,IAAI,IAAI;IAM1B,SAAS,CAAC,oBAAoB,CAAC,EAC3B,OAAO,EACP,OAAO,GACV,EAAE;QACC,OAAO,EAAE,kBAAkB,CAAC;QAC5B,OAAO,EAAE,MAAM,CAAC;KACnB;IAOD,OAAO,CAAC,gBAAgB;IAUxB,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CACpC"}
@@ -17,9 +17,7 @@ function _define_property(obj, key, value) {
17
17
  configurable: true,
18
18
  writable: true
19
19
  });
20
- } else {
21
- obj[key] = value;
22
- }
20
+ } else obj[key] = value;
23
21
  return obj;
24
22
  }
25
23
  class TaskTimer {
@@ -79,6 +77,11 @@ class TaskTimer {
79
77
  }
80
78
  }
81
79
  class Task {
80
+ watchForParentExit() {
81
+ if (this.watch) {
82
+ (0, _utils.exitWhenParentExits)(this.name);
83
+ }
84
+ }
82
85
  logCompletionResults({ measure, counter }) {
83
86
  const enumerator = counter === 0 ? 'Initial ' : 'Subsequent ';
84
87
  _utils.log.info(`${this.watch ? enumerator : ''}${this.name} task completed in ${(0, _utils.formatDuration)(measure.duration)}`);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/tasks/task.ts"],"sourcesContent":["import { formatDuration, log, readJsonSafe } from '../../utils';\n\nclass TaskTimer {\n private counter = 0;\n\n private get currentMarkName() {\n return `${this.name}[${this.counter}]`;\n }\n\n private get currentMarkList() {\n return globalThis.performance.getEntriesByName(this.currentMarkName, 'mark');\n }\n\n constructor(private readonly name: string) {\n this.start();\n }\n\n start() {\n if (this.currentMarkList.length > 0) {\n this.cancel();\n }\n\n globalThis.performance.mark(this.currentMarkName);\n }\n\n end() {\n if (this.currentMarkList.length === 0) {\n throw new Error(`There are no tasks in progress for ${this.currentMarkName}`);\n }\n\n const measure = globalThis.performance.measure(this.currentMarkName, this.currentMarkName);\n return { measure, counter: this.counter++ };\n }\n\n cancel() {\n if (this.currentMarkList.length === 0) {\n throw new Error(`There are no tasks in progress for ${this.currentMarkName}`);\n }\n\n const measure = globalThis.performance.measure(this.currentMarkName, {\n start: this.currentMarkName,\n detail: {\n status: 'cancelled',\n },\n });\n\n return { measure, counter: this.counter++ };\n }\n\n add(duration: number) {\n const measure = globalThis.performance.measure(this.currentMarkName, {\n duration,\n end: globalThis.performance.now(),\n });\n return { measure, counter: this.counter++ };\n }\n}\n\nexport interface TaskParameters {\n name: string;\n watch?: boolean;\n global: boolean;\n}\n\nexport abstract class Task {\n protected readonly watch: boolean;\n protected readonly taskTimer: TaskTimer;\n private readonly name: string;\n private readonly global: boolean;\n\n constructor({ name, watch, global }: TaskParameters) {\n this.name = name;\n this.watch = !!watch;\n this.global = global;\n this.taskTimer = new TaskTimer(name);\n this.checkRunLocation();\n }\n\n protected logCompletionResults({\n measure,\n counter,\n }: {\n measure: PerformanceMeasure;\n counter: number;\n }) {\n const enumerator = counter === 0 ? 'Initial ' : 'Subsequent ';\n log.info(\n `${this.watch ? enumerator : ''}${this.name} task completed in ${formatDuration(measure.duration)}`\n );\n }\n\n private checkRunLocation() {\n const packageJson = readJsonSafe('package.json');\n if (!packageJson?.workspaces && this.global) {\n throw new Error(`Task ${this.name} has to run inside the workspace root directory`);\n }\n if ((!packageJson || packageJson.workspaces) && !this.global) {\n throw new Error(`Task ${this.name} has to run inside the package directory`);\n }\n }\n\n abstract execute(): Promise<void>;\n}\n"],"names":["Task","TaskTimer","currentMarkName","name","counter","currentMarkList","globalThis","performance","getEntriesByName","start","length","cancel","mark","end","Error","measure","detail","status","add","duration","now","logCompletionResults","enumerator","log","info","watch","formatDuration","checkRunLocation","packageJson","readJsonSafe","workspaces","global","taskTimer"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/cli/tasks/task.ts"],"sourcesContent":["import { exitWhenParentExits, formatDuration, log, readJsonSafe } from '../../utils';\n\nclass TaskTimer {\n private counter = 0;\n\n private get currentMarkName() {\n return `${this.name}[${this.counter}]`;\n }\n\n private get currentMarkList() {\n return globalThis.performance.getEntriesByName(this.currentMarkName, 'mark');\n }\n\n constructor(private readonly name: string) {\n this.start();\n }\n\n start() {\n if (this.currentMarkList.length > 0) {\n this.cancel();\n }\n\n globalThis.performance.mark(this.currentMarkName);\n }\n\n end() {\n if (this.currentMarkList.length === 0) {\n throw new Error(`There are no tasks in progress for ${this.currentMarkName}`);\n }\n\n const measure = globalThis.performance.measure(this.currentMarkName, this.currentMarkName);\n return { measure, counter: this.counter++ };\n }\n\n cancel() {\n if (this.currentMarkList.length === 0) {\n throw new Error(`There are no tasks in progress for ${this.currentMarkName}`);\n }\n\n const measure = globalThis.performance.measure(this.currentMarkName, {\n start: this.currentMarkName,\n detail: {\n status: 'cancelled',\n },\n });\n\n return { measure, counter: this.counter++ };\n }\n\n add(duration: number) {\n const measure = globalThis.performance.measure(this.currentMarkName, {\n duration,\n end: globalThis.performance.now(),\n });\n return { measure, counter: this.counter++ };\n }\n}\n\nexport interface TaskParameters {\n name: string;\n watch?: boolean;\n global: boolean;\n}\n\nexport abstract class Task {\n protected readonly watch: boolean;\n protected readonly taskTimer: TaskTimer;\n protected readonly name: string;\n private readonly global: boolean;\n\n constructor({ name, watch, global }: TaskParameters) {\n this.name = name;\n this.watch = !!watch;\n this.global = global;\n this.taskTimer = new TaskTimer(name);\n this.checkRunLocation();\n }\n\n watchForParentExit(): void {\n if (this.watch) {\n exitWhenParentExits(this.name);\n }\n }\n\n protected logCompletionResults({\n measure,\n counter,\n }: {\n measure: PerformanceMeasure;\n counter: number;\n }) {\n const enumerator = counter === 0 ? 'Initial ' : 'Subsequent ';\n log.info(\n `${this.watch ? enumerator : ''}${this.name} task completed in ${formatDuration(measure.duration)}`\n );\n }\n\n private checkRunLocation() {\n const packageJson = readJsonSafe('package.json');\n if (!packageJson?.workspaces && this.global) {\n throw new Error(`Task ${this.name} has to run inside the workspace root directory`);\n }\n if ((!packageJson || packageJson.workspaces) && !this.global) {\n throw new Error(`Task ${this.name} has to run inside the package directory`);\n }\n }\n\n abstract execute(): Promise<void>;\n}\n"],"names":["Task","TaskTimer","currentMarkName","name","counter","currentMarkList","globalThis","performance","getEntriesByName","start","length","cancel","mark","end","Error","measure","detail","status","add","duration","now","watchForParentExit","watch","exitWhenParentExits","logCompletionResults","enumerator","log","info","formatDuration","checkRunLocation","packageJson","readJsonSafe","workspaces","global","taskTimer"],"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 TscCompile extends _clitask.CliTask {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/tasks/tsc-compile/tsc-compile.ts"],"sourcesContent":["import {\n getPackages,\n getPackagesGraph,\n getTsConfig,\n log,\n Package,\n PackageType,\n} from '../../../utils';\nimport { CliTask } from '../cli-task';\n\ninterface Args {\n ignore?: string | string[];\n scope?: string | string[];\n watch?: boolean;\n}\n\nexport class TscCompile extends CliTask {\n constructor(private readonly args: Args) {\n super({\n name: 'tsc-compile',\n watch: args.watch,\n global: true,\n indicators: {\n end: 'Watching for file changes.',\n watchStart: 'Starting incremental compilation.',\n },\n });\n }\n\n async execute() {\n const packages = getPackages({\n scope: this.args.scope,\n ignore: this.args.ignore,\n type: [PackageType.TSC, PackageType.Bundle],\n });\n\n const tsConfigs = collapsePackages(packages).map(({ location }) => getTsConfig(location));\n\n log.debug(\n 'tsc-compile',\n `${this.args.watch ? 'watching' : 'compiling'} ${tsConfigs.join(' ')}`\n );\n\n await this.runChildProcess(\n 'tsc',\n [\n '-b',\n this.watch ? '-w' : undefined,\n '--pretty',\n '--preserveWatchOutput',\n '--emitDeclarationOnly',\n ...tsConfigs,\n ].filter(i => i !== undefined)\n );\n }\n}\n\n/**\n * Exclude dependant packages as they will be built through project references\n */\nfunction collapsePackages(packages: Package[]) {\n const dependencies = new Set(\n Object.values(getPackagesGraph({ scope: packages.map(({ name }) => name) })).flat()\n );\n\n return packages.filter(({ name }) => !dependencies.has(name));\n}\n"],"names":["TscCompile","CliTask","execute","packages","getPackages","scope","args","ignore","type","PackageType","TSC","Bundle","tsConfigs","collapsePackages","map","location","getTsConfig","log","debug","watch","join","runChildProcess","undefined","filter","i","name","global","indicators","end","watchStart","dependencies","Set","Object","values","getPackagesGraph","flat","has"],"mappings":";;;;+BAgBaA;;;eAAAA;;;uBATN;yBACiB;;;;;;;;;;;;;;AAQjB,MAAMA,mBAAmBC,gBAAO;IAanC,MAAMC,UAAU;QACZ,MAAMC,WAAWC,IAAAA,kBAAW,EAAC;YACzBC,OAAO,IAAI,CAACC,IAAI,CAACD,KAAK;YACtBE,QAAQ,IAAI,CAACD,IAAI,CAACC,MAAM;YACxBC,MAAM;gBAACC,kBAAW,CAACC,GAAG;gBAAED,kBAAW,CAACE,MAAM;aAAC;QAC/C;QAEA,MAAMC,YAAYC,iBAAiBV,UAAUW,GAAG,CAAC,CAAC,EAAEC,QAAQ,EAAE,GAAKC,IAAAA,kBAAW,EAACD;QAE/EE,UAAG,CAACC,KAAK,CACL,eACA,GAAG,IAAI,CAACZ,IAAI,CAACa,KAAK,GAAG,aAAa,YAAY,CAAC,EAAEP,UAAUQ,IAAI,CAAC,MAAM;QAG1E,MAAM,IAAI,CAACC,eAAe,CACtB,OACA;YACI;YACA,IAAI,CAACF,KAAK,GAAG,OAAOG;YACpB;YACA;YACA;eACGV;SACN,CAACW,MAAM,CAACC,CAAAA,IAAKA,MAAMF;IAE5B;IArCA,YAAY,AAAiBhB,IAAU,CAAE;QACrC,KAAK,CAAC;YACFmB,MAAM;YACNN,OAAOb,KAAKa,KAAK;YACjBO,QAAQ;YACRC,YAAY;gBACRC,KAAK;gBACLC,YAAY;YAChB;QACJ,iDATyBvB,OAAAA;IAU7B;AA4BJ;AAEA;;CAEC,GACD,SAASO,iBAAiBV,QAAmB;IACzC,MAAM2B,eAAe,IAAIC,IACrBC,OAAOC,MAAM,CAACC,IAAAA,uBAAgB,EAAC;QAAE7B,OAAOF,SAASW,GAAG,CAAC,CAAC,EAAEW,IAAI,EAAE,GAAKA;IAAM,IAAIU,IAAI;IAGrF,OAAOhC,SAASoB,MAAM,CAAC,CAAC,EAAEE,IAAI,EAAE,GAAK,CAACK,aAAaM,GAAG,CAACX;AAC3D"}
1
+ {"version":3,"sources":["../../../../src/cli/tasks/tsc-compile/tsc-compile.ts"],"sourcesContent":["import {\n getPackages,\n getPackagesGraph,\n getTsConfig,\n log,\n Package,\n PackageType,\n} from '../../../utils';\nimport { CliTask } from '../cli-task';\n\ninterface Args {\n ignore?: string | string[];\n scope?: string | string[];\n watch?: boolean;\n}\n\nexport class TscCompile extends CliTask {\n constructor(private readonly args: Args) {\n super({\n name: 'tsc-compile',\n watch: args.watch,\n global: true,\n indicators: {\n end: 'Watching for file changes.',\n watchStart: 'Starting incremental compilation.',\n },\n });\n }\n\n async execute() {\n const packages = getPackages({\n scope: this.args.scope,\n ignore: this.args.ignore,\n type: [PackageType.TSC, PackageType.Bundle],\n });\n\n const tsConfigs = collapsePackages(packages).map(({ location }) => getTsConfig(location));\n\n log.debug(\n 'tsc-compile',\n `${this.args.watch ? 'watching' : 'compiling'} ${tsConfigs.join(' ')}`\n );\n\n await this.runChildProcess(\n 'tsc',\n [\n '-b',\n this.watch ? '-w' : undefined,\n '--pretty',\n '--preserveWatchOutput',\n '--emitDeclarationOnly',\n ...tsConfigs,\n ].filter(i => i !== undefined)\n );\n }\n}\n\n/**\n * Exclude dependant packages as they will be built through project references\n */\nfunction collapsePackages(packages: Package[]) {\n const dependencies = new Set(\n Object.values(getPackagesGraph({ scope: packages.map(({ name }) => name) })).flat()\n );\n\n return packages.filter(({ name }) => !dependencies.has(name));\n}\n"],"names":["TscCompile","CliTask","execute","packages","getPackages","scope","args","ignore","type","PackageType","TSC","Bundle","tsConfigs","collapsePackages","map","location","getTsConfig","log","debug","watch","join","runChildProcess","undefined","filter","i","name","global","indicators","end","watchStart","dependencies","Set","Object","values","getPackagesGraph","flat","has"],"mappings":";;;;+BAgBaA;;;eAAAA;;;uBATN;yBACiB;;;;;;;;;;;;AAQjB,MAAMA,mBAAmBC,gBAAO;IAanC,MAAMC,UAAU;QACZ,MAAMC,WAAWC,IAAAA,kBAAW,EAAC;YACzBC,OAAO,IAAI,CAACC,IAAI,CAACD,KAAK;YACtBE,QAAQ,IAAI,CAACD,IAAI,CAACC,MAAM;YACxBC,MAAM;gBAACC,kBAAW,CAACC,GAAG;gBAAED,kBAAW,CAACE,MAAM;aAAC;QAC/C;QAEA,MAAMC,YAAYC,iBAAiBV,UAAUW,GAAG,CAAC,CAAC,EAAEC,QAAQ,EAAE,GAAKC,IAAAA,kBAAW,EAACD;QAE/EE,UAAG,CAACC,KAAK,CACL,eACA,GAAG,IAAI,CAACZ,IAAI,CAACa,KAAK,GAAG,aAAa,YAAY,CAAC,EAAEP,UAAUQ,IAAI,CAAC,MAAM;QAG1E,MAAM,IAAI,CAACC,eAAe,CACtB,OACA;YACI;YACA,IAAI,CAACF,KAAK,GAAG,OAAOG;YACpB;YACA;YACA;eACGV;SACN,CAACW,MAAM,CAACC,CAAAA,IAAKA,MAAMF;IAE5B;IArCA,YAAY,AAAiBhB,IAAU,CAAE;QACrC,KAAK,CAAC;YACFmB,MAAM;YACNN,OAAOb,KAAKa,KAAK;YACjBO,QAAQ;YACRC,YAAY;gBACRC,KAAK;gBACLC,YAAY;YAChB;QACJ,iDATyBvB,OAAAA;IAU7B;AA4BJ;AAEA;;CAEC,GACD,SAASO,iBAAiBV,QAAmB;IACzC,MAAM2B,eAAe,IAAIC,IACrBC,OAAOC,MAAM,CAACC,IAAAA,uBAAgB,EAAC;QAAE7B,OAAOF,SAASW,GAAG,CAAC,CAAC,EAAEW,IAAI,EAAE,GAAKA;IAAM,IAAIU,IAAI;IAGrF,OAAOhC,SAASoB,MAAM,CAAC,CAAC,EAAEE,IAAI,EAAE,GAAK,CAACK,aAAaM,GAAG,CAACX;AAC3D"}
@@ -1 +1 @@
1
- {"version":3,"file":"cli-npm.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/cli-npm.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,OAAO;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAID,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAWrF;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,EAAE,CAmB7F;AAED,wBAAgB,iBAAiB,WAOhC;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,iBAI/F;AAED,wBAAsB,UAAU,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,iBAE7E;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,iBAE7D;AAED,wBAAsB,aAAa,CAAC,EAChC,WAAW,EACX,cAAc,EACd,QAAQ,EACR,GAAG,GACN,EAAE;IACC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACf,iBAMA;AAED,wBAAsB,YAAY,CAAC,EAC/B,WAAW,EACX,QAAQ,EACR,GAAG,GACN,EAAE;IACC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACf,iBAGA;AAED,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,wBAAgB,OAAO,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,8BAY5F"}
1
+ {"version":3,"file":"cli-npm.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/cli-npm.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,OAAO;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAID,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAWrF;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,EAAE,CAmB7F;AAED,wBAAgB,iBAAiB,WAOhC;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,iBAI/F;AAED,wBAAsB,UAAU,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,iBAE7E;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,iBAE7D;AAED,wBAAsB,aAAa,CAAC,EAChC,WAAW,EACX,cAAc,EACd,QAAQ,EACR,GAAG,GACN,EAAE;IACC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACf,iBAmBA;AAED,wBAAsB,YAAY,CAAC,EAC/B,WAAW,EACX,QAAQ,EACR,GAAG,GACN,EAAE;IACC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACf,iBAGA;AAED,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,wBAAgB,OAAO,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,8BAY5F"}
@@ -37,7 +37,9 @@ _export(exports, {
37
37
  return npmView;
38
38
  }
39
39
  });
40
+ const _utils = require("../../utils");
40
41
  const _clios = require("./cli-os");
42
+ const _withexponentialbackoff = require("./with-exponential-backoff");
41
43
  const NPM_TIMEOUT = 10000;
42
44
  function npmGetPackageVersions(registry, packageName) {
43
45
  try {
@@ -101,7 +103,12 @@ async function npmPackageSet(key, value) {
101
103
  await (0, _clios.runCommand)(`npm pkg set ${key}=${value}`);
102
104
  }
103
105
  async function npmTagVersion({ packageName, packageVersion, registry, tag }) {
104
- await (0, _clios.runCommand)(`npm dist-tag ${registry ? `--registry=${registry} ` : ''}add ${packageName}@${packageVersion} ${tag}`);
106
+ /*
107
+ * Retrying with backoff because verdaccio's dist-tag write can briefly 404
108
+ * right after the version it targets was published (metadata propagation lag).
109
+ */ await (0, _withexponentialbackoff.withExponentialBackoff)(()=>(0, _clios.runCommand)(`npm dist-tag ${registry ? `--registry=${registry} ` : ''}add ${packageName}@${packageVersion} ${tag}`), {
110
+ onRetry: (delay)=>_utils.log.warning(`Failed to tag ${packageName}@${packageVersion} with "${tag}", retrying in ${delay}ms...`)
111
+ });
105
112
  }
106
113
  async function npmRemoveTag({ packageName, registry, tag }) {
107
114
  const registryFlag = registry ? `--registry=${registry} ` : '';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/utils/cli-npm.ts"],"sourcesContent":["import { runCommand, runCommandOutput } from './cli-os';\n\nexport interface Version {\n name: string;\n date: Date;\n tag?: string;\n}\n\nconst NPM_TIMEOUT = 10000;\n\nexport function npmGetPackageVersions(registry: string, packageName: string): string[] {\n try {\n const v = runCommandOutput(\n `npm show ${packageName} versions --registry ${registry} --json`,\n { timeout: NPM_TIMEOUT }\n );\n\n return JSON.parse(v);\n } catch {\n return [];\n }\n}\n\nexport function npmGetPackageVersionsDetails(registry: string, packageName: string): Version[] {\n try {\n const result = runCommandOutput(\n `npm view ${packageName} time dist-tags --registry ${registry} --json`,\n { timeout: NPM_TIMEOUT }\n );\n\n const { time, 'dist-tags': distTags } = JSON.parse(result);\n\n const tags = Object.fromEntries(\n Object.entries(distTags).map(([tag, version]) => [version, tag])\n );\n\n return Object.keys(time).reduce((out, version) => {\n return [...out, { name: version, date: new Date(time[version]), tag: tags[version] }];\n }, []);\n } catch {\n return [];\n }\n}\n\nexport function npmGetProjectRoot() {\n return runCommandOutput('npm prefix', {\n quiet: true,\n // ignore stderr because any error here is fundamental and will be repeated elsewhere\n stdio: ['inherit', 'pipe', 'ignore'],\n timeout: NPM_TIMEOUT,\n }).trim();\n}\n\nexport async function npmUnpublish(registry: string, packageName: string, packageVersion: string) {\n await runCommand(`npm unpublish ${packageName}@${packageVersion} --registry ${registry}`, {\n timeout: NPM_TIMEOUT,\n });\n}\n\nexport async function npmPublish({ dry, tag }: { dry?: boolean; tag?: string }) {\n await runCommand(['npm publish', !!tag && `--tag ${tag}`, !!dry && `--dry-run`]);\n}\n\nexport async function npmPackageSet(key: string, value: string) {\n await runCommand(`npm pkg set ${key}=${value}`);\n}\n\nexport async function npmTagVersion({\n packageName,\n packageVersion,\n registry,\n tag,\n}: {\n packageName: string;\n packageVersion: string;\n registry?: string;\n tag: string;\n}) {\n await runCommand(\n `npm dist-tag ${\n registry ? `--registry=${registry} ` : ''\n }add ${packageName}@${packageVersion} ${tag}`\n );\n}\n\nexport async function npmRemoveTag({\n packageName,\n registry,\n tag,\n}: {\n packageName: string;\n registry?: string;\n tag: string;\n}) {\n const registryFlag = registry ? `--registry=${registry} ` : '';\n await runCommand(`npm dist-tag ${registryFlag}rm ${packageName} ${tag}`);\n}\n\nexport interface NPMPackageInfo {\n 'name': string;\n 'version': string;\n 'dist-tags'?: Record<string, string>;\n 'time'?: Record<string, string>;\n 'versions'?: string[];\n}\n\nexport function npmView({ packageName, registry }: { packageName: string; registry?: string }) {\n try {\n const result = runCommandOutput(\n ['npm', 'view', '--json', registry ? `--registry=${registry}` : '', packageName],\n { quiet: true, timeout: NPM_TIMEOUT }\n );\n if (result) {\n return JSON.parse(result) as NPMPackageInfo;\n }\n } catch {\n // ignore\n }\n}\n"],"names":["npmGetPackageVersions","npmGetPackageVersionsDetails","npmGetProjectRoot","npmPackageSet","npmPublish","npmRemoveTag","npmTagVersion","npmUnpublish","npmView","NPM_TIMEOUT","registry","packageName","v","runCommandOutput","timeout","JSON","parse","result","time","distTags","tags","Object","fromEntries","entries","map","tag","version","keys","reduce","out","name","date","Date","quiet","stdio","trim","packageVersion","runCommand","dry","key","value","registryFlag"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/cli/utils/cli-npm.ts"],"sourcesContent":["import { log } from '../../utils';\nimport { runCommand, runCommandOutput } from './cli-os';\nimport { withExponentialBackoff } from './with-exponential-backoff';\n\nexport interface Version {\n name: string;\n date: Date;\n tag?: string;\n}\n\nconst NPM_TIMEOUT = 10000;\n\nexport function npmGetPackageVersions(registry: string, packageName: string): string[] {\n try {\n const v = runCommandOutput(\n `npm show ${packageName} versions --registry ${registry} --json`,\n { timeout: NPM_TIMEOUT }\n );\n\n return JSON.parse(v);\n } catch {\n return [];\n }\n}\n\nexport function npmGetPackageVersionsDetails(registry: string, packageName: string): Version[] {\n try {\n const result = runCommandOutput(\n `npm view ${packageName} time dist-tags --registry ${registry} --json`,\n { timeout: NPM_TIMEOUT }\n );\n\n const { time, 'dist-tags': distTags } = JSON.parse(result);\n\n const tags = Object.fromEntries(\n Object.entries(distTags).map(([tag, version]) => [version, tag])\n );\n\n return Object.keys(time).reduce((out, version) => {\n return [...out, { name: version, date: new Date(time[version]), tag: tags[version] }];\n }, []);\n } catch {\n return [];\n }\n}\n\nexport function npmGetProjectRoot() {\n return runCommandOutput('npm prefix', {\n quiet: true,\n // ignore stderr because any error here is fundamental and will be repeated elsewhere\n stdio: ['inherit', 'pipe', 'ignore'],\n timeout: NPM_TIMEOUT,\n }).trim();\n}\n\nexport async function npmUnpublish(registry: string, packageName: string, packageVersion: string) {\n await runCommand(`npm unpublish ${packageName}@${packageVersion} --registry ${registry}`, {\n timeout: NPM_TIMEOUT,\n });\n}\n\nexport async function npmPublish({ dry, tag }: { dry?: boolean; tag?: string }) {\n await runCommand(['npm publish', !!tag && `--tag ${tag}`, !!dry && `--dry-run`]);\n}\n\nexport async function npmPackageSet(key: string, value: string) {\n await runCommand(`npm pkg set ${key}=${value}`);\n}\n\nexport async function npmTagVersion({\n packageName,\n packageVersion,\n registry,\n tag,\n}: {\n packageName: string;\n packageVersion: string;\n registry?: string;\n tag: string;\n}) {\n /*\n * Retrying with backoff because verdaccio's dist-tag write can briefly 404\n * right after the version it targets was published (metadata propagation lag).\n */\n await withExponentialBackoff(\n () =>\n runCommand(\n `npm dist-tag ${\n registry ? `--registry=${registry} ` : ''\n }add ${packageName}@${packageVersion} ${tag}`\n ),\n {\n onRetry: delay =>\n log.warning(\n `Failed to tag ${packageName}@${packageVersion} with \"${tag}\", retrying in ${delay}ms...`\n ),\n }\n );\n}\n\nexport async function npmRemoveTag({\n packageName,\n registry,\n tag,\n}: {\n packageName: string;\n registry?: string;\n tag: string;\n}) {\n const registryFlag = registry ? `--registry=${registry} ` : '';\n await runCommand(`npm dist-tag ${registryFlag}rm ${packageName} ${tag}`);\n}\n\nexport interface NPMPackageInfo {\n 'name': string;\n 'version': string;\n 'dist-tags'?: Record<string, string>;\n 'time'?: Record<string, string>;\n 'versions'?: string[];\n}\n\nexport function npmView({ packageName, registry }: { packageName: string; registry?: string }) {\n try {\n const result = runCommandOutput(\n ['npm', 'view', '--json', registry ? `--registry=${registry}` : '', packageName],\n { quiet: true, timeout: NPM_TIMEOUT }\n );\n if (result) {\n return JSON.parse(result) as NPMPackageInfo;\n }\n } catch {\n // ignore\n }\n}\n"],"names":["npmGetPackageVersions","npmGetPackageVersionsDetails","npmGetProjectRoot","npmPackageSet","npmPublish","npmRemoveTag","npmTagVersion","npmUnpublish","npmView","NPM_TIMEOUT","registry","packageName","v","runCommandOutput","timeout","JSON","parse","result","time","distTags","tags","Object","fromEntries","entries","map","tag","version","keys","reduce","out","name","date","Date","quiet","stdio","trim","packageVersion","runCommand","dry","key","value","withExponentialBackoff","onRetry","delay","log","warning","registryFlag"],"mappings":"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"}
@@ -7,5 +7,6 @@ type RunCommandOutputOptions = ExecSyncOptionsWithBufferEncoding & {
7
7
  quiet?: boolean;
8
8
  };
9
9
  export declare function runCommandOutput(command: string | (string | false)[], { quiet, ...execSyncOptions }?: RunCommandOutputOptions): string;
10
+ export declare function killProcessTree(pid: number, signal?: NodeJS.Signals): void;
10
11
  export {};
11
12
  //# sourceMappingURL=cli-os.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-os.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/cli-os.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,iCAAiC,EAEjC,wBAAwB,EAC3B,MAAM,eAAe,CAAC;AAGvB,KAAK,iBAAiB,GAAG,wBAAwB,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAExE,wBAAsB,UAAU,CAC5B,OAAO,EAAE,MAAM,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,EACpC,EAAE,KAAK,EAAE,GAAG,YAAY,EAAE,GAAE,iBAAsB,iBAyCrD;AAED,KAAK,uBAAuB,GAAG,iCAAiC,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEvF,wBAAgB,gBAAgB,CAC5B,OAAO,EAAE,MAAM,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,EACpC,EAAE,KAAK,EAAE,GAAG,eAAe,EAAE,GAAE,uBAA4B,UAqB9D"}
1
+ {"version":3,"file":"cli-os.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/cli-os.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,iCAAiC,EAEjC,wBAAwB,EAC3B,MAAM,eAAe,CAAC;AAGvB,KAAK,iBAAiB,GAAG,wBAAwB,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAExE,wBAAsB,UAAU,CAC5B,OAAO,EAAE,MAAM,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,EACpC,EAAE,KAAK,EAAE,GAAG,YAAY,EAAE,GAAE,iBAAsB,iBAyCrD;AAED,KAAK,uBAAuB,GAAG,iCAAiC,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEvF,wBAAgB,gBAAgB,CAC5B,OAAO,EAAE,MAAM,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,EACpC,EAAE,KAAK,EAAE,GAAG,eAAe,EAAE,GAAE,uBAA4B,UAqB9D;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,OAAmB,QAW9E"}