@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
@@ -0,0 +1,3 @@
1
+ import type { Plugin } from 'rolldown';
2
+ export declare function chainSourceMapsPlugin(): Plugin;
3
+ //# sourceMappingURL=chain-source-maps-plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain-source-maps-plugin.d.ts","sourceRoot":"","sources":["../../../src/vite/plugins/chain-source-maps-plugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAOvC,wBAAgB,qBAAqB,IAAI,MAAM,CAgB9C"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "chainSourceMapsPlugin", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return chainSourceMapsPlugin;
9
+ }
10
+ });
11
+ const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
12
+ const _path = /*#__PURE__*/ _interop_require_default(require("path"));
13
+ function _interop_require_default(obj) {
14
+ return obj && obj.__esModule ? obj : {
15
+ default: obj
16
+ };
17
+ }
18
+ function chainSourceMapsPlugin() {
19
+ return {
20
+ name: 'chain-source-maps',
21
+ load (id) {
22
+ const mapPath = `${id}.map`;
23
+ if (id.endsWith('.js') && _fs.default.existsSync(mapPath)) {
24
+ const map = JSON.parse(_fs.default.readFileSync(mapPath, 'utf8'));
25
+ const dir = _path.default.dirname(mapPath);
26
+ // Absolute paths let Rolldown resolve the sources; source maps require `/` separators.
27
+ map.sources = map.sources.map((source)=>_path.default.resolve(dir, source).replace(/\\/g, '/'));
28
+ return {
29
+ code: _fs.default.readFileSync(id, 'utf8'),
30
+ map
31
+ };
32
+ }
33
+ }
34
+ };
35
+ }
36
+
37
+ //# sourceMappingURL=chain-source-maps-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/vite/plugins/chain-source-maps-plugin.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport type { Plugin } from 'rolldown';\n\n/*\n * Return each compiled `.js` file's external `.js.map` (emitted by SWC) from the\n * load hook so Rolldown chains it, making source maps resolve to the original\n * `.ts` instead of stopping at the compiled `.js`.\n */\nexport function chainSourceMapsPlugin(): Plugin {\n return {\n name: 'chain-source-maps',\n load(id) {\n const mapPath = `${id}.map`;\n if (id.endsWith('.js') && fs.existsSync(mapPath)) {\n const map = JSON.parse(fs.readFileSync(mapPath, 'utf8'));\n const dir = path.dirname(mapPath);\n // Absolute paths let Rolldown resolve the sources; source maps require `/` separators.\n map.sources = map.sources.map((source: string) =>\n path.resolve(dir, source).replace(/\\\\/g, '/')\n );\n return { code: fs.readFileSync(id, 'utf8'), map };\n }\n },\n };\n}\n"],"names":["chainSourceMapsPlugin","name","load","id","mapPath","endsWith","fs","existsSync","map","JSON","parse","readFileSync","dir","path","dirname","sources","source","resolve","replace","code"],"mappings":";;;;+BASgBA;;;eAAAA;;;2DATD;6DACE;;;;;;AAQV,SAASA;IACZ,OAAO;QACHC,MAAM;QACNC,MAAKC,EAAE;YACH,MAAMC,UAAU,GAAGD,GAAG,IAAI,CAAC;YAC3B,IAAIA,GAAGE,QAAQ,CAAC,UAAUC,WAAE,CAACC,UAAU,CAACH,UAAU;gBAC9C,MAAMI,MAAMC,KAAKC,KAAK,CAACJ,WAAE,CAACK,YAAY,CAACP,SAAS;gBAChD,MAAMQ,MAAMC,aAAI,CAACC,OAAO,CAACV;gBACzB,uFAAuF;gBACvFI,IAAIO,OAAO,GAAGP,IAAIO,OAAO,CAACP,GAAG,CAAC,CAACQ,SAC3BH,aAAI,CAACI,OAAO,CAACL,KAAKI,QAAQE,OAAO,CAAC,OAAO;gBAE7C,OAAO;oBAAEC,MAAMb,WAAE,CAACK,YAAY,CAACR,IAAI;oBAASK;gBAAI;YACpD;QACJ;IACJ;AACJ"}
@@ -0,0 +1,4 @@
1
+ import type { Plugin } from 'vite';
2
+ import { BuildContext } from '../../core';
3
+ export declare function cleanPlugin(context: BuildContext): Plugin;
4
+ //# sourceMappingURL=clean-plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clean-plugin.d.ts","sourceRoot":"","sources":["../../../src/vite/plugins/clean-plugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,EAAE,YAAY,EAAiB,MAAM,YAAY,CAAC;AAOzD,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAwBzD"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "cleanPlugin", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return cleanPlugin;
9
+ }
10
+ });
11
+ const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
12
+ const _path = /*#__PURE__*/ _interop_require_default(require("path"));
13
+ const _core = require("../../core");
14
+ function _interop_require_default(obj) {
15
+ return obj && obj.__esModule ? obj : {
16
+ default: obj
17
+ };
18
+ }
19
+ function cleanPlugin(context) {
20
+ const { isWebComponent } = context.package;
21
+ let outDir = '';
22
+ return {
23
+ name: 'clean',
24
+ apply: 'build',
25
+ config: ()=>({
26
+ build: {
27
+ emptyOutDir: isWebComponent
28
+ }
29
+ }),
30
+ configResolved (config) {
31
+ outDir = config.build.outDir;
32
+ },
33
+ buildStart () {
34
+ if (isWebComponent || !_fs.default.existsSync(outDir)) {
35
+ return;
36
+ }
37
+ const keep = getKeepDir(context);
38
+ for (const entry of _fs.default.readdirSync(outDir)){
39
+ if (entry === keep) {
40
+ continue;
41
+ }
42
+ _fs.default.rmSync(_path.default.join(outDir, entry), {
43
+ recursive: true,
44
+ force: true
45
+ });
46
+ }
47
+ }
48
+ };
49
+ }
50
+ /* The shared deps subdirectory to preserve, or undefined to clean everything. */ function getKeepDir(context) {
51
+ if (context.build.emitExposedDependencies) {
52
+ return undefined;
53
+ }
54
+ return (0, _core.getBundleType)({
55
+ ...context,
56
+ build: {
57
+ ...context.build,
58
+ emitExposedDependencies: true
59
+ }
60
+ });
61
+ }
62
+
63
+ //# sourceMappingURL=clean-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/vite/plugins/clean-plugin.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport type { Plugin } from 'vite';\nimport { BuildContext, getBundleType } from '../../core';\n\n/*\n * Removes stale artifacts from the output directory. MFE builds use Vite's `emptyOutDir`.\n * Host builds can't, since their outDir holds the shared dependencies subdir, so\n * `buildStart` empties it while keeping shared dependencies.\n */\nexport function cleanPlugin(context: BuildContext): Plugin {\n const { isWebComponent } = context.package;\n let outDir = '';\n\n return {\n name: 'clean',\n apply: 'build',\n config: () => ({ build: { emptyOutDir: isWebComponent } }),\n configResolved(config) {\n outDir = config.build.outDir;\n },\n buildStart() {\n if (isWebComponent || !fs.existsSync(outDir)) {\n return;\n }\n const keep = getKeepDir(context);\n for (const entry of fs.readdirSync(outDir)) {\n if (entry === keep) {\n continue;\n }\n fs.rmSync(path.join(outDir, entry), { recursive: true, force: true });\n }\n },\n };\n}\n\n/* The shared deps subdirectory to preserve, or undefined to clean everything. */\nfunction getKeepDir(context: BuildContext): string | undefined {\n if (context.build.emitExposedDependencies) {\n return undefined;\n }\n return getBundleType({\n ...context,\n build: { ...context.build, emitExposedDependencies: true },\n });\n}\n"],"names":["cleanPlugin","context","isWebComponent","package","outDir","name","apply","config","build","emptyOutDir","configResolved","buildStart","fs","existsSync","keep","getKeepDir","entry","readdirSync","rmSync","path","join","recursive","force","emitExposedDependencies","undefined","getBundleType"],"mappings":";;;;+BAUgBA;;;eAAAA;;;2DAVD;6DACE;sBAE2B;;;;;;AAOrC,SAASA,YAAYC,OAAqB;IAC7C,MAAM,EAAEC,cAAc,EAAE,GAAGD,QAAQE,OAAO;IAC1C,IAAIC,SAAS;IAEb,OAAO;QACHC,MAAM;QACNC,OAAO;QACPC,QAAQ,IAAO,CAAA;gBAAEC,OAAO;oBAAEC,aAAaP;gBAAe;YAAE,CAAA;QACxDQ,gBAAeH,MAAM;YACjBH,SAASG,OAAOC,KAAK,CAACJ,MAAM;QAChC;QACAO;YACI,IAAIT,kBAAkB,CAACU,WAAE,CAACC,UAAU,CAACT,SAAS;gBAC1C;YACJ;YACA,MAAMU,OAAOC,WAAWd;YACxB,KAAK,MAAMe,SAASJ,WAAE,CAACK,WAAW,CAACb,QAAS;gBACxC,IAAIY,UAAUF,MAAM;oBAChB;gBACJ;gBACAF,WAAE,CAACM,MAAM,CAACC,aAAI,CAACC,IAAI,CAAChB,QAAQY,QAAQ;oBAAEK,WAAW;oBAAMC,OAAO;gBAAK;YACvE;QACJ;IACJ;AACJ;AAEA,+EAA+E,GAC/E,SAASP,WAAWd,OAAqB;IACrC,IAAIA,QAAQO,KAAK,CAACe,uBAAuB,EAAE;QACvC,OAAOC;IACX;IACA,OAAOC,IAAAA,mBAAa,EAAC;QACjB,GAAGxB,OAAO;QACVO,OAAO;YAAE,GAAGP,QAAQO,KAAK;YAAEe,yBAAyB;QAAK;IAC7D;AACJ"}
@@ -0,0 +1,4 @@
1
+ import type { Plugin } from 'vite';
2
+ import { BuildContext } from '../../core';
3
+ export declare function designSystemGuardPlugin(context: BuildContext): Plugin;
4
+ //# sourceMappingURL=design-system-guard-plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"design-system-guard-plugin.d.ts","sourceRoot":"","sources":["../../../src/vite/plugins/design-system-guard-plugin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAU1C,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAqBrE"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "designSystemGuardPlugin", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return designSystemGuardPlugin;
9
+ }
10
+ });
11
+ const _path = /*#__PURE__*/ _interop_require_default(require("path"));
12
+ function _interop_require_default(obj) {
13
+ return obj && obj.__esModule ? obj : {
14
+ default: obj
15
+ };
16
+ }
17
+ const DESIGN_SYSTEM = '@servicetitan/design-system';
18
+ const DESIGN_SYSTEM_CSS = /[\\/]design-system\.css$/;
19
+ function designSystemGuardPlugin(context) {
20
+ const { isExposeSharedDependencies, sharedDependencies } = context.package;
21
+ const { emitExposedDependencies } = context.build;
22
+ const designSystemInSharedBundle = isExposeSharedDependencies && !!sharedDependencies[DESIGN_SYSTEM] && !emitExposedDependencies;
23
+ return {
24
+ name: 'design-system-guard',
25
+ enforce: 'pre',
26
+ resolveId (source, importer) {
27
+ if (designSystemInSharedBundle && importer && DESIGN_SYSTEM_CSS.test(source)) {
28
+ const filename = _path.default.parse(importer).name;
29
+ this.error(`do not import design-system.css in "${filename}"; it is automatically included as a shared dependency`);
30
+ }
31
+ }
32
+ };
33
+ }
34
+
35
+ //# sourceMappingURL=design-system-guard-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/vite/plugins/design-system-guard-plugin.ts"],"sourcesContent":["import path from 'path';\nimport type { Plugin } from 'vite';\nimport { BuildContext } from '../../core';\n\nconst DESIGN_SYSTEM = '@servicetitan/design-system';\nconst DESIGN_SYSTEM_CSS = /[\\\\/]design-system\\.css$/;\n\n/*\n * Errors when a host's own code imports design-system.css while it exposes the design\n * system as a shared dependency. The CSS already ships in the shared bundle, so a direct\n * import would load the design system twice. Mirrors the webpack guard in css-rules.ts.\n */\nexport function designSystemGuardPlugin(context: BuildContext): Plugin {\n const { isExposeSharedDependencies, sharedDependencies } = context.package;\n const { emitExposedDependencies } = context.build;\n\n const designSystemInSharedBundle =\n isExposeSharedDependencies &&\n !!sharedDependencies[DESIGN_SYSTEM] &&\n !emitExposedDependencies;\n\n return {\n name: 'design-system-guard',\n enforce: 'pre',\n resolveId(source, importer) {\n if (designSystemInSharedBundle && importer && DESIGN_SYSTEM_CSS.test(source)) {\n const filename = path.parse(importer).name;\n this.error(\n `do not import design-system.css in \"${filename}\"; it is automatically included as a shared dependency`\n );\n }\n },\n };\n}\n"],"names":["designSystemGuardPlugin","DESIGN_SYSTEM","DESIGN_SYSTEM_CSS","context","isExposeSharedDependencies","sharedDependencies","package","emitExposedDependencies","build","designSystemInSharedBundle","name","enforce","resolveId","source","importer","test","filename","path","parse","error"],"mappings":";;;;+BAYgBA;;;eAAAA;;;6DAZC;;;;;;AAIjB,MAAMC,gBAAgB;AACtB,MAAMC,oBAAoB;AAOnB,SAASF,wBAAwBG,OAAqB;IACzD,MAAM,EAAEC,0BAA0B,EAAEC,kBAAkB,EAAE,GAAGF,QAAQG,OAAO;IAC1E,MAAM,EAAEC,uBAAuB,EAAE,GAAGJ,QAAQK,KAAK;IAEjD,MAAMC,6BACFL,8BACA,CAAC,CAACC,kBAAkB,CAACJ,cAAc,IACnC,CAACM;IAEL,OAAO;QACHG,MAAM;QACNC,SAAS;QACTC,WAAUC,MAAM,EAAEC,QAAQ;YACtB,IAAIL,8BAA8BK,YAAYZ,kBAAkBa,IAAI,CAACF,SAAS;gBAC1E,MAAMG,WAAWC,aAAI,CAACC,KAAK,CAACJ,UAAUJ,IAAI;gBAC1C,IAAI,CAACS,KAAK,CACN,CAAC,oCAAoC,EAAEH,SAAS,sDAAsD,CAAC;YAE/G;QACJ;IACJ;AACJ"}
@@ -1,5 +1,21 @@
1
1
  import type { Plugin } from 'vite';
