@servicetitan/startup 36.4.0 → 37.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (442) hide show
  1. package/bin/analyze.js +3 -0
  2. package/dist/cli/commands/build.d.ts.map +1 -1
  3. package/dist/cli/commands/build.js +4 -5
  4. package/dist/cli/commands/build.js.map +1 -1
  5. package/dist/cli/commands/bundle-vite.d.ts.map +1 -1
  6. package/dist/cli/commands/bundle-vite.js +18 -1
  7. package/dist/cli/commands/bundle-vite.js.map +1 -1
  8. package/dist/cli/commands/registry/build.d.ts +6 -0
  9. package/dist/cli/commands/registry/build.d.ts.map +1 -1
  10. package/dist/cli/commands/registry/build.js +10 -1
  11. package/dist/cli/commands/registry/build.js.map +1 -1
  12. package/dist/cli/commands/registry/command-registry.d.ts +12 -28
  13. package/dist/cli/commands/registry/command-registry.d.ts.map +1 -1
  14. package/dist/cli/commands/registry/command-registry.js +0 -3
  15. package/dist/cli/commands/registry/command-registry.js.map +1 -1
  16. package/dist/cli/commands/registry/start.d.ts +6 -0
  17. package/dist/cli/commands/registry/start.d.ts.map +1 -1
  18. package/dist/cli/commands/registry/start.js +10 -1
  19. package/dist/cli/commands/registry/start.js.map +1 -1
  20. package/dist/cli/commands/review/rules/index.d.ts.map +1 -1
  21. package/dist/cli/commands/review/rules/index.js +2 -0
  22. package/dist/cli/commands/review/rules/index.js.map +1 -1
  23. package/dist/cli/commands/review/rules/require-compatible-typescript.d.ts +13 -0
  24. package/dist/cli/commands/review/rules/require-compatible-typescript.d.ts.map +1 -0
  25. package/dist/cli/commands/review/rules/require-compatible-typescript.js +72 -0
  26. package/dist/cli/commands/review/rules/require-compatible-typescript.js.map +1 -0
  27. package/dist/cli/commands/start.d.ts.map +1 -1
  28. package/dist/cli/commands/start.js +3 -4
  29. package/dist/cli/commands/start.js.map +1 -1
  30. package/dist/cli/index.js +1 -1
  31. package/dist/cli/index.js.map +1 -1
  32. package/dist/cli/utils/get-bundle-command.d.ts +3 -0
  33. package/dist/cli/utils/get-bundle-command.d.ts.map +1 -0
  34. package/dist/cli/utils/get-bundle-command.js +16 -0
  35. package/dist/cli/utils/get-bundle-command.js.map +1 -0
  36. package/dist/cli/utils/get-exit-code.d.ts +12 -0
  37. package/dist/cli/utils/get-exit-code.d.ts.map +1 -0
  38. package/dist/cli/utils/get-exit-code.js +26 -0
  39. package/dist/cli/utils/get-exit-code.js.map +1 -0
  40. package/dist/cli/utils/index.d.ts +3 -0
  41. package/dist/cli/utils/index.d.ts.map +1 -1
  42. package/dist/cli/utils/index.js +3 -0
  43. package/dist/cli/utils/index.js.map +1 -1
  44. package/dist/cli/utils/resolve-bundler.d.ts +8 -0
  45. package/dist/cli/utils/resolve-bundler.d.ts.map +1 -0
  46. package/dist/cli/utils/resolve-bundler.js +24 -0
  47. package/dist/cli/utils/resolve-bundler.js.map +1 -0
  48. package/dist/core/bundle-report.d.ts +4 -0
  49. package/dist/core/bundle-report.d.ts.map +1 -0
  50. package/dist/core/bundle-report.js +43 -0
  51. package/dist/core/bundle-report.js.map +1 -0
  52. package/dist/core/check-resource/check-resource.d.ts +2 -2
  53. package/dist/core/check-resource/check-resource.d.ts.map +1 -1
  54. package/dist/core/check-resource/check-resource.js +20 -13
  55. package/dist/core/check-resource/check-resource.js.map +1 -1
  56. package/dist/core/check-resource/get-peer-dependency-meta.d.ts +11 -1
  57. package/dist/core/check-resource/get-peer-dependency-meta.d.ts.map +1 -1
  58. package/dist/core/check-resource/get-peer-dependency-meta.js +58 -2
  59. package/dist/core/check-resource/get-peer-dependency-meta.js.map +1 -1
  60. package/dist/core/check-resource/index.d.ts +1 -1
  61. package/dist/core/check-resource/index.d.ts.map +1 -1
  62. package/dist/core/check-resource/index.js.map +1 -1
  63. package/dist/core/check-resource/is-resolvable.d.ts +7 -0
  64. package/dist/core/check-resource/is-resolvable.d.ts.map +1 -0
  65. package/dist/core/check-resource/is-resolvable.js +31 -0
  66. package/dist/core/check-resource/is-resolvable.js.map +1 -0
  67. package/dist/core/check-resource/types.d.ts +1 -0
  68. package/dist/core/check-resource/types.d.ts.map +1 -1
  69. package/dist/core/chunk-patterns.d.ts +7 -0
  70. package/dist/core/chunk-patterns.d.ts.map +1 -0
  71. package/dist/core/chunk-patterns.js +37 -0
  72. package/dist/core/chunk-patterns.js.map +1 -0
  73. package/dist/core/create-build-context.d.ts +0 -1
  74. package/dist/core/create-build-context.d.ts.map +1 -1
  75. package/dist/core/create-build-context.js +2 -2
  76. package/dist/core/create-build-context.js.map +1 -1
  77. package/dist/core/create-extension-regexp.d.ts +5 -0
  78. package/dist/core/create-extension-regexp.d.ts.map +1 -0
  79. package/dist/core/create-extension-regexp.js +45 -0
  80. package/dist/core/create-extension-regexp.js.map +1 -0
  81. package/dist/core/get-process-env.d.ts +3 -0
  82. package/dist/core/get-process-env.d.ts.map +1 -0
  83. package/dist/core/get-process-env.js +25 -0
  84. package/dist/core/get-process-env.js.map +1 -0
  85. package/dist/core/index.d.ts +8 -1
  86. package/dist/core/index.d.ts.map +1 -1
  87. package/dist/core/index.js +8 -1
  88. package/dist/core/index.js.map +1 -1
  89. package/dist/core/moment-locales.d.ts +2 -0
  90. package/dist/core/moment-locales.d.ts.map +1 -0
  91. package/dist/core/moment-locales.js +21 -0
  92. package/dist/core/moment-locales.js.map +1 -0
  93. package/dist/core/resolve-output-path.d.ts +3 -0
  94. package/dist/core/resolve-output-path.d.ts.map +1 -0
  95. package/dist/core/resolve-output-path.js +25 -0
  96. package/dist/core/resolve-output-path.js.map +1 -0
  97. package/dist/core/resolve-output-root.d.ts +3 -0
  98. package/dist/core/resolve-output-root.d.ts.map +1 -0
  99. package/dist/core/resolve-output-root.js +23 -0
  100. package/dist/core/resolve-output-root.js.map +1 -0
  101. package/dist/core/sort-shared-css.d.ts +2 -0
  102. package/dist/core/sort-shared-css.d.ts.map +1 -0
  103. package/dist/core/sort-shared-css.js +20 -0
  104. package/dist/core/sort-shared-css.js.map +1 -0
  105. package/dist/core/types.d.ts +1 -1
  106. package/dist/core/types.d.ts.map +1 -1
  107. package/dist/cypress/config/index.d.ts +1 -0
  108. package/dist/cypress/config/index.d.ts.map +1 -1
  109. package/dist/cypress/config/index.js +1 -0
  110. package/dist/cypress/config/index.js.map +1 -1
  111. package/dist/cypress/config/vite-config.d.ts +3 -0
  112. package/dist/cypress/config/vite-config.d.ts.map +1 -0
  113. package/dist/cypress/config/vite-config.js +58 -0
  114. package/dist/cypress/config/vite-config.js.map +1 -0
  115. package/dist/storybook-config/index.d.ts +1 -0
  116. package/dist/storybook-config/index.d.ts.map +1 -1
  117. package/dist/storybook-config/index.js +1 -0
  118. package/dist/storybook-config/index.js.map +1 -1
  119. package/dist/storybook-config/vite-final.d.ts +7 -0
  120. package/dist/storybook-config/vite-final.d.ts.map +1 -0
  121. package/dist/storybook-config/vite-final.js +86 -0
  122. package/dist/storybook-config/vite-final.js.map +1 -0
  123. package/dist/utils/get-configuration.d.ts +15 -10
  124. package/dist/utils/get-configuration.d.ts.map +1 -1
  125. package/dist/utils/get-configuration.js +32 -2
  126. package/dist/utils/get-configuration.js.map +1 -1
  127. package/dist/utils/get-package-name.d.ts +2 -1
  128. package/dist/utils/get-package-name.d.ts.map +1 -1
  129. package/dist/utils/get-package-name.js +4 -2
  130. package/dist/utils/get-package-name.js.map +1 -1
  131. package/dist/utils/index.d.ts +1 -0
  132. package/dist/utils/index.d.ts.map +1 -1
  133. package/dist/utils/index.js.map +1 -1
  134. package/dist/utils/types.d.ts +2 -0
  135. package/dist/utils/types.d.ts.map +1 -0
  136. package/dist/utils/types.js +6 -0
  137. package/dist/utils/types.js.map +1 -0
  138. package/dist/utils/validate-shared-dependencies.d.ts.map +1 -1
  139. package/dist/utils/validate-shared-dependencies.js +4 -0
  140. package/dist/utils/validate-shared-dependencies.js.map +1 -1
  141. package/dist/vite/build-shared-dependencies.d.ts.map +1 -1
  142. package/dist/vite/build-shared-dependencies.js +1 -2
  143. package/dist/vite/build-shared-dependencies.js.map +1 -1
  144. package/dist/vite/config/asset-file-names.d.ts +4 -0
  145. package/dist/vite/config/asset-file-names.d.ts.map +1 -0
  146. package/dist/vite/config/asset-file-names.js +29 -0
  147. package/dist/vite/config/asset-file-names.js.map +1 -0
  148. package/dist/vite/config/base-config.d.ts.map +1 -1
  149. package/dist/vite/config/base-config.js +67 -40
  150. package/dist/vite/config/base-config.js.map +1 -1
  151. package/dist/vite/config/code-splitting.d.ts +4 -0
  152. package/dist/vite/config/code-splitting.d.ts.map +1 -0
  153. package/dist/vite/config/code-splitting.js +48 -0
  154. package/dist/vite/config/code-splitting.js.map +1 -0
  155. package/dist/vite/config/create-css-config.d.ts +3 -0
  156. package/dist/vite/config/create-css-config.d.ts.map +1 -0
  157. package/dist/vite/config/create-css-config.js +26 -0
  158. package/dist/vite/config/create-css-config.js.map +1 -0
  159. package/dist/vite/config/create-filtering-logger.d.ts +3 -0
  160. package/dist/vite/config/create-filtering-logger.d.ts.map +1 -0
  161. package/dist/vite/config/create-filtering-logger.js +37 -0
  162. package/dist/vite/config/create-filtering-logger.js.map +1 -0
  163. package/dist/vite/config/create-vite-build-context.d.ts +2 -1
  164. package/dist/vite/config/create-vite-build-context.d.ts.map +1 -1
  165. package/dist/vite/config/create-vite-build-context.js.map +1 -1
  166. package/dist/vite/config/create-vite-config.d.ts.map +1 -1
  167. package/dist/vite/config/create-vite-config.js +30 -13
  168. package/dist/vite/config/create-vite-config.js.map +1 -1
  169. package/dist/vite/config/get-warmup-client-files.d.ts +3 -0
  170. package/dist/vite/config/get-warmup-client-files.d.ts.map +1 -0
  171. package/dist/vite/config/get-warmup-client-files.js +26 -0
  172. package/dist/vite/config/get-warmup-client-files.js.map +1 -0
  173. package/dist/vite/index.html +1 -0
  174. package/dist/vite/plugins/bundle-stat-plugin.d.ts +4 -0
  175. package/dist/vite/plugins/bundle-stat-plugin.d.ts.map +1 -0
  176. package/dist/vite/plugins/bundle-stat-plugin.js +32 -0
  177. package/dist/vite/plugins/bundle-stat-plugin.js.map +1 -0
  178. package/dist/vite/plugins/chain-source-maps-plugin.d.ts +3 -0
  179. package/dist/vite/plugins/chain-source-maps-plugin.d.ts.map +1 -0
  180. package/dist/vite/plugins/chain-source-maps-plugin.js +37 -0
  181. package/dist/vite/plugins/chain-source-maps-plugin.js.map +1 -0
  182. package/dist/vite/plugins/clean-plugin.d.ts +4 -0
  183. package/dist/vite/plugins/clean-plugin.d.ts.map +1 -0
  184. package/dist/vite/plugins/clean-plugin.js +63 -0
  185. package/dist/vite/plugins/clean-plugin.js.map +1 -0
  186. package/dist/vite/plugins/design-system-guard-plugin.d.ts +4 -0
  187. package/dist/vite/plugins/design-system-guard-plugin.d.ts.map +1 -0
  188. package/dist/vite/plugins/design-system-guard-plugin.js +35 -0
  189. package/dist/vite/plugins/design-system-guard-plugin.js.map +1 -0
  190. package/dist/vite/plugins/ignore-modules-plugin.d.ts +17 -1
  191. package/dist/vite/plugins/ignore-modules-plugin.d.ts.map +1 -1
  192. package/dist/vite/plugins/ignore-modules-plugin.js +22 -8
  193. package/dist/vite/plugins/ignore-modules-plugin.js.map +1 -1
  194. package/dist/vite/plugins/index.d.ts +7 -0
  195. package/dist/vite/plugins/index.d.ts.map +1 -1
  196. package/dist/vite/plugins/index.js +7 -0
  197. package/dist/vite/plugins/index.js.map +1 -1
  198. package/dist/vite/plugins/istanbul-plugin.d.ts +4 -0
  199. package/dist/vite/plugins/istanbul-plugin.d.ts.map +1 -0
  200. package/dist/vite/plugins/istanbul-plugin.js +27 -0
  201. package/dist/vite/plugins/istanbul-plugin.js.map +1 -0
  202. package/dist/vite/plugins/magic-comments-plugin/index.d.ts +2 -0
  203. package/dist/vite/plugins/magic-comments-plugin/index.d.ts.map +1 -0
  204. package/dist/vite/plugins/magic-comments-plugin/index.js +20 -0
  205. package/dist/vite/plugins/magic-comments-plugin/index.js.map +1 -0
  206. package/dist/vite/plugins/magic-comments-plugin/magic-comments-plugin.d.ts +4 -0
  207. package/dist/vite/plugins/magic-comments-plugin/magic-comments-plugin.d.ts.map +1 -0
  208. package/dist/vite/plugins/magic-comments-plugin/magic-comments-plugin.js +63 -0
  209. package/dist/vite/plugins/magic-comments-plugin/magic-comments-plugin.js.map +1 -0
  210. package/dist/vite/plugins/magic-comments-plugin/parse-magic-comments.d.ts +6 -0
  211. package/dist/vite/plugins/magic-comments-plugin/parse-magic-comments.d.ts.map +1 -0
  212. package/dist/vite/plugins/magic-comments-plugin/parse-magic-comments.js +40 -0
  213. package/dist/vite/plugins/magic-comments-plugin/parse-magic-comments.js.map +1 -0
  214. package/dist/vite/plugins/metadata-plugin.js +2 -2
  215. package/dist/vite/plugins/metadata-plugin.js.map +1 -1
  216. package/dist/vite/plugins/moment-locales-plugin.d.ts +5 -0
  217. package/dist/vite/plugins/moment-locales-plugin.d.ts.map +1 -0
  218. package/dist/vite/plugins/moment-locales-plugin.js +50 -0
  219. package/dist/vite/plugins/moment-locales-plugin.js.map +1 -0
  220. package/dist/vite/plugins/shared-dependencies-plugin/assemble-iife.d.ts +14 -0
  221. package/dist/vite/plugins/shared-dependencies-plugin/assemble-iife.d.ts.map +1 -0
  222. package/dist/vite/plugins/shared-dependencies-plugin/assemble-iife.js +100 -0
  223. package/dist/vite/plugins/shared-dependencies-plugin/assemble-iife.js.map +1 -0
  224. package/dist/vite/plugins/shared-dependencies-plugin/assert-no-dynamic-css.d.ts +3 -0
  225. package/dist/vite/plugins/shared-dependencies-plugin/assert-no-dynamic-css.d.ts.map +1 -0
  226. package/dist/vite/plugins/shared-dependencies-plugin/assert-no-dynamic-css.js +56 -0
  227. package/dist/vite/plugins/shared-dependencies-plugin/assert-no-dynamic-css.js.map +1 -0
  228. package/dist/vite/plugins/shared-dependencies-plugin/flatten.d.ts +2 -0
  229. package/dist/vite/plugins/shared-dependencies-plugin/flatten.d.ts.map +1 -0
  230. package/dist/vite/plugins/shared-dependencies-plugin/flatten.js +19 -0
  231. package/dist/vite/plugins/shared-dependencies-plugin/flatten.js.map +1 -0
  232. package/dist/vite/plugins/shared-dependencies-plugin/index.d.ts +2 -0
  233. package/dist/vite/plugins/shared-dependencies-plugin/index.d.ts.map +1 -0
  234. package/dist/vite/plugins/shared-dependencies-plugin/index.js +20 -0
  235. package/dist/vite/plugins/shared-dependencies-plugin/index.js.map +1 -0
  236. package/dist/vite/plugins/shared-dependencies-plugin/shared-dependencies-plugin.d.ts.map +1 -0
  237. package/dist/vite/plugins/{shared-dependencies-plugin.js → shared-dependencies-plugin/shared-dependencies-plugin.js} +29 -107
  238. package/dist/vite/plugins/shared-dependencies-plugin/shared-dependencies-plugin.js.map +1 -0
  239. package/dist/vite/plugins/utils/import-esm.d.ts +2 -0
  240. package/dist/vite/plugins/utils/import-esm.d.ts.map +1 -0
  241. package/dist/vite/plugins/utils/import-esm.js +22 -0
  242. package/dist/vite/plugins/utils/import-esm.js.map +1 -0
  243. package/dist/vite/plugins/utils/index.d.ts +3 -0
  244. package/dist/vite/plugins/utils/index.d.ts.map +1 -0
  245. package/dist/vite/plugins/utils/index.js +21 -0
  246. package/dist/vite/plugins/utils/index.js.map +1 -0
  247. package/dist/webpack/configs/optimization-config.d.ts.map +1 -1
  248. package/dist/webpack/configs/optimization-config.js +53 -24
  249. package/dist/webpack/configs/optimization-config.js.map +1 -1
  250. package/dist/webpack/configs/output-config.d.ts.map +1 -1
  251. package/dist/webpack/configs/output-config.js +0 -1
  252. package/dist/webpack/configs/output-config.js.map +1 -1
  253. package/dist/webpack/configs/plugins/assets-manifest-plugin.d.ts.map +1 -1
  254. package/dist/webpack/configs/plugins/assets-manifest-plugin.js +11 -3
  255. package/dist/webpack/configs/plugins/assets-manifest-plugin.js.map +1 -1
  256. package/dist/webpack/configs/plugins/bundle-analyser-plugin.d.ts.map +1 -1
  257. package/dist/webpack/configs/plugins/bundle-analyser-plugin.js +2 -21
  258. package/dist/webpack/configs/plugins/bundle-analyser-plugin.js.map +1 -1
  259. package/dist/webpack/configs/plugins/define-process-env-plugin.d.ts +5 -0
  260. package/dist/webpack/configs/plugins/define-process-env-plugin.d.ts.map +1 -0
  261. package/dist/webpack/configs/plugins/define-process-env-plugin.js +20 -0
  262. package/dist/webpack/configs/plugins/define-process-env-plugin.js.map +1 -0
  263. package/dist/webpack/configs/plugins/ignore-plugin/empty-module.d.ts +2 -0
  264. package/dist/webpack/configs/plugins/ignore-plugin/empty-module.d.ts.map +1 -0
  265. package/dist/webpack/configs/plugins/ignore-plugin/empty-module.js +11 -0
  266. package/dist/webpack/configs/plugins/ignore-plugin/empty-module.js.map +1 -0
  267. package/dist/webpack/configs/plugins/ignore-plugin/ignore-plugin.d.ts +26 -3
  268. package/dist/webpack/configs/plugins/ignore-plugin/ignore-plugin.d.ts.map +1 -1
  269. package/dist/webpack/configs/plugins/ignore-plugin/ignore-plugin.js +41 -10
  270. package/dist/webpack/configs/plugins/ignore-plugin/ignore-plugin.js.map +1 -1
  271. package/dist/webpack/configs/plugins/index.d.ts +1 -0
  272. package/dist/webpack/configs/plugins/index.d.ts.map +1 -1
  273. package/dist/webpack/configs/plugins/index.js +1 -0
  274. package/dist/webpack/configs/plugins/index.js.map +1 -1
  275. package/dist/webpack/configs/plugins/moment-locales-plugin.d.ts.map +1 -1
  276. package/dist/webpack/configs/plugins/moment-locales-plugin.js +2 -5
  277. package/dist/webpack/configs/plugins/moment-locales-plugin.js.map +1 -1
  278. package/dist/webpack/configs/plugins-config.d.ts.map +1 -1
  279. package/dist/webpack/configs/plugins-config.js +1 -0
  280. package/dist/webpack/configs/plugins-config.js.map +1 -1
  281. package/dist/webpack/configs/rules/font-rules.d.ts.map +1 -1
  282. package/dist/webpack/configs/rules/font-rules.js +2 -1
  283. package/dist/webpack/configs/rules/font-rules.js.map +1 -1
  284. package/dist/webpack/configs/rules/image-rules.d.ts.map +1 -1
  285. package/dist/webpack/configs/rules/image-rules.js +2 -1
  286. package/dist/webpack/configs/rules/image-rules.js.map +1 -1
  287. package/dist/webpack/create-webpack-config.d.ts.map +1 -1
  288. package/dist/webpack/create-webpack-config.js +8 -3
  289. package/dist/webpack/create-webpack-config.js.map +1 -1
  290. package/dist/webpack/create-webpack-configs.d.ts.map +1 -1
  291. package/dist/webpack/create-webpack-configs.js +4 -12
  292. package/dist/webpack/create-webpack-configs.js.map +1 -1
  293. package/dist/webpack/types.d.ts +1 -1
  294. package/dist/webpack/types.d.ts.map +1 -1
  295. package/dist/webpack/utils/create-webpack-build-context.d.ts.map +1 -1
  296. package/dist/webpack/utils/create-webpack-build-context.js +1 -2
  297. package/dist/webpack/utils/create-webpack-build-context.js.map +1 -1
  298. package/package.json +22 -18
  299. package/src/cli/commands/__tests__/build.test.ts +33 -5
  300. package/src/cli/commands/__tests__/bundle-vite.test.ts +50 -1
  301. package/src/cli/commands/__tests__/start.test.ts +17 -4
  302. package/src/cli/commands/build.ts +5 -6
  303. package/src/cli/commands/bundle-vite.ts +13 -0
  304. package/src/cli/commands/registry/build.ts +6 -1
  305. package/src/cli/commands/registry/command-registry.ts +0 -1
  306. package/src/cli/commands/registry/start.ts +6 -1
  307. package/src/cli/commands/review/rules/__tests__/require-compatible-typescript.test.ts +127 -0
  308. package/src/cli/commands/review/rules/index.ts +2 -0
  309. package/src/cli/commands/review/rules/require-compatible-typescript.ts +64 -0
  310. package/src/cli/commands/start.ts +4 -4
  311. package/src/cli/index.ts +2 -2
  312. package/src/cli/utils/__tests__/get-bundle-command.test.ts +23 -0
  313. package/src/cli/utils/__tests__/get-exit-code.test.ts +41 -0
  314. package/src/cli/utils/__tests__/resolve-bundler.test.ts +64 -0
  315. package/src/cli/utils/get-bundle-command.ts +5 -0
  316. package/src/cli/utils/get-exit-code.ts +17 -0
  317. package/src/cli/utils/index.ts +3 -0
  318. package/src/cli/utils/resolve-bundler.ts +23 -0
  319. package/src/core/__tests__/bundle-report.test.ts +60 -0
  320. package/src/core/__tests__/create-extension-regexp.test.ts +32 -0
  321. package/src/core/__tests__/resolve-output-path.test.ts +45 -0
  322. package/src/core/__tests__/resolve-output-root.test.ts +37 -0
  323. package/src/core/__tests__/sort-shared-css.test.ts +39 -0
  324. package/src/core/bundle-report.ts +33 -0
  325. package/src/core/check-resource/__tests__/check-resource.test.ts +21 -7
  326. package/src/core/check-resource/__tests__/get-peer-dependency-meta.test.ts +70 -13
  327. package/src/core/check-resource/__tests__/is-resolvable.test.ts +20 -0
  328. package/src/core/check-resource/check-resource.ts +15 -14
  329. package/src/core/check-resource/get-peer-dependency-meta.ts +67 -4
  330. package/src/core/check-resource/index.ts +1 -1
  331. package/src/core/check-resource/is-resolvable.ts +19 -0
  332. package/src/core/check-resource/types.ts +2 -0
  333. package/src/core/chunk-patterns.ts +30 -0
  334. package/src/core/create-build-context.ts +2 -2
  335. package/src/core/create-extension-regexp.ts +7 -0
  336. package/src/core/get-process-env.ts +17 -0
  337. package/src/core/index.ts +8 -1
  338. package/src/core/moment-locales.ts +6 -0
  339. package/src/core/resolve-output-path.ts +10 -0
  340. package/src/core/resolve-output-root.ts +8 -0
  341. package/src/core/sort-shared-css.ts +7 -0
  342. package/src/core/types.ts +1 -1
  343. package/src/cypress/config/__tests__/vite-config.test.ts +72 -0
  344. package/src/cypress/config/index.ts +1 -0
  345. package/src/cypress/config/vite-config.ts +37 -0
  346. package/src/storybook-config/__tests__/vite-final.test.ts +122 -0
  347. package/src/storybook-config/index.ts +1 -0
  348. package/src/storybook-config/vite-final.ts +65 -0
  349. package/src/utils/__tests__/get-configuration.test.ts +82 -5
  350. package/src/utils/__tests__/get-package-name.test.ts +57 -0
  351. package/src/utils/__tests__/validate-shared-dependencies.test.ts +50 -35
  352. package/src/utils/get-configuration.ts +50 -15
  353. package/src/utils/get-package-name.ts +8 -2
  354. package/src/utils/index.ts +1 -0
  355. package/src/utils/types.ts +1 -0
  356. package/src/utils/validate-shared-dependencies.ts +15 -1
  357. package/src/vite/__tests__/build-shared-dependencies.test.ts +13 -26
  358. package/src/vite/__tests__/validate-shared-dependencies.test.ts +30 -19
  359. package/src/vite/build-shared-dependencies.ts +3 -7
  360. package/src/vite/config/__tests__/asset-file-names.test.ts +40 -0
  361. package/src/vite/config/__tests__/base-config.test.ts +99 -31
  362. package/src/vite/config/__tests__/code-splitting.test.ts +34 -0
  363. package/src/vite/config/__tests__/create-css-config.test.ts +58 -0
  364. package/src/vite/config/__tests__/create-filtering-logger.test.ts +51 -0
  365. package/src/vite/config/__tests__/create-vite-build-context.test.ts +5 -2
  366. package/src/vite/config/__tests__/create-vite-config.test.ts +91 -13
  367. package/src/vite/config/__tests__/get-warmup-client-files.test.ts +20 -0
  368. package/src/vite/config/asset-file-names.ts +20 -0
  369. package/src/vite/config/base-config.ts +45 -37
  370. package/src/vite/config/code-splitting.ts +23 -0
  371. package/src/vite/config/create-css-config.ts +16 -0
  372. package/src/vite/config/create-filtering-logger.ts +34 -0
  373. package/src/vite/config/create-vite-build-context.ts +3 -5
  374. package/src/vite/config/create-vite-config.ts +45 -12
  375. package/src/vite/config/get-warmup-client-files.ts +13 -0
  376. package/src/vite/index.html +1 -0
  377. package/src/vite/plugins/__tests__/bundle-stat-plugin.test.ts +70 -0
  378. package/src/vite/plugins/__tests__/chain-source-maps-plugin.test.ts +58 -0
  379. package/src/vite/plugins/__tests__/clean-plugin.test.ts +121 -0
  380. package/src/vite/plugins/__tests__/design-system-guard-plugin.test.ts +83 -0
  381. package/src/vite/plugins/__tests__/html-template.test.ts +6 -0
  382. package/src/vite/plugins/__tests__/ignore-modules-plugin.test.ts +29 -7
  383. package/src/vite/plugins/__tests__/istanbul-plugin.test.ts +62 -0
  384. package/src/vite/plugins/__tests__/moment-locales-plugin.test.ts +104 -0
  385. package/src/vite/plugins/bundle-stat-plugin.ts +24 -0
  386. package/src/vite/plugins/chain-source-maps-plugin.ts +26 -0
  387. package/src/vite/plugins/clean-plugin.ts +46 -0
  388. package/src/vite/plugins/design-system-guard-plugin.ts +34 -0
  389. package/src/vite/plugins/ignore-modules-plugin.ts +31 -5
  390. package/src/vite/plugins/index.ts +7 -0
  391. package/src/vite/plugins/istanbul-plugin.ts +19 -0
  392. package/src/vite/plugins/magic-comments-plugin/__tests__/magic-comments-plugin.test.ts +105 -0
  393. package/src/vite/plugins/magic-comments-plugin/__tests__/parse-magic-comments.test.ts +40 -0
  394. package/src/vite/plugins/magic-comments-plugin/index.ts +1 -0
  395. package/src/vite/plugins/magic-comments-plugin/magic-comments-plugin.ts +63 -0
  396. package/src/vite/plugins/magic-comments-plugin/parse-magic-comments.ts +39 -0
  397. package/src/vite/plugins/metadata-plugin.ts +1 -1
  398. package/src/vite/plugins/moment-locales-plugin.ts +41 -0
  399. package/src/vite/plugins/shared-dependencies-plugin/__tests__/assemble-iife.test.ts +29 -0
  400. package/src/vite/plugins/shared-dependencies-plugin/__tests__/assert-no-dynamic-css.test.ts +113 -0
  401. package/src/vite/plugins/shared-dependencies-plugin/__tests__/flatten.test.ts +23 -0
  402. package/src/vite/plugins/{__tests__ → shared-dependencies-plugin/__tests__}/shared-dependencies-plugin.test.ts +38 -4
  403. package/src/vite/plugins/shared-dependencies-plugin/assemble-iife.ts +114 -0
  404. package/src/vite/plugins/shared-dependencies-plugin/assert-no-dynamic-css.ts +58 -0
  405. package/src/vite/plugins/shared-dependencies-plugin/flatten.ts +8 -0
  406. package/src/vite/plugins/shared-dependencies-plugin/index.ts +1 -0
  407. package/src/vite/plugins/{shared-dependencies-plugin.ts → shared-dependencies-plugin/shared-dependencies-plugin.ts} +24 -115
  408. package/src/vite/plugins/utils/import-esm.ts +15 -0
  409. package/src/vite/plugins/utils/index.ts +2 -0
  410. package/src/vite/rolldown-oxc.d.ts +20 -0
  411. package/src/webpack/__tests__/bundle-webpack.test.ts +8 -8
  412. package/src/webpack/__tests__/create-webpack-config-shared-dependencies.test.ts +54 -5
  413. package/src/webpack/__tests__/create-webpack-config-web-component.test.ts +70 -12
  414. package/src/webpack/__tests__/create-webpack-config.test.ts +92 -9
  415. package/src/webpack/configs/optimization-config.ts +47 -25
  416. package/src/webpack/configs/output-config.ts +1 -2
  417. package/src/webpack/configs/plugins/assets-manifest-plugin.ts +16 -4
  418. package/src/webpack/configs/plugins/bundle-analyser-plugin.ts +3 -25
  419. package/src/webpack/configs/plugins/define-process-env-plugin.ts +10 -0
  420. package/src/webpack/configs/plugins/ignore-plugin/__tests__/ignore-plugin.test.ts +76 -24
  421. package/src/webpack/configs/plugins/ignore-plugin/empty-module.ts +7 -0
  422. package/src/webpack/configs/plugins/ignore-plugin/ignore-plugin.ts +59 -9
  423. package/src/webpack/configs/plugins/index.ts +1 -0
  424. package/src/webpack/configs/plugins/moment-locales-plugin.ts +2 -2
  425. package/src/webpack/configs/plugins-config.ts +2 -0
  426. package/src/webpack/configs/rules/font-rules.ts +2 -2
  427. package/src/webpack/configs/rules/image-rules.ts +2 -2
  428. package/src/webpack/create-webpack-config.ts +11 -4
  429. package/src/webpack/create-webpack-configs.ts +2 -8
  430. package/src/webpack/types.ts +1 -4
  431. package/src/webpack/utils/create-webpack-build-context.ts +1 -6
  432. package/tsconfig/base.json +1 -1
  433. package/tsconfig/types.d.ts +10 -0
  434. package/dist/core/get-output-path.d.ts +0 -3
  435. package/dist/core/get-output-path.d.ts.map +0 -1
  436. package/dist/core/get-output-path.js +0 -29
  437. package/dist/core/get-output-path.js.map +0 -1
  438. package/dist/vite/plugins/shared-dependencies-plugin.d.ts.map +0 -1
  439. package/dist/vite/plugins/shared-dependencies-plugin.js.map +0 -1
  440. package/src/core/__tests__/get-output-path.test.ts +0 -64
  441. package/src/core/get-output-path.ts +0 -15
  442. /package/dist/vite/plugins/{shared-dependencies-plugin.d.ts → shared-dependencies-plugin/shared-dependencies-plugin.d.ts} +0 -0
