@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
@@ -0,0 +1,118 @@
1
+ /**
2
+ * Applies patch-package patches after startup is installed in a consumer project.
3
+ *
4
+ * Under npm, patch-package finds packages directly in node_modules/. Under pnpm,
5
+ * packages live in the .pnpm store and aren't at their expected node_modules/<pkg>
6
+ * paths. This script bridges the gap by creating temporary symlinks so
7
+ * patch-package can locate and patch them, then cleans up the symlinks afterward.
8
+ *
9
+ * Only runs when startup is installed inside a project directory (not globally
10
+ * or in an npx cache). Failures are logged as warnings to avoid blocking installs.
11
+ */
12
+ const { execFileSync } = require('child_process');
13
+ const fs = require('fs');
14
+ const path = require('path');
15
+
16
+ /**
17
+ * Parse patch filenames and resolve each package's install location in the
18
+ * .pnpm store. Returns an array of { pkg, link, target } for packages that
19
+ * need a temporary symlink (i.e., not already at node_modules/<pkg>).
20
+ *
21
+ * Expected filename format (patch-package convention):
22
+ * <name>+<version>.patch — e.g., jsdom+26.1.0.patch
23
+ * <name>+<version>.dev.patch — e.g., jsdom+26.1.0.dev.patch
24
+ * @<scope>+<name>+<version>.patch — e.g., @babel+core+7.28.5.patch
25
+ */
26
+ function getPnpmPatchTargets(cwd, patchDir) {
27
+ const pnpmDir = path.join(cwd, 'node_modules', '.pnpm');
28
+ if (!fs.existsSync(pnpmDir)) {
29
+ return [];
30
+ }
31
+
32
+ const targets = [];
33
+ for (const file of fs.readdirSync(patchDir).filter(f => f.endsWith('.patch'))) {
34
+ const match = file.match(/^(?<name>.+)\+\d/);
35
+ if (!match?.groups) {
36
+ continue;
37
+ }
38
+
39
+ const { name } = match.groups;
40
+ const pkg = name.replace(/\+/, '/'); // @scope+name -> @scope/name
41
+ const link = path.join(cwd, 'node_modules', pkg);
42
+ if (fs.existsSync(link)) {
43
+ // already exists
44
+ continue;
45
+ }
46
+
47
+ const entry = fs.readdirSync(pnpmDir).find(e => e.startsWith(`${name}@`));
48
+ if (!entry) {
49
+ // package not installed (e.g., .dev patch in production install)
50
+ continue;
51
+ }
52
+
53
+ targets.push({
54
+ pkg,
55
+ link,
56
+ target: path.join(pnpmDir, entry, 'node_modules', pkg),
57
+ });
58
+ }
59
+ return targets;
60
+ }
61
+
62
+ /*
63
+ * For pnpm, patch-package can't find packages because they live in the .pnpm
64
+ * store instead of node_modules/<pkg>. We create temporary symlinks so
65
+ * patch-package can find them, then clean up after.
66
+ */
67
+ function addPnpmSymlinks(targets) {
68
+ for (const { link, target } of targets) {
69
+ fs.mkdirSync(path.dirname(link), { recursive: true });
70
+ fs.symlinkSync(target, link);
71
+ }
72
+ }
73
+
74
+ function removePnpmSymlinks(targets) {
75
+ for (const { link } of targets) {
76
+ fs.unlinkSync(link);
77
+ }
78
+ }
79
+
80
+ function main() {
81
+ const cwd = process.env.INIT_CWD;
82
+ const patchDir = path.resolve('patches');
83
+ const relativePatchDir = path.relative(cwd, patchDir);
84
+ const isInstalledInCurrentDirectory = patchDir.startsWith(path.resolve(cwd));
85
+
86
+ // Only apply patches when installed in project (as opposed to globally or in npx cache)
87
+ if (!fs.existsSync('package.json') || !isInstalledInCurrentDirectory) {
88
+ return;
89
+ }
90
+
91
+ const patchTargets = getPnpmPatchTargets(cwd, patchDir);
92
+ addPnpmSymlinks(patchTargets);
93
+ try {
94
+ execFileSync('patch-package', ['--error-on-fail', '--patch-dir', relativePatchDir], {
95
+ cwd,
96
+ shell: process.platform === 'win32',
97
+ stdio: 'inherit',
98
+ });
99
+ } finally {
100
+ removePnpmSymlinks(patchTargets);
101
+ }
102
+ }
103
+
104
+ // Only run when executed directly (e.g., `node postinstall.js`), not when imported (e.g., in tests).
105
+ /* istanbul ignore next */
106
+ if (require.main === module) {
107
+ try {
108
+ main();
109
+ } catch (e) {
110
+ /*
111
+ * To avoid disrupting workflows only log warning when postinstall fails.
112
+ * To see detailed error, run npm with --foreground-scripts option.
113
+ */
114
+ console.warn(`postinstall failed`, e); // eslint-disable-line no-console
115
+ }
116
+ }
117
+
118
+ module.exports = { main };
@@ -0,0 +1,203 @@
1
+ #!/usr/bin/env node
2
+ /* eslint-disable no-console */
3
+
4
+ /**
5
+ * Generates bin wrapper scripts for all CLI tools exposed by startup's dependencies.
6
+ *
7
+ * pnpm uses strict node_modules isolation - only direct dependencies' bins are linked
8
+ * into a consumer's node_modules/.bin/. Since startup acts as a toolbox package, it
9
+ * needs to re-export its dependencies' bins so consumers get them automatically.
10
+ *
11
+ * Under npm these wrappers are harmless but redundant - npm links the original
12
+ * package's bins directly. Under pnpm, startup's wrappers are the only ones
13
+ * visible to consumers.
14
+ *
15
+ * This script:
16
+ * 1. Reads startup's dependencies from package.json
17
+ * 2. Resolves each dependency's `bin` entries
18
+ * 3. Generates thin wrapper scripts in bin/ (using shared bin/_run.js helper)
19
+ * 4. Removes obsolete wrappers from previous runs
20
+ * 5. Updates the `bin` field in startup's package.json
21
+ *
22
+ * Run: npm run prepare -w packages/startup
23
+ */
24
+
25
+ const fs = require('fs');
26
+ const path = require('path');
27
+
28
+ const GENERATED_MARKER = 'Auto-generated by scripts/generate-bin-wrappers.js';
29
+
30
+ // Packages whose bins should not be exposed to consumers
31
+ const SKIP_PACKAGES = new Set([
32
+ '@servicetitan/install', // consumers use @servicetitan/install directly
33
+ ]);
34
+
35
+ // Bins from transitive dependencies that startup needs to expose to consumers
36
+ const EXTRA_BINS = [
37
+ {
38
+ name: 'kendo-ui-license',
39
+ from: '@progress/kendo-licensing',
40
+ binPath: 'bin/kendo-ui-license.js',
41
+ },
42
+ { name: 'nx', from: 'nx', binPath: 'bin/nx.js' },
43
+ ];
44
+
45
+ /*
46
+ * Collect bin entries from each dependency's package.json. Skips packages in
47
+ * SKIP_PACKAGES, normalizes string-form bin fields to { name: path } objects,
48
+ * and appends EXTRA_BINS for transitive dependencies that need explicit exposure.
49
+ */
50
+ function discoverBins(startupDirectory, dependencies) {
51
+ const bins = [];
52
+
53
+ for (const packageName of dependencies) {
54
+ if (SKIP_PACKAGES.has(packageName)) {
55
+ continue;
56
+ }
57
+ let packageJson;
58
+ try {
59
+ const packageJsonPath = require.resolve(packageName + '/package.json', {
60
+ paths: [startupDirectory],
61
+ });
62
+ packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
63
+ } catch {
64
+ // Some packages block ./package.json in exports - read directly from node_modules
65
+ try {
66
+ const packageJsonPath = resolveNodeModulesPackageJson(
67
+ packageName,
68
+ startupDirectory
69
+ );
70
+ packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
71
+ } catch {
72
+ continue;
73
+ }
74
+ }
75
+
76
+ if (!packageJson.bin) {
77
+ continue;
78
+ }
79
+
80
+ /*
81
+ * When bin is a string the command name defaults to the package name.
82
+ * Strip the @scope/ prefix for scoped packages, matching npm's behavior.
83
+ */
84
+ const entries =
85
+ typeof packageJson.bin === 'string'
86
+ ? { [packageJson.name.replace(/^@.*\//, '')]: packageJson.bin }
87
+ : packageJson.bin;
88
+
89
+ for (const [name, binPath] of Object.entries(entries)) {
90
+ bins.push({ name, from: packageName, binPath });
91
+ }
92
+ }
93
+
94
+ bins.push(...EXTRA_BINS);
95
+ bins.sort((a, b) => a.name.localeCompare(b.name));
96
+ return bins;
97
+ }
98
+
99
+ /*
100
+ * Delete previously generated wrappers that no longer correspond to a
101
+ * dependency. Identifies generated files by the presence of GENERATED_MARKER
102
+ * and removes any that aren't in the current bin list.
103
+ */
104
+ function removeObsoleteWrappers(binDirectory, bins) {
105
+ const generatedNames = new Set(bins.map(bin => `${bin.name}.js`));
106
+ const removed = [];
107
+ for (const file of fs.readdirSync(binDirectory)) {
108
+ const filePath = path.join(binDirectory, file);
109
+ try {
110
+ const content = fs.readFileSync(filePath, 'utf8');
111
+ if (content.includes(GENERATED_MARKER) && !generatedNames.has(file)) {
112
+ fs.rmSync(filePath);
113
+ removed.push(file);
114
+ }
115
+ } catch {
116
+ continue;
117
+ }
118
+ }
119
+ return removed;
120
+ }
121
+
122
+ /*
123
+ * Write a thin wrapper script for each bin entry. Each wrapper delegates to
124
+ * bin/_run.js which locates and executes the real binary. Skips files whose
125
+ * content is already up to date. Returns the bin entries for package.json
126
+ * and the list of wrappers that were added or updated.
127
+ */
128
+ function generateWrappers(binDirectory, bins) {
129
+ const binEntries = {
130
+ startup: './bin/index.js',
131
+ };
132
+ const added = [];
133
+
134
+ for (const { name, from, binPath } of bins) {
135
+ const wrapperPath = path.join(binDirectory, `${name}.js`);
136
+ const wrapper = `#!/usr/bin/env node\n// ${GENERATED_MARKER} - wraps: ${from} -> ${binPath}\nrequire('./_run')('${from}', '${binPath}');\n`;
137
+ const existing = fs.existsSync(wrapperPath) && fs.readFileSync(wrapperPath, 'utf8');
138
+ const normalized = existing && existing.replace(/\r\n/g, '\n');
139
+ if (normalized !== wrapper) {
140
+ fs.writeFileSync(wrapperPath, wrapper);
141
+ fs.chmodSync(wrapperPath, 0o755);
142
+ added.push(name);
143
+ }
144
+ binEntries[name] = `./bin/${name}.js`;
145
+ }
146
+
147
+ return { binEntries, added };
148
+ }
149
+
150
+ /**
151
+ * Walk up node_modules directories to find a dependency's package.json,
152
+ * handling both hoisted and nested layouts.
153
+ */
154
+ function resolveNodeModulesPackageJson(packageName, fromDirectory) {
155
+ let directory = fromDirectory;
156
+ while (directory !== path.dirname(directory)) {
157
+ const candidate = path.join(directory, 'node_modules', packageName, 'package.json');
158
+ if (fs.existsSync(candidate)) {
159
+ return candidate;
160
+ }
161
+ directory = path.dirname(directory);
162
+ }
163
+ throw new Error(`Cannot find package.json for ${packageName}`);
164
+ }
165
+
166
+ function main() {
167
+ const startupDirectory = path.resolve(__dirname, '..', '..');
168
+ const packageJsonPath = path.join(startupDirectory, 'package.json');
169
+ const binDirectory = path.join(startupDirectory, 'bin');
170
+
171
+ console.log('Generating bin wrappers...');
172
+
173
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
174
+ const dependencies = Object.keys(packageJson.dependencies ?? {});
175
+
176
+ const bins = discoverBins(startupDirectory, dependencies);
177
+ const removed = removeObsoleteWrappers(binDirectory, bins);
178
+ const { binEntries, added } = generateWrappers(binDirectory, bins);
179
+
180
+ if (JSON.stringify(packageJson.bin) !== JSON.stringify(binEntries)) {
181
+ packageJson.bin = binEntries;
182
+ fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 4) + '\n');
183
+ }
184
+
185
+ for (const name of added) {
186
+ console.log(` added: ${name}`);
187
+ }
188
+ for (const file of removed) {
189
+ console.log(` removed: ${file}`);
190
+ }
191
+ const upToDate = bins.length - added.length;
192
+ console.log(
193
+ ` ${added.length} added/updated, ${removed.length} removed, ${upToDate} up to date`
194
+ );
195
+ }
196
+
197
+ // Only run when executed directly (e.g., `node generate-bin-wrappers.js`), not when imported (e.g., in tests).
198
+ /* istanbul ignore next */
199
+ if (require.main === module) {
200
+ main();
201
+ }
202
+
203
+ module.exports = { main };
@@ -7,11 +7,17 @@ export declare function swc(config: SwcOptions): {
7
7
  decorators: true;
8
8
  };
9
9
  target: import("@swc/types").JscTarget | undefined;
10
+ baseUrl: string | undefined;
11
+ paths: {
12
+ [from: string]: string[];
13
+ } | undefined;
10
14
  transform: {
11
15
  legacyDecorator: boolean | undefined;
12
16
  decoratorMetadata: boolean | undefined;
13
17
  react: {
14
18
  runtime: "automatic";
19
+ refresh: boolean;
20
+ development: boolean;
15
21
  };
16
22
  };
17
23
  };