2
2
  import { BuildContext } from '../../core';
3
- export declare const VIRTUAL_PREFIX = "\0IGNORE";
3
+ export declare const THROW_PREFIX = "\0IGNORE_THROW:";
4
+ export declare const EMPTY_PREFIX = "\0IGNORE_EMPTY:";
5
+ /**
6
+ * Handles optional peer dependencies that are not installed.
7
+ *
8
+ * @see {@link file://./../../webpack/configs/plugins/ignore-plugin/ignore-plugin.ts} for the webpack counterpart.
9
+ *
10
+ * 'throw' mode: substitutes a virtual module whose body throws "Cannot find module" on
11
+ * evaluation. Mirrors webpack's `webpackMissingModule()` semantics. Top-level static
12
+ * imports of the resource crash module evaluation, and `try { await import(...) } catch {}`
13
+ * (or `try { require(...) } catch {}` in CJS code Rolldown bundles) work as expected.
14
+ * This is the default for matched optional peers.
15
+ *
16
+ * 'empty' mode: substitutes a virtual module with no exports. Required for top-level
17
+ * `import * as X from 'optional'` followed by `X.foo === undefined` detection. Opt in via
18
+ * `cli.peerDependenciesMeta["pkg"].fallback = "empty"` in the importer's package.json.
19
+ */
4
20
  export declare function ignoreModulesPlugin(context: BuildContext): Plugin;