@@ -15,6 +15,7 @@ function pluginsConfig(context, overrides) {
15
15
  _plugins.bundleAnalyzerPlugin,
16
16
  _plugins.defineExposedDependenciesPlugin,
17
17
  _plugins.defineExposedInstanceDependenciesPlugin,
18
+ _plugins.defineProcessEnvPlugin,
18
19
  _plugins.defineWebComponentNamePlugin,
19
20
  _plugins.filterWarningsPlugin,
20
21
  _plugins.htmlPlugin,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/webpack/configs/plugins-config.ts"],"sourcesContent":["import { Configuration } from 'webpack';\nimport { BuildContext } from '../../core';\nimport { Overrides } from '../types';\nimport {\n assetsManifestPlugin,\n bundleAnalyzerPlugin,\n defineExposedDependenciesPlugin,\n defineExposedInstanceDependenciesPlugin,\n defineWebComponentNamePlugin,\n filterWarningsPlugin,\n htmlPlugin,\n htmlTagsPlugin,\n ignorePlugin,\n miniCssExtractPlugin,\n momentLocalesPlugin,\n removeEmptyScriptsPlugin,\n virtualModulesPlugin,\n watchRunPlugin,\n} from './plugins';\n\ntype Config = Configuration['plugins'];\ntype Result = Pick<Configuration, 'plugins'>;\n\nexport function pluginsConfig(context: BuildContext, overrides: Overrides): Result {\n const plugins: Config = [\n assetsManifestPlugin,\n bundleAnalyzerPlugin,\n defineExposedDependenciesPlugin,\n defineExposedInstanceDependenciesPlugin,\n defineWebComponentNamePlugin,\n filterWarningsPlugin,\n htmlPlugin,\n htmlTagsPlugin,\n ignorePlugin,\n miniCssExtractPlugin,\n momentLocalesPlugin,\n removeEmptyScriptsPlugin,\n virtualModulesPlugin,\n watchRunPlugin,\n ]\n .map(fn => fn(context, overrides))\n .filter(plugin => !!plugin);\n\n return { plugins };\n}\n"],"names":["pluginsConfig","context","overrides","plugins","assetsManifestPlugin","bundleAnalyzerPlugin","defineExposedDependenciesPlugin","defineExposedInstanceDependenciesPlugin","defineWebComponentNamePlugin","filterWarningsPlugin","htmlPlugin","htmlTagsPlugin","ignorePlugin","miniCssExtractPlugin","momentLocalesPlugin","removeEmptyScriptsPlugin","virtualModulesPlugin","watchRunPlugin","map","fn","filter","plugin"],"mappings":";;;;+BAuBgBA;;;eAAAA;;;yBALT;AAKA,SAASA,cAAcC,OAAqB,EAAEC,SAAoB;IACrE,MAAMC,UAAkB;QACpBC,6BAAoB;QACpBC,6BAAoB;QACpBC,wCAA+B;QAC/BC,gDAAuC;QACvCC,qCAA4B;QAC5BC,6BAAoB;QACpBC,mBAAU;QACVC,uBAAc;QACdC,qBAAY;QACZC,6BAAoB;QACpBC,4BAAmB;QACnBC,iCAAwB;QACxBC,6BAAoB;QACpBC,uBAAc;KACjB,CACIC,GAAG,CAACC,CAAAA,KAAMA,GAAGlB,SAASC,YACtBkB,MAAM,CAACC,CAAAA,SAAU,CAAC,CAACA;IAExB,OAAO;QAAElB;IAAQ;AACrB"}
1
+ {"version":3,"sources":["../../../src/webpack/configs/plugins-config.ts"],"sourcesContent":["import { Configuration } from 'webpack';\nimport { BuildContext } from '../../core';\nimport { Overrides } from '../types';\nimport {\n assetsManifestPlugin,\n bundleAnalyzerPlugin,\n defineExposedDependenciesPlugin,\n defineExposedInstanceDependenciesPlugin,\n defineProcessEnvPlugin,\n defineWebComponentNamePlugin,\n filterWarningsPlugin,\n htmlPlugin,\n htmlTagsPlugin,\n ignorePlugin,\n miniCssExtractPlugin,\n momentLocalesPlugin,\n removeEmptyScriptsPlugin,\n virtualModulesPlugin,\n watchRunPlugin,\n} from './plugins';\n\ntype Config = Configuration['plugins'];\ntype Result = Pick<Configuration, 'plugins'>;\n\nexport function pluginsConfig(context: BuildContext, overrides: Overrides): Result {\n const plugins: Config = [\n assetsManifestPlugin,\n bundleAnalyzerPlugin,\n defineExposedDependenciesPlugin,\n defineExposedInstanceDependenciesPlugin,\n defineProcessEnvPlugin,\n defineWebComponentNamePlugin,\n filterWarningsPlugin,\n htmlPlugin,\n htmlTagsPlugin,\n ignorePlugin,\n miniCssExtractPlugin,\n momentLocalesPlugin,\n removeEmptyScriptsPlugin,\n virtualModulesPlugin,\n watchRunPlugin,\n ]\n .map(fn => fn(context, overrides))\n .filter(plugin => !!plugin);\n\n return { plugins };\n}\n"],"names":["pluginsConfig","context","overrides","plugins","assetsManifestPlugin","bundleAnalyzerPlugin","defineExposedDependenciesPlugin","defineExposedInstanceDependenciesPlugin","defineProcessEnvPlugin","defineWebComponentNamePlugin","filterWarningsPlugin","htmlPlugin","htmlTagsPlugin","ignorePlugin","miniCssExtractPlugin","momentLocalesPlugin","removeEmptyScriptsPlugin","virtualModulesPlugin","watchRunPlugin","map","fn","filter","plugin"],"mappings":";;;;+BAwBgBA;;;eAAAA;;;yBALT;AAKA,SAASA,cAAcC,OAAqB,EAAEC,SAAoB;IACrE,MAAMC,UAAkB;QACpBC,6BAAoB;QACpBC,6BAAoB;QACpBC,wCAA+B;QAC/BC,gDAAuC;QACvCC,+BAAsB;QACtBC,qCAA4B;QAC5BC,6BAAoB;QACpBC,mBAAU;QACVC,uBAAc;QACdC,qBAAY;QACZC,6BAAoB;QACpBC,4BAAmB;QACnBC,iCAAwB;QACxBC,6BAAoB;QACpBC,uBAAc;KACjB,CACIC,GAAG,CAACC,CAAAA,KAAMA,GAAGnB,SAASC,YACtBmB,MAAM,CAACC,CAAAA,SAAU,CAAC,CAACA;IAExB,OAAO;QAAEnB;IAAQ;AACrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"font-rules.d.ts","sourceRoot":"","sources":["../../../../src/webpack/configs/rules/font-rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,wBAAgB,SAAS,CAAC,CAAC,EAAE,YAAY,GAAG,WAAW,EAAE,CAUxD"}
1
+ {"version":3,"file":"font-rules.d.ts","sourceRoot":"","sources":["../../../../src/webpack/configs/rules/font-rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,YAAY,EAA0C,MAAM,eAAe,CAAC;AAErF,wBAAgB,SAAS,CAAC,CAAC,EAAE,YAAY,GAAG,WAAW,EAAE,CAUxD"}
@@ -8,10 +8,11 @@ Object.defineProperty(exports, "fontRules", {
8
8
  return fontRules;
9
9
  }
10
10
  });
11
+ const _core = require("../../../core");
11
12
  function fontRules(_) {
12
13
  return [
13
14
  {
14
- test: /\.(woff|woff2|eot|ttf|otf)$/i,
15
+ test: (0, _core.createExtensionRegExp)(_core.FONT_EXTENSIONS),
15
16
  type: 'asset/resource',
16
17
  generator: {
17
18
  filename: 'fonts/[contenthash][ext][query]'
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/webpack/configs/rules/font-rules.ts"],"sourcesContent":["import { RuleSetRule } from 'webpack';\nimport { BuildContext } from '../../../core';\n\nexport function fontRules(_: BuildContext): RuleSetRule[] {\n return [\n {\n test: /\\.(woff|woff2|eot|ttf|otf)$/i,\n type: 'asset/resource',\n generator: {\n filename: 'fonts/[contenthash][ext][query]',\n },\n },\n ];\n}\n"],"names":["fontRules","_","test","type","generator","filename"],"mappings":";;;;+BAGgBA;;;eAAAA;;;AAAT,SAASA,UAAUC,CAAe;IACrC,OAAO;QACH;YACIC,MAAM;YACNC,MAAM;YACNC,WAAW;gBACPC,UAAU;YACd;QACJ;KACH;AACL"}
1
+ {"version":3,"sources":["../../../../src/webpack/configs/rules/font-rules.ts"],"sourcesContent":["import { RuleSetRule } from 'webpack';\nimport { BuildContext, FONT_EXTENSIONS, createExtensionRegExp } from '../../../core';\n\nexport function fontRules(_: BuildContext): RuleSetRule[] {\n return [\n {\n test: createExtensionRegExp(FONT_EXTENSIONS),\n type: 'asset/resource',\n generator: {\n filename: 'fonts/[contenthash][ext][query]',\n },\n },\n ];\n}\n"],"names":["fontRules","_","test","createExtensionRegExp","FONT_EXTENSIONS","type","generator","filename"],"mappings":";;;;+BAGgBA;;;eAAAA;;;sBAFqD;AAE9D,SAASA,UAAUC,CAAe;IACrC,OAAO;QACH;YACIC,MAAMC,IAAAA,2BAAqB,EAACC,qBAAe;YAC3CC,MAAM;YACNC,WAAW;gBACPC,UAAU;YACd;QACJ;KACH;AACL"}
@@ -1 +1 @@
1
- {"version":3,"file":"image-rules.d.ts","sourceRoot":"","sources":["../../../../src/webpack/configs/rules/image-rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,wBAAgB,UAAU,CAAC,CAAC,EAAE,YAAY,GAAG,WAAW,EAAE,CAUzD"}
1
+ {"version":3,"file":"image-rules.d.ts","sourceRoot":"","sources":["../../../../src/webpack/configs/rules/image-rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,YAAY,EAA2C,MAAM,eAAe,CAAC;AAEtF,wBAAgB,UAAU,CAAC,CAAC,EAAE,YAAY,GAAG,WAAW,EAAE,CAUzD"}
@@ -8,10 +8,11 @@ Object.defineProperty(exports, "imageRules", {
8
8
  return imageRules;
9
9
  }
10
10
  });
11
+ const _core = require("../../../core");
11
12
  function imageRules(_) {
12
13
  return [
13
14
  {
14
- test: /\.(png|jpg|jpeg|gif)$/i,
15
+ test: (0, _core.createExtensionRegExp)(_core.IMAGE_EXTENSIONS),
15
16
  type: 'asset',
16
17
  generator: {
17
18
  filename: 'images/[contenthash][ext][query]'
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/webpack/configs/rules/image-rules.ts"],"sourcesContent":["import { RuleSetRule } from 'webpack';\nimport { BuildContext } from '../../../core';\n\nexport function imageRules(_: BuildContext): RuleSetRule[] {\n return [\n {\n test: /\\.(png|jpg|jpeg|gif)$/i,\n type: 'asset',\n generator: {\n filename: 'images/[contenthash][ext][query]',\n },\n },\n ];\n}\n"],"names":["imageRules","_","test","type","generator","filename"],"mappings":";;;;+BAGgBA;;;eAAAA;;;AAAT,SAASA,WAAWC,CAAe;IACtC,OAAO;QACH;YACIC,MAAM;YACNC,MAAM;YACNC,WAAW;gBACPC,UAAU;YACd;QACJ;KACH;AACL"}
1
+ {"version":3,"sources":["../../../../src/webpack/configs/rules/image-rules.ts"],"sourcesContent":["import { RuleSetRule } from 'webpack';\nimport { BuildContext, IMAGE_EXTENSIONS, createExtensionRegExp } from '../../../core';\n\nexport function imageRules(_: BuildContext): RuleSetRule[] {\n return [\n {\n test: createExtensionRegExp(IMAGE_EXTENSIONS),\n type: 'asset',\n generator: {\n filename: 'images/[contenthash][ext][query]',\n },\n },\n ];\n}\n"],"names":["imageRules","_","test","createExtensionRegExp","IMAGE_EXTENSIONS","type","generator","filename"],"mappings":";;;;+BAGgBA;;;eAAAA;;;sBAFsD;AAE/D,SAASA,WAAWC,CAAe;IACtC,OAAO;QACH;YACIC,MAAMC,IAAAA,2BAAqB,EAACC,sBAAgB;YAC5CC,MAAM;YACNC,WAAW;gBACPC,UAAU;YACd;QACJ;KACH;AACL"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-webpack-config.d.ts","sourceRoot":"","sources":["../../src/webpack/create-webpack-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAmBxC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAG7C,eAAO,MAAM,wBAAwB,0BAA0B,CAAC;AAChE,eAAO,MAAM,yBAAyB,2BAA2B,CAAC;AAElE,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,GAAE,OAAY,GAAG,aAAa,CA6C9F"}
1
+ {"version":3,"file":"create-webpack-config.d.ts","sourceRoot":"","sources":["../../src/webpack/create-webpack-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAmBxC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAG7C,eAAO,MAAM,wBAAwB,0BAA0B,CAAC;AAChE,eAAO,MAAM,yBAAyB,2BAA2B,CAAC;AAElE,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,GAAE,OAAY,GAAG,aAAa,CAoD9F"}
@@ -28,14 +28,13 @@ const webpackDevConfigFileName = 'webpack.dev.config.js';
28
28
  const webpackProdConfigFileName = 'webpack.prod.config.js';
29
29
  function createWebpackConfig(overrides, options = {}) {
30
30
  var _options_name, _overrides_configuration;
31
- var _overrides_configuration1;
31
+ var _overrides_configuration1, _merged_output;
32
32
  const context = (0, _utils1.createWebpackBuildContext)({
33
33
  name: (_options_name = options.name) !== null && _options_name !== void 0 ? _options_name : '',
34
34
  isProduction: ((_overrides_configuration1 = overrides.configuration) === null || _overrides_configuration1 === void 0 ? void 0 : _overrides_configuration1.mode) !== 'development',
35
35
  light: options.light,
36
36
  headless: options.headless,
37
37
  emitExposedDependencies: options.emitExposedDependencies,
38
- outputBasePath: options.outputBasePath,
39
38
  codeCoverage: options.codeCoverage,
40
39
  buildStat: options.buildStat
41
40
  });
@@ -60,10 +59,16 @@ function createWebpackConfig(overrides, options = {}) {
60
59
  _configs.statsConfig,
61
60
  _configs.watchOptionsConfig
62
61
  ];
63
- const result = (0, _webpackmerge.merge)(configs.reduce((result, fn)=>({
62
+ const merged = (0, _webpackmerge.merge)(configs.reduce((result, fn)=>({
64
63
  ...result,
65
64
  ...fn(context, overrides)
66
65
  }), {}), (_overrides_configuration = overrides.configuration) !== null && _overrides_configuration !== void 0 ? _overrides_configuration : {});
66
+ // Resolve the output path: web components force the default, hosts honor a configured path.
67
+ const result = (0, _webpackmerge.merge)(merged, {
68
+ output: {
69
+ path: (0, _core.resolveOutputPath)(context, (_merged_output = merged.output) === null || _merged_output === void 0 ? void 0 : _merged_output.path)
70
+ }
71
+ });
67
72
  /* istanbul ignore next: debug only */ _utils.log.debug('create-webpack-config', ()=>(0, _core.stringifyConfig)(result));
68
73
  return result;
69
74
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/webpack/create-webpack-config.ts"],"sourcesContent":["import { Configuration } from 'webpack';\nimport { merge } from 'webpack-merge';\nimport { stringifyConfig } from '../core';\nimport { log } from '../utils';\nimport {\n amdConfig,\n cacheConfig,\n devServerConfig,\n devtoolConfig,\n entryConfig,\n externalsConfig,\n moduleConfig,\n optimizationConfig,\n outputConfig,\n pluginsConfig,\n resolveConfig,\n statsConfig,\n watchOptionsConfig,\n} from './configs';\nimport { Options, Overrides } from './types';\nimport { createWebpackBuildContext, getCallerFile } from './utils';\n\nexport const webpackDevConfigFileName = 'webpack.dev.config.js';\nexport const webpackProdConfigFileName = 'webpack.prod.config.js';\n\nexport function createWebpackConfig(overrides: Overrides, options: Options = {}): Configuration {\n const context = createWebpackBuildContext({\n name: options.name ?? '',\n isProduction: overrides.configuration?.mode !== 'development',\n light: options.light,\n headless: options.headless,\n emitExposedDependencies: options.emitExposedDependencies,\n outputBasePath: options.outputBasePath,\n codeCoverage: options.codeCoverage,\n buildStat: options.buildStat,\n });\n\n if (context.package.isWebComponent && isCalledFromCustomWebpackConfigFile()) {\n throw new Error(WEB_COMPONENT_CONFIG_ERROR);\n }\n\n if (options.emitExposedDependencies && !context.package.isExposeSharedDependencies) {\n throw new Error('package does not expose shared dependencies');\n }\n\n const configs = [\n amdConfig,\n cacheConfig,\n devServerConfig,\n devtoolConfig,\n entryConfig,\n externalsConfig,\n moduleConfig,\n optimizationConfig,\n outputConfig,\n pluginsConfig,\n resolveConfig,\n statsConfig,\n watchOptionsConfig,\n ];\n\n const result = merge(\n configs.reduce((result, fn) => ({ ...result, ...fn(context, overrides) }), {}),\n overrides.configuration ?? {}\n );\n\n /* istanbul ignore next: debug only */\n log.debug('create-webpack-config', () => stringifyConfig(result));\n\n return result;\n}\n\nfunction isCalledFromCustomWebpackConfigFile() {\n const callerFileName = getCallerFile();\n return [webpackDevConfigFileName, webpackProdConfigFileName].some(configFileName =>\n callerFileName.includes(configFileName)\n );\n}\n\nconst WEB_COMPONENT_CONFIG_ERROR = `\n You cannot call createWebpackConfig in a custom webpack config file in a web component (MFE) project.\n Export webpack configuration itself as a default export from the config file instead.\n`\n .replace(/\\n\\s*/g, ' ')\n .trim();\n"],"names":["createWebpackConfig","webpackDevConfigFileName","webpackProdConfigFileName","overrides","options","context","createWebpackBuildContext","name","isProduction","configuration","mode","light","headless","emitExposedDependencies","outputBasePath","codeCoverage","buildStat","package","isWebComponent","isCalledFromCustomWebpackConfigFile","Error","WEB_COMPONENT_CONFIG_ERROR","isExposeSharedDependencies","configs","amdConfig","cacheConfig","devServerConfig","devtoolConfig","entryConfig","externalsConfig","moduleConfig","optimizationConfig","outputConfig","pluginsConfig","resolveConfig","statsConfig","watchOptionsConfig","result","merge","reduce","fn","log","debug","stringifyConfig","callerFileName","getCallerFile","some","configFileName","includes","replace","trim"],"mappings":";;;;;;;;;;;QAyBgBA;eAAAA;;QAHHC;eAAAA;;QACAC;eAAAA;;;8BAtBS;sBACU;uBACZ;yBAeb;wBAEkD;AAElD,MAAMD,2BAA2B;AACjC,MAAMC,4BAA4B;AAElC,SAASF,oBAAoBG,SAAoB,EAAEC,UAAmB,CAAC,CAAC;QAEjEA,eAoCND;QAnCcA;IAFlB,MAAME,UAAUC,IAAAA,iCAAyB,EAAC;QACtCC,IAAI,GAAEH,gBAAAA,QAAQG,IAAI,cAAZH,2BAAAA,gBAAgB;QACtBI,cAAcL,EAAAA,4BAAAA,UAAUM,aAAa,cAAvBN,gDAAAA,0BAAyBO,IAAI,MAAK;QAChDC,OAAOP,QAAQO,KAAK;QACpBC,UAAUR,QAAQQ,QAAQ;QAC1BC,yBAAyBT,QAAQS,uBAAuB;QACxDC,gBAAgBV,QAAQU,cAAc;QACtCC,cAAcX,QAAQW,YAAY;QAClCC,WAAWZ,QAAQY,SAAS;IAChC;IAEA,IAAIX,QAAQY,OAAO,CAACC,cAAc,IAAIC,uCAAuC;QACzE,MAAM,IAAIC,MAAMC;IACpB;IAEA,IAAIjB,QAAQS,uBAAuB,IAAI,CAACR,QAAQY,OAAO,CAACK,0BAA0B,EAAE;QAChF,MAAM,IAAIF,MAAM;IACpB;IAEA,MAAMG,UAAU;QACZC,kBAAS;QACTC,oBAAW;QACXC,wBAAe;QACfC,sBAAa;QACbC,oBAAW;QACXC,wBAAe;QACfC,qBAAY;QACZC,2BAAkB;QAClBC,qBAAY;QACZC,sBAAa;QACbC,sBAAa;QACbC,oBAAW;QACXC,2BAAkB;KACrB;IAED,MAAMC,SAASC,IAAAA,mBAAK,EAChBf,QAAQgB,MAAM,CAAC,CAACF,QAAQG,KAAQ,CAAA;YAAE,GAAGH,MAAM;YAAE,GAAGG,GAAGnC,SAASF,UAAU;QAAC,CAAA,GAAI,CAAC,KAC5EA,2BAAAA,UAAUM,aAAa,cAAvBN,sCAAAA,2BAA2B,CAAC;IAGhC,oCAAoC,GACpCsC,UAAG,CAACC,KAAK,CAAC,yBAAyB,IAAMC,IAAAA,qBAAe,EAACN;IAEzD,OAAOA;AACX;AAEA,SAASlB;IACL,MAAMyB,iBAAiBC,IAAAA,qBAAa;IACpC,OAAO;QAAC5C;QAA0BC;KAA0B,CAAC4C,IAAI,CAACC,CAAAA,iBAC9DH,eAAeI,QAAQ,CAACD;AAEhC;AAEA,MAAM1B,6BAA6B,CAAC;;;AAGpC,CAAC,CACI4B,OAAO,CAAC,UAAU,KAClBC,IAAI"}
1
+ {"version":3,"sources":["../../src/webpack/create-webpack-config.ts"],"sourcesContent":["import { Configuration } from 'webpack';\nimport { merge } from 'webpack-merge';\nimport { resolveOutputPath, stringifyConfig } from '../core';\nimport { log } from '../utils';\nimport {\n amdConfig,\n cacheConfig,\n devServerConfig,\n devtoolConfig,\n entryConfig,\n externalsConfig,\n moduleConfig,\n optimizationConfig,\n outputConfig,\n pluginsConfig,\n resolveConfig,\n statsConfig,\n watchOptionsConfig,\n} from './configs';\nimport { Options, Overrides } from './types';\nimport { createWebpackBuildContext, getCallerFile } from './utils';\n\nexport const webpackDevConfigFileName = 'webpack.dev.config.js';\nexport const webpackProdConfigFileName = 'webpack.prod.config.js';\n\nexport function createWebpackConfig(overrides: Overrides, options: Options = {}): Configuration {\n const context = createWebpackBuildContext({\n name: options.name ?? '',\n isProduction: overrides.configuration?.mode !== 'development',\n light: options.light,\n headless: options.headless,\n emitExposedDependencies: options.emitExposedDependencies,\n codeCoverage: options.codeCoverage,\n buildStat: options.buildStat,\n });\n\n if (context.package.isWebComponent && isCalledFromCustomWebpackConfigFile()) {\n throw new Error(WEB_COMPONENT_CONFIG_ERROR);\n }\n\n if (options.emitExposedDependencies && !context.package.isExposeSharedDependencies) {\n throw new Error('package does not expose shared dependencies');\n }\n\n const configs = [\n amdConfig,\n cacheConfig,\n devServerConfig,\n devtoolConfig,\n entryConfig,\n externalsConfig,\n moduleConfig,\n optimizationConfig,\n outputConfig,\n pluginsConfig,\n resolveConfig,\n statsConfig,\n watchOptionsConfig,\n ];\n\n const merged = merge(\n configs.reduce<Configuration>(\n (result, fn) => ({ ...result, ...fn(context, overrides) }),\n {}\n ),\n overrides.configuration ?? {}\n );\n\n // Resolve the output path: web components force the default, hosts honor a configured path.\n const result = merge(merged, {\n output: { path: resolveOutputPath(context, merged.output?.path) },\n });\n\n /* istanbul ignore next: debug only */\n log.debug('create-webpack-config', () => stringifyConfig(result));\n\n return result;\n}\n\nfunction isCalledFromCustomWebpackConfigFile() {\n const callerFileName = getCallerFile();\n return [webpackDevConfigFileName, webpackProdConfigFileName].some(configFileName =>\n callerFileName.includes(configFileName)\n );\n}\n\nconst WEB_COMPONENT_CONFIG_ERROR = `\n You cannot call createWebpackConfig in a custom webpack config file in a web component (MFE) project.\n Export webpack configuration itself as a default export from the config file instead.\n`\n .replace(/\\n\\s*/g, ' ')\n .trim();\n"],"names":["createWebpackConfig","webpackDevConfigFileName","webpackProdConfigFileName","overrides","options","merged","context","createWebpackBuildContext","name","isProduction","configuration","mode","light","headless","emitExposedDependencies","codeCoverage","buildStat","package","isWebComponent","isCalledFromCustomWebpackConfigFile","Error","WEB_COMPONENT_CONFIG_ERROR","isExposeSharedDependencies","configs","amdConfig","cacheConfig","devServerConfig","devtoolConfig","entryConfig","externalsConfig","moduleConfig","optimizationConfig","outputConfig","pluginsConfig","resolveConfig","statsConfig","watchOptionsConfig","merge","reduce","result","fn","output","path","resolveOutputPath","log","debug","stringifyConfig","callerFileName","getCallerFile","some","configFileName","includes","replace","trim"],"mappings":";;;;;;;;;;;QAyBgBA;eAAAA;;QAHHC;eAAAA;;QACAC;eAAAA;;;8BAtBS;sBAC6B;uBAC/B;yBAeb;wBAEkD;AAElD,MAAMD,2BAA2B;AACjC,MAAMC,4BAA4B;AAElC,SAASF,oBAAoBG,SAAoB,EAAEC,UAAmB,CAAC,CAAC;QAEjEA,eAsCND;QArCcA,2BA0C6BE;IA5C/C,MAAMC,UAAUC,IAAAA,iCAAyB,EAAC;QACtCC,IAAI,GAAEJ,gBAAAA,QAAQI,IAAI,cAAZJ,2BAAAA,gBAAgB;QACtBK,cAAcN,EAAAA,4BAAAA,UAAUO,aAAa,cAAvBP,gDAAAA,0BAAyBQ,IAAI,MAAK;QAChDC,OAAOR,QAAQQ,KAAK;QACpBC,UAAUT,QAAQS,QAAQ;QAC1BC,yBAAyBV,QAAQU,uBAAuB;QACxDC,cAAcX,QAAQW,YAAY;QAClCC,WAAWZ,QAAQY,SAAS;IAChC;IAEA,IAAIV,QAAQW,OAAO,CAACC,cAAc,IAAIC,uCAAuC;QACzE,MAAM,IAAIC,MAAMC;IACpB;IAEA,IAAIjB,QAAQU,uBAAuB,IAAI,CAACR,QAAQW,OAAO,CAACK,0BAA0B,EAAE;QAChF,MAAM,IAAIF,MAAM;IACpB;IAEA,MAAMG,UAAU;QACZC,kBAAS;QACTC,oBAAW;QACXC,wBAAe;QACfC,sBAAa;QACbC,oBAAW;QACXC,wBAAe;QACfC,qBAAY;QACZC,2BAAkB;QAClBC,qBAAY;QACZC,sBAAa;QACbC,sBAAa;QACbC,oBAAW;QACXC,2BAAkB;KACrB;IAED,MAAM/B,SAASgC,IAAAA,mBAAK,EAChBd,QAAQe,MAAM,CACV,CAACC,QAAQC,KAAQ,CAAA;YAAE,GAAGD,MAAM;YAAE,GAAGC,GAAGlC,SAASH,UAAU;QAAC,CAAA,GACxD,CAAC,KAELA,2BAAAA,UAAUO,aAAa,cAAvBP,sCAAAA,2BAA2B,CAAC;IAGhC,4FAA4F;IAC5F,MAAMoC,SAASF,IAAAA,mBAAK,EAAChC,QAAQ;QACzBoC,QAAQ;YAAEC,MAAMC,IAAAA,uBAAiB,EAACrC,UAASD,iBAAAA,OAAOoC,MAAM,cAAbpC,qCAAAA,eAAeqC,IAAI;QAAE;IACpE;IAEA,oCAAoC,GACpCE,UAAG,CAACC,KAAK,CAAC,yBAAyB,IAAMC,IAAAA,qBAAe,EAACP;IAEzD,OAAOA;AACX;AAEA,SAASpB;IACL,MAAM4B,iBAAiBC,IAAAA,qBAAa;IACpC,OAAO;QAAC/C;QAA0BC;KAA0B,CAAC+C,IAAI,CAACC,CAAAA,iBAC9DH,eAAeI,QAAQ,CAACD;AAEhC;AAEA,MAAM7B,6BAA6B,CAAC;;;AAGpC,CAAC,CACI+B,OAAO,CAAC,UAAU,KAClBC,IAAI"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-webpack-configs.d.ts","sourceRoot":"","sources":["../../src/webpack/create-webpack-configs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAUxC,UAAU,cAAc;IACpB,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC5B;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,cAAc,CA+CjB"}
1
+ {"version":3,"file":"create-webpack-configs.d.ts","sourceRoot":"","sources":["../../src/webpack/create-webpack-configs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAUxC,UAAU,cAAc;IACpB,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC5B;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,cAAc,CAyCjB"}
@@ -19,7 +19,6 @@ function _interop_require_default(obj) {
19
19
  };
20
20
  }
21
21
  function createWebpackConfigs(options) {
22
- var _customConfig_output;
23
22
  const { watch, useWatchConfig } = options;
24
23
  const mode = watch || useWatchConfig ? 'development' : 'production';
25
24
  const fallback = watch || useWatchConfig ? _createwebpackconfig.webpackDevConfigFileName : _createwebpackconfig.webpackProdConfigFileName;
@@ -59,20 +58,13 @@ function createWebpackConfigs(options) {
59
58
  full: customConfig
60
59
  };
61
60
  }
62
- /*
63
- * outputBasePath is wired only here, for the shared-deps build. MFE main
64
- * bundles (handled above) must publish under <package>/dist/bundle/<subdir>,
65
- * so a custom output.path from the user's webpack config is not honored
66
- * for them.
67
- */ return {
61
+ return {
68
62
  full: (0, _createwebpackconfig.createWebpackConfig)({
69
63
  configuration: {
70
- mode
64
+ mode,
65
+ output: customConfig === null || customConfig === void 0 ? void 0 : customConfig.output
71
66
  }
72
- }, {
73
- ...resolved,
74
- outputBasePath: customConfig === null || customConfig === void 0 ? void 0 : (_customConfig_output = customConfig.output) === null || _customConfig_output === void 0 ? void 0 : _customConfig_output.path
75
- })
67
+ }, resolved)
76
68
  };
77
69
  }
78
70
  function readWebpackConfig({ config, fallback }) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/webpack/create-webpack-configs.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport { Configuration } from 'webpack';\nimport { getBuildName, stringifyConfig } from '../core';\nimport { hasHeadlessBundle, isWebComponent, log } from '../utils';\nimport {\n createWebpackConfig,\n webpackDevConfigFileName,\n webpackProdConfigFileName,\n} from './create-webpack-config';\nimport { Options, Overrides } from './types';\n\ninterface WebpackConfigs {\n full: Configuration;\n light?: Configuration;\n headless?: Configuration;\n}\n\nexport function createWebpackConfigs(options: {\n buildStat?: boolean;\n codeCoverage?: boolean;\n config?: string;\n emitExposedDependencies?: boolean;\n useWatchConfig?: boolean;\n watch?: boolean;\n}): WebpackConfigs {\n const { watch, useWatchConfig } = options;\n const mode = watch || useWatchConfig ? 'development' : 'production';\n const fallback = watch || useWatchConfig ? webpackDevConfigFileName : webpackProdConfigFileName;\n const customConfig = readWebpackConfig({ config: options.config, fallback });\n\n /* istanbul ignore next: debug only */\n log.debug('custom-webpack-config', () => stringifyConfig(customConfig));\n\n const resolved: Options = {\n buildStat: options.buildStat,\n codeCoverage: options.codeCoverage,\n emitExposedDependencies: options.emitExposedDependencies,\n name: getBuildName(),\n };\n\n if (isWebComponent()) {\n const overrides: Overrides = {\n configuration: { ...customConfig?.configuration, mode },\n plugins: customConfig?.plugins,\n };\n\n return {\n full: createWebpackConfig(overrides, resolved),\n light: createWebpackConfig(overrides, { ...resolved, light: true }),\n headless: hasHeadlessBundle()\n ? createWebpackConfig(overrides, { ...resolved, headless: true })\n : undefined,\n };\n }\n\n if (customConfig && !options.emitExposedDependencies) {\n return { full: customConfig };\n }\n\n /*\n * outputBasePath is wired only here, for the shared-deps build. MFE main\n * bundles (handled above) must publish under <package>/dist/bundle/<subdir>,\n * so a custom output.path from the user's webpack config is not honored\n * for them.\n */\n return {\n full: createWebpackConfig(\n { configuration: { mode } },\n { ...resolved, outputBasePath: customConfig?.output?.path }\n ),\n };\n}\n\nfunction readWebpackConfig({ config, fallback }: { config?: string; fallback: string }) {\n return readConfig(config) ?? readConfig(fallback);\n}\n\nfunction readConfig(relativePath?: string): Record<string, any> | undefined {\n if (relativePath && fs.existsSync(relativePath)) {\n return require(path.resolve(relativePath));\n }\n}\n"],"names":["createWebpackConfigs","options","customConfig","watch","useWatchConfig","mode","fallback","webpackDevConfigFileName","webpackProdConfigFileName","readWebpackConfig","config","log","debug","stringifyConfig","resolved","buildStat","codeCoverage","emitExposedDependencies","name","getBuildName","isWebComponent","overrides","configuration","plugins","full","createWebpackConfig","light","headless","hasHeadlessBundle","undefined","outputBasePath","output","path","readConfig","relativePath","fs","existsSync","require","resolve"],"mappings":";;;;+BAkBgBA;;;eAAAA;;;2DAlBD;6DACE;sBAE6B;uBACS;qCAKhD;;;;;;AASA,SAASA,qBAAqBC,OAOpC;QA4C0CC;IA3CvC,MAAM,EAAEC,KAAK,EAAEC,cAAc,EAAE,GAAGH;IAClC,MAAMI,OAAOF,SAASC,iBAAiB,gBAAgB;IACvD,MAAME,WAAWH,SAASC,iBAAiBG,6CAAwB,GAAGC,8CAAyB;IAC/F,MAAMN,eAAeO,kBAAkB;QAAEC,QAAQT,QAAQS,MAAM;QAAEJ;IAAS;IAE1E,oCAAoC,GACpCK,UAAG,CAACC,KAAK,CAAC,yBAAyB,IAAMC,IAAAA,qBAAe,EAACX;IAEzD,MAAMY,WAAoB;QACtBC,WAAWd,QAAQc,SAAS;QAC5BC,cAAcf,QAAQe,YAAY;QAClCC,yBAAyBhB,QAAQgB,uBAAuB;QACxDC,MAAMC,IAAAA,kBAAY;IACtB;IAEA,IAAIC,IAAAA,qBAAc,KAAI;QAClB,MAAMC,YAAuB;YACzBC,eAAe;mBAAKpB,yBAAAA,mCAAAA,aAAcoB,aAAa,AAA9B;gBAAgCjB;YAAK;YACtDkB,OAAO,EAAErB,yBAAAA,mCAAAA,aAAcqB,OAAO;QAClC;QAEA,OAAO;YACHC,MAAMC,IAAAA,wCAAmB,EAACJ,WAAWP;YACrCY,OAAOD,IAAAA,wCAAmB,EAACJ,WAAW;gBAAE,GAAGP,QAAQ;gBAAEY,OAAO;YAAK;YACjEC,UAAUC,IAAAA,wBAAiB,MACrBH,IAAAA,wCAAmB,EAACJ,WAAW;gBAAE,GAAGP,QAAQ;gBAAEa,UAAU;YAAK,KAC7DE;QACV;IACJ;IAEA,IAAI3B,gBAAgB,CAACD,QAAQgB,uBAAuB,EAAE;QAClD,OAAO;YAAEO,MAAMtB;QAAa;IAChC;IAEA;;;;;KAKC,GACD,OAAO;QACHsB,MAAMC,IAAAA,wCAAmB,EACrB;YAAEH,eAAe;gBAAEjB;YAAK;QAAE,GAC1B;YAAE,GAAGS,QAAQ;YAAEgB,cAAc,EAAE5B,yBAAAA,oCAAAA,uBAAAA,aAAc6B,MAAM,cAApB7B,2CAAAA,qBAAsB8B,IAAI;QAAC;IAElE;AACJ;AAEA,SAASvB,kBAAkB,EAAEC,MAAM,EAAEJ,QAAQ,EAAyC;QAC3E2B;IAAP,QAAOA,cAAAA,WAAWvB,qBAAXuB,yBAAAA,cAAsBA,WAAW3B;AAC5C;AAEA,SAAS2B,WAAWC,YAAqB;IACrC,IAAIA,gBAAgBC,WAAE,CAACC,UAAU,CAACF,eAAe;QAC7C,OAAOG,QAAQL,aAAI,CAACM,OAAO,CAACJ;IAChC;AACJ"}
1
+ {"version":3,"sources":["../../src/webpack/create-webpack-configs.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport { Configuration } from 'webpack';\nimport { getBuildName, stringifyConfig } from '../core';\nimport { hasHeadlessBundle, isWebComponent, log } from '../utils';\nimport {\n createWebpackConfig,\n webpackDevConfigFileName,\n webpackProdConfigFileName,\n} from './create-webpack-config';\nimport { Options, Overrides } from './types';\n\ninterface WebpackConfigs {\n full: Configuration;\n light?: Configuration;\n headless?: Configuration;\n}\n\nexport function createWebpackConfigs(options: {\n buildStat?: boolean;\n codeCoverage?: boolean;\n config?: string;\n emitExposedDependencies?: boolean;\n useWatchConfig?: boolean;\n watch?: boolean;\n}): WebpackConfigs {\n const { watch, useWatchConfig } = options;\n const mode = watch || useWatchConfig ? 'development' : 'production';\n const fallback = watch || useWatchConfig ? webpackDevConfigFileName : webpackProdConfigFileName;\n const customConfig = readWebpackConfig({ config: options.config, fallback });\n\n /* istanbul ignore next: debug only */\n log.debug('custom-webpack-config', () => stringifyConfig(customConfig));\n\n const resolved: Options = {\n buildStat: options.buildStat,\n codeCoverage: options.codeCoverage,\n emitExposedDependencies: options.emitExposedDependencies,\n name: getBuildName(),\n };\n\n if (isWebComponent()) {\n const overrides: Overrides = {\n configuration: { ...customConfig?.configuration, mode },\n plugins: customConfig?.plugins,\n };\n\n return {\n full: createWebpackConfig(overrides, resolved),\n light: createWebpackConfig(overrides, { ...resolved, light: true }),\n headless: hasHeadlessBundle()\n ? createWebpackConfig(overrides, { ...resolved, headless: true })\n : undefined,\n };\n }\n\n if (customConfig && !options.emitExposedDependencies) {\n return { full: customConfig };\n }\n\n return {\n full: createWebpackConfig(\n { configuration: { mode, output: customConfig?.output } },\n resolved\n ),\n };\n}\n\nfunction readWebpackConfig({ config, fallback }: { config?: string; fallback: string }) {\n return readConfig(config) ?? readConfig(fallback);\n}\n\nfunction readConfig(relativePath?: string): Record<string, any> | undefined {\n if (relativePath && fs.existsSync(relativePath)) {\n return require(path.resolve(relativePath));\n }\n}\n"],"names":["createWebpackConfigs","options","watch","useWatchConfig","mode","fallback","webpackDevConfigFileName","webpackProdConfigFileName","customConfig","readWebpackConfig","config","log","debug","stringifyConfig","resolved","buildStat","codeCoverage","emitExposedDependencies","name","getBuildName","isWebComponent","overrides","configuration","plugins","full","createWebpackConfig","light","headless","hasHeadlessBundle","undefined","output","readConfig","relativePath","fs","existsSync","require","path","resolve"],"mappings":";;;;+BAkBgBA;;;eAAAA;;;2DAlBD;6DACE;sBAE6B;uBACS;qCAKhD;;;;;;AASA,SAASA,qBAAqBC,OAOpC;IACG,MAAM,EAAEC,KAAK,EAAEC,cAAc,EAAE,GAAGF;IAClC,MAAMG,OAAOF,SAASC,iBAAiB,gBAAgB;IACvD,MAAME,WAAWH,SAASC,iBAAiBG,6CAAwB,GAAGC,8CAAyB;IAC/F,MAAMC,eAAeC,kBAAkB;QAAEC,QAAQT,QAAQS,MAAM;QAAEL;IAAS;IAE1E,oCAAoC,GACpCM,UAAG,CAACC,KAAK,CAAC,yBAAyB,IAAMC,IAAAA,qBAAe,EAACL;IAEzD,MAAMM,WAAoB;QACtBC,WAAWd,QAAQc,SAAS;QAC5BC,cAAcf,QAAQe,YAAY;QAClCC,yBAAyBhB,QAAQgB,uBAAuB;QACxDC,MAAMC,IAAAA,kBAAY;IACtB;IAEA,IAAIC,IAAAA,qBAAc,KAAI;QAClB,MAAMC,YAAuB;YACzBC,eAAe;mBAAKd,yBAAAA,mCAAAA,aAAcc,aAAa,AAA9B;gBAAgClB;YAAK;YACtDmB,OAAO,EAAEf,yBAAAA,mCAAAA,aAAce,OAAO;QAClC;QAEA,OAAO;YACHC,MAAMC,IAAAA,wCAAmB,EAACJ,WAAWP;YACrCY,OAAOD,IAAAA,wCAAmB,EAACJ,WAAW;gBAAE,GAAGP,QAAQ;gBAAEY,OAAO;YAAK;YACjEC,UAAUC,IAAAA,wBAAiB,MACrBH,IAAAA,wCAAmB,EAACJ,WAAW;gBAAE,GAAGP,QAAQ;gBAAEa,UAAU;YAAK,KAC7DE;QACV;IACJ;IAEA,IAAIrB,gBAAgB,CAACP,QAAQgB,uBAAuB,EAAE;QAClD,OAAO;YAAEO,MAAMhB;QAAa;IAChC;IAEA,OAAO;QACHgB,MAAMC,IAAAA,wCAAmB,EACrB;YAAEH,eAAe;gBAAElB;gBAAM0B,MAAM,EAAEtB,yBAAAA,mCAAAA,aAAcsB,MAAM;YAAC;QAAE,GACxDhB;IAER;AACJ;AAEA,SAASL,kBAAkB,EAAEC,MAAM,EAAEL,QAAQ,EAAyC;QAC3E0B;IAAP,QAAOA,cAAAA,WAAWrB,qBAAXqB,yBAAAA,cAAsBA,WAAW1B;AAC5C;AAEA,SAAS0B,WAAWC,YAAqB;IACrC,IAAIA,gBAAgBC,WAAE,CAACC,UAAU,CAACF,eAAe;QAC7C,OAAOG,QAAQC,aAAI,CAACC,OAAO,CAACL;IAChC;AACJ"}
@@ -3,7 +3,7 @@ import { PluginOptions as MiniCssExtractPlugInOptions } from 'mini-css-extract-p
3
3
  import { Configuration } from 'webpack';
4
4
  import { BuildContext, BuildIdentity, BuildOptions } from '../core';
5
5
  import { WebpackConfiguration } from '../utils';
6
- export type Options = Partial<Pick<BuildIdentity, 'name' | 'light' | 'headless' | 'emitExposedDependencies' | 'outputBasePath'> & Pick<BuildOptions, 'codeCoverage' | 'buildStat'>>;
6
+ export type Options = Partial<Pick<BuildIdentity, 'name' | 'light' | 'headless' | 'emitExposedDependencies'> & Pick<BuildOptions, 'codeCoverage' | 'buildStat'>>;
7
7
  export interface Overrides {
8
8
  configuration?: Configuration;
9
9
  plugins?: {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/webpack/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,aAAa,IAAI,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEhD,MAAM,MAAM,OAAO,GAAG,OAAO,CACzB,IAAI,CACA,aAAa,EACb,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,yBAAyB,GAAG,gBAAgB,CAC/E,GACG,IAAI,CAAC,YAAY,EAAE,cAAc,GAAG,WAAW,CAAC,CACvD,CAAC;AAEF,MAAM,WAAW,SAAS;IACtB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,OAAO,CAAC,EAAE;QACN,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;QAC7C,oBAAoB,CAAC,EAAE,2BAA2B,CAAC;KACtD,CAAC;CACL;AAED,MAAM,MAAM,mBAAmB,GAAG,YAAY,CAAC,oBAAoB,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/webpack/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,aAAa,IAAI,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEhD,MAAM,MAAM,OAAO,GAAG,OAAO,CACzB,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,yBAAyB,CAAC,GAC1E,IAAI,CAAC,YAAY,EAAE,cAAc,GAAG,WAAW,CAAC,CACvD,CAAC;AAEF,MAAM,WAAW,SAAS;IACtB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,OAAO,CAAC,EAAE;QACN,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;QAC7C,oBAAoB,CAAC,EAAE,2BAA2B,CAAC;KACtD,CAAC;CACL;AAED,MAAM,MAAM,mBAAmB,GAAG,YAAY,CAAC,oBAAoB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-webpack-build-context.d.ts","sourceRoot":"","sources":["../../../src/webpack/utils/create-webpack-build-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAsB,MAAM,YAAY,CAAC;AAErE,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,mBAAmB,GAAG,mBAAmB,CAO3F"}
1
+ {"version":3,"file":"create-webpack-build-context.d.ts","sourceRoot":"","sources":["../../../src/webpack/utils/create-webpack-build-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAsB,MAAM,YAAY,CAAC;AAErE,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,mBAAmB,GAAG,mBAAmB,CAE3F"}
@@ -11,9 +11,8 @@ Object.defineProperty(exports, "createWebpackBuildContext", {
11
11
  const _core = require("../../core");
12
12
  const _utils = require("../../utils");
13
13
  function createWebpackBuildContext(options) {
14
- const context = (0, _core.createBuildContext)(options);
15
14
  return {
16
- ...context,
15
+ ...(0, _core.createBuildContext)(options),
17
16
  bundlerConfig: (0, _utils.getWebpackConfiguration)()
18
17
  };
19
18
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/webpack/utils/create-webpack-build-context.ts"],"sourcesContent":["import { BuildContextOptions, createBuildContext } from '../../core';\nimport { getWebpackConfiguration } from '../../utils';\nimport { WebpackBuildContext } from '../types';\n\nexport function createWebpackBuildContext(options: BuildContextOptions): WebpackBuildContext {\n const context = createBuildContext(options);\n\n return {\n ...context,\n bundlerConfig: getWebpackConfiguration(),\n };\n}\n"],"names":["createWebpackBuildContext","options","context","createBuildContext","bundlerConfig","getWebpackConfiguration"],"mappings":";;;;+BAIgBA;;;eAAAA;;;sBAJwC;uBAChB;AAGjC,SAASA,0BAA0BC,OAA4B;IAClE,MAAMC,UAAUC,IAAAA,wBAAkB,EAACF;IAEnC,OAAO;QACH,GAAGC,OAAO;QACVE,eAAeC,IAAAA,8BAAuB;IAC1C;AACJ"}
1
+ {"version":3,"sources":["../../../src/webpack/utils/create-webpack-build-context.ts"],"sourcesContent":["import { BuildContextOptions, createBuildContext } from '../../core';\nimport { getWebpackConfiguration } from '../../utils';\nimport { WebpackBuildContext } from '../types';\n\nexport function createWebpackBuildContext(options: BuildContextOptions): WebpackBuildContext {\n return { ...createBuildContext(options), bundlerConfig: getWebpackConfiguration() };\n}\n"],"names":["createWebpackBuildContext","options","createBuildContext","bundlerConfig","getWebpackConfiguration"],"mappings":";;;;+BAIgBA;;;eAAAA;;;sBAJwC;uBAChB;AAGjC,SAASA,0BAA0BC,OAA4B;IAClE,OAAO;QAAE,GAAGC,IAAAA,wBAAkB,EAACD,QAAQ;QAAEE,eAAeC,IAAAA,8BAAuB;IAAG;AACtF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/startup",
3
- "version": "36.4.0",
3
+ "version": "37.0.0",
4
4
  "description": "CLI to create multi-package Lerna projects with TypeScript and React",
5
5
  "homepage": "https://docs.st.dev/docs/frontend/uikit/startup",
6
6
  "repository": {
@@ -47,6 +47,7 @@
47
47
  ],
48
48
  "bin": {
49
49
  "startup": "./bin/index.js",
50
+ "analyze": "./bin/analyze.js",
50
51
  "cpx": "./bin/cpx.js",
51
52
  "eslint": "./bin/eslint.js",
52
53
  "jest": "./bin/jest.js",
@@ -85,7 +86,7 @@
85
86
  "prepare": "node ./src/scripts/generate-bin-wrappers.js"
86
87
  },
87
88
  "devDependencies": {
88
- "@swc/types": "^0.1.26",
89
+ "@swc/types": "^0.1.27",
89
90
  "@types/cpx": "~1.5.5",
90
91
  "@types/debug": "^4.1.12",
91
92
  "@types/eslint": "~9.6.1",
@@ -102,16 +103,16 @@
102
103
  "@jest/core": "~30.4.2",
103
104
  "@jest/types": "~30.4.1",
104
105
  "@jsdevtools/coverage-istanbul-loader": "^3.0.5",
105
- "@servicetitan/eslint-config": "36.4.0",
106
- "@servicetitan/install": "36.4.0",
107
- "@servicetitan/startup-utils": "36.4.0",
108
- "@servicetitan/stylelint-config": "36.4.0",
106
+ "@servicetitan/eslint-config": "37.0.0",
107
+ "@servicetitan/install": "37.0.0",
108
+ "@servicetitan/startup-utils": "37.0.0",
109
+ "@servicetitan/stylelint-config": "37.0.0",
109
110
  "@svgr/webpack": "^8.1.0",
110
111
  "@swc/cli": "^0.8.1",
111
- "@swc/core": "1.15.40",
112
+ "@swc/core": "1.15.41",
112
113
  "@types/debug": "^4.1.12",
113
114
  "@types/jest": "~30.0.0",
114
- "@vitest/coverage-v8": "^4.1.8",
115
+ "@vitest/coverage-v8": "^4.1.9",
115
116
  "chalk": "~4.1.2",
116
117
  "cli-table3": "^0.6.5",
117
118
  "cpx2": "9.0.0",
@@ -119,6 +120,7 @@
119
120
  "css-minimizer-webpack-plugin": "^8.0.0",
120
121
  "debug": "^4.4.3",
121
122
  "deepmerge": "~4.3.1",
123
+ "es-module-lexer": "^2.1.0",
122
124
  "eslint": "~9.39.2",
123
125
  "eta": "^4.6.0",
124
126
  "execa": "~5.1.1",
@@ -133,39 +135,41 @@
133
135
  "js-yaml": "~4.2.0",
134
136
  "json5": "^2.2.3",
135
137
  "lerna": "~9.0.7",
136
- "less": "~4.6.4",
138
+ "less": "~4.6.6",
137
139
  "less-loader": "~13.0.0",
138
140
  "less-plugin-npm-import": "~2.1.0",
139
141
  "lodash.kebabcase": "^4.1.1",
140
142
  "lodash.memoize": "^4.1.2",
141
- "memfs": "~4.57.2",
143
+ "memfs": "~4.57.7",
142
144
  "mini-css-extract-plugin": "~2.10.2",
143
145
  "moment-locales-webpack-plugin": "~1.2.0",
144
146
  "multimatch": "~8.0.0",
145
147
  "patch-package": "^8.0.1",
146
148
  "portfinder": "~1.0.38",
147
149
  "postcss": "~8.5.15",
148
- "prettier": "~3.8.3",
149
- "sass": "~1.100.0",
150
+ "prettier": "~3.8.4",
151
+ "sass": "~1.101.0",
150
152
  "sass-loader": "~17.0.0",
151
- "semver": "~7.8.1",
153
+ "semver": "~7.8.4",
152
154
  "source-map-loader": "~5.0.0",
153
155
  "style-loader": "~4.0.0",
154
- "stylelint": "~16.26.1",
156
+ "stylelint": "~17.13.0",
155
157
  "swc-loader": "^0.2.7",
156
158
  "terminal-link": "^5.0.0",
157
159
  "terser-webpack-plugin": "^5.6.1",
158
160
  "ts-jest": "29.4.11",
159
161
  "ts-node": "~10.9.2",
160
162
  "typed-css-modules": "~0.9.1",
161
- "typescript": "5.9.3",
163
+ "typescript": "6.0.3",
162
164
  "vite": "^8.0.16",
165
+ "vite-bundle-analyzer": "^1.3.8",
166
+ "vite-plugin-istanbul": "^9.0.1",
163
167
  "vite-plugin-svgr": "^5.2.0",
164
- "vitest": "^4.1.8",
168
+ "vitest": "^4.1.9",
165
169
  "webpack": "~5.107.2",
166
170
  "webpack-assets-manifest": "~6.5.2",
167
171
  "webpack-bundle-analyzer": "^5.3.0",
168
- "webpack-dev-server": "^5.2.4",
172
+ "webpack-dev-server": "^5.2.5",
169
173
  "webpack-filter-warnings-plugin": "~1.2.1",
170
174
  "webpack-merge": "~6.0.1",
171
175
  "webpack-remove-empty-scripts": "^1.1.1",
@@ -193,5 +197,5 @@
193
197
  "cli": {
194
198
  "webpack": false
195
199
  },
196
- "gitHead": "8beab9ae3a70ce381e8cd53f2de8691640e96c6e"
200
+ "gitHead": "f0acf332ece207c91acb18da23a614efbc8551ec"
197
201
  }
@@ -11,6 +11,7 @@ import { entry } from '../registry/build';
11
11
  jest.mock('../../../utils', () => ({
12
12
  ...jest.requireActual('../../../utils'),
13
13
  getPackages: jest.fn(),
14
+ getConfiguration: jest.fn(() => ({})),
14
15
  }));
15
16
  jest.mock('../../utils', () => ({
16
17
  ...jest.requireActual('../../utils'),
@@ -121,7 +122,7 @@ describe(`[startup] ${Build.name}`, () => {
121
122
  await subject();
122
123
 
123
124
  expect(lernaExec).toHaveBeenCalledWith({
124
- 'cmd': 'startup bundle-package',
125
+ 'cmd': 'startup bundle-webpack',
125
126
  'scope': packages.map(({ name }) => name),
126
127
  'parallel': true,
127
128
  'stream': true,
@@ -133,13 +134,25 @@ describe(`[startup] ${Build.name}`, () => {
133
134
  await subject();
134
135
 
135
136
  expect(lernaExec).toHaveBeenCalledWith({
136
- 'cmd': 'startup bundle-package',
137
+ 'cmd': 'startup bundle-webpack',
137
138
  'scope': packages.map(({ name }) => name),
138
139
  'stream': true,
139
140
  '--': [],
140
141
  });
141
142
  });
142
143
 
144
+ describe('with --bundler=vite', () => {
145
+ beforeEach(() => (args.bundler = 'vite'));
146
+
147
+ test('bundles with Vite', async () => {
148
+ await subject();
149
+
150
+ expect(lernaExec).toHaveBeenCalledWith(
151
+ expect.objectContaining({ cmd: 'startup bundle-vite' })
152
+ );
153
+ });
154
+ });
155
+
143
156
  describe('with "code-coverage"', () => {
144
157
  beforeEach(() => (args.codeCoverage = true));
145
158
 
@@ -148,7 +161,7 @@ describe(`[startup] ${Build.name}`, () => {
148
161
 
149
162
  expect(lernaExec).toHaveBeenCalledWith(
150
163
  expect.objectContaining({
151
- 'cmd': 'startup bundle-package',
164
+ 'cmd': 'startup bundle-webpack',
152
165
  '--': ['--code-coverage'],
153
166
  })
154
167
  );
@@ -163,13 +176,28 @@ describe(`[startup] ${Build.name}`, () => {
163
176
 
164
177
  expect(lernaExec).toHaveBeenCalledWith(
165
178
  expect.objectContaining({
166
- 'cmd': 'startup bundle-package',
179
+ 'cmd': 'startup bundle-webpack',
167
180
  '--': ['--stat'],
168
181
  })
169
182
  );
170
183
  });
171
184
  });
172
185
 
186
+ describe('with "preview"', () => {
187
+ beforeEach(() => (args.preview = true));
188
+
189
+ test('passes --preview to the bundler', async () => {
190
+ await subject();
191
+
192
+ expect(lernaExec).toHaveBeenCalledWith(
193
+ expect.objectContaining({
194
+ 'cmd': 'startup bundle-webpack',
195
+ '--': ['--preview'],
196
+ })
197
+ );
198
+ });
199
+ });
200
+
173
201
  describe('with "config"', () => {
174
202
  beforeEach(() => (args.config = 'foo.config.js'));
175
203
 
@@ -178,7 +206,7 @@ describe(`[startup] ${Build.name}`, () => {
178
206
 
179
207
  expect(lernaExec).toHaveBeenCalledWith(
180
208
  expect.objectContaining({
181
- 'cmd': 'startup bundle-package',
209
+ 'cmd': 'startup bundle-webpack',
182
210
  '--': [`--config "${args.config}"`],
183
211
  })
184
212
  );
@@ -1,6 +1,12 @@
1
1
  import { build, createServer, preview as previewServer } from 'vite';
2
2
  import { getBuildName, stringifyConfig } from '../../../core';
3
- import { hasHeadlessBundle, isExposeSharedDependencies, isWebComponent, log } from '../../../utils';
3
+ import {
4
+ hasHeadlessBundle,
5
+ isExposeSharedDependencies,
6
+ isViteDevServerDisabled,
7
+ isWebComponent,
8
+ log,
9
+ } from '../../../utils';
4
10
  import { buildSharedDependencies } from '../../../vite/build-shared-dependencies';
5
11
  import { createViteConfig } from '../../../vite/config';
6
12
  import { validateViteSharedDependencies } from '../../../vite/validate-shared-dependencies';
@@ -20,6 +26,7 @@ jest.mock('../../../utils', () => ({
20
26
  ...jest.requireActual('../../../utils'),
21
27
  hasHeadlessBundle: jest.fn(() => false),
22
28
  isExposeSharedDependencies: jest.fn(() => true),
29
+ isViteDevServerDisabled: jest.fn(() => false),
23
30
  isWebComponent: jest.fn(() => false),
24
31
  log: { text: jest.fn() },
25
32
  }));
@@ -79,6 +86,18 @@ describe(BundleVite.name, () => {
79
86
  expect(build).toHaveBeenCalledWith(viteConfig);
80
87
  });
81
88
 
89
+ describe('with "stat"', () => {
90
+ beforeEach(() => (args.stat = true));
91
+
92
+ test('requests a bundle report', async () => {
93
+ await subject();
94
+
95
+ expect(createViteConfig).toHaveBeenCalledWith(
96
+ expect.objectContaining({ buildStat: true })
97
+ );
98
+ });
99
+ });
100
+
82
101
  describe('with "printConfig"', () => {
83
102
  beforeEach(() => (args.printConfig = true));
84
103
 
@@ -157,6 +176,36 @@ describe(BundleVite.name, () => {
157
176
  expect(mockServer.listen).not.toHaveBeenCalled();
158
177
  });
159
178
  });
179
+
180
+ describe('when dev server disabled', () => {
181
+ const originalNodeEnv = process.env.NODE_ENV;
182
+
183
+ beforeEach(() => jest.mocked(isViteDevServerDisabled).mockReturnValue(true));
184
+
185
+ afterEach(() => {
186
+ process.env.NODE_ENV = originalNodeEnv;
187
+ });
188
+
189
+ test('builds to disk in watch mode', async () => {
190
+ await subject();
191
+
192
+ expect(build).toHaveBeenCalledWith(
193
+ expect.objectContaining({ build: { watch: {} } })
194
+ );
195
+ });
196
+
197
+ test('produces a development build', async () => {
198
+ await subject();
199
+
200
+ expect(process.env.NODE_ENV).toBe('development');
201
+ });
202
+
203
+ test('does not start a dev server', async () => {
204
+ await subject();
205
+
206
+ expect(createServer).not.toHaveBeenCalled();
207
+ });
208
+ });
160
209
  });
161
210
 
162
211
  describe('with "useWatchConfig"', () => {
@@ -7,6 +7,7 @@ import { Start } from '../start';
7
7
  jest.mock('../../../utils', () => ({
8
8
  ...jest.requireActual('../../../utils'),
9
9
  getPackages: jest.fn(),
10
+ getConfiguration: jest.fn(() => ({})),
10
11
  }));
11
12
  jest.mock('../../utils', () => ({
12
13
  ...jest.requireActual('../../utils'),
@@ -131,7 +132,7 @@ describe(`[startup] ${Start.name}`, () => {
131
132
  await subject();
132
133
 
133
134
  expect(lernaExec).toHaveBeenCalledWith({
134
- 'cmd': 'startup bundle-package',
135
+ 'cmd': 'startup bundle-webpack',
135
136
  'scope': packages.map(({ name }) => name),
136
137
  'parallel': true,
137
138
  'stream': true,
@@ -143,7 +144,7 @@ describe(`[startup] ${Start.name}`, () => {
143
144
  await subject();
144
145
 
145
146
  expect(lernaExec).toHaveBeenCalledWith({
146
- 'cmd': 'startup bundle-package',
147
+ 'cmd': 'startup bundle-webpack',
147
148
  'scope': packages.map(({ name }) => name),
148
149
  'parallel': true,
149
150
  'stream': true,
@@ -151,6 +152,18 @@ describe(`[startup] ${Start.name}`, () => {
151
152
  });
152
153
  });
153
154
 
155
+ describe('with --bundler=vite', () => {
156
+ beforeEach(() => (args.bundler = 'vite'));
157
+
158
+ test('bundles with Vite in watch mode', async () => {
159
+ await subject();
160
+
161
+ expect(lernaExec).toHaveBeenCalledWith(
162
+ expect.objectContaining({ cmd: 'startup bundle-vite' })
163
+ );
164
+ });
165
+ });
166
+
154
167
  describe('with "code-coverage"', () => {
155
168
  beforeEach(() => (args.codeCoverage = true));
156
169
 
@@ -159,7 +172,7 @@ describe(`[startup] ${Start.name}`, () => {
159
172
 
160
173
  expect(lernaExec).toHaveBeenCalledWith(
161
174
  expect.objectContaining({
162
- 'cmd': 'startup bundle-package',
175
+ 'cmd': 'startup bundle-webpack',
163
176
  '--': ['--watch', '--code-coverage'],
164
177
  })
165
178
  );
@@ -174,7 +187,7 @@ describe(`[startup] ${Start.name}`, () => {
174
187
 
175
188
  expect(lernaExec).toHaveBeenCalledWith(
176
189
  expect.objectContaining({
177
- 'cmd': 'startup bundle-package',
190
+ 'cmd': 'startup bundle-webpack',
178
191
  '--': ['--watch', `--config "${args.config}"`],
179
192
  })
180
193
  );