@@ -1 +1 @@
1
- {"version":3,"file":"swc.d.ts","sourceRoot":"","sources":["../../src/storybook-config/swc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAM3C,wBAAgB,GAAG,CAAC,MAAM,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;EAiBrC"}
1
+ {"version":3,"file":"swc.d.ts","sourceRoot":"","sources":["../../src/storybook-config/swc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAM3C,wBAAgB,GAAG,CAAC,MAAM,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"vite-final.d.ts","sourceRoot":"","sources":["../../src/storybook-config/vite-final.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAMzC,UAAU,gBAAgB;IAKtB,UAAU,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC;CAC7C;AAUD,wBAAgB,SAAS,CACrB,MAAM,EAAE,YAAY,EACpB,EAAE,UAAU,EAAE,GAAE,gBAAqB,GACtC,YAAY,CA8Bd"}
1
+ {"version":3,"file":"vite-final.d.ts","sourceRoot":"","sources":["../../src/storybook-config/vite-final.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAOzC,UAAU,gBAAgB;IAKtB,UAAU,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC;CAC7C;AAUD,wBAAgB,SAAS,CACrB,MAAM,EAAE,YAAY,EACpB,EAAE,UAAU,EAAE,GAAE,gBAAqB,GACtC,YAAY,CAkDd"}
@@ -11,7 +11,8 @@ Object.defineProperty(exports, "viteFinal", {
11
11
  const _nodeutil = require("node:util");
12
12
  const _utils = require("../utils");
13
13
  const _createcssconfig = require("../vite/config/create-css-config");
14
- const _svgrplugin = require("../vite/plugins/svgr-plugin");
14
+ const _createfilteringlogger = require("../vite/config/create-filtering-logger");
15
+ const _plugins = require("../vite/plugins");
15
16
  /*
16
17
  * Pre-bundle and dedupe React so the Storybook preview loads a single React
17
18
  * instance. Storybook leaves this to Vite's automatic discovery, which can miss
@@ -26,12 +27,18 @@ const REACT_OPTIMIZE = [
26
27
  ];
27
28
  function viteFinal(config, { configType } = {}) {
28
29
  var _ref, _ref1, _config_plugins;
29
- var _config_css, _config_resolve, _config_optimizeDeps;
30
+ var _config_optimizeDeps_rolldownOptions, _config_optimizeDeps, _config_css, _config_resolve, _config_optimizeDeps1, _config_optimizeDeps2;
30
31
  const isProduction = configType === 'PRODUCTION';
31
32
  const css = (0, _createcssconfig.createCssConfig)(isProduction);
32
33
  const plugins = [
33
- (0, _svgrplugin.svgrPlugin)(getContext())
34
+ (0, _plugins.svgrPlugin)(getContext()),
35
+ (0, _plugins.ignoreModulesPlugin)({
36
+ package: {
37
+ dependencies: {}
38
+ }
39
+ })
34
40
  ];
41
+ const existingRolldownPlugins = (_config_optimizeDeps = config.optimizeDeps) === null || _config_optimizeDeps === void 0 ? void 0 : (_config_optimizeDeps_rolldownOptions = _config_optimizeDeps.rolldownOptions) === null || _config_optimizeDeps_rolldownOptions === void 0 ? void 0 : _config_optimizeDeps_rolldownOptions.plugins;
35
42
  const merged = {
36
43
  ...config,
37
44
  css: {
@@ -55,15 +62,34 @@ function viteFinal(config, { configType } = {}) {
55
62
  ...config.optimizeDeps,
56
63
  include: [
57
64
  ...new Set([
58
- ...(_ref1 = (_config_optimizeDeps = config.optimizeDeps) === null || _config_optimizeDeps === void 0 ? void 0 : _config_optimizeDeps.include) !== null && _ref1 !== void 0 ? _ref1 : [],
65
+ ...(_ref1 = (_config_optimizeDeps1 = config.optimizeDeps) === null || _config_optimizeDeps1 === void 0 ? void 0 : _config_optimizeDeps1.include) !== null && _ref1 !== void 0 ? _ref1 : [],
59
66
  ...REACT_OPTIMIZE
60
67
  ])
61
- ]
68
+ ],
69
+ /*
70
+ * Top-level plugins don't run during dependency pre-bundling, so
71
+ * register ignoreModulesPlugin again here. Without this, missing
72
+ * optional peer dependencies inside pre-bundled packages throw at
73
+ * runtime instead of resolving to an empty module.
74
+ */ rolldownOptions: {
75
+ ...(_config_optimizeDeps2 = config.optimizeDeps) === null || _config_optimizeDeps2 === void 0 ? void 0 : _config_optimizeDeps2.rolldownOptions,
76
+ plugins: [
77
+ ...Array.isArray(existingRolldownPlugins) ? existingRolldownPlugins : [
78
+ existingRolldownPlugins
79
+ ].filter(Boolean),
80
+ (0, _plugins.ignoreModulesPlugin)({
81
+ package: {
82
+ dependencies: {}
83
+ }
84
+ })
85
+ ]
86
+ }
62
87
  },
63
88
  plugins: [
64
89
  ...(_config_plugins = config.plugins) !== null && _config_plugins !== void 0 ? _config_plugins : [],
65
90
  ...plugins
66
- ]
91
+ ],
92
+ customLogger: (0, _createfilteringlogger.createFilteringLogger)()
67
93
  };
68
94
  /* istanbul ignore next: debug only */ _utils.log.debug('storybook-config:vite-final', ()=>(0, _nodeutil.inspect)({
69
95
  merged
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/storybook-config/vite-final.ts"],"sourcesContent":["import { inspect } from 'node:util';\nimport type { InlineConfig } from 'vite';\nimport { log } from '../utils';\nimport { createCssConfig } from '../vite/config/create-css-config';\nimport { svgrPlugin } from '../vite/plugins/svgr-plugin';\nimport type { ViteBuildContext } from '../vite/types';\n\ninterface ViteFinalOptions {\n /*\n * Storybook signals the build type through `configType`, not Vite's\n * `config.mode` (which Storybook's Vite builder leaves unset).\n */\n configType?: 'DEVELOPMENT' | 'PRODUCTION';\n}\n\n/*\n * Pre-bundle and dedupe React so the Storybook preview loads a single React\n * instance. Storybook leaves this to Vite's automatic discovery, which can miss\n * React in monorepos.\n */\nconst REACT_DEDUPE = ['react', 'react-dom'];\nconst REACT_OPTIMIZE = [...REACT_DEDUPE, 'react/jsx-runtime'];\n\nexport function viteFinal(\n config: InlineConfig,\n { configType }: ViteFinalOptions = {}\n): InlineConfig {\n const isProduction = configType === 'PRODUCTION';\n const css = createCssConfig(isProduction);\n const plugins = [svgrPlugin(getContext())];\n\n const merged: InlineConfig = {\n ...config,\n css: {\n ...config.css,\n modules: css.modules,\n preprocessorOptions: {\n ...config.css?.preprocessorOptions,\n ...css.preprocessorOptions,\n },\n },\n resolve: {\n ...config.resolve,\n dedupe: [...new Set([...(config.resolve?.dedupe ?? []), ...REACT_DEDUPE])],\n },\n optimizeDeps: {\n ...config.optimizeDeps,\n include: [...new Set([...(config.optimizeDeps?.include ?? []), ...REACT_OPTIMIZE])],\n },\n plugins: [...(config.plugins ?? []), ...plugins],\n };\n\n /* istanbul ignore next: debug only */\n log.debug('storybook-config:vite-final', () => inspect({ merged }, { depth: null }));\n\n return merged;\n}\n\nfunction getContext(): ViteBuildContext {\n /*\n * svgrPlugin only reads bundlerConfig.pluginOverrides, so a minimal context\n * is enough to reuse it with startup's default SVG include patterns.\n */\n return { bundlerConfig: { pluginOverrides: {} } } as ViteBuildContext;\n}\n"],"names":["viteFinal","REACT_DEDUPE","REACT_OPTIMIZE","config","configType","isProduction","css","createCssConfig","plugins","svgrPlugin","getContext","merged","modules","preprocessorOptions","resolve","dedupe","Set","optimizeDeps","include","log","debug","inspect","depth","bundlerConfig","pluginOverrides"],"mappings":";;;;+BAuBgBA;;;eAAAA;;;0BAvBQ;uBAEJ;iCACY;4BACL;AAW3B;;;;CAIC,GACD,MAAMC,eAAe;IAAC;IAAS;CAAY;AAC3C,MAAMC,iBAAiB;OAAID;IAAc;CAAoB;AAEtD,SAASD,UACZG,MAAoB,EACpB,EAAEC,UAAU,EAAoB,GAAG,CAAC,CAAC;qBAwBnBD;QAZHA,aAMkBA,iBAICA;IApBlC,MAAME,eAAeD,eAAe;IACpC,MAAME,MAAMC,IAAAA,gCAAe,EAACF;IAC5B,MAAMG,UAAU;QAACC,IAAAA,sBAAU,EAACC;KAAc;IAE1C,MAAMC,SAAuB;QACzB,GAAGR,MAAM;QACTG,KAAK;YACD,GAAGH,OAAOG,GAAG;YACbM,SAASN,IAAIM,OAAO;YACpBC,qBAAqB;oBACdV,cAAAA,OAAOG,GAAG,cAAVH,kCAAAA,YAAYU,mBAAmB,AAAlC;gBACA,GAAGP,IAAIO,mBAAmB;YAC9B;QACJ;QACAC,SAAS;YACL,GAAGX,OAAOW,OAAO;YACjBC,QAAQ;mBAAI,IAAIC,IAAI;gCAAKb,kBAAAA,OAAOW,OAAO,cAAdX,sCAAAA,gBAAgBY,MAAM,uCAAI,EAAE;uBAAMd;iBAAa;aAAE;QAC9E;QACAgB,cAAc;YACV,GAAGd,OAAOc,YAAY;YACtBC,SAAS;mBAAI,IAAIF,IAAI;iCAAKb,uBAAAA,OAAOc,YAAY,cAAnBd,2CAAAA,qBAAqBe,OAAO,yCAAI,EAAE;uBAAMhB;iBAAe;aAAE;QACvF;QACAM,SAAS;gBAAKL,kBAAAA,OAAOK,OAAO,cAAdL,6BAAAA,kBAAkB,EAAE;eAAMK;SAAQ;IACpD;IAEA,oCAAoC,GACpCW,UAAG,CAACC,KAAK,CAAC,+BAA+B,IAAMC,IAAAA,iBAAO,EAAC;YAAEV;QAAO,GAAG;YAAEW,OAAO;QAAK;IAEjF,OAAOX;AACX;AAEA,SAASD;IACL;;;KAGC,GACD,OAAO;QAAEa,eAAe;YAAEC,iBAAiB,CAAC;QAAE;IAAE;AACpD"}
1
+ {"version":3,"sources":["../../src/storybook-config/vite-final.ts"],"sourcesContent":["import { inspect } from 'node:util';\nimport type { InlineConfig } from 'vite';\nimport { log } from '../utils';\nimport { createCssConfig } from '../vite/config/create-css-config';\nimport { createFilteringLogger } from '../vite/config/create-filtering-logger';\nimport { ignoreModulesPlugin, svgrPlugin } from '../vite/plugins';\nimport type { ViteBuildContext } from '../vite/types';\n\ninterface ViteFinalOptions {\n /*\n * Storybook signals the build type through `configType`, not Vite's\n * `config.mode` (which Storybook's Vite builder leaves unset).\n */\n configType?: 'DEVELOPMENT' | 'PRODUCTION';\n}\n\n/*\n * Pre-bundle and dedupe React so the Storybook preview loads a single React\n * instance. Storybook leaves this to Vite's automatic discovery, which can miss\n * React in monorepos.\n */\nconst REACT_DEDUPE = ['react', 'react-dom'];\nconst REACT_OPTIMIZE = [...REACT_DEDUPE, 'react/jsx-runtime'];\n\nexport function viteFinal(\n config: InlineConfig,\n { configType }: ViteFinalOptions = {}\n): InlineConfig {\n const isProduction = configType === 'PRODUCTION';\n const css = createCssConfig(isProduction);\n const plugins = [\n svgrPlugin(getContext()),\n ignoreModulesPlugin({ package: { dependencies: {} } }),\n ];\n const existingRolldownPlugins = config.optimizeDeps?.rolldownOptions?.plugins;\n\n const merged: InlineConfig = {\n ...config,\n css: {\n ...config.css,\n modules: css.modules,\n preprocessorOptions: {\n ...config.css?.preprocessorOptions,\n ...css.preprocessorOptions,\n },\n },\n resolve: {\n ...config.resolve,\n dedupe: [...new Set([...(config.resolve?.dedupe ?? []), ...REACT_DEDUPE])],\n },\n optimizeDeps: {\n ...config.optimizeDeps,\n include: [...new Set([...(config.optimizeDeps?.include ?? []), ...REACT_OPTIMIZE])],\n /*\n * Top-level plugins don't run during dependency pre-bundling, so\n * register ignoreModulesPlugin again here. Without this, missing\n * optional peer dependencies inside pre-bundled packages throw at\n * runtime instead of resolving to an empty module.\n */\n rolldownOptions: {\n ...config.optimizeDeps?.rolldownOptions,\n plugins: [\n ...(Array.isArray(existingRolldownPlugins)\n ? existingRolldownPlugins\n : [existingRolldownPlugins].filter(Boolean)),\n ignoreModulesPlugin({ package: { dependencies: {} } }),\n ],\n },\n },\n plugins: [...(config.plugins ?? []), ...plugins],\n customLogger: createFilteringLogger(),\n };\n\n /* istanbul ignore next: debug only */\n log.debug('storybook-config:vite-final', () => inspect({ merged }, { depth: null }));\n\n return merged;\n}\n\nfunction getContext(): ViteBuildContext {\n /*\n * svgrPlugin only reads bundlerConfig.pluginOverrides, so a minimal context\n * is enough to reuse it with startup's default SVG include patterns.\n */\n return { bundlerConfig: { pluginOverrides: {} } } as ViteBuildContext;\n}\n"],"names":["viteFinal","REACT_DEDUPE","REACT_OPTIMIZE","config","configType","isProduction","css","createCssConfig","plugins","svgrPlugin","getContext","ignoreModulesPlugin","package","dependencies","existingRolldownPlugins","optimizeDeps","rolldownOptions","merged","modules","preprocessorOptions","resolve","dedupe","Set","include","Array","isArray","filter","Boolean","customLogger","createFilteringLogger","log","debug","inspect","depth","bundlerConfig","pluginOverrides"],"mappings":";;;;+BAwBgBA;;;eAAAA;;;0BAxBQ;uBAEJ;iCACY;uCACM;yBACU;AAWhD;;;;CAIC,GACD,MAAMC,eAAe;IAAC;IAAS;CAAY;AAC3C,MAAMC,iBAAiB;OAAID;IAAc;CAAoB;AAEtD,SAASD,UACZG,MAAoB,EACpB,EAAEC,UAAU,EAAoB,GAAG,CAAC,CAAC;qBA2CnBD;QAnCcA,sCAAAA,sBAQjBA,aAMkBA,iBAICA,uBAQnBA;IAhCf,MAAME,eAAeD,eAAe;IACpC,MAAME,MAAMC,IAAAA,gCAAe,EAACF;IAC5B,MAAMG,UAAU;QACZC,IAAAA,mBAAU,EAACC;QACXC,IAAAA,4BAAmB,EAAC;YAAEC,SAAS;gBAAEC,cAAc,CAAC;YAAE;QAAE;KACvD;IACD,MAAMC,2BAA0BX,uBAAAA,OAAOY,YAAY,cAAnBZ,4CAAAA,uCAAAA,qBAAqBa,eAAe,cAApCb,2DAAAA,qCAAsCK,OAAO;IAE7E,MAAMS,SAAuB;QACzB,GAAGd,MAAM;QACTG,KAAK;YACD,GAAGH,OAAOG,GAAG;YACbY,SAASZ,IAAIY,OAAO;YACpBC,qBAAqB;oBACdhB,cAAAA,OAAOG,GAAG,cAAVH,kCAAAA,YAAYgB,mBAAmB,AAAlC;gBACA,GAAGb,IAAIa,mBAAmB;YAC9B;QACJ;QACAC,SAAS;YACL,GAAGjB,OAAOiB,OAAO;YACjBC,QAAQ;mBAAI,IAAIC,IAAI;gCAAKnB,kBAAAA,OAAOiB,OAAO,cAAdjB,sCAAAA,gBAAgBkB,MAAM,uCAAI,EAAE;uBAAMpB;iBAAa;aAAE;QAC9E;QACAc,cAAc;YACV,GAAGZ,OAAOY,YAAY;YACtBQ,SAAS;mBAAI,IAAID,IAAI;iCAAKnB,wBAAAA,OAAOY,YAAY,cAAnBZ,4CAAAA,sBAAqBoB,OAAO,yCAAI,EAAE;uBAAMrB;iBAAe;aAAE;YACnF;;;;;aAKC,GACDc,iBAAiB;oBACVb,wBAAAA,OAAOY,YAAY,cAAnBZ,4CAAAA,sBAAqBa,eAAe,AAAvC;gBACAR,SAAS;uBACDgB,MAAMC,OAAO,CAACX,2BACZA,0BACA;wBAACA;qBAAwB,CAACY,MAAM,CAACC;oBACvChB,IAAAA,4BAAmB,EAAC;wBAAEC,SAAS;4BAAEC,cAAc,CAAC;wBAAE;oBAAE;iBACvD;YACL;QACJ;QACAL,SAAS;gBAAKL,kBAAAA,OAAOK,OAAO,cAAdL,6BAAAA,kBAAkB,EAAE;eAAMK;SAAQ;QAChDoB,cAAcC,IAAAA,4CAAqB;IACvC;IAEA,oCAAoC,GACpCC,UAAG,CAACC,KAAK,CAAC,+BAA+B,IAAMC,IAAAA,iBAAO,EAAC;YAAEf;QAAO,GAAG;YAAEgB,OAAO;QAAK;IAEjF,OAAOhB;AACX;AAEA,SAASP;IACL;;;KAGC,GACD,OAAO;QAAEwB,eAAe;YAAEC,iBAAiB,CAAC;QAAE;IAAE;AACpD"}
@@ -1 +1 @@
1
- {"version":3,"file":"webpack-final.d.ts","sourceRoot":"","sources":["../../src/storybook-config/webpack-final.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAI7C,OAAO,EAAE,SAAS,EAAuB,MAAM,kBAAkB,CAAC;AAElE,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,GAAE,SAAc,GAAG,aAAa,CAgB5F"}
1
+ {"version":3,"file":"webpack-final.d.ts","sourceRoot":"","sources":["../../src/storybook-config/webpack-final.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAQ7C,OAAO,EAAE,SAAS,EAAuB,MAAM,kBAAkB,CAAC;AAElE,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,GAAE,SAAc,GAAG,aAAa,CAgB5F"}
@@ -64,7 +64,9 @@ function getContext(config) {
64
64
  }
65
65
  function getPlugins(context, overrides) {
66
66
  return [
67
- (0, _plugins.miniCssExtractPlugin)(context, overrides)
67
+ (0, _plugins.miniCssExtractPlugin)(context, overrides),
68
+ (0, _plugins.ignorePlugin)(context, {}),
69
+ (0, _plugins.filterWarningsPlugin)(context, {})
68
70
  ].filter((plugin)=>!!plugin);
69
71
  }
70
72
  function getRules(context, overrides) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/storybook-config/webpack-final.ts"],"sourcesContent":["import { getPackageManager } from '@servicetitan/install';\nimport { inspect } from 'node:util';\nimport type { Configuration } from 'webpack';\nimport { log } from '../utils';\nimport { rulesConfig } from '../webpack/configs';\nimport { miniCssExtractPlugin } from '../webpack/configs/plugins';\nimport { Overrides, WebpackBuildContext } from '../webpack/types';\n\nexport function webpackFinal(config: Configuration, overrides: Overrides = {}): Configuration {\n const context = getContext(config);\n const rules = getRules(context, overrides);\n const plugins = getPlugins(context, overrides);\n\n /* istanbul ignore next: debug only */\n log.debug('storybook-config:webpack-final', () => inspect({ rules, plugins }, { depth: null }));\n\n return {\n ...config,\n module: {\n ...config.module,\n rules: [...transformDefaultRules(config.module?.rules), ...rules],\n },\n plugins: [...(config.plugins ?? []), ...plugins],\n };\n}\n\nfunction getContext(config: Configuration): WebpackBuildContext {\n return {\n package: {\n name: '',\n version: '',\n destination: '',\n source: '',\n dependencies: {},\n sharedDependencies: {},\n isWebComponent: false,\n isLegacyRoot: false,\n isExposeSharedDependencies: false,\n packageManager: getPackageManager(),\n },\n build: {\n name: '',\n isProduction: config.mode === 'production',\n },\n options: {},\n bundlerConfig: {},\n };\n}\n\nfunction getPlugins(context: WebpackBuildContext, overrides: Overrides) {\n return [miniCssExtractPlugin(context, overrides)].filter(plugin => !!plugin);\n}\n\nfunction getRules(context: WebpackBuildContext, overrides: Overrides) {\n const include = ['.module.css', '.module.less', '.less', '.module.scss', '.scss', '.svg'];\n const exclude = ['.css'];\n\n const { rules } = rulesConfig(context, overrides);\n\n return rules.filter(\n ({ test }) =>\n !(test instanceof RegExp) ||\n include.some(ext => test.exec(ext) && !exclude.some(ext => test.exec(ext)))\n );\n}\n\nfunction transformDefaultRules(rules: NonNullable<Configuration['module']>['rules'] = []) {\n const result = rules.map(rule => {\n if (rule && typeof rule === 'object' && rule.test instanceof RegExp) {\n if (rule.test.test('.css')) {\n return { ...rule, exclude: /\\.module.css$/ };\n }\n if (rule.test.test('.svg')) {\n return { ...rule, exclude: /\\.svg$/i };\n }\n }\n return rule;\n });\n\n /* istanbul ignore next: debug only */\n log.debug('storybook-config:transform-default-rules', () =>\n inspect({ result }, { depth: null })\n );\n\n return result;\n}\n"],"names":["webpackFinal","config","overrides","context","getContext","rules","getRules","plugins","getPlugins","log","debug","inspect","depth","module","transformDefaultRules","package","name","version","destination","source","dependencies","sharedDependencies","isWebComponent","isLegacyRoot","isExposeSharedDependencies","packageManager","getPackageManager","build","isProduction","mode","options","bundlerConfig","miniCssExtractPlugin","filter","plugin","include","exclude","rulesConfig","test","RegExp","some","ext","exec","result","map","rule"],"mappings":";;;;+BAQgBA;;;eAAAA;;;yBARkB;0BACV;uBAEJ;yBACQ;yBACS;AAG9B,SAASA,aAAaC,MAAqB,EAAEC,YAAuB,CAAC,CAAC;QAcvDD;QAFuBA;IAXzC,MAAME,UAAUC,WAAWH;IAC3B,MAAMI,QAAQC,SAASH,SAASD;IAChC,MAAMK,UAAUC,WAAWL,SAASD;IAEpC,oCAAoC,GACpCO,UAAG,CAACC,KAAK,CAAC,kCAAkC,IAAMC,IAAAA,iBAAO,EAAC;YAAEN;YAAOE;QAAQ,GAAG;YAAEK,OAAO;QAAK;IAE5F,OAAO;QACH,GAAGX,MAAM;QACTY,QAAQ;YACJ,GAAGZ,OAAOY,MAAM;YAChBR,OAAO;mBAAIS,uBAAsBb,iBAAAA,OAAOY,MAAM,cAAbZ,qCAAAA,eAAeI,KAAK;mBAAMA;aAAM;QACrE;QACAE,SAAS;gBAAKN,kBAAAA,OAAOM,OAAO,cAAdN,6BAAAA,kBAAkB,EAAE;eAAMM;SAAQ;IACpD;AACJ;AAEA,SAASH,WAAWH,MAAqB;IACrC,OAAO;QACHc,SAAS;YACLC,MAAM;YACNC,SAAS;YACTC,aAAa;YACbC,QAAQ;YACRC,cAAc,CAAC;YACfC,oBAAoB,CAAC;YACrBC,gBAAgB;YAChBC,cAAc;YACdC,4BAA4B;YAC5BC,gBAAgBC,IAAAA,0BAAiB;QACrC;QACAC,OAAO;YACHX,MAAM;YACNY,cAAc3B,OAAO4B,IAAI,KAAK;QAClC;QACAC,SAAS,CAAC;QACVC,eAAe,CAAC;IACpB;AACJ;AAEA,SAASvB,WAAWL,OAA4B,EAAED,SAAoB;IAClE,OAAO;QAAC8B,IAAAA,6BAAoB,EAAC7B,SAASD;KAAW,CAAC+B,MAAM,CAACC,CAAAA,SAAU,CAAC,CAACA;AACzE;AAEA,SAAS5B,SAASH,OAA4B,EAAED,SAAoB;IAChE,MAAMiC,UAAU;QAAC;QAAe;QAAgB;QAAS;QAAgB;QAAS;KAAO;IACzF,MAAMC,UAAU;QAAC;KAAO;IAExB,MAAM,EAAE/B,KAAK,EAAE,GAAGgC,IAAAA,oBAAW,EAAClC,SAASD;IAEvC,OAAOG,MAAM4B,MAAM,CACf,CAAC,EAAEK,IAAI,EAAE,GACL,CAAEA,CAAAA,gBAAgBC,MAAK,KACvBJ,QAAQK,IAAI,CAACC,CAAAA,MAAOH,KAAKI,IAAI,CAACD,QAAQ,CAACL,QAAQI,IAAI,CAACC,CAAAA,MAAOH,KAAKI,IAAI,CAACD;AAEjF;AAEA,SAAS3B,sBAAsBT,QAAuD,EAAE;IACpF,MAAMsC,SAAStC,MAAMuC,GAAG,CAACC,CAAAA;QACrB,IAAIA,QAAQ,OAAOA,SAAS,YAAYA,KAAKP,IAAI,YAAYC,QAAQ;YACjE,IAAIM,KAAKP,IAAI,CAACA,IAAI,CAAC,SAAS;gBACxB,OAAO;oBAAE,GAAGO,IAAI;oBAAET,SAAS;gBAAgB;YAC/C;YACA,IAAIS,KAAKP,IAAI,CAACA,IAAI,CAAC,SAAS;gBACxB,OAAO;oBAAE,GAAGO,IAAI;oBAAET,SAAS;gBAAU;YACzC;QACJ;QACA,OAAOS;IACX;IAEA,oCAAoC,GACpCpC,UAAG,CAACC,KAAK,CAAC,4CAA4C,IAClDC,IAAAA,iBAAO,EAAC;YAAEgC;QAAO,GAAG;YAAE/B,OAAO;QAAK;IAGtC,OAAO+B;AACX"}
1
+ {"version":3,"sources":["../../src/storybook-config/webpack-final.ts"],"sourcesContent":["import { getPackageManager } from '@servicetitan/install';\nimport { inspect } from 'node:util';\nimport type { Configuration } from 'webpack';\nimport { log } from '../utils';\nimport { rulesConfig } from '../webpack/configs';\nimport {\n filterWarningsPlugin,\n ignorePlugin,\n miniCssExtractPlugin,\n} from '../webpack/configs/plugins';\nimport { Overrides, WebpackBuildContext } from '../webpack/types';\n\nexport function webpackFinal(config: Configuration, overrides: Overrides = {}): Configuration {\n const context = getContext(config);\n const rules = getRules(context, overrides);\n const plugins = getPlugins(context, overrides);\n\n /* istanbul ignore next: debug only */\n log.debug('storybook-config:webpack-final', () => inspect({ rules, plugins }, { depth: null }));\n\n return {\n ...config,\n module: {\n ...config.module,\n rules: [...transformDefaultRules(config.module?.rules), ...rules],\n },\n plugins: [...(config.plugins ?? []), ...plugins],\n };\n}\n\nfunction getContext(config: Configuration): WebpackBuildContext {\n return {\n package: {\n name: '',\n version: '',\n destination: '',\n source: '',\n dependencies: {},\n sharedDependencies: {},\n isWebComponent: false,\n isLegacyRoot: false,\n isExposeSharedDependencies: false,\n packageManager: getPackageManager(),\n },\n build: {\n name: '',\n isProduction: config.mode === 'production',\n },\n options: {},\n bundlerConfig: {},\n };\n}\n\nfunction getPlugins(context: WebpackBuildContext, overrides: Overrides) {\n return [\n miniCssExtractPlugin(context, overrides),\n ignorePlugin(context, {}),\n filterWarningsPlugin(context, {}),\n ].filter(plugin => !!plugin);\n}\n\nfunction getRules(context: WebpackBuildContext, overrides: Overrides) {\n const include = ['.module.css', '.module.less', '.less', '.module.scss', '.scss', '.svg'];\n const exclude = ['.css'];\n\n const { rules } = rulesConfig(context, overrides);\n\n return rules.filter(\n ({ test }) =>\n !(test instanceof RegExp) ||\n include.some(ext => test.exec(ext) && !exclude.some(ext => test.exec(ext)))\n );\n}\n\nfunction transformDefaultRules(rules: NonNullable<Configuration['module']>['rules'] = []) {\n const result = rules.map(rule => {\n if (rule && typeof rule === 'object' && rule.test instanceof RegExp) {\n if (rule.test.test('.css')) {\n return { ...rule, exclude: /\\.module.css$/ };\n }\n if (rule.test.test('.svg')) {\n return { ...rule, exclude: /\\.svg$/i };\n }\n }\n return rule;\n });\n\n /* istanbul ignore next: debug only */\n log.debug('storybook-config:transform-default-rules', () =>\n inspect({ result }, { depth: null })\n );\n\n return result;\n}\n"],"names":["webpackFinal","config","overrides","context","getContext","rules","getRules","plugins","getPlugins","log","debug","inspect","depth","module","transformDefaultRules","package","name","version","destination","source","dependencies","sharedDependencies","isWebComponent","isLegacyRoot","isExposeSharedDependencies","packageManager","getPackageManager","build","isProduction","mode","options","bundlerConfig","miniCssExtractPlugin","ignorePlugin","filterWarningsPlugin","filter","plugin","include","exclude","rulesConfig","test","RegExp","some","ext","exec","result","map","rule"],"mappings":";;;;+BAYgBA;;;eAAAA;;;yBAZkB;0BACV;uBAEJ;yBACQ;yBAKrB;AAGA,SAASA,aAAaC,MAAqB,EAAEC,YAAuB,CAAC,CAAC;QAcvDD;QAFuBA;IAXzC,MAAME,UAAUC,WAAWH;IAC3B,MAAMI,QAAQC,SAASH,SAASD;IAChC,MAAMK,UAAUC,WAAWL,SAASD;IAEpC,oCAAoC,GACpCO,UAAG,CAACC,KAAK,CAAC,kCAAkC,IAAMC,IAAAA,iBAAO,EAAC;YAAEN;YAAOE;QAAQ,GAAG;YAAEK,OAAO;QAAK;IAE5F,OAAO;QACH,GAAGX,MAAM;QACTY,QAAQ;YACJ,GAAGZ,OAAOY,MAAM;YAChBR,OAAO;mBAAIS,uBAAsBb,iBAAAA,OAAOY,MAAM,cAAbZ,qCAAAA,eAAeI,KAAK;mBAAMA;aAAM;QACrE;QACAE,SAAS;gBAAKN,kBAAAA,OAAOM,OAAO,cAAdN,6BAAAA,kBAAkB,EAAE;eAAMM;SAAQ;IACpD;AACJ;AAEA,SAASH,WAAWH,MAAqB;IACrC,OAAO;QACHc,SAAS;YACLC,MAAM;YACNC,SAAS;YACTC,aAAa;YACbC,QAAQ;YACRC,cAAc,CAAC;YACfC,oBAAoB,CAAC;YACrBC,gBAAgB;YAChBC,cAAc;YACdC,4BAA4B;YAC5BC,gBAAgBC,IAAAA,0BAAiB;QACrC;QACAC,OAAO;YACHX,MAAM;YACNY,cAAc3B,OAAO4B,IAAI,KAAK;QAClC;QACAC,SAAS,CAAC;QACVC,eAAe,CAAC;IACpB;AACJ;AAEA,SAASvB,WAAWL,OAA4B,EAAED,SAAoB;IAClE,OAAO;QACH8B,IAAAA,6BAAoB,EAAC7B,SAASD;QAC9B+B,IAAAA,qBAAY,EAAC9B,SAAS,CAAC;QACvB+B,IAAAA,6BAAoB,EAAC/B,SAAS,CAAC;KAClC,CAACgC,MAAM,CAACC,CAAAA,SAAU,CAAC,CAACA;AACzB;AAEA,SAAS9B,SAASH,OAA4B,EAAED,SAAoB;IAChE,MAAMmC,UAAU;QAAC;QAAe;QAAgB;QAAS;QAAgB;QAAS;KAAO;IACzF,MAAMC,UAAU;QAAC;KAAO;IAExB,MAAM,EAAEjC,KAAK,EAAE,GAAGkC,IAAAA,oBAAW,EAACpC,SAASD;IAEvC,OAAOG,MAAM8B,MAAM,CACf,CAAC,EAAEK,IAAI,EAAE,GACL,CAAEA,CAAAA,gBAAgBC,MAAK,KACvBJ,QAAQK,IAAI,CAACC,CAAAA,MAAOH,KAAKI,IAAI,CAACD,QAAQ,CAACL,QAAQI,IAAI,CAACC,CAAAA,MAAOH,KAAKI,IAAI,CAACD;AAEjF;AAEA,SAAS7B,sBAAsBT,QAAuD,EAAE;IACpF,MAAMwC,SAASxC,MAAMyC,GAAG,CAACC,CAAAA;QACrB,IAAIA,QAAQ,OAAOA,SAAS,YAAYA,KAAKP,IAAI,YAAYC,QAAQ;YACjE,IAAIM,KAAKP,IAAI,CAACA,IAAI,CAAC,SAAS;gBACxB,OAAO;oBAAE,GAAGO,IAAI;oBAAET,SAAS;gBAAgB;YAC/C;YACA,IAAIS,KAAKP,IAAI,CAACA,IAAI,CAAC,SAAS;gBACxB,OAAO;oBAAE,GAAGO,IAAI;oBAAET,SAAS;gBAAU;YACzC;QACJ;QACA,OAAOS;IACX;IAEA,oCAAoC,GACpCtC,UAAG,CAACC,KAAK,CAAC,4CAA4C,IAClDC,IAAAA,iBAAO,EAAC;YAAEkC;QAAO,GAAG;YAAEjC,OAAO;QAAK;IAGtC,OAAOiC;AACX"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Exits current process when the parent identified by process.env.STARTUP_PARENT_PID
3
+ * is no longer running. Use `callback` to override default behavior.
4
+ */
5
+ export declare function exitWhenParentExits(command: string, callback?: () => void): void;
6
+ //# sourceMappingURL=exit-when-parent-exits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exit-when-parent-exits.d.ts","sourceRoot":"","sources":["../../src/utils/exit-when-parent-exits.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,IAA4B,QAchG"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "exitWhenParentExits", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return exitWhenParentExits;
9
+ }
10
+ });
11
+ const _log = require("./log");
12
+ const POLL_INTERVAL_MS = 1000;
13
+ function exitWhenParentExits(command, callback = ()=>process.exit(0)) {
14
+ const parentPid = Number(process.env.STARTUP_PARENT_PID);
15
+ if (!parentPid) {
16
+ return;
17
+ }
18
+ const interval = setInterval(()=>{
19
+ if (!isRunning(parentPid)) {
20
+ clearInterval(interval);
21
+ _log.log.info(`${command} shutting down`);
22
+ callback();
23
+ }
24
+ }, POLL_INTERVAL_MS);
25
+ interval.unref();
26
+ }
27
+ function isRunning(pid) {
28
+ try {
29
+ // signal 0 sends nothing; it only checks whether the pid exists
30
+ process.kill(pid, 0);
31
+ return true;
32
+ } catch (unused) {
33
+ return false;
34
+ }
35
+ }
36
+
37
+ //# sourceMappingURL=exit-when-parent-exits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/exit-when-parent-exits.ts"],"sourcesContent":["import { log } from './log';\n\nconst POLL_INTERVAL_MS = 1000;\n\n/**\n * Exits current process when the parent identified by process.env.STARTUP_PARENT_PID\n * is no longer running. Use `callback` to override default behavior.\n */\nexport function exitWhenParentExits(command: string, callback: () => void = () => process.exit(0)) {\n const parentPid = Number(process.env.STARTUP_PARENT_PID);\n if (!parentPid) {\n return;\n }\n\n const interval = setInterval(() => {\n if (!isRunning(parentPid)) {\n clearInterval(interval);\n log.info(`${command} shutting down`);\n callback();\n }\n }, POLL_INTERVAL_MS);\n interval.unref();\n}\n\nfunction isRunning(pid: number) {\n try {\n // signal 0 sends nothing; it only checks whether the pid exists\n process.kill(pid, 0);\n return true;\n } catch {\n return false;\n }\n}\n"],"names":["exitWhenParentExits","POLL_INTERVAL_MS","command","callback","process","exit","parentPid","Number","env","STARTUP_PARENT_PID","interval","setInterval","isRunning","clearInterval","log","info","unref","pid","kill"],"mappings":";;;;+BAQgBA;;;eAAAA;;;qBARI;AAEpB,MAAMC,mBAAmB;AAMlB,SAASD,oBAAoBE,OAAe,EAAEC,WAAuB,IAAMC,QAAQC,IAAI,CAAC,EAAE;IAC7F,MAAMC,YAAYC,OAAOH,QAAQI,GAAG,CAACC,kBAAkB;IACvD,IAAI,CAACH,WAAW;QACZ;IACJ;IAEA,MAAMI,WAAWC,YAAY;QACzB,IAAI,CAACC,UAAUN,YAAY;YACvBO,cAAcH;YACdI,QAAG,CAACC,IAAI,CAAC,GAAGb,QAAQ,cAAc,CAAC;YACnCC;QACJ;IACJ,GAAGF;IACHS,SAASM,KAAK;AAClB;AAEA,SAASJ,UAAUK,GAAW;IAC1B,IAAI;QACA,gEAAgE;QAChEb,QAAQc,IAAI,CAACD,KAAK;QAClB,OAAO;IACX,EAAE,eAAM;QACJ,OAAO;IACX;AACJ"}
@@ -1,2 +1,2 @@
1
- export declare function findUp<T>(callback: (directory: string) => T | undefined): NonNullable<T> | undefined;
1
+ export declare function findUp<T>(callback: (directory: string) => T | undefined, from?: string): NonNullable<T> | undefined;
2
2
  //# sourceMappingURL=find-up.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"find-up.d.ts","sourceRoot":"","sources":["../../src/utils/find-up.ts"],"names":[],"mappings":"AAEA,wBAAgB,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,CAAC,GAAG,SAAS,8BASvE"}
1
+ {"version":3,"file":"find-up.d.ts","sourceRoot":"","sources":["../../src/utils/find-up.ts"],"names":[],"mappings":"AAEA,wBAAgB,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,CAAC,GAAG,SAAS,EAAE,IAAI,SAAO,8BASpF"}
@@ -14,8 +14,8 @@ function _interop_require_default(obj) {
14
14
  default: obj
15
15
  };
16
16
  }
17
- function findUp(callback) {
18
- let directory = _nodepath.default.resolve('./');
17
+ function findUp(callback, from = './') {
18
+ let directory = _nodepath.default.resolve(from);
19
19
  do {
20
20
  const result = callback(directory);
21
21
  if (result) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/find-up.ts"],"sourcesContent":["import path from 'node:path';\n\nexport function findUp<T>(callback: (directory: string) => T | undefined) {\n let directory = path.resolve('./');\n do {\n const result = callback(directory);\n if (result) {\n return result;\n }\n directory = path.resolve(path.join(directory, '../'));\n } while (path.parse(directory).name);\n}\n"],"names":["findUp","callback","directory","path","resolve","result","join","parse","name"],"mappings":";;;;+BAEgBA;;;eAAAA;;;iEAFC;;;;;;AAEV,SAASA,OAAUC,QAA8C;IACpE,IAAIC,YAAYC,iBAAI,CAACC,OAAO,CAAC;IAC7B,GAAG;QACC,MAAMC,SAASJ,SAASC;QACxB,IAAIG,QAAQ;YACR,OAAOA;QACX;QACAH,YAAYC,iBAAI,CAACC,OAAO,CAACD,iBAAI,CAACG,IAAI,CAACJ,WAAW;IAClD,QAASC,iBAAI,CAACI,KAAK,CAACL,WAAWM,IAAI,CAAE;AACzC"}
1
+ {"version":3,"sources":["../../src/utils/find-up.ts"],"sourcesContent":["import path from 'node:path';\n\nexport function findUp<T>(callback: (directory: string) => T | undefined, from = './') {\n let directory = path.resolve(from);\n do {\n const result = callback(directory);\n if (result) {\n return result;\n }\n directory = path.resolve(path.join(directory, '../'));\n } while (path.parse(directory).name);\n}\n"],"names":["findUp","callback","from","directory","path","resolve","result","join","parse","name"],"mappings":";;;;+BAEgBA;;;eAAAA;;;iEAFC;;;;;;AAEV,SAASA,OAAUC,QAA8C,EAAEC,OAAO,IAAI;IACjF,IAAIC,YAAYC,iBAAI,CAACC,OAAO,CAACH;IAC7B,GAAG;QACC,MAAMI,SAASL,SAASE;QACxB,IAAIG,QAAQ;YACR,OAAOA;QACX;QACAH,YAAYC,iBAAI,CAACC,OAAO,CAACD,iBAAI,CAACG,IAAI,CAACJ,WAAW;IAClD,QAASC,iBAAI,CAACI,KAAK,CAACL,WAAWM,IAAI,CAAE;AACzC"}
@@ -6,10 +6,11 @@ import type svgr from 'vite-plugin-svgr';
6
6
  import type { ViteUserConfig } from 'vitest/config';
7
7
  import type { Configuration as WebpackDevServerConfiguration } from 'webpack-dev-server';
8
8
  import type { ReviewConfiguration } from '../cli/commands/review';
9
+ import { bundleConstants } from '../core/constants';
9
10
  import { LocationOrJson } from './types';
10
11
  type VitePluginSvgrOptions = NonNullable<Parameters<typeof svgr>[0]>;
11
12
  type ElementType<T> = T extends readonly (infer ElementType)[] ? ElementType : never;
12
- export type Bundler = 'vite' | 'webpack';
13
+ export type Bundler = ElementType<typeof bundleConstants.bundlers>;
13
14
  export declare const allowedWebpackDevServerOptions: readonly ["headers", "port", "proxy", "static"];
14
15
  export interface MinifyJSOptions {
15
16
  compress?: boolean;
@@ -46,6 +47,7 @@ export interface NodeConfiguration {
46
47
  }
47
48
  export declare enum CommandName {
48
49
  'build' = "build",
50
+ 'bundle-package' = "bundle-package",
49
51
  'bundle-vite' = "bundle-vite",
50
52
  'bundle-webpack' = "bundle-webpack",
51
53
  'clean' = "clean",
@@ -111,7 +113,7 @@ interface WebComponentOptions {
111
113
  */
112
114
  branches?: Record<string, WebComponentBranchConfigs>;
113
115
  }
114
- type Configuration = {
116
+ export type Configuration = {
115
117
  'bundler'?: Bundler;
116
118
  'jest'?: JestConfiguration;
117
119
  'legacy'?: boolean;
@@ -152,7 +154,8 @@ export declare function getSwcCompilePackageConfiguration(): import("@swc/cli").
152
154
  export declare function isBundle(locationOrJson?: LocationOrJson): boolean;
153
155
  export declare function isDevServerDisabled(): boolean;
154
156
  export declare function isViteDevServerDisabled(): boolean;
155
- export declare function isExposeSharedDependencies(): boolean;
157
+ export declare function getSharedDependencies(locationOrJson?: LocationOrJson): Record<string, string> | undefined;
158
+ export declare function isExposeSharedDependencies(locationOrJson?: LocationOrJson): boolean;
156
159
  export declare function isLegacy(locationOrJson?: LocationOrJson): boolean;
157
160
  export declare function isLegacyRoot(): boolean;
158
161
  export declare function isStyleCheckDisabled(): boolean;