5
21
  //# sourceMappingURL=ignore-modules-plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ignore-modules-plugin.d.ts","sourceRoot":"","sources":["../../../src/vite/plugins/ignore-modules-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,EAAE,YAAY,EAAiB,MAAM,YAAY,CAAC;AAEzD,eAAO,MAAM,cAAc,aAAa,CAAC;AAEzC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAmBjE"}
1
+ {"version":3,"file":"ignore-modules-plugin.d.ts","sourceRoot":"","sources":["../../../src/vite/plugins/ignore-modules-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,EAAE,YAAY,EAAiB,MAAM,YAAY,CAAC;AAEzD,eAAO,MAAM,YAAY,oBAAoB,CAAC;AAC9C,eAAO,MAAM,YAAY,oBAAoB,CAAC;AAE9C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CA6BjE"}
@@ -9,34 +9,48 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- get VIRTUAL_PREFIX () {
13
- return VIRTUAL_PREFIX;
12
+ get EMPTY_PREFIX () {
13
+ return EMPTY_PREFIX;
14
+ },
15
+ get THROW_PREFIX () {
16
+ return THROW_PREFIX;
14
17
  },
15
18
  get ignoreModulesPlugin () {
16
19
  return ignoreModulesPlugin;
17
20
  }
18
21
  });
19
22
  const _core = require("../../core");
20
- const VIRTUAL_PREFIX = '\0IGNORE';
23
+ const THROW_PREFIX = '\0IGNORE_THROW:';
24
+ const EMPTY_PREFIX = '\0IGNORE_EMPTY:';
21
25
  function ignoreModulesPlugin(context) {
22
26
  const checker = (0, _core.checkResource)(context);
23
27
  return {
24
28
  name: 'ignore-modules',
25
29
  enforce: 'pre',
26
30
  resolveId (source, importer) {
27
- if (importer && checker({
31
+ if (!importer) {
32
+ return;
33
+ }
34
+ const mode = checker({
28
35
  resource: source,
29
36
  importer
30
- })) {
31
- return `${VIRTUAL_PREFIX}${source}`;
37
+ });
38
+ if (mode === 'throw') {
39
+ return `${THROW_PREFIX}${source}`;
40
+ }
41
+ if (mode === 'empty') {
42
+ return `${EMPTY_PREFIX}${source}`;
32
43
  }
33
44
  },
34
45
  load (id) {
35
- if (id.startsWith(VIRTUAL_PREFIX)) {
36
- const source = id.slice(VIRTUAL_PREFIX.length);
46
+ if (id.startsWith(THROW_PREFIX)) {
47
+ const source = id.slice(THROW_PREFIX.length);
37
48
  const message = JSON.stringify(`Cannot find module '${source}'`);
38
49
  return `throw Object.assign(new Error(${message}), { code: 'MODULE_NOT_FOUND' });`;
39
50
  }
51
+ if (id.startsWith(EMPTY_PREFIX)) {
52
+ return 'export {};';
53
+ }
40
54
  }
41
55
  };
42
56
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/vite/plugins/ignore-modules-plugin.ts"],"sourcesContent":["import type { Plugin } from 'vite';\nimport { BuildContext, checkResource } from '../../core';\n\nexport const VIRTUAL_PREFIX = '\\0IGNORE';\n\nexport function ignoreModulesPlugin(context: BuildContext): Plugin {\n const checker = checkResource(context);\n\n return {\n name: 'ignore-modules',\n enforce: 'pre',\n resolveId(source, importer) {\n if (importer && checker({ resource: source, importer })) {\n return `${VIRTUAL_PREFIX}${source}`;\n }\n },\n load(id) {\n if (id.startsWith(VIRTUAL_PREFIX)) {\n const source = id.slice(VIRTUAL_PREFIX.length);\n const message = JSON.stringify(`Cannot find module '${source}'`);\n return `throw Object.assign(new Error(${message}), { code: 'MODULE_NOT_FOUND' });`;\n }\n },\n };\n}\n"],"names":["VIRTUAL_PREFIX","ignoreModulesPlugin","context","checker","checkResource","name","enforce","resolveId","source","importer","resource","load","id","startsWith","slice","length","message","JSON","stringify"],"mappings":";;;;;;;;;;;QAGaA;eAAAA;;QAEGC;eAAAA;;;sBAJ4B;AAErC,MAAMD,iBAAiB;AAEvB,SAASC,oBAAoBC,OAAqB;IACrD,MAAMC,UAAUC,IAAAA,mBAAa,EAACF;IAE9B,OAAO;QACHG,MAAM;QACNC,SAAS;QACTC,WAAUC,MAAM,EAAEC,QAAQ;YACtB,IAAIA,YAAYN,QAAQ;gBAAEO,UAAUF;gBAAQC;YAAS,IAAI;gBACrD,OAAO,GAAGT,iBAAiBQ,QAAQ;YACvC;QACJ;QACAG,MAAKC,EAAE;YACH,IAAIA,GAAGC,UAAU,CAACb,iBAAiB;gBAC/B,MAAMQ,SAASI,GAAGE,KAAK,CAACd,eAAee,MAAM;gBAC7C,MAAMC,UAAUC,KAAKC,SAAS,CAAC,CAAC,oBAAoB,EAAEV,OAAO,CAAC,CAAC;gBAC/D,OAAO,CAAC,8BAA8B,EAAEQ,QAAQ,iCAAiC,CAAC;YACtF;QACJ;IACJ;AACJ"}
1
+ {"version":3,"sources":["../../../src/vite/plugins/ignore-modules-plugin.ts"],"sourcesContent":["import type { Plugin } from 'vite';\nimport { BuildContext, checkResource } from '../../core';\n\nexport const THROW_PREFIX = '\\0IGNORE_THROW:';\nexport const EMPTY_PREFIX = '\\0IGNORE_EMPTY:';\n\n/**\n * Handles optional peer dependencies that are not installed.\n *\n * @see {@link file://./../../webpack/configs/plugins/ignore-plugin/ignore-plugin.ts} for the webpack counterpart.\n *\n * 'throw' mode: substitutes a virtual module whose body throws \"Cannot find module\" on\n * evaluation. Mirrors webpack's `webpackMissingModule()` semantics. Top-level static\n * imports of the resource crash module evaluation, and `try { await import(...) } catch {}`\n * (or `try { require(...) } catch {}` in CJS code Rolldown bundles) work as expected.\n * This is the default for matched optional peers.\n *\n * 'empty' mode: substitutes a virtual module with no exports. Required for top-level\n * `import * as X from 'optional'` followed by `X.foo === undefined` detection. Opt in via\n * `cli.peerDependenciesMeta[\"pkg\"].fallback = \"empty\"` in the importer's package.json.\n */\nexport function ignoreModulesPlugin(context: BuildContext): Plugin {\n const checker = checkResource(context);\n\n return {\n name: 'ignore-modules',\n enforce: 'pre',\n resolveId(source, importer) {\n if (!importer) {\n return;\n }\n const mode = checker({ resource: source, importer });\n if (mode === 'throw') {\n return `${THROW_PREFIX}${source}`;\n }\n if (mode === 'empty') {\n return `${EMPTY_PREFIX}${source}`;\n }\n },\n load(id) {\n if (id.startsWith(THROW_PREFIX)) {\n const source = id.slice(THROW_PREFIX.length);\n const message = JSON.stringify(`Cannot find module '${source}'`);\n return `throw Object.assign(new Error(${message}), { code: 'MODULE_NOT_FOUND' });`;\n }\n if (id.startsWith(EMPTY_PREFIX)) {\n return 'export {};';\n }\n },\n };\n}\n"],"names":["EMPTY_PREFIX","THROW_PREFIX","ignoreModulesPlugin","context","checker","checkResource","name","enforce","resolveId","source","importer","mode","resource","load","id","startsWith","slice","length","message","JSON","stringify"],"mappings":";;;;;;;;;;;QAIaA;eAAAA;;QADAC;eAAAA;;QAkBGC;eAAAA;;;sBApB4B;AAErC,MAAMD,eAAe;AACrB,MAAMD,eAAe;AAiBrB,SAASE,oBAAoBC,OAAqB;IACrD,MAAMC,UAAUC,IAAAA,mBAAa,EAACF;IAE9B,OAAO;QACHG,MAAM;QACNC,SAAS;QACTC,WAAUC,MAAM,EAAEC,QAAQ;YACtB,IAAI,CAACA,UAAU;gBACX;YACJ;YACA,MAAMC,OAAOP,QAAQ;gBAAEQ,UAAUH;gBAAQC;YAAS;YAClD,IAAIC,SAAS,SAAS;gBAClB,OAAO,GAAGV,eAAeQ,QAAQ;YACrC;YACA,IAAIE,SAAS,SAAS;gBAClB,OAAO,GAAGX,eAAeS,QAAQ;YACrC;QACJ;QACAI,MAAKC,EAAE;YACH,IAAIA,GAAGC,UAAU,CAACd,eAAe;gBAC7B,MAAMQ,SAASK,GAAGE,KAAK,CAACf,aAAagB,MAAM;gBAC3C,MAAMC,UAAUC,KAAKC,SAAS,CAAC,CAAC,oBAAoB,EAAEX,OAAO,CAAC,CAAC;gBAC/D,OAAO,CAAC,8BAA8B,EAAES,QAAQ,iCAAiC,CAAC;YACtF;YACA,IAAIJ,GAAGC,UAAU,CAACf,eAAe;gBAC7B,OAAO;YACX;QACJ;IACJ;AACJ"}
@@ -1,9 +1,16 @@
1
+ export * from './bundle-stat-plugin';
2
+ export * from './chain-source-maps-plugin';
3
+ export * from './clean-plugin';
1
4
  export * from './css-injector-plugin';
5
+ export * from './design-system-guard-plugin';
2
6
  export * from './dev-server-routing-plugin';
3
7
  export * from './externals-plugin';
4
8
  export * from './html-plugin';
5
9
  export * from './ignore-modules-plugin';
10
+ export * from './istanbul-plugin';
11
+ export * from './magic-comments-plugin';
6
12
  export * from './metadata-plugin';
13
+ export * from './moment-locales-plugin';
7
14
  export * from './style-urls-plugin';
8
15
  export * from './svgr-plugin';
9
16
  export * from './virtual-modules-plugin';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/vite/plugins/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/vite/plugins/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC"}
@@ -2,12 +2,19 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
+ _export_star(require("./bundle-stat-plugin"), exports);
6
+ _export_star(require("./chain-source-maps-plugin"), exports);
7
+ _export_star(require("./clean-plugin"), exports);
5
8
  _export_star(require("./css-injector-plugin"), exports);
9
+ _export_star(require("./design-system-guard-plugin"), exports);
6
10
  _export_star(require("./dev-server-routing-plugin"), exports);
7
11
  _export_star(require("./externals-plugin"), exports);
8
12
  _export_star(require("./html-plugin"), exports);
9
13
  _export_star(require("./ignore-modules-plugin"), exports);
14
+ _export_star(require("./istanbul-plugin"), exports);
15
+ _export_star(require("./magic-comments-plugin"), exports);
10
16
  _export_star(require("./metadata-plugin"), exports);
17
+ _export_star(require("./moment-locales-plugin"), exports);
11
18
  _export_star(require("./style-urls-plugin"), exports);
12
19
  _export_star(require("./svgr-plugin"), exports);
13
20
  _export_star(require("./virtual-modules-plugin"), exports);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/vite/plugins/index.ts"],"sourcesContent":["export * from './css-injector-plugin';\nexport * from './dev-server-routing-plugin';\nexport * from './externals-plugin';\nexport * from './html-plugin';\nexport * from './ignore-modules-plugin';\nexport * from './metadata-plugin';\nexport * from './style-urls-plugin';\nexport * from './svgr-plugin';\nexport * from './virtual-modules-plugin';\n"],"names":[],"mappings":";;;;qBAAc;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA"}
1
+ {"version":3,"sources":["../../../src/vite/plugins/index.ts"],"sourcesContent":["export * from './bundle-stat-plugin';\nexport * from './chain-source-maps-plugin';\nexport * from './clean-plugin';\nexport * from './css-injector-plugin';\nexport * from './design-system-guard-plugin';\nexport * from './dev-server-routing-plugin';\nexport * from './externals-plugin';\nexport * from './html-plugin';\nexport * from './ignore-modules-plugin';\nexport * from './istanbul-plugin';\nexport * from './magic-comments-plugin';\nexport * from './metadata-plugin';\nexport * from './moment-locales-plugin';\nexport * from './style-urls-plugin';\nexport * from './svgr-plugin';\nexport * from './virtual-modules-plugin';\n"],"names":[],"mappings":";;;;qBAAc;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA"}
@@ -0,0 +1,4 @@
1
+ import type { Plugin } from 'vite';
2
+ import { ViteBuildContext } from '../types';
3
+ export declare function istanbulPlugin(context: ViteBuildContext): Promise<Plugin> | undefined;
4
+ //# sourceMappingURL=istanbul-plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"istanbul-plugin.d.ts","sourceRoot":"","sources":["../../../src/vite/plugins/istanbul-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAG5C,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,SAAS,CAcrF"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "istanbulPlugin", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return istanbulPlugin;
9
+ }
10
+ });
11
+ const _utils = require("./utils");
12
+ function istanbulPlugin(context) {
13
+ if (!context.options.codeCoverage) {
14
+ return;
15
+ }
16
+ // vite-plugin-istanbul is ESM-only; load it natively so SWC doesn't rewrite to require.
17
+ return (0, _utils.importEsm)('vite-plugin-istanbul').then(({ default: istanbul })=>istanbul({
18
+ exclude: [
19
+ '**/node_modules/**',
20
+ '**/.yalc/**'
21
+ ],
22
+ requireEnv: false,
23
+ forceBuildInstrument: true
24
+ }));
25
+ }
26
+
27
+ //# sourceMappingURL=istanbul-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/vite/plugins/istanbul-plugin.ts"],"sourcesContent":["import type { Plugin } from 'vite';\nimport { ViteBuildContext } from '../types';\nimport { importEsm } from './utils';\n\nexport function istanbulPlugin(context: ViteBuildContext): Promise<Plugin> | undefined {\n if (!context.options.codeCoverage) {\n return;\n }\n\n // vite-plugin-istanbul is ESM-only; load it natively so SWC doesn't rewrite to require.\n return importEsm<typeof import('vite-plugin-istanbul')>('vite-plugin-istanbul').then(\n ({ default: istanbul }) =>\n istanbul({\n exclude: ['**/node_modules/**', '**/.yalc/**'],\n requireEnv: false,\n forceBuildInstrument: true,\n })\n );\n}\n"],"names":["istanbulPlugin","context","options","codeCoverage","importEsm","then","default","istanbul","exclude","requireEnv","forceBuildInstrument"],"mappings":";;;;+BAIgBA;;;eAAAA;;;uBAFU;AAEnB,SAASA,eAAeC,OAAyB;IACpD,IAAI,CAACA,QAAQC,OAAO,CAACC,YAAY,EAAE;QAC/B;IACJ;IAEA,wFAAwF;IACxF,OAAOC,IAAAA,gBAAS,EAAwC,wBAAwBC,IAAI,CAChF,CAAC,EAAEC,SAASC,QAAQ,EAAE,GAClBA,SAAS;YACLC,SAAS;gBAAC;gBAAsB;aAAc;YAC9CC,YAAY;YACZC,sBAAsB;QAC1B;AAEZ"}
@@ -0,0 +1,2 @@
1
+ export * from './magic-comments-plugin';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/vite/plugins/magic-comments-plugin/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ _export_star(require("./magic-comments-plugin"), exports);
6
+ function _export_star(from, to) {
7
+ Object.keys(from).forEach(function(k) {
8
+ if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
9
+ Object.defineProperty(to, k, {
10
+ enumerable: true,
11
+ get: function() {
12
+ return from[k];
13
+ }
14
+ });
15
+ }
16
+ });
17
+ return from;
18
+ }
19
+
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/vite/plugins/magic-comments-plugin/index.ts"],"sourcesContent":["export * from './magic-comments-plugin';\n"],"names":[],"mappings":";;;;qBAAc"}
@@ -0,0 +1,4 @@
1
+ import type { Plugin } from 'vite';
2
+ import { ViteBuildContext } from '../../types';
3
+ export declare function magicCommentsPlugin(context: ViteBuildContext): Plugin | undefined;
4
+ //# sourceMappingURL=magic-comments-plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"magic-comments-plugin.d.ts","sourceRoot":"","sources":["../../../../src/vite/plugins/magic-comments-plugin/magic-comments-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAW/C,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAkDjF"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "magicCommentsPlugin", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return magicCommentsPlugin;
9
+ }
10
+ });
11
+ const _parsemagiccomments = require("./parse-magic-comments");
12
+ /* Mirrors Vite's default chunk file naming. A magic comment only substitutes the [name] token. */ const CHUNK_FILE_NAME = 'assets/[name]-[hash].js';
13
+ function magicCommentsPlugin(context) {
14
+ if (!context.build.isProduction) {
15
+ return;
16
+ }
17
+ const chunkNames = new Map();
18
+ const moduleByName = new Map();
19
+ return {
20
+ name: 'magic-comments',
21
+ apply: 'build',
22
+ enforce: 'pre',
23
+ config: ()=>({
24
+ build: {
25
+ rolldownOptions: {
26
+ output: {
27
+ chunkFileNames: (chunk)=>{
28
+ const name = chunk.facadeModuleId && chunkNames.get(chunk.facadeModuleId);
29
+ return name ? CHUNK_FILE_NAME.replace('[name]', name) : CHUNK_FILE_NAME;
30
+ }
31
+ }
32
+ }
33
+ }
34
+ }),
35
+ transform: {
36
+ filter: {
37
+ id: {
38
+ exclude: /node_modules/
39
+ },
40
+ code: 'webpackChunkName'
41
+ },
42
+ async handler (code, id) {
43
+ const comments = await (0, _parsemagiccomments.parseMagicComments)(code);
44
+ const resolved = await Promise.all(comments.map(({ importPath })=>this.resolve(importPath, id)));
45
+ comments.forEach(({ chunkName }, index)=>{
46
+ const module = resolved[index];
47
+ if (!module) {
48
+ return;
49
+ }
50
+ const claimedBy = moduleByName.get(chunkName);
51
+ if (claimedBy && claimedBy !== module.id) {
52
+ this.warn(`webpackChunkName "${chunkName}" is used by multiple modules; Vite emits a separate chunk for each rather than merging them.`);
53
+ } else {
54
+ moduleByName.set(chunkName, module.id);
55
+ }
56
+ chunkNames.set(module.id, chunkName);
57
+ });
58
+ }
59
+ }
60
+ };
61
+ }
62
+
63
+ //# sourceMappingURL=magic-comments-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/vite/plugins/magic-comments-plugin/magic-comments-plugin.ts"],"sourcesContent":["import type { Plugin } from 'vite';\nimport { ViteBuildContext } from '../../types';\nimport { parseMagicComments } from './parse-magic-comments';\n\n/* Mirrors Vite's default chunk file naming. A magic comment only substitutes the [name] token. */\nconst CHUNK_FILE_NAME = 'assets/[name]-[hash].js';\n\n/*\n * Honors `webpackChunkName` magic comments on dynamic imports. Vite splits dynamic\n * imports into separate chunks, named after the source file; this renames the chunk\n * to specified `webpackChunkName`. Warns when a name is reused by different modules.\n */\nexport function magicCommentsPlugin(context: ViteBuildContext): Plugin | undefined {\n if (!context.build.isProduction) {\n return;\n }\n\n const chunkNames = new Map<string, string>();\n const moduleByName = new Map<string, string>();\n\n return {\n name: 'magic-comments',\n apply: 'build',\n enforce: 'pre',\n config: () => ({\n build: {\n rolldownOptions: {\n output: {\n chunkFileNames: (chunk: { facadeModuleId?: string | null }) => {\n const name =\n chunk.facadeModuleId && chunkNames.get(chunk.facadeModuleId);\n return name ? CHUNK_FILE_NAME.replace('[name]', name) : CHUNK_FILE_NAME;\n },\n },\n },\n },\n }),\n transform: {\n filter: { id: { exclude: /node_modules/ }, code: 'webpackChunkName' },\n async handler(code, id) {\n const comments = await parseMagicComments(code);\n const resolved = await Promise.all(\n comments.map(({ importPath }) => this.resolve(importPath, id))\n );\n comments.forEach(({ chunkName }, index) => {\n const module = resolved[index];\n if (!module) {\n return;\n }\n const claimedBy = moduleByName.get(chunkName);\n if (claimedBy && claimedBy !== module.id) {\n this.warn(\n `webpackChunkName \"${chunkName}\" is used by multiple modules; Vite emits a separate chunk for each rather than merging them.`\n );\n } else {\n moduleByName.set(chunkName, module.id);\n }\n chunkNames.set(module.id, chunkName);\n });\n },\n },\n };\n}\n"],"names":["magicCommentsPlugin","CHUNK_FILE_NAME","context","build","isProduction","chunkNames","Map","moduleByName","name","apply","enforce","config","rolldownOptions","output","chunkFileNames","chunk","facadeModuleId","get","replace","transform","filter","id","exclude","code","handler","comments","parseMagicComments","resolved","Promise","all","map","importPath","resolve","forEach","chunkName","index","module","claimedBy","warn","set"],"mappings":";;;;+BAYgBA;;;eAAAA;;;oCAVmB;AAEnC,gGAAgG,GAChG,MAAMC,kBAAkB;AAOjB,SAASD,oBAAoBE,OAAyB;IACzD,IAAI,CAACA,QAAQC,KAAK,CAACC,YAAY,EAAE;QAC7B;IACJ;IAEA,MAAMC,aAAa,IAAIC;IACvB,MAAMC,eAAe,IAAID;IAEzB,OAAO;QACHE,MAAM;QACNC,OAAO;QACPC,SAAS;QACTC,QAAQ,IAAO,CAAA;gBACXR,OAAO;oBACHS,iBAAiB;wBACbC,QAAQ;4BACJC,gBAAgB,CAACC;gCACb,MAAMP,OACFO,MAAMC,cAAc,IAAIX,WAAWY,GAAG,CAACF,MAAMC,cAAc;gCAC/D,OAAOR,OAAOP,gBAAgBiB,OAAO,CAAC,UAAUV,QAAQP;4BAC5D;wBACJ;oBACJ;gBACJ;YACJ,CAAA;QACAkB,WAAW;YACPC,QAAQ;gBAAEC,IAAI;oBAAEC,SAAS;gBAAe;gBAAGC,MAAM;YAAmB;YACpE,MAAMC,SAAQD,IAAI,EAAEF,EAAE;gBAClB,MAAMI,WAAW,MAAMC,IAAAA,sCAAkB,EAACH;gBAC1C,MAAMI,WAAW,MAAMC,QAAQC,GAAG,CAC9BJ,SAASK,GAAG,CAAC,CAAC,EAAEC,UAAU,EAAE,GAAK,IAAI,CAACC,OAAO,CAACD,YAAYV;gBAE9DI,SAASQ,OAAO,CAAC,CAAC,EAAEC,SAAS,EAAE,EAAEC;oBAC7B,MAAMC,SAAST,QAAQ,CAACQ,MAAM;oBAC9B,IAAI,CAACC,QAAQ;wBACT;oBACJ;oBACA,MAAMC,YAAY9B,aAAaU,GAAG,CAACiB;oBACnC,IAAIG,aAAaA,cAAcD,OAAOf,EAAE,EAAE;wBACtC,IAAI,CAACiB,IAAI,CACL,CAAC,kBAAkB,EAAEJ,UAAU,6FAA6F,CAAC;oBAErI,OAAO;wBACH3B,aAAagC,GAAG,CAACL,WAAWE,OAAOf,EAAE;oBACzC;oBACAhB,WAAWkC,GAAG,CAACH,OAAOf,EAAE,EAAEa;gBAC9B;YACJ;QACJ;IACJ;AACJ"}
@@ -0,0 +1,6 @@
1
+ export interface MagicComment {
2
+ chunkName: string;
3
+ importPath: string;
4
+ }
5
+ export declare function parseMagicComments(code: string): Promise<MagicComment[]>;
6
+ //# sourceMappingURL=parse-magic-comments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-magic-comments.d.ts","sourceRoot":"","sources":["../../../../src/vite/plugins/magic-comments-plugin/parse-magic-comments.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACtB;AASD,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAwB9E"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "parseMagicComments", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return parseMagicComments;
9
+ }
10
+ });
11
+ const _esmodulelexer = require("es-module-lexer");
12
+ const CHUNK_NAME_REGEXP = /webpackChunkName:\s*["']([^"']+)["']/;
13
+ async function parseMagicComments(code) {
14
+ await _esmodulelexer.init;
15
+ const [imports] = (0, _esmodulelexer.parse)(code);
16
+ const result = [];
17
+ for (const imp of imports){
18
+ /*
19
+ * es-module-lexer positions on `import( <comment> './foo')`:
20
+ * (d: openParenIndex): the `(`, or -1 when the import is static
21
+ * (s: importPathStart): the opening quote of './foo'
22
+ * (n: importPath): ./foo, or undefined when not a string literal
23
+ */ const { d: openParenIndex, n: importPath, s: importPathStart } = imp;
24
+ if (openParenIndex < 0 || importPath === undefined) {
25
+ continue;
26
+ }
27
+ // commentRegion (between the `(` and the path) holds the magic comment
28
+ const commentRegion = code.slice(openParenIndex + 1, importPathStart);
29
+ const match = CHUNK_NAME_REGEXP.exec(commentRegion);
30
+ if (match) {
31
+ result.push({
32
+ chunkName: match[1],
33
+ importPath
34
+ });
35
+ }
36
+ }
37
+ return result;
38
+ }
39
+
40
+ //# sourceMappingURL=parse-magic-comments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/vite/plugins/magic-comments-plugin/parse-magic-comments.ts"],"sourcesContent":["import { init, parse } from 'es-module-lexer';\n\nexport interface MagicComment {\n chunkName: string;\n importPath: string;\n}\n\nconst CHUNK_NAME_REGEXP = /webpackChunkName:\\s*[\"']([^\"']+)[\"']/;\n\n/*\n * Extracts the chunk name from `webpackChunkName` magic comments on dynamic imports,\n * such as `import( <comment> './foo')` with a `webpackChunkName: \"x\"` comment. Only\n * target imports with a static string path.\n */\nexport async function parseMagicComments(code: string): Promise<MagicComment[]> {\n await init;\n const [imports] = parse(code);\n\n const result: MagicComment[] = [];\n for (const imp of imports) {\n /*\n * es-module-lexer positions on `import( <comment> './foo')`:\n * (d: openParenIndex): the `(`, or -1 when the import is static\n * (s: importPathStart): the opening quote of './foo'\n * (n: importPath): ./foo, or undefined when not a string literal\n */\n const { d: openParenIndex, n: importPath, s: importPathStart } = imp;\n if (openParenIndex < 0 || importPath === undefined) {\n continue;\n }\n // commentRegion (between the `(` and the path) holds the magic comment\n const commentRegion = code.slice(openParenIndex + 1, importPathStart);\n const match = CHUNK_NAME_REGEXP.exec(commentRegion);\n if (match) {\n result.push({ chunkName: match[1], importPath });\n }\n }\n return result;\n}\n"],"names":["parseMagicComments","CHUNK_NAME_REGEXP","code","init","imports","parse","result","imp","d","openParenIndex","n","importPath","s","importPathStart","undefined","commentRegion","slice","match","exec","push","chunkName"],"mappings":";;;;+BAcsBA;;;eAAAA;;;+BAdM;AAO5B,MAAMC,oBAAoB;AAOnB,eAAeD,mBAAmBE,IAAY;IACjD,MAAMC,mBAAI;IACV,MAAM,CAACC,QAAQ,GAAGC,IAAAA,oBAAK,EAACH;IAExB,MAAMI,SAAyB,EAAE;IACjC,KAAK,MAAMC,OAAOH,QAAS;QACvB;;;;;SAKC,GACD,MAAM,EAAEI,GAAGC,cAAc,EAAEC,GAAGC,UAAU,EAAEC,GAAGC,eAAe,EAAE,GAAGN;QACjE,IAAIE,iBAAiB,KAAKE,eAAeG,WAAW;YAChD;QACJ;QACA,uEAAuE;QACvE,MAAMC,gBAAgBb,KAAKc,KAAK,CAACP,iBAAiB,GAAGI;QACrD,MAAMI,QAAQhB,kBAAkBiB,IAAI,CAACH;QACrC,IAAIE,OAAO;YACPX,OAAOa,IAAI,CAAC;gBAAEC,WAAWH,KAAK,CAAC,EAAE;gBAAEN;YAAW;QAClD;IACJ;IACA,OAAOL;AACX"}
@@ -11,7 +11,7 @@ Object.defineProperty(exports, "metadataPlugin", {
11
11
  const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
12
12
  const _path = /*#__PURE__*/ _interop_require_default(require("path"));
13
13
  const _core = require("../../core");
14
- const _getcssfilenames = require("./utils/get-css-file-names");
14
+ const _utils = require("./utils");
15
15
  function _interop_require_default(obj) {
16
16
  return obj && obj.__esModule ? obj : {
17
17
  default: obj
@@ -62,7 +62,7 @@ function metadataPlugin(context) {
62
62
  js.push(chunk.fileName);
63
63
  }
64
64
  }
65
- const css = (0, _getcssfilenames.getCssFileNames)(bundle);
65
+ const css = (0, _utils.getCssFileNames)(bundle);
66
66
  _fs.default.writeFileSync(_path.default.join(options.dir, 'entrypoints.json'), JSON.stringify({
67
67
  module: true,
68
68
  css,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/vite/plugins/metadata-plugin.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport type { Plugin } from 'vite';\nimport { BuildContext, generateMetadata } from '../../core';\nimport { getCssFileNames } from './utils/get-css-file-names';\n\nexport function metadataPlugin(context: BuildContext): Plugin | undefined {\n if (!context.package.isWebComponent) {\n return;\n }\n\n let outDir = '';\n\n return {\n name: 'metadata',\n configResolved(config) {\n outDir = config.build.outDir;\n },\n configureServer(server) {\n server.httpServer?.once('listening', () => {\n const address = server.httpServer?.address();\n if (!address || typeof address === 'string') {\n return;\n }\n\n const entrypoints = {\n module: true,\n port: address.port,\n css: [],\n js: ['@vite/client', '@id/__x00__VIRTUAL./index'],\n };\n\n const entrypointsPath = path.join(outDir, 'entrypoints.json');\n fs.mkdirSync(path.dirname(entrypointsPath), { recursive: true });\n fs.writeFileSync(entrypointsPath, JSON.stringify(entrypoints, null, 2));\n\n generateMetadata(context);\n });\n },\n writeBundle(options, bundle) {\n if (!options.dir) {\n throw new Error(\n 'web-component build requires output.dir — output.file is not supported'\n );\n }\n\n const js: string[] = [];\n\n for (const chunk of Object.values(bundle)) {\n if (chunk.type === 'chunk' && chunk.isEntry) {\n js.push(chunk.fileName);\n }\n }\n\n const css = getCssFileNames(bundle);\n\n fs.writeFileSync(\n path.join(options.dir, 'entrypoints.json'),\n JSON.stringify({ module: true, css, js }, null, 2)\n );\n\n generateMetadata(context);\n },\n };\n}\n"],"names":["metadataPlugin","context","package","isWebComponent","outDir","name","configResolved","config","build","configureServer","server","httpServer","once","address","entrypoints","module","port","css","js","entrypointsPath","path","join","fs","mkdirSync","dirname","recursive","writeFileSync","JSON","stringify","generateMetadata","writeBundle","options","bundle","dir","Error","chunk","Object","values","type","isEntry","push","fileName","getCssFileNames"],"mappings":";;;;+BAMgBA;;;eAAAA;;;2DAND;6DACE;sBAE8B;iCACf;;;;;;AAEzB,SAASA,eAAeC,OAAqB;IAChD,IAAI,CAACA,QAAQC,OAAO,CAACC,cAAc,EAAE;QACjC;IACJ;IAEA,IAAIC,SAAS;IAEb,OAAO;QACHC,MAAM;QACNC,gBAAeC,MAAM;YACjBH,SAASG,OAAOC,KAAK,CAACJ,MAAM;QAChC;QACAK,iBAAgBC,MAAM;gBAClBA;aAAAA,qBAAAA,OAAOC,UAAU,cAAjBD,yCAAAA,mBAAmBE,IAAI,CAAC,aAAa;oBACjBF;gBAAhB,MAAMG,WAAUH,qBAAAA,OAAOC,UAAU,cAAjBD,yCAAAA,mBAAmBG,OAAO;gBAC1C,IAAI,CAACA,WAAW,OAAOA,YAAY,UAAU;oBACzC;gBACJ;gBAEA,MAAMC,cAAc;oBAChBC,QAAQ;oBACRC,MAAMH,QAAQG,IAAI;oBAClBC,KAAK,EAAE;oBACPC,IAAI;wBAAC;wBAAgB;qBAA4B;gBACrD;gBAEA,MAAMC,kBAAkBC,aAAI,CAACC,IAAI,CAACjB,QAAQ;gBAC1CkB,WAAE,CAACC,SAAS,CAACH,aAAI,CAACI,OAAO,CAACL,kBAAkB;oBAAEM,WAAW;gBAAK;gBAC9DH,WAAE,CAACI,aAAa,CAACP,iBAAiBQ,KAAKC,SAAS,CAACd,aAAa,MAAM;gBAEpEe,IAAAA,sBAAgB,EAAC5B;YACrB;QACJ;QACA6B,aAAYC,OAAO,EAAEC,MAAM;YACvB,IAAI,CAACD,QAAQE,GAAG,EAAE;gBACd,MAAM,IAAIC,MACN;YAER;YAEA,MAAMhB,KAAe,EAAE;YAEvB,KAAK,MAAMiB,SAASC,OAAOC,MAAM,CAACL,QAAS;gBACvC,IAAIG,MAAMG,IAAI,KAAK,WAAWH,MAAMI,OAAO,EAAE;oBACzCrB,GAAGsB,IAAI,CAACL,MAAMM,QAAQ;gBAC1B;YACJ;YAEA,MAAMxB,MAAMyB,IAAAA,gCAAe,EAACV;YAE5BV,WAAE,CAACI,aAAa,CACZN,aAAI,CAACC,IAAI,CAACU,QAAQE,GAAG,EAAE,qBACvBN,KAAKC,SAAS,CAAC;gBAAEb,QAAQ;gBAAME;gBAAKC;YAAG,GAAG,MAAM;YAGpDW,IAAAA,sBAAgB,EAAC5B;QACrB;IACJ;AACJ"}
1
+ {"version":3,"sources":["../../../src/vite/plugins/metadata-plugin.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport type { Plugin } from 'vite';\nimport { BuildContext, generateMetadata } from '../../core';\nimport { getCssFileNames } from './utils';\n\nexport function metadataPlugin(context: BuildContext): Plugin | undefined {\n if (!context.package.isWebComponent) {\n return;\n }\n\n let outDir = '';\n\n return {\n name: 'metadata',\n configResolved(config) {\n outDir = config.build.outDir;\n },\n configureServer(server) {\n server.httpServer?.once('listening', () => {\n const address = server.httpServer?.address();\n if (!address || typeof address === 'string') {\n return;\n }\n\n const entrypoints = {\n module: true,\n port: address.port,\n css: [],\n js: ['@vite/client', '@id/__x00__VIRTUAL./index'],\n };\n\n const entrypointsPath = path.join(outDir, 'entrypoints.json');\n fs.mkdirSync(path.dirname(entrypointsPath), { recursive: true });\n fs.writeFileSync(entrypointsPath, JSON.stringify(entrypoints, null, 2));\n\n generateMetadata(context);\n });\n },\n writeBundle(options, bundle) {\n if (!options.dir) {\n throw new Error(\n 'web-component build requires output.dir — output.file is not supported'\n );\n }\n\n const js: string[] = [];\n\n for (const chunk of Object.values(bundle)) {\n if (chunk.type === 'chunk' && chunk.isEntry) {\n js.push(chunk.fileName);\n }\n }\n\n const css = getCssFileNames(bundle);\n\n fs.writeFileSync(\n path.join(options.dir, 'entrypoints.json'),\n JSON.stringify({ module: true, css, js }, null, 2)\n );\n\n generateMetadata(context);\n },\n };\n}\n"],"names":["metadataPlugin","context","package","isWebComponent","outDir","name","configResolved","config","build","configureServer","server","httpServer","once","address","entrypoints","module","port","css","js","entrypointsPath","path","join","fs","mkdirSync","dirname","recursive","writeFileSync","JSON","stringify","generateMetadata","writeBundle","options","bundle","dir","Error","chunk","Object","values","type","isEntry","push","fileName","getCssFileNames"],"mappings":";;;;+BAMgBA;;;eAAAA;;;2DAND;6DACE;sBAE8B;uBACf;;;;;;AAEzB,SAASA,eAAeC,OAAqB;IAChD,IAAI,CAACA,QAAQC,OAAO,CAACC,cAAc,EAAE;QACjC;IACJ;IAEA,IAAIC,SAAS;IAEb,OAAO;QACHC,MAAM;QACNC,gBAAeC,MAAM;YACjBH,SAASG,OAAOC,KAAK,CAACJ,MAAM;QAChC;QACAK,iBAAgBC,MAAM;gBAClBA;aAAAA,qBAAAA,OAAOC,UAAU,cAAjBD,yCAAAA,mBAAmBE,IAAI,CAAC,aAAa;oBACjBF;gBAAhB,MAAMG,WAAUH,qBAAAA,OAAOC,UAAU,cAAjBD,yCAAAA,mBAAmBG,OAAO;gBAC1C,IAAI,CAACA,WAAW,OAAOA,YAAY,UAAU;oBACzC;gBACJ;gBAEA,MAAMC,cAAc;oBAChBC,QAAQ;oBACRC,MAAMH,QAAQG,IAAI;oBAClBC,KAAK,EAAE;oBACPC,IAAI;wBAAC;wBAAgB;qBAA4B;gBACrD;gBAEA,MAAMC,kBAAkBC,aAAI,CAACC,IAAI,CAACjB,QAAQ;gBAC1CkB,WAAE,CAACC,SAAS,CAACH,aAAI,CAACI,OAAO,CAACL,kBAAkB;oBAAEM,WAAW;gBAAK;gBAC9DH,WAAE,CAACI,aAAa,CAACP,iBAAiBQ,KAAKC,SAAS,CAACd,aAAa,MAAM;gBAEpEe,IAAAA,sBAAgB,EAAC5B;YACrB;QACJ;QACA6B,aAAYC,OAAO,EAAEC,MAAM;YACvB,IAAI,CAACD,QAAQE,GAAG,EAAE;gBACd,MAAM,IAAIC,MACN;YAER;YAEA,MAAMhB,KAAe,EAAE;YAEvB,KAAK,MAAMiB,SAASC,OAAOC,MAAM,CAACL,QAAS;gBACvC,IAAIG,MAAMG,IAAI,KAAK,WAAWH,MAAMI,OAAO,EAAE;oBACzCrB,GAAGsB,IAAI,CAACL,MAAMM,QAAQ;gBAC1B;YACJ;YAEA,MAAMxB,MAAMyB,IAAAA,sBAAe,EAACV;YAE5BV,WAAE,CAACI,aAAa,CACZN,aAAI,CAACC,IAAI,CAACU,QAAQE,GAAG,EAAE,qBACvBN,KAAKC,SAAS,CAAC;gBAAEb,QAAQ;gBAAME;gBAAKC;YAAG,GAAG,MAAM;YAGpDW,IAAAA,sBAAgB,EAAC5B;QACrB;IACJ;AACJ"}
@@ -0,0 +1,5 @@
1
+ import type { Plugin } from 'vite';
2
+ import { BuildContext } from '../../core';
3
+ export declare const VIRTUAL_MOMENT = "\0VIRTUAL_MOMENT";
4
+ export declare function momentLocalesPlugin(_context: BuildContext): Plugin;
5
+ //# sourceMappingURL=moment-locales-plugin.d.ts.map