@servicetitan/startup 36.0.0 → 36.1.1-beta.1

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 (680) hide show
  1. package/dist/cli/commands/build.d.ts.map +1 -1
  2. package/dist/cli/commands/build.js +14 -9
  3. package/dist/cli/commands/build.js.map +1 -1
  4. package/dist/cli/commands/bundle-vite.d.ts +6 -0
  5. package/dist/cli/commands/bundle-vite.d.ts.map +1 -0
  6. package/dist/cli/commands/bundle-vite.js +110 -0
  7. package/dist/cli/commands/bundle-vite.js.map +1 -0
  8. package/dist/cli/commands/bundle-webpack.d.ts +6 -0
  9. package/dist/cli/commands/bundle-webpack.d.ts.map +1 -0
  10. package/dist/cli/commands/{bundle-package.js → bundle-webpack.js} +8 -6
  11. package/dist/cli/commands/bundle-webpack.js.map +1 -0
  12. package/dist/cli/commands/install.d.ts.map +1 -1
  13. package/dist/cli/commands/install.js +2 -1
  14. package/dist/cli/commands/install.js.map +1 -1
  15. package/dist/cli/commands/mfe-check.d.ts.map +1 -1
  16. package/dist/cli/commands/mfe-check.js +2 -2
  17. package/dist/cli/commands/mfe-check.js.map +1 -1
  18. package/dist/cli/commands/mfe-generate-metadata.js +2 -2
  19. package/dist/cli/commands/mfe-generate-metadata.js.map +1 -1
  20. package/dist/cli/commands/mfe-list.js +1 -1
  21. package/dist/cli/commands/mfe-list.js.map +1 -1
  22. package/dist/cli/commands/mfe-package-publish.js.map +1 -1
  23. package/dist/cli/commands/mfe-publish.js +1 -1
  24. package/dist/cli/commands/mfe-publish.js.map +1 -1
  25. package/dist/cli/commands/registry/build.d.ts +8 -0
  26. package/dist/cli/commands/registry/build.d.ts.map +1 -1
  27. package/dist/cli/commands/registry/build.js +8 -0
  28. package/dist/cli/commands/registry/build.js.map +1 -1
  29. package/dist/cli/commands/registry/bundle-vite.d.ts +33 -0
  30. package/dist/cli/commands/registry/bundle-vite.d.ts.map +1 -0
  31. package/dist/cli/commands/registry/bundle-vite.js +45 -0
  32. package/dist/cli/commands/registry/bundle-vite.js.map +1 -0
  33. package/dist/cli/commands/registry/{bundle-package.d.ts → bundle-webpack.d.ts} +1 -1
  34. package/dist/cli/commands/registry/bundle-webpack.d.ts.map +1 -0
  35. package/dist/cli/commands/registry/{bundle-package.js → bundle-webpack.js} +1 -1
  36. package/dist/cli/commands/registry/{bundle-package.js.map → bundle-webpack.js.map} +1 -1
  37. package/dist/cli/commands/registry/command-registry.d.ts +72 -0
  38. package/dist/cli/commands/registry/command-registry.d.ts.map +1 -1
  39. package/dist/cli/commands/registry/command-registry.js +7 -2
  40. package/dist/cli/commands/registry/command-registry.js.map +1 -1
  41. package/dist/cli/commands/registry/start.d.ts +4 -0
  42. package/dist/cli/commands/registry/start.d.ts.map +1 -1
  43. package/dist/cli/commands/registry/start.js +4 -0
  44. package/dist/cli/commands/registry/start.js.map +1 -1
  45. package/dist/cli/commands/start.d.ts.map +1 -1
  46. package/dist/cli/commands/start.js +11 -9
  47. package/dist/cli/commands/start.js.map +1 -1
  48. package/dist/cli/index.js +2 -1
  49. package/dist/cli/index.js.map +1 -1
  50. package/dist/cli/tasks/tsc-compile/tsc-compile.js +1 -1
  51. package/dist/cli/tasks/tsc-compile/tsc-compile.js.map +1 -1
  52. package/dist/cli/utils/copy-files.js +1 -0
  53. package/dist/cli/utils/copy-files.js.map +1 -1
  54. package/dist/cli/utils/index.d.ts +0 -1
  55. package/dist/cli/utils/index.d.ts.map +1 -1
  56. package/dist/cli/utils/index.js +0 -1
  57. package/dist/cli/utils/index.js.map +1 -1
  58. package/dist/core/check-resource/check-resource.d.ts +3 -0
  59. package/dist/core/check-resource/check-resource.d.ts.map +1 -0
  60. package/dist/{webpack/configs/plugins/ignore-plugin → core/check-resource}/check-resource.js +2 -2
  61. package/dist/core/check-resource/check-resource.js.map +1 -0
  62. package/dist/core/check-resource/get-package-json.d.ts +7 -0
  63. package/dist/core/check-resource/get-package-json.d.ts.map +1 -0
  64. package/dist/{webpack/configs/plugins/ignore-plugin → core/check-resource}/get-package-json.js +1 -1
  65. package/dist/core/check-resource/get-package-json.js.map +1 -0
  66. package/dist/core/check-resource/index.d.ts +2 -0
  67. package/dist/core/check-resource/index.d.ts.map +1 -0
  68. package/dist/core/check-resource/index.js +13 -0
  69. package/dist/core/check-resource/index.js.map +1 -0
  70. package/dist/core/check-resource/is-optional-peer-dependency.d.ts.map +1 -0
  71. package/dist/core/check-resource/is-optional-peer-dependency.js.map +1 -0
  72. package/dist/core/check-resource/is-optional-react-dom-peer-dependency.d.ts.map +1 -0
  73. package/dist/core/check-resource/is-optional-react-dom-peer-dependency.js.map +1 -0
  74. package/dist/core/constants.d.ts +17 -0
  75. package/dist/core/constants.d.ts.map +1 -0
  76. package/dist/core/constants.js +28 -0
  77. package/dist/core/constants.js.map +1 -0
  78. package/dist/core/create-build-context.d.ts +13 -0
  79. package/dist/core/create-build-context.d.ts.map +1 -0
  80. package/dist/core/create-build-context.js +51 -0
  81. package/dist/core/create-build-context.js.map +1 -0
  82. package/dist/core/defines/define-exposed-dependencies.d.ts +5 -0
  83. package/dist/core/defines/define-exposed-dependencies.d.ts.map +1 -0
  84. package/dist/core/defines/define-exposed-dependencies.js +26 -0
  85. package/dist/core/defines/define-exposed-dependencies.js.map +1 -0
  86. package/dist/core/defines/define-exposed-instance-dependencies.d.ts +5 -0
  87. package/dist/core/defines/define-exposed-instance-dependencies.d.ts.map +1 -0
  88. package/dist/core/defines/define-exposed-instance-dependencies.js +29 -0
  89. package/dist/core/defines/define-exposed-instance-dependencies.js.map +1 -0
  90. package/dist/core/defines/define-web-component-name.d.ts +5 -0
  91. package/dist/core/defines/define-web-component-name.d.ts.map +1 -0
  92. package/dist/core/defines/define-web-component-name.js +23 -0
  93. package/dist/core/defines/define-web-component-name.js.map +1 -0
  94. package/dist/core/defines/index.d.ts +4 -0
  95. package/dist/core/defines/index.d.ts.map +1 -0
  96. package/dist/core/defines/index.js +26 -0
  97. package/dist/core/defines/index.js.map +1 -0
  98. package/dist/core/externals.d.ts +3 -0
  99. package/dist/core/externals.d.ts.map +1 -0
  100. package/dist/core/externals.js +28 -0
  101. package/dist/core/externals.js.map +1 -0
  102. package/dist/core/get-build-name.d.ts +2 -0
  103. package/dist/core/get-build-name.d.ts.map +1 -0
  104. package/dist/core/get-build-name.js +24 -0
  105. package/dist/core/get-build-name.js.map +1 -0
  106. package/dist/core/get-bundle-type.d.ts +3 -0
  107. package/dist/core/get-bundle-type.d.ts.map +1 -0
  108. package/dist/{webpack/configs/utils → core}/get-bundle-type.js +4 -2
  109. package/dist/core/get-bundle-type.js.map +1 -0
  110. package/dist/core/get-exposed-dependencies.d.ts.map +1 -0
  111. package/dist/core/get-exposed-dependencies.js.map +1 -0
  112. package/dist/core/get-output-path.d.ts +3 -0
  113. package/dist/core/get-output-path.d.ts.map +1 -0
  114. package/dist/core/get-output-path.js +32 -0
  115. package/dist/core/get-output-path.js.map +1 -0
  116. package/dist/core/get-shared-entry-points.d.ts +11 -0
  117. package/dist/core/get-shared-entry-points.d.ts.map +1 -0
  118. package/dist/core/get-shared-entry-points.js +43 -0
  119. package/dist/core/get-shared-entry-points.js.map +1 -0
  120. package/dist/core/get-version/get-launchdarkly-sdk-version.d.ts.map +1 -0
  121. package/dist/{webpack/configs/utils → core/get-version}/get-launchdarkly-sdk-version.js +1 -1
  122. package/dist/core/get-version/get-launchdarkly-sdk-version.js.map +1 -0
  123. package/dist/core/get-version/get-startup-version.d.ts.map +1 -0
  124. package/dist/{utils → core/get-version}/get-startup-version.js +2 -2
  125. package/dist/core/get-version/get-startup-version.js.map +1 -0
  126. package/dist/core/get-version/get-web-components-version.d.ts.map +1 -0
  127. package/dist/{webpack/configs/utils → core/get-version}/get-web-components-version.js +1 -1
  128. package/dist/core/get-version/get-web-components-version.js.map +1 -0
  129. package/dist/core/get-version/index.d.ts +4 -0
  130. package/dist/core/get-version/index.d.ts.map +1 -0
  131. package/dist/core/get-version/index.js +22 -0
  132. package/dist/core/get-version/index.js.map +1 -0
  133. package/dist/core/index.d.ts +16 -0
  134. package/dist/core/index.d.ts.map +1 -0
  135. package/dist/core/index.js +33 -0
  136. package/dist/core/index.js.map +1 -0
  137. package/dist/core/metadata/build-metadata.d.ts.map +1 -0
  138. package/dist/{webpack/configs/utils → core/metadata}/build-metadata.js +5 -6
  139. package/dist/core/metadata/build-metadata.js.map +1 -0
  140. package/dist/core/metadata/generate-exposed-dependencies-metadata.d.ts +3 -0
  141. package/dist/core/metadata/generate-exposed-dependencies-metadata.d.ts.map +1 -0
  142. package/dist/core/metadata/generate-exposed-dependencies-metadata.js +42 -0
  143. package/dist/core/metadata/generate-exposed-dependencies-metadata.js.map +1 -0
  144. package/dist/core/metadata/generate-metadata.d.ts +3 -0
  145. package/dist/core/metadata/generate-metadata.d.ts.map +1 -0
  146. package/dist/{webpack/configs/utils → core/metadata}/generate-metadata.js +5 -4
  147. package/dist/core/metadata/generate-metadata.js.map +1 -0
  148. package/dist/core/metadata/index.d.ts +4 -0
  149. package/dist/core/metadata/index.d.ts.map +1 -0
  150. package/dist/{webpack/configs/utils → core/metadata}/index.js +2 -2
  151. package/dist/core/metadata/index.js.map +1 -0
  152. package/dist/core/stringify-config.d.ts.map +1 -0
  153. package/dist/core/stringify-config.js.map +1 -0
  154. package/dist/core/types.d.ts +51 -0
  155. package/dist/core/types.d.ts.map +1 -0
  156. package/dist/core/types.js.map +1 -0
  157. package/dist/core/virtual-modules.d.ts +8 -0
  158. package/dist/core/virtual-modules.d.ts.map +1 -0
  159. package/dist/core/virtual-modules.js +83 -0
  160. package/dist/core/virtual-modules.js.map +1 -0
  161. package/dist/cypress/config/webpack-config.d.ts +1 -1
  162. package/dist/cypress/config/webpack-config.d.ts.map +1 -1
  163. package/dist/cypress/config/webpack-config.js +19 -6
  164. package/dist/cypress/config/webpack-config.js.map +1 -1
  165. package/dist/index.d.ts.map +1 -1
  166. package/dist/index.js.map +1 -1
  167. package/dist/storybook-config/webpack-final.d.ts +1 -1
  168. package/dist/storybook-config/webpack-final.d.ts.map +1 -1
  169. package/dist/storybook-config/webpack-final.js +17 -6
  170. package/dist/storybook-config/webpack-final.js.map +1 -1
  171. package/dist/utils/get-configuration.d.ts +31 -1
  172. package/dist/utils/get-configuration.d.ts.map +1 -1
  173. package/dist/utils/get-configuration.js +12 -8
  174. package/dist/utils/get-configuration.js.map +1 -1
  175. package/dist/utils/get-package-data.d.ts.map +1 -1
  176. package/dist/utils/get-package-data.js +3 -2
  177. package/dist/utils/get-package-data.js.map +1 -1
  178. package/dist/utils/get-packages.d.ts +1 -1
  179. package/dist/utils/get-packages.d.ts.map +1 -1
  180. package/dist/utils/get-packages.js +1 -1
  181. package/dist/utils/get-packages.js.map +1 -1
  182. package/dist/utils/index.d.ts +1 -1
  183. package/dist/utils/index.d.ts.map +1 -1
  184. package/dist/utils/index.js +1 -1
  185. package/dist/utils/index.js.map +1 -1
  186. package/dist/utils/validate-shared-dependencies.d.ts +2 -0
  187. package/dist/utils/validate-shared-dependencies.d.ts.map +1 -0
  188. package/dist/utils/validate-shared-dependencies.js +26 -0
  189. package/dist/utils/validate-shared-dependencies.js.map +1 -0
  190. package/dist/vite/build-shared-dependencies.d.ts +3 -0
  191. package/dist/vite/build-shared-dependencies.d.ts.map +1 -0
  192. package/dist/vite/build-shared-dependencies.js +59 -0
  193. package/dist/vite/build-shared-dependencies.js.map +1 -0
  194. package/dist/vite/config/base-config.d.ts +4 -0
  195. package/dist/vite/config/base-config.d.ts.map +1 -0
  196. package/dist/vite/config/base-config.js +139 -0
  197. package/dist/vite/config/base-config.js.map +1 -0
  198. package/dist/vite/config/create-vite-build-context.d.ts +5 -0
  199. package/dist/vite/config/create-vite-build-context.d.ts.map +1 -0
  200. package/dist/vite/config/create-vite-build-context.js +43 -0
  201. package/dist/vite/config/create-vite-build-context.js.map +1 -0
  202. package/dist/vite/config/create-vite-config.d.ts +3 -0
  203. package/dist/vite/config/create-vite-config.d.ts.map +1 -0
  204. package/dist/vite/config/create-vite-config.js +43 -0
  205. package/dist/vite/config/create-vite-config.js.map +1 -0
  206. package/dist/vite/config/define-config.d.ts +13 -0
  207. package/dist/vite/config/define-config.d.ts.map +1 -0
  208. package/dist/vite/config/define-config.js +15 -0
  209. package/dist/vite/config/define-config.js.map +1 -0
  210. package/dist/vite/config/index.d.ts +6 -0
  211. package/dist/vite/config/index.d.ts.map +1 -0
  212. package/dist/vite/config/index.js +24 -0
  213. package/dist/vite/config/index.js.map +1 -0
  214. package/dist/vite/config/load-config-file.d.ts +4 -0
  215. package/dist/vite/config/load-config-file.d.ts.map +1 -0
  216. package/dist/vite/config/load-config-file.js +103 -0
  217. package/dist/vite/config/load-config-file.js.map +1 -0
  218. package/dist/vite/config/merge-vite-configs.d.ts +5 -0
  219. package/dist/vite/config/merge-vite-configs.d.ts.map +1 -0
  220. package/dist/vite/config/merge-vite-configs.js +17 -0
  221. package/dist/vite/config/merge-vite-configs.js.map +1 -0
  222. package/dist/vite/index.d.ts +2 -0
  223. package/dist/vite/index.d.ts.map +1 -0
  224. package/dist/vite/index.html +36 -0
  225. package/dist/vite/index.js +20 -0
  226. package/dist/vite/index.js.map +1 -0
  227. package/dist/vite/plugins/css-injector-plugin.d.ts +4 -0
  228. package/dist/vite/plugins/css-injector-plugin.d.ts.map +1 -0
  229. package/dist/vite/plugins/css-injector-plugin.js +57 -0
  230. package/dist/vite/plugins/css-injector-plugin.js.map +1 -0
  231. package/dist/vite/plugins/dev-server-routing-plugin.d.ts +24 -0
  232. package/dist/vite/plugins/dev-server-routing-plugin.d.ts.map +1 -0
  233. package/dist/vite/plugins/dev-server-routing-plugin.js +85 -0
  234. package/dist/vite/plugins/dev-server-routing-plugin.js.map +1 -0
  235. package/dist/vite/plugins/externals-plugin.d.ts +4 -0
  236. package/dist/vite/plugins/externals-plugin.d.ts.map +1 -0
  237. package/dist/vite/plugins/externals-plugin.js +60 -0
  238. package/dist/vite/plugins/externals-plugin.js.map +1 -0
  239. package/dist/vite/plugins/html-plugin.d.ts +4 -0
  240. package/dist/vite/plugins/html-plugin.d.ts.map +1 -0
  241. package/dist/vite/plugins/html-plugin.js +102 -0
  242. package/dist/vite/plugins/html-plugin.js.map +1 -0
  243. package/dist/vite/plugins/ignore-modules-plugin.d.ts +4 -0
  244. package/dist/vite/plugins/ignore-modules-plugin.d.ts.map +1 -0
  245. package/dist/vite/plugins/ignore-modules-plugin.js +30 -0
  246. package/dist/vite/plugins/ignore-modules-plugin.js.map +1 -0
  247. package/dist/vite/plugins/index.d.ts +10 -0
  248. package/dist/vite/plugins/index.d.ts.map +1 -0
  249. package/dist/vite/plugins/index.js +28 -0
  250. package/dist/vite/plugins/index.js.map +1 -0
  251. package/dist/vite/plugins/metadata-plugin.d.ts +4 -0
  252. package/dist/vite/plugins/metadata-plugin.d.ts.map +1 -0
  253. package/dist/vite/plugins/metadata-plugin.js +78 -0
  254. package/dist/vite/plugins/metadata-plugin.js.map +1 -0
  255. package/dist/vite/plugins/shared-dependencies-plugin.d.ts +8 -0
  256. package/dist/vite/plugins/shared-dependencies-plugin.d.ts.map +1 -0
  257. package/dist/vite/plugins/shared-dependencies-plugin.js +252 -0
  258. package/dist/vite/plugins/shared-dependencies-plugin.js.map +1 -0
  259. package/dist/vite/plugins/style-urls-plugin.d.ts +4 -0
  260. package/dist/vite/plugins/style-urls-plugin.d.ts.map +1 -0
  261. package/dist/vite/plugins/style-urls-plugin.js +31 -0
  262. package/dist/vite/plugins/style-urls-plugin.js.map +1 -0
  263. package/dist/vite/plugins/svgr-plugin.d.ts +4 -0
  264. package/dist/vite/plugins/svgr-plugin.d.ts.map +1 -0
  265. package/dist/vite/plugins/svgr-plugin.js +33 -0
  266. package/dist/vite/plugins/svgr-plugin.js.map +1 -0
  267. package/dist/vite/plugins/virtual-modules-plugin.d.ts +4 -0
  268. package/dist/vite/plugins/virtual-modules-plugin.d.ts.map +1 -0
  269. package/dist/vite/plugins/virtual-modules-plugin.js +63 -0
  270. package/dist/vite/plugins/virtual-modules-plugin.js.map +1 -0
  271. package/dist/vite/types.d.ts +4 -0
  272. package/dist/vite/types.d.ts.map +1 -0
  273. package/dist/vite/types.js +6 -0
  274. package/dist/vite/types.js.map +1 -0
  275. package/dist/vite/validate-shared-dependencies.d.ts +2 -0
  276. package/dist/vite/validate-shared-dependencies.d.ts.map +1 -0
  277. package/dist/vite/validate-shared-dependencies.js +27 -0
  278. package/dist/vite/validate-shared-dependencies.js.map +1 -0
  279. package/dist/webpack/bundle-webpack.d.ts +11 -0
  280. package/dist/webpack/bundle-webpack.d.ts.map +1 -0
  281. package/dist/webpack/bundle-webpack.js +107 -0
  282. package/dist/webpack/bundle-webpack.js.map +1 -0
  283. package/dist/webpack/configs/amd-config.d.ts +3 -2
  284. package/dist/webpack/configs/amd-config.d.ts.map +1 -1
  285. package/dist/webpack/configs/amd-config.js.map +1 -1
  286. package/dist/webpack/configs/cache-config.d.ts +3 -2
  287. package/dist/webpack/configs/cache-config.d.ts.map +1 -1
  288. package/dist/webpack/configs/cache-config.js +1 -1
  289. package/dist/webpack/configs/cache-config.js.map +1 -1
  290. package/dist/webpack/configs/dev-server-config.d.ts +2 -2
  291. package/dist/webpack/configs/dev-server-config.d.ts.map +1 -1
  292. package/dist/webpack/configs/dev-server-config.js +8 -8
  293. package/dist/webpack/configs/dev-server-config.js.map +1 -1
  294. package/dist/webpack/configs/devtool-config.d.ts +3 -2
  295. package/dist/webpack/configs/devtool-config.d.ts.map +1 -1
  296. package/dist/webpack/configs/devtool-config.js +1 -1
  297. package/dist/webpack/configs/devtool-config.js.map +1 -1
  298. package/dist/webpack/configs/entry.config.d.ts +3 -2
  299. package/dist/webpack/configs/entry.config.d.ts.map +1 -1
  300. package/dist/webpack/configs/entry.config.js +6 -5
  301. package/dist/webpack/configs/entry.config.js.map +1 -1
  302. package/dist/webpack/configs/externals-config.d.ts +3 -2
  303. package/dist/webpack/configs/externals-config.d.ts.map +1 -1
  304. package/dist/webpack/configs/externals-config.js +4 -14
  305. package/dist/webpack/configs/externals-config.js.map +1 -1
  306. package/dist/webpack/configs/index.d.ts +0 -1
  307. package/dist/webpack/configs/index.d.ts.map +1 -1
  308. package/dist/webpack/configs/index.js.map +1 -1
  309. package/dist/webpack/configs/loaders/css-loader.d.ts +2 -2
  310. package/dist/webpack/configs/loaders/css-loader.d.ts.map +1 -1
  311. package/dist/webpack/configs/loaders/css-loader.js +2 -1
  312. package/dist/webpack/configs/loaders/css-loader.js.map +1 -1
  313. package/dist/webpack/configs/loaders/style-loader.d.ts +2 -2
  314. package/dist/webpack/configs/loaders/style-loader.d.ts.map +1 -1
  315. package/dist/webpack/configs/loaders/style-loader.js +3 -1
  316. package/dist/webpack/configs/loaders/style-loader.js.map +1 -1
  317. package/dist/webpack/configs/module-config.d.ts +2 -2
  318. package/dist/webpack/configs/module-config.d.ts.map +1 -1
  319. package/dist/webpack/configs/module-config.js.map +1 -1
  320. package/dist/webpack/configs/optimization-config.d.ts +2 -2
  321. package/dist/webpack/configs/optimization-config.d.ts.map +1 -1
  322. package/dist/webpack/configs/optimization-config.js +9 -7
  323. package/dist/webpack/configs/optimization-config.js.map +1 -1
  324. package/dist/webpack/configs/output-config.d.ts +3 -2
  325. package/dist/webpack/configs/output-config.d.ts.map +1 -1
  326. package/dist/webpack/configs/output-config.js +10 -24
  327. package/dist/webpack/configs/output-config.js.map +1 -1
  328. package/dist/webpack/configs/plugins/assets-manifest-plugin.d.ts +3 -8
  329. package/dist/webpack/configs/plugins/assets-manifest-plugin.d.ts.map +1 -1
  330. package/dist/webpack/configs/plugins/assets-manifest-plugin.js +10 -47
  331. package/dist/webpack/configs/plugins/assets-manifest-plugin.js.map +1 -1
  332. package/dist/webpack/configs/plugins/bundle-analyser-plugin.d.ts +3 -2
  333. package/dist/webpack/configs/plugins/bundle-analyser-plugin.d.ts.map +1 -1
  334. package/dist/webpack/configs/plugins/bundle-analyser-plugin.js +6 -6
  335. package/dist/webpack/configs/plugins/bundle-analyser-plugin.js.map +1 -1
  336. package/dist/webpack/configs/plugins/define-exposed-dependencies-plugin.d.ts +3 -2
  337. package/dist/webpack/configs/plugins/define-exposed-dependencies-plugin.d.ts.map +1 -1
  338. package/dist/webpack/configs/plugins/define-exposed-dependencies-plugin.js +4 -13
  339. package/dist/webpack/configs/plugins/define-exposed-dependencies-plugin.js.map +1 -1
  340. package/dist/webpack/configs/plugins/define-exposed-instance-dependencies-plugin.d.ts +3 -2
  341. package/dist/webpack/configs/plugins/define-exposed-instance-dependencies-plugin.d.ts.map +1 -1
  342. package/dist/webpack/configs/plugins/define-exposed-instance-dependencies-plugin.js +4 -12
  343. package/dist/webpack/configs/plugins/define-exposed-instance-dependencies-plugin.js.map +1 -1
  344. package/dist/webpack/configs/plugins/define-web-component-name-plugin.d.ts +3 -2
  345. package/dist/webpack/configs/plugins/define-web-component-name-plugin.d.ts.map +1 -1
  346. package/dist/webpack/configs/plugins/define-web-component-name-plugin.js +4 -6
  347. package/dist/webpack/configs/plugins/define-web-component-name-plugin.js.map +1 -1
  348. package/dist/webpack/configs/plugins/filter-warnings-plugin.d.ts +3 -2
  349. package/dist/webpack/configs/plugins/filter-warnings-plugin.d.ts.map +1 -1
  350. package/dist/webpack/configs/plugins/filter-warnings-plugin.js +2 -2
  351. package/dist/webpack/configs/plugins/filter-warnings-plugin.js.map +1 -1
  352. package/dist/webpack/configs/plugins/html-plugin.d.ts +3 -2
  353. package/dist/webpack/configs/plugins/html-plugin.d.ts.map +1 -1
  354. package/dist/webpack/configs/plugins/html-plugin.js +4 -2
  355. package/dist/webpack/configs/plugins/html-plugin.js.map +1 -1
  356. package/dist/webpack/configs/plugins/html-tags-plugin.d.ts +3 -2
  357. package/dist/webpack/configs/plugins/html-tags-plugin.d.ts.map +1 -1
  358. package/dist/webpack/configs/plugins/html-tags-plugin.js +8 -19
  359. package/dist/webpack/configs/plugins/html-tags-plugin.js.map +1 -1
  360. package/dist/webpack/configs/plugins/ignore-plugin/ignore-plugin.d.ts +15 -3
  361. package/dist/webpack/configs/plugins/ignore-plugin/ignore-plugin.d.ts.map +1 -1
  362. package/dist/webpack/configs/plugins/ignore-plugin/ignore-plugin.js +41 -6
  363. package/dist/webpack/configs/plugins/ignore-plugin/ignore-plugin.js.map +1 -1
  364. package/dist/webpack/configs/plugins/mini-css-extract-plugin.d.ts +2 -2
  365. package/dist/webpack/configs/plugins/mini-css-extract-plugin.d.ts.map +1 -1
  366. package/dist/webpack/configs/plugins/mini-css-extract-plugin.js +4 -2
  367. package/dist/webpack/configs/plugins/mini-css-extract-plugin.js.map +1 -1
  368. package/dist/webpack/configs/plugins/moment-locales-plugin.d.ts +3 -2
  369. package/dist/webpack/configs/plugins/moment-locales-plugin.d.ts.map +1 -1
  370. package/dist/webpack/configs/plugins/moment-locales-plugin.js.map +1 -1
  371. package/dist/webpack/configs/plugins/remove-empty-scripts-plugin.d.ts +3 -2
  372. package/dist/webpack/configs/plugins/remove-empty-scripts-plugin.d.ts.map +1 -1
  373. package/dist/webpack/configs/plugins/remove-empty-scripts-plugin.js +1 -1
  374. package/dist/webpack/configs/plugins/remove-empty-scripts-plugin.js.map +1 -1
  375. package/dist/webpack/configs/plugins/virtual-modules-plugin.d.ts +3 -3
  376. package/dist/webpack/configs/plugins/virtual-modules-plugin.d.ts.map +1 -1
  377. package/dist/webpack/configs/plugins/virtual-modules-plugin.js +13 -56
  378. package/dist/webpack/configs/plugins/virtual-modules-plugin.js.map +1 -1
  379. package/dist/webpack/configs/plugins/watch-run-plugin.d.ts +3 -2
  380. package/dist/webpack/configs/plugins/watch-run-plugin.d.ts.map +1 -1
  381. package/dist/webpack/configs/plugins/watch-run-plugin.js.map +1 -1
  382. package/dist/webpack/configs/plugins-config.d.ts +3 -2
  383. package/dist/webpack/configs/plugins-config.d.ts.map +1 -1
  384. package/dist/webpack/configs/plugins-config.js.map +1 -1
  385. package/dist/webpack/configs/resolve-config.d.ts +3 -2
  386. package/dist/webpack/configs/resolve-config.d.ts.map +1 -1
  387. package/dist/webpack/configs/resolve-config.js.map +1 -1
  388. package/dist/webpack/configs/rules/css-rules.d.ts +2 -2
  389. package/dist/webpack/configs/rules/css-rules.d.ts.map +1 -1
  390. package/dist/webpack/configs/rules/css-rules.js +2 -1
  391. package/dist/webpack/configs/rules/css-rules.js.map +1 -1
  392. package/dist/webpack/configs/rules/font-rules.d.ts +2 -2
  393. package/dist/webpack/configs/rules/font-rules.d.ts.map +1 -1
  394. package/dist/webpack/configs/rules/font-rules.js.map +1 -1
  395. package/dist/webpack/configs/rules/image-rules.d.ts +2 -2
  396. package/dist/webpack/configs/rules/image-rules.d.ts.map +1 -1
  397. package/dist/webpack/configs/rules/image-rules.js.map +1 -1
  398. package/dist/webpack/configs/rules/js-rules.d.ts +2 -2
  399. package/dist/webpack/configs/rules/js-rules.d.ts.map +1 -1
  400. package/dist/webpack/configs/rules/js-rules.js +3 -1
  401. package/dist/webpack/configs/rules/js-rules.js.map +1 -1
  402. package/dist/webpack/configs/rules/less-rules.d.ts +2 -2
  403. package/dist/webpack/configs/rules/less-rules.d.ts.map +1 -1
  404. package/dist/webpack/configs/rules/less-rules.js.map +1 -1
  405. package/dist/webpack/configs/rules/scss-rules.d.ts +2 -2
  406. package/dist/webpack/configs/rules/scss-rules.d.ts.map +1 -1
  407. package/dist/webpack/configs/rules/scss-rules.js.map +1 -1
  408. package/dist/webpack/configs/rules/svg-rules.d.ts +2 -2
  409. package/dist/webpack/configs/rules/svg-rules.d.ts.map +1 -1
  410. package/dist/webpack/configs/rules/svg-rules.js.map +1 -1
  411. package/dist/webpack/configs/rules-config.d.ts +2 -2
  412. package/dist/webpack/configs/rules-config.d.ts.map +1 -1
  413. package/dist/webpack/configs/rules-config.js +2 -2
  414. package/dist/webpack/configs/rules-config.js.map +1 -1
  415. package/dist/webpack/configs/stats-config.d.ts +3 -2
  416. package/dist/webpack/configs/stats-config.d.ts.map +1 -1
  417. package/dist/webpack/configs/stats-config.js.map +1 -1
  418. package/dist/webpack/configs/watch-options-config.d.ts +2 -2
  419. package/dist/webpack/configs/watch-options-config.d.ts.map +1 -1
  420. package/dist/webpack/configs/watch-options-config.js +2 -2
  421. package/dist/webpack/configs/watch-options-config.js.map +1 -1
  422. package/dist/webpack/create-webpack-config.d.ts +2 -0
  423. package/dist/webpack/create-webpack-config.d.ts.map +1 -1
  424. package/dist/webpack/create-webpack-config.js +36 -46
  425. package/dist/webpack/create-webpack-config.js.map +1 -1
  426. package/dist/webpack/create-webpack-configs.d.ts +16 -0
  427. package/dist/webpack/create-webpack-configs.d.ts.map +1 -0
  428. package/dist/webpack/create-webpack-configs.js +82 -0
  429. package/dist/webpack/create-webpack-configs.js.map +1 -0
  430. package/dist/webpack/index.d.ts +2 -0
  431. package/dist/webpack/index.d.ts.map +1 -1
  432. package/dist/webpack/index.js +2 -0
  433. package/dist/webpack/index.js.map +1 -1
  434. package/dist/webpack/types.d.ts +4 -11
  435. package/dist/webpack/types.d.ts.map +1 -1
  436. package/dist/webpack/utils/create-webpack-build-context.d.ts +4 -0
  437. package/dist/webpack/utils/create-webpack-build-context.d.ts.map +1 -0
  438. package/dist/webpack/utils/create-webpack-build-context.js +21 -0
  439. package/dist/webpack/utils/create-webpack-build-context.js.map +1 -0
  440. package/dist/webpack/utils/index.d.ts +1 -1
  441. package/dist/webpack/utils/index.d.ts.map +1 -1
  442. package/dist/webpack/utils/index.js +1 -1
  443. package/dist/webpack/utils/index.js.map +1 -1
  444. package/jest/babel-plugin-import-meta-env.js +18 -0
  445. package/jest/jest-preset.js +4 -1
  446. package/package.json +24 -17
  447. package/patches/vite-plugin-css-injected-by-js+3.5.2.patch +63 -0
  448. package/src/cli/commands/__tests__/build.test.ts +2 -2
  449. package/src/cli/commands/__tests__/bundle-vite.test.ts +228 -0
  450. package/src/cli/commands/__tests__/{bundle-package.test.ts → bundle-webpack.test.ts} +26 -17
  451. package/src/cli/commands/__tests__/install.test.ts +6 -2
  452. package/src/cli/commands/__tests__/mfe-generate-metadata.test.ts +13 -10
  453. package/src/cli/commands/__tests__/mfe-publish.test.ts +4 -4
  454. package/src/cli/commands/__tests__/start.test.ts +1 -1
  455. package/src/cli/commands/build.ts +14 -11
  456. package/src/cli/commands/bundle-vite.ts +82 -0
  457. package/src/cli/commands/{bundle-package.ts → bundle-webpack.ts} +9 -6
  458. package/src/cli/commands/install.ts +2 -1
  459. package/src/cli/commands/mfe-check.ts +1 -2
  460. package/src/cli/commands/mfe-generate-metadata.ts +1 -1
  461. package/src/cli/commands/mfe-list.ts +1 -1
  462. package/src/cli/commands/mfe-package-publish.ts +1 -1
  463. package/src/cli/commands/mfe-publish.ts +1 -1
  464. package/src/cli/commands/registry/__tests__/command-registry.test.ts +1 -0
  465. package/src/cli/commands/registry/build.ts +2 -0
  466. package/src/cli/commands/registry/bundle-vite.ts +14 -0
  467. package/src/cli/commands/registry/command-registry.ts +5 -2
  468. package/src/cli/commands/registry/start.ts +1 -0
  469. package/src/cli/commands/start.ts +13 -11
  470. package/src/cli/index.ts +2 -1
  471. package/src/cli/tasks/tsc-compile/tsc-compile.ts +1 -1
  472. package/src/cli/utils/copy-files.ts +1 -1
  473. package/src/cli/utils/index.ts +0 -1
  474. package/src/{webpack/configs/plugins/ignore-plugin → core/check-resource}/__tests__/check-resource.test.ts +18 -5
  475. package/src/{webpack/configs/plugins/ignore-plugin → core/check-resource}/__tests__/get-package-json.test.ts +1 -1
  476. package/src/{webpack/configs/plugins/ignore-plugin → core/check-resource}/check-resource.ts +4 -4
  477. package/src/{webpack/configs/plugins/ignore-plugin → core/check-resource}/get-package-json.ts +6 -1
  478. package/src/core/check-resource/index.ts +1 -0
  479. package/src/core/constants.ts +16 -0
  480. package/src/core/create-build-context.ts +57 -0
  481. package/src/core/defines/define-exposed-dependencies.ts +21 -0
  482. package/src/core/defines/define-exposed-instance-dependencies.ts +19 -0
  483. package/src/core/defines/define-web-component-name.ts +15 -0
  484. package/src/core/defines/index.ts +3 -0
  485. package/src/core/externals.ts +22 -0
  486. package/src/core/get-build-name.ts +11 -0
  487. package/src/core/get-bundle-type.ts +19 -0
  488. package/src/core/get-output-path.ts +18 -0
  489. package/src/core/get-shared-entry-points.ts +37 -0
  490. package/src/{webpack/configs/utils → core/get-version}/get-launchdarkly-sdk-version.ts +1 -1
  491. package/src/core/get-version/get-startup-version.ts +6 -0
  492. package/src/{webpack/configs/utils → core/get-version}/get-web-components-version.ts +1 -1
  493. package/src/core/get-version/index.ts +3 -0
  494. package/src/core/index.ts +15 -0
  495. package/src/{webpack/configs/utils → core/metadata}/__tests__/build-metadata.test.ts +10 -6
  496. package/src/{webpack/configs/utils → core/metadata}/__tests__/generate-metadata.test.ts +27 -13
  497. package/src/{webpack/configs/utils → core/metadata}/build-metadata.ts +6 -3
  498. package/src/core/metadata/generate-exposed-dependencies-metadata.ts +20 -0
  499. package/src/{webpack/configs/utils → core/metadata}/generate-metadata.ts +7 -6
  500. package/src/core/metadata/index.ts +3 -0
  501. package/src/core/types.ts +50 -0
  502. package/src/core/virtual-modules.ts +74 -0
  503. package/src/cypress/config/__tests__/webpack-config.test.ts +12 -2
  504. package/src/cypress/config/webpack-config.ts +23 -9
  505. package/src/index.ts +1 -0
  506. package/src/storybook-config/__tests__/webpack-final.test.ts +5 -2
  507. package/src/storybook-config/webpack-final.ts +22 -10
  508. package/src/utils/__tests__/get-configuration.test.ts +28 -7
  509. package/src/utils/__tests__/get-package-data.test.ts +35 -1
  510. package/src/utils/__tests__/get-packages.test.ts +3 -3
  511. package/src/utils/__tests__/validate-shared-dependencies.test.ts +55 -0
  512. package/src/utils/get-configuration.ts +48 -6
  513. package/src/utils/get-package-data.ts +3 -1
  514. package/src/utils/get-packages.ts +2 -2
  515. package/src/utils/index.ts +1 -1
  516. package/src/utils/validate-shared-dependencies.ts +32 -0
  517. package/src/vite/__tests__/build-shared-dependencies.test.ts +165 -0
  518. package/src/vite/__tests__/validate-shared-dependencies.test.ts +34 -0
  519. package/src/vite/build-shared-dependencies.ts +47 -0
  520. package/src/vite/config/__tests__/base-config.test.ts +291 -0
  521. package/src/vite/config/__tests__/create-vite-build-context.test.ts +86 -0
  522. package/src/vite/config/__tests__/create-vite-config.test.ts +141 -0
  523. package/src/vite/config/__tests__/define-config.test.ts +23 -0
  524. package/src/vite/config/__tests__/load-config-file.test.ts +191 -0
  525. package/src/vite/config/__tests__/merge-vite-configs.test.ts +84 -0
  526. package/src/vite/config/base-config.ts +127 -0
  527. package/src/vite/config/create-vite-build-context.ts +45 -0
  528. package/src/vite/config/create-vite-config.ts +33 -0
  529. package/src/vite/config/define-config.ts +18 -0
  530. package/src/vite/config/index.ts +5 -0
  531. package/src/vite/config/load-config-file.ts +52 -0
  532. package/src/vite/config/merge-vite-configs.ts +15 -0
  533. package/src/vite/index.html +36 -0
  534. package/src/vite/index.ts +1 -0
  535. package/src/vite/plugins/__tests__/css-injector-plugin.test.ts +61 -0
  536. package/src/vite/plugins/__tests__/dev-server-routing-plugin.test.ts +255 -0
  537. package/src/vite/plugins/__tests__/externals-plugin.test.ts +138 -0
  538. package/src/vite/plugins/__tests__/html-plugin.test.ts +308 -0
  539. package/src/vite/plugins/__tests__/ignore-modules-plugin.test.ts +80 -0
  540. package/src/vite/plugins/__tests__/metadata-plugin.test.ts +163 -0
  541. package/src/vite/plugins/__tests__/shared-dependencies-plugin.test.ts +427 -0
  542. package/src/vite/plugins/__tests__/style-urls-plugin.test.ts +76 -0
  543. package/src/vite/plugins/__tests__/svgr-plugin.test.ts +67 -0
  544. package/src/vite/plugins/__tests__/virtual-modules-plugin.test.ts +120 -0
  545. package/src/vite/plugins/css-injector-plugin.ts +60 -0
  546. package/src/vite/plugins/dev-server-routing-plugin.ts +96 -0
  547. package/src/vite/plugins/externals-plugin.ts +81 -0
  548. package/src/vite/plugins/html-plugin.ts +94 -0
  549. package/src/vite/plugins/ignore-modules-plugin.ts +22 -0
  550. package/src/vite/plugins/index.ts +9 -0
  551. package/src/vite/plugins/metadata-plugin.ts +66 -0
  552. package/src/vite/plugins/shared-dependencies-plugin.ts +273 -0
  553. package/src/vite/plugins/style-urls-plugin.ts +28 -0
  554. package/src/vite/plugins/svgr-plugin.ts +17 -0
  555. package/src/vite/plugins/virtual-modules-plugin.ts +59 -0
  556. package/src/vite/types.ts +6 -0
  557. package/src/vite/validate-shared-dependencies.ts +27 -0
  558. package/src/{cli/utils/__tests__/bundle.test.ts → webpack/__tests__/bundle-webpack.test.ts} +26 -19
  559. package/src/webpack/__tests__/create-webpack-config-shared-dependencies.test.ts +23 -9
  560. package/src/webpack/__tests__/create-webpack-config-web-component.test.ts +17 -16
  561. package/src/webpack/__tests__/create-webpack-config.test.ts +10 -8
  562. package/src/webpack/bundle-webpack.ts +107 -0
  563. package/src/webpack/configs/amd-config.ts +3 -2
  564. package/src/webpack/configs/cache-config.ts +4 -3
  565. package/src/webpack/configs/dev-server-config.ts +16 -17
  566. package/src/webpack/configs/devtool-config.ts +4 -3
  567. package/src/webpack/configs/entry.config.ts +8 -7
  568. package/src/webpack/configs/externals-config.ts +5 -21
  569. package/src/webpack/configs/index.ts +0 -1
  570. package/src/webpack/configs/loaders/css-loader.ts +3 -2
  571. package/src/webpack/configs/loaders/style-loader.ts +4 -5
  572. package/src/webpack/configs/module-config.ts +2 -2
  573. package/src/webpack/configs/optimization-config.ts +17 -11
  574. package/src/webpack/configs/output-config.ts +11 -22
  575. package/src/webpack/configs/plugins/assets-manifest-plugin.ts +9 -36
  576. package/src/webpack/configs/plugins/bundle-analyser-plugin.ts +8 -8
  577. package/src/webpack/configs/plugins/define-exposed-dependencies-plugin.ts +7 -15
  578. package/src/webpack/configs/plugins/define-exposed-instance-dependencies-plugin.ts +7 -13
  579. package/src/webpack/configs/plugins/define-web-component-name-plugin.ts +7 -8
  580. package/src/webpack/configs/plugins/filter-warnings-plugin.ts +4 -3
  581. package/src/webpack/configs/plugins/html-plugin.ts +6 -6
  582. package/src/webpack/configs/plugins/html-tags-plugin.ts +7 -16
  583. package/src/webpack/configs/plugins/ignore-plugin/__tests__/ignore-plugin.test.ts +92 -0
  584. package/src/webpack/configs/plugins/ignore-plugin/empty-module.js +6 -0
  585. package/src/webpack/configs/plugins/ignore-plugin/ignore-plugin.ts +44 -6
  586. package/src/webpack/configs/plugins/mini-css-extract-plugin.ts +9 -5
  587. package/src/webpack/configs/plugins/moment-locales-plugin.ts +3 -2
  588. package/src/webpack/configs/plugins/remove-empty-scripts-plugin.ts +4 -3
  589. package/src/webpack/configs/plugins/virtual-modules-plugin.ts +11 -65
  590. package/src/webpack/configs/plugins/watch-run-plugin.ts +3 -2
  591. package/src/webpack/configs/plugins-config.ts +3 -2
  592. package/src/webpack/configs/resolve-config.ts +3 -2
  593. package/src/webpack/configs/rules/css-rules.ts +4 -3
  594. package/src/webpack/configs/rules/font-rules.ts +2 -2
  595. package/src/webpack/configs/rules/image-rules.ts +2 -2
  596. package/src/webpack/configs/rules/js-rules.ts +4 -2
  597. package/src/webpack/configs/rules/less-rules.ts +2 -2
  598. package/src/webpack/configs/rules/scss-rules.ts +2 -2
  599. package/src/webpack/configs/rules/svg-rules.ts +2 -2
  600. package/src/webpack/configs/rules-config.ts +6 -5
  601. package/src/webpack/configs/stats-config.ts +3 -2
  602. package/src/webpack/configs/watch-options-config.ts +3 -3
  603. package/src/webpack/create-webpack-config.ts +18 -49
  604. package/src/webpack/create-webpack-configs.ts +77 -0
  605. package/src/webpack/index.ts +2 -0
  606. package/src/webpack/types.ts +8 -11
  607. package/src/webpack/utils/__tests__/split-by-entry.test.ts +33 -0
  608. package/src/webpack/utils/create-webpack-build-context.ts +12 -0
  609. package/src/webpack/utils/index.ts +1 -1
  610. package/dist/cli/commands/bundle-package.d.ts +0 -6
  611. package/dist/cli/commands/bundle-package.d.ts.map +0 -1
  612. package/dist/cli/commands/bundle-package.js.map +0 -1
  613. package/dist/cli/commands/registry/bundle-package.d.ts.map +0 -1
  614. package/dist/cli/utils/bundle.d.ts +0 -14
  615. package/dist/cli/utils/bundle.d.ts.map +0 -1
  616. package/dist/cli/utils/bundle.js +0 -187
  617. package/dist/cli/utils/bundle.js.map +0 -1
  618. package/dist/utils/get-startup-version.d.ts.map +0 -1
  619. package/dist/utils/get-startup-version.js.map +0 -1
  620. package/dist/webpack/configs/plugins/ignore-plugin/check-resource.d.ts +0 -3
  621. package/dist/webpack/configs/plugins/ignore-plugin/check-resource.d.ts.map +0 -1
  622. package/dist/webpack/configs/plugins/ignore-plugin/check-resource.js.map +0 -1
  623. package/dist/webpack/configs/plugins/ignore-plugin/get-package-json.d.ts +0 -2
  624. package/dist/webpack/configs/plugins/ignore-plugin/get-package-json.d.ts.map +0 -1
  625. package/dist/webpack/configs/plugins/ignore-plugin/get-package-json.js.map +0 -1
  626. package/dist/webpack/configs/plugins/ignore-plugin/is-optional-peer-dependency.d.ts.map +0 -1
  627. package/dist/webpack/configs/plugins/ignore-plugin/is-optional-peer-dependency.js.map +0 -1
  628. package/dist/webpack/configs/plugins/ignore-plugin/is-optional-react-dom-peer-dependency.d.ts.map +0 -1
  629. package/dist/webpack/configs/plugins/ignore-plugin/is-optional-react-dom-peer-dependency.js.map +0 -1
  630. package/dist/webpack/configs/types.d.ts +0 -35
  631. package/dist/webpack/configs/types.d.ts.map +0 -1
  632. package/dist/webpack/configs/types.js.map +0 -1
  633. package/dist/webpack/configs/utils/build-metadata.d.ts.map +0 -1
  634. package/dist/webpack/configs/utils/build-metadata.js.map +0 -1
  635. package/dist/webpack/configs/utils/generate-metadata.d.ts +0 -3
  636. package/dist/webpack/configs/utils/generate-metadata.d.ts.map +0 -1
  637. package/dist/webpack/configs/utils/generate-metadata.js.map +0 -1
  638. package/dist/webpack/configs/utils/get-bundle-type.d.ts +0 -3
  639. package/dist/webpack/configs/utils/get-bundle-type.d.ts.map +0 -1
  640. package/dist/webpack/configs/utils/get-bundle-type.js.map +0 -1
  641. package/dist/webpack/configs/utils/get-exposed-dependencies.d.ts.map +0 -1
  642. package/dist/webpack/configs/utils/get-exposed-dependencies.js.map +0 -1
  643. package/dist/webpack/configs/utils/get-launchdarkly-sdk-version.d.ts.map +0 -1
  644. package/dist/webpack/configs/utils/get-launchdarkly-sdk-version.js.map +0 -1
  645. package/dist/webpack/configs/utils/get-web-components-version.d.ts.map +0 -1
  646. package/dist/webpack/configs/utils/get-web-components-version.js.map +0 -1
  647. package/dist/webpack/configs/utils/index.d.ts +0 -4
  648. package/dist/webpack/configs/utils/index.d.ts.map +0 -1
  649. package/dist/webpack/configs/utils/index.js.map +0 -1
  650. package/dist/webpack/utils/stringify-config.d.ts.map +0 -1
  651. package/dist/webpack/utils/stringify-config.js.map +0 -1
  652. package/src/cli/utils/bundle.ts +0 -191
  653. package/src/utils/get-startup-version.ts +0 -6
  654. package/src/webpack/configs/types.ts +0 -38
  655. package/src/webpack/configs/utils/get-bundle-type.ts +0 -22
  656. package/src/webpack/configs/utils/index.ts +0 -3
  657. /package/dist/{webpack/configs/plugins/ignore-plugin → core/check-resource}/is-optional-peer-dependency.d.ts +0 -0
  658. /package/dist/{webpack/configs/plugins/ignore-plugin → core/check-resource}/is-optional-peer-dependency.js +0 -0
  659. /package/dist/{webpack/configs/plugins/ignore-plugin → core/check-resource}/is-optional-react-dom-peer-dependency.d.ts +0 -0
  660. /package/dist/{webpack/configs/plugins/ignore-plugin → core/check-resource}/is-optional-react-dom-peer-dependency.js +0 -0
  661. /package/dist/{webpack/configs/utils → core}/get-exposed-dependencies.d.ts +0 -0
  662. /package/dist/{webpack/configs/utils → core}/get-exposed-dependencies.js +0 -0
  663. /package/dist/{webpack/configs/utils → core/get-version}/get-launchdarkly-sdk-version.d.ts +0 -0
  664. /package/dist/{utils → core/get-version}/get-startup-version.d.ts +0 -0
  665. /package/dist/{webpack/configs/utils → core/get-version}/get-web-components-version.d.ts +0 -0
  666. /package/dist/{webpack/configs/utils → core/metadata}/build-metadata.d.ts +0 -0
  667. /package/dist/{webpack/utils → core}/stringify-config.d.ts +0 -0
  668. /package/dist/{webpack/utils → core}/stringify-config.js +0 -0
  669. /package/dist/{webpack/configs → core}/types.js +0 -0
  670. /package/src/cli/commands/registry/{bundle-package.ts → bundle-webpack.ts} +0 -0
  671. /package/src/{webpack/configs/utils → core}/__tests__/get-exposed-dependencies.test.ts +0 -0
  672. /package/src/{webpack/configs/plugins/ignore-plugin → core/check-resource}/__tests__/is-optional-peer-dependency.test.ts +0 -0
  673. /package/src/{webpack/configs/plugins/ignore-plugin → core/check-resource}/__tests__/is-optional-react-dom-peer-dependency.test.ts +0 -0
  674. /package/src/{webpack/configs/plugins/ignore-plugin → core/check-resource}/is-optional-peer-dependency.ts +0 -0
  675. /package/src/{webpack/configs/plugins/ignore-plugin → core/check-resource}/is-optional-react-dom-peer-dependency.ts +0 -0
  676. /package/src/{webpack/configs/utils → core}/get-exposed-dependencies.ts +0 -0
  677. /package/src/{webpack/configs/utils → core/get-version}/__tests__/get-launchdarkly-sdk-version.test.ts +0 -0
  678. /package/src/{utils → core/get-version}/__tests__/get-startup-version.test.ts +0 -0
  679. /package/src/{webpack/configs/utils → core/get-version}/__tests__/get-web-components-version.test.ts +0 -0
  680. /package/src/{webpack/utils → core}/stringify-config.ts +0 -0
@@ -0,0 +1,255 @@
1
+ import { fs, vol } from 'memfs';
2
+ import path from 'path';
3
+ import { type BuildContext, getBundleType } from '../../../core';
4
+ import { log } from '../../../utils';
5
+ import { devServerRoutingPlugin } from '../dev-server-routing-plugin';
6
+
7
+ jest.mock('fs', () => fs);
8
+ jest.mock('../../../core', () => ({
9
+ getBundleType: jest.fn(),
10
+ }));
11
+ jest.mock('../../../utils', () => ({
12
+ log: { info: jest.fn(), timestamp: '00:00:00' },
13
+ }));
14
+
15
+ describe(devServerRoutingPlugin.name, () => {
16
+ const SHARED_DEPS_DIR = 'shared';
17
+ const destination = 'dist/bundle/full';
18
+ const destDir = path.resolve(destination);
19
+ const outDir = path.resolve('dist/bundle/full');
20
+ const outDirRelative = path.relative(process.cwd(), outDir);
21
+
22
+ let context: BuildContext;
23
+
24
+ beforeEach(() => {
25
+ jest.clearAllMocks();
26
+ vol.fromJSON({});
27
+ jest.mocked(getBundleType).mockReturnValue(SHARED_DEPS_DIR);
28
+ context = {
29
+ build: { name: 'test-app' },
30
+ package: { destination },
31
+ } as BuildContext;
32
+ });
33
+
34
+ afterEach(() => {
35
+ jest.restoreAllMocks();
36
+ vol.reset();
37
+ });
38
+
39
+ const subject = () => devServerRoutingPlugin(context);
40
+
41
+ test('returns plugin with correct name', () => {
42
+ expect(subject().name).toBe('dev-server-routing');
43
+ });
44
+
45
+ const setupMiddleware = (resolvedOutDir: string) => {
46
+ const plugin = subject();
47
+ (plugin.configResolved as Function).call(plugin, {
48
+ build: { outDir: resolvedOutDir },
49
+ });
50
+
51
+ let middleware!: Function;
52
+ const server: any = {
53
+ middlewares: {
54
+ use: (handler: Function) => (middleware = handler),
55
+ },
56
+ };
57
+ (plugin.configureServer as Function).call(plugin, server);
58
+ return middleware;
59
+ };
60
+
61
+ describe('configResolved', () => {
62
+ test('captures outDir for use by configureServer', () => {
63
+ const middleware = setupMiddleware(outDir);
64
+ const req: any = { url: `/${SHARED_DEPS_DIR}/dep.js` };
65
+ const originalUrl = req.url;
66
+
67
+ middleware(req, {}, jest.fn());
68
+
69
+ expect(req.url).toBe(`/${outDirRelative}/${originalUrl.slice(1)}`);
70
+ });
71
+ });
72
+
73
+ describe('configureServer', () => {
74
+ const itPreservesUnmatchedUrls = () => {
75
+ test('preserves unmatched URL', () => {
76
+ const middleware = setupMiddleware(outDir);
77
+ const req: any = { url: '/other/path' };
78
+ const originalUrl = req.url;
79
+
80
+ middleware(req, {}, jest.fn());
81
+
82
+ expect(req.url).toBe(originalUrl);
83
+ });
84
+ };
85
+
86
+ test('logs request', () => {
87
+ const middleware = setupMiddleware(outDir);
88
+
89
+ middleware({ method: 'GET', url: '/anything' }, {}, jest.fn());
90
+
91
+ expect(log.info).toHaveBeenCalled();
92
+ });
93
+
94
+ test('calls next middleware', () => {
95
+ const middleware = setupMiddleware(outDir);
96
+ const next = jest.fn();
97
+
98
+ middleware({ url: '/anything' }, {}, next);
99
+
100
+ expect(next).toHaveBeenCalled();
101
+ });
102
+
103
+ describe('when package is a web component', () => {
104
+ beforeEach(() => (context.package.isWebComponent = true));
105
+
106
+ test('strips outDir prefix from URL', () => {
107
+ const middleware = setupMiddleware(outDir);
108
+ const req: any = { url: `/${outDirRelative}/index.js` };
109
+
110
+ middleware(req, {}, jest.fn());
111
+
112
+ expect(req.url).toBe('/index.js');
113
+ });
114
+
115
+ itPreservesUnmatchedUrls();
116
+ });
117
+
118
+ describe('when package is not a web component', () => {
119
+ beforeEach(() => (context.package.isWebComponent = false));
120
+
121
+ test('rewrites shared dependencies URL to outDir', () => {
122
+ const middleware = setupMiddleware(outDir);
123
+ const req: any = { url: `/${SHARED_DEPS_DIR}/dep.js` };
124
+
125
+ middleware(req, {}, jest.fn());
126
+
127
+ expect(req.url).toBe(`/${outDirRelative}/${SHARED_DEPS_DIR}/dep.js`);
128
+ });
129
+
130
+ itPreservesUnmatchedUrls();
131
+ });
132
+ });
133
+
134
+ describe('configurePreviewServer', () => {
135
+ const setupPreviewServer = () => {
136
+ const plugin = subject();
137
+ const uses: { path?: string; handler: Function }[] = [];
138
+ const server: any = {
139
+ middlewares: {
140
+ use: (...args: any[]) => {
141
+ if (typeof args[0] === 'string') {
142
+ uses.push({ path: args[0], handler: args[1] });
143
+ } else {
144
+ uses.push({ handler: args[0] });
145
+ }
146
+ },
147
+ },
148
+ };
149
+ (plugin.configurePreviewServer as Function).call(plugin, server);
150
+ return {
151
+ logger: uses.find(u => !u.path)!.handler,
152
+ staticFiles: uses.find(u => u.path)?.handler,
153
+ };
154
+ };
155
+
156
+ test('logs request and calls next middleware', () => {
157
+ const { logger } = setupPreviewServer();
158
+ const req = { method: 'GET', url: '/index.html' };
159
+ const next = jest.fn();
160
+
161
+ logger(req, {}, next);
162
+
163
+ expect(log.info).toHaveBeenCalled();
164
+ expect(next).toHaveBeenCalled();
165
+ });
166
+
167
+ describe('when package is not a web component', () => {
168
+ beforeEach(() => (context.package.isWebComponent = false));
169
+
170
+ test('only registers logging middleware', () => {
171
+ const { logger, staticFiles } = setupPreviewServer();
172
+
173
+ expect(logger).toBeDefined();
174
+ expect(staticFiles).toBeUndefined();
175
+ });
176
+ });
177
+
178
+ describe('when package is a web component', () => {
179
+ beforeEach(() => (context.package.isWebComponent = true));
180
+
181
+ const serveStaticFile = (fileName: string) => {
182
+ const mockStream = { pipe: jest.fn() };
183
+ jest.spyOn(fs, 'createReadStream').mockReturnValue(mockStream as any);
184
+ const { staticFiles } = setupPreviewServer();
185
+ const res = { setHeader: jest.fn() };
186
+ staticFiles!({ url: `/${fileName}` }, res, jest.fn());
187
+ return { res, mockStream };
188
+ };
189
+
190
+ describe.each([
191
+ ['file.js', 'application/javascript'],
192
+ ['file.css', 'text/css'],
193
+ ['file.json', 'application/json'],
194
+ ])('when requested file is %s', (fileName, contentType) => {
195
+ beforeEach(() => {
196
+ vol.fromJSON({ [path.join(destDir, fileName)]: 'content' });
197
+ });
198
+
199
+ test(`serves file as ${contentType}`, () => {
200
+ const { res, mockStream } = serveStaticFile(fileName);
201
+
202
+ expect(res.setHeader).toHaveBeenCalledWith('Content-Type', contentType);
203
+ expect(mockStream.pipe).toHaveBeenCalledWith(res);
204
+ });
205
+ });
206
+
207
+ describe('when requested file has unrecognized extension', () => {
208
+ const fileName = 'file.txt';
209
+
210
+ beforeEach(() => {
211
+ vol.fromJSON({ [path.join(destDir, fileName)]: 'content' });
212
+ });
213
+
214
+ test('serves file without content type', () => {
215
+ const { res, mockStream } = serveStaticFile(fileName);
216
+
217
+ expect(res.setHeader).not.toHaveBeenCalled();
218
+ expect(mockStream.pipe).toHaveBeenCalledWith(res);
219
+ });
220
+ });
221
+
222
+ describe('when requested file does not exist', () => {
223
+ beforeEach(() => vol.reset());
224
+
225
+ test('calls next middleware', () => {
226
+ const { staticFiles } = setupPreviewServer();
227
+ const next = jest.fn();
228
+
229
+ staticFiles!({ url: '/missing.js' }, {}, next);
230
+
231
+ expect(next).toHaveBeenCalled();
232
+ });
233
+ });
234
+
235
+ describe('when requested URL traverses outside the mounted directory', () => {
236
+ beforeEach(() => {
237
+ vol.fromJSON({
238
+ [path.resolve(destDir, '../outside.js')]: 'content',
239
+ });
240
+ });
241
+
242
+ test('does not serve the file', () => {
243
+ const createReadStream = jest.spyOn(fs, 'createReadStream');
244
+ const { staticFiles } = setupPreviewServer();
245
+ const next = jest.fn();
246
+
247
+ staticFiles!({ url: '/../outside.js' }, {}, next);
248
+
249
+ expect(next).toHaveBeenCalled();
250
+ expect(createReadStream).not.toHaveBeenCalled();
251
+ });
252
+ });
253
+ });
254
+ });
255
+ });
@@ -0,0 +1,138 @@
1
+ import { fs, vol } from 'memfs';
2
+ import path from 'path';
3
+ import { type BuildContext, getExternals } from '../../../core';
4
+ import { externalsPlugin } from '../externals-plugin';
5
+
6
+ jest.mock('fs', () => fs);
7
+ jest.mock('../../../core', () => ({
8
+ getExternals: jest.fn(),
9
+ }));
10
+
11
+ describe(externalsPlugin.name, () => {
12
+ const mockExternals: Record<string, string> = {
13
+ 'react': 'globalReact',
14
+ '@scope/lib': 'globalScopeLib',
15
+ };
16
+ const proxyNodeModules = path.resolve('node_modules', '.startup', 'externals', 'node_modules');
17
+
18
+ let context: BuildContext;
19
+
20
+ beforeEach(() => {
21
+ jest.clearAllMocks();
22
+ vol.fromJSON({});
23
+ jest.mocked(getExternals).mockReturnValue(mockExternals);
24
+ context = {
25
+ build: {},
26
+ } as BuildContext;
27
+ });
28
+
29
+ afterEach(() => vol.reset());
30
+
31
+ const subject = () => externalsPlugin(context);
32
+
33
+ test('returns plugin with correct name', () => {
34
+ expect(subject()!.name).toBe('externals');
35
+ });
36
+
37
+ test('enforces pre', () => {
38
+ expect(subject()!.enforce).toBe('pre');
39
+ });
40
+
41
+ test('writes proxy CJS module for each dependency', () => {
42
+ subject();
43
+
44
+ for (const [dependency, proxy] of Object.entries(mockExternals)) {
45
+ const cjsPath = path.join(proxyNodeModules, dependency, 'index.cjs');
46
+ expect(fs.readFileSync(cjsPath, 'utf8')).toBe(`module.exports = ${proxy};`);
47
+ }
48
+ });
49
+
50
+ test('writes proxy package.json for each dependency', () => {
51
+ subject();
52
+
53
+ for (const [dependency] of Object.entries(mockExternals)) {
54
+ const pkgPath = path.join(proxyNodeModules, dependency, 'package.json');
55
+ expect(JSON.parse(fs.readFileSync(pkgPath, 'utf8') as string)).toEqual({
56
+ name: dependency,
57
+ main: './index.cjs',
58
+ });
59
+ }
60
+ });
61
+
62
+ describe('when no externals exist', () => {
63
+ beforeEach(() => jest.mocked(getExternals).mockReturnValue(undefined));
64
+
65
+ test('returns undefined', () => {
66
+ expect(subject()).toBeUndefined();
67
+ });
68
+ });
69
+
70
+ describe('when build is production', () => {
71
+ beforeEach(() => (context.build.isProduction = true));
72
+
73
+ describe('resolveId', () => {
74
+ let source: string;
75
+
76
+ const subject = () => {
77
+ const plugin = externalsPlugin(context)!;
78
+ return (plugin.resolveId as Function).call(plugin, source);
79
+ };
80
+
81
+ describe('with known dependency', () => {
82
+ const knownDependency = Object.keys(mockExternals)[0];
83
+
84
+ beforeEach(() => (source = knownDependency));
85
+
86
+ test('resolves to proxy module', () => {
87
+ expect(subject()).toBe(
88
+ path.join(proxyNodeModules, knownDependency, 'index.cjs')
89
+ );
90
+ });
91
+ });
92
+
93
+ describe('with unknown dependency', () => {
94
+ beforeEach(() => (source = 'unknown'));
95
+
96
+ test('returns undefined', () => {
97
+ expect(subject()).toBeUndefined();
98
+ });
99
+ });
100
+ });
101
+
102
+ test('does not define config', () => {
103
+ expect(subject()!.config).toBeUndefined();
104
+ });
105
+ });
106
+
107
+ describe('when build is not production', () => {
108
+ beforeEach(() => (context.build.isProduction = false));
109
+
110
+ describe('config', () => {
111
+ const subject = () => {
112
+ const plugin = externalsPlugin(context)!;
113
+ return (plugin.config as Function).call(plugin);
114
+ };
115
+
116
+ test('returns resolve aliases for each dependency', () => {
117
+ expect(subject().resolve.alias).toEqual([
118
+ {
119
+ find: /^react$/,
120
+ replacement: path.join(proxyNodeModules, 'react'),
121
+ },
122
+ {
123
+ find: /^@scope\/lib$/,
124
+ replacement: path.join(proxyNodeModules, '@scope/lib'),
125
+ },
126
+ ]);
127
+ });
128
+
129
+ test('includes dependencies in optimizeDeps', () => {
130
+ expect(subject().optimizeDeps.include).toEqual(Object.keys(mockExternals));
131
+ });
132
+ });
133
+
134
+ test('does not define resolveId', () => {
135
+ expect(subject()!.resolveId).toBeUndefined();
136
+ });
137
+ });
138
+ });
@@ -0,0 +1,308 @@
1
+ import { Eta } from 'eta';
2
+ import { fs, vol } from 'memfs';
3
+ import path from 'path';
4
+ import { getSharedEntryPoints } from '../../../core';
5
+ import type { ViteBuildContext } from '../../types';
6
+ import { htmlPlugin } from '../html-plugin';
7
+
8
+ const mockRender = jest.fn();
9
+
10
+ jest.mock('fs', () => fs);
11
+ jest.mock('eta', () => ({
12
+ Eta: jest.fn(() => ({ render: mockRender })),
13
+ }));
14
+ jest.mock('../../../core', () => ({
15
+ getSharedEntryPoints: jest.fn(),
16
+ }));
17
+
18
+ describe(htmlPlugin.name, () => {
19
+ const VIRTUAL_HTML_PATH = path.resolve('index.html');
20
+ const RENDERED_HTML = '<html><body>rendered</body></html>';
21
+
22
+ let context: ViteBuildContext;
23
+
24
+ beforeEach(() => {
25
+ jest.clearAllMocks();
26
+ vol.fromJSON({});
27
+ mockRender.mockReturnValue(RENDERED_HTML);
28
+ jest.mocked(getSharedEntryPoints).mockReturnValue({ css: [], js: [] });
29
+ context = {
30
+ build: { name: 'my-app', isProduction: false },
31
+ package: { isWebComponent: false },
32
+ bundlerConfig: {
33
+ pluginOverrides: {
34
+ html: { template: '/templates/custom.html' },
35
+ },
36
+ },
37
+ } as ViteBuildContext;
38
+ });
39
+
40
+ afterEach(() => vol.reset());
41
+
42
+ const subject = () => htmlPlugin(context);
43
+
44
+ test('returns plugin with correct name', () => {
45
+ expect(subject().name).toBe('html');
46
+ });
47
+
48
+ test('constructs Eta with template directory', () => {
49
+ subject();
50
+
51
+ const templateDir = path.dirname(
52
+ path.resolve(context.bundlerConfig.pluginOverrides.html!.template!)
53
+ );
54
+ expect(Eta).toHaveBeenCalledWith({ views: templateDir });
55
+ });
56
+
57
+ describe('when template is not configured', () => {
58
+ beforeEach(() => {
59
+ context.bundlerConfig.pluginOverrides.html = undefined as any;
60
+ });
61
+
62
+ test('constructs Eta with default template directory', () => {
63
+ subject();
64
+
65
+ const defaultTemplateDir = path.resolve(__dirname, '../..');
66
+ expect(Eta).toHaveBeenCalledWith({ views: defaultTemplateDir });
67
+ });
68
+ });
69
+
70
+ describe('resolveId', () => {
71
+ let source: string;
72
+ let importer: string | undefined;
73
+
74
+ beforeEach(() => {
75
+ source = './app';
76
+ importer = undefined;
77
+ });
78
+
79
+ const subject = () => {
80
+ const plugin = htmlPlugin(context);
81
+ return (plugin.resolveId as Function).call(plugin, source, importer);
82
+ };
83
+
84
+ const itReturnsUndefined = () => {
85
+ test('returns undefined', () => {
86
+ expect(subject()).toBeUndefined();
87
+ });
88
+ };
89
+
90
+ itReturnsUndefined();
91
+
92
+ describe('when source is virtual HTML path', () => {
93
+ beforeEach(() => (source = VIRTUAL_HTML_PATH));
94
+
95
+ test('returns source', () => {
96
+ expect(subject()).toBe(VIRTUAL_HTML_PATH);
97
+ });
98
+ });
99
+
100
+ describe('when importer includes index.html', () => {
101
+ beforeEach(() => (importer = VIRTUAL_HTML_PATH));
102
+
103
+ itReturnsUndefined();
104
+
105
+ describe('when source JS file exists', () => {
106
+ let sourcePath: string;
107
+
108
+ beforeEach(() => {
109
+ sourcePath = path.resolve(source + '.js');
110
+ vol.fromJSON({ [sourcePath]: '' });
111
+ });
112
+
113
+ test('resolves to .js path', () => {
114
+ expect(subject()).toBe(sourcePath);
115
+ });
116
+
117
+ describe('when source is not relative path', () => {
118
+ beforeEach(() => {
119
+ source = 'react';
120
+ sourcePath = path.resolve(source + '.js');
121
+ vol.fromJSON({ [sourcePath]: '' });
122
+ });
123
+
124
+ itReturnsUndefined();
125
+ });
126
+ });
127
+ });
128
+ });
129
+
130
+ describe('load', () => {
131
+ let id: string;
132
+
133
+ beforeEach(() => (id = ''));
134
+
135
+ const subject = () => {
136
+ const plugin = htmlPlugin(context);
137
+ return (plugin.load as Function).call(plugin, id);
138
+ };
139
+
140
+ test('does nothing', () => {
141
+ subject();
142
+
143
+ expect(mockRender).not.toHaveBeenCalled();
144
+ });
145
+
146
+ describe('when id is virtual HTML path', () => {
147
+ beforeEach(() => (id = VIRTUAL_HTML_PATH));
148
+ test('returns rendered HTML', () => {
149
+ expect(subject()).toBe(RENDERED_HTML);
150
+ });
151
+
152
+ test('passes context values to template', () => {
153
+ subject();
154
+
155
+ const templateName = path.basename(
156
+ context.bundlerConfig.pluginOverrides.html!.template!
157
+ );
158
+ expect(mockRender).toHaveBeenCalledWith(templateName, {
159
+ title: 'ServiceTitan',
160
+ favicon: undefined,
161
+ css: [],
162
+ js: [],
163
+ isProduction: context.build.isProduction,
164
+ isWebComponent: context.package.isWebComponent,
165
+ name: context.build.name,
166
+ });
167
+ });
168
+
169
+ describe('when title is overridden', () => {
170
+ beforeEach(() => {
171
+ context.bundlerConfig.pluginOverrides.html!.title = 'Custom Title';
172
+ });
173
+
174
+ test('passes overridden title to template', () => {
175
+ subject();
176
+
177
+ expect(mockRender).toHaveBeenCalledWith(
178
+ expect.anything(),
179
+ expect.objectContaining({ title: 'Custom Title' })
180
+ );
181
+ });
182
+ });
183
+
184
+ describe('when favicon is overridden', () => {
185
+ beforeEach(() => {
186
+ context.bundlerConfig.pluginOverrides.html!.favicon = '/favicon.ico';
187
+ });
188
+
189
+ test('passes overridden favicon to template', () => {
190
+ subject();
191
+
192
+ expect(mockRender).toHaveBeenCalledWith(
193
+ expect.anything(),
194
+ expect.objectContaining({ favicon: '/favicon.ico' })
195
+ );
196
+ });
197
+ });
198
+ });
199
+ });
200
+
201
+ describe('configResolved', () => {
202
+ const publicDir = path.resolve('public');
203
+
204
+ const subject = () => {
205
+ const plugin = htmlPlugin(context);
206
+ (plugin.configResolved as Function).call(plugin, { publicDir });
207
+ (plugin.load as Function).call(plugin, VIRTUAL_HTML_PATH);
208
+ };
209
+
210
+ test('ignores favicon', () => {
211
+ subject();
212
+
213
+ expect(mockRender).toHaveBeenCalledWith(
214
+ expect.anything(),
215
+ expect.objectContaining({ favicon: undefined })
216
+ );
217
+ });
218
+
219
+ describe('when public directory contains favicon.ico', () => {
220
+ beforeEach(() => {
221
+ vol.fromJSON({ [path.join(publicDir, 'favicon.ico')]: '' });
222
+ });
223
+
224
+ test('configures favicon', () => {
225
+ subject();
226
+
227
+ expect(mockRender).toHaveBeenCalledWith(
228
+ expect.anything(),
229
+ expect.objectContaining({ favicon: '/favicon.ico' })
230
+ );
231
+ });
232
+
233
+ describe('when favicon is explicitly configured', () => {
234
+ const favicon = '/custom.ico';
235
+ beforeEach(() => {
236
+ context.bundlerConfig.pluginOverrides.html!.favicon = favicon;
237
+ });
238
+
239
+ test('uses configured value', () => {
240
+ subject();
241
+
242
+ expect(mockRender).toHaveBeenCalledWith(
243
+ expect.anything(),
244
+ expect.objectContaining({ favicon })
245
+ );
246
+ });
247
+ });
248
+ });
249
+ });
250
+
251
+ describe('configureServer', () => {
252
+ const TRANSFORMED_HTML = '<html>transformed</html>';
253
+
254
+ let req: any;
255
+ let res: any;
256
+ let next: jest.Mock;
257
+ let server: any;
258
+
259
+ beforeEach(() => {
260
+ req = { url: '/other' };
261
+ res = { end: jest.fn() };
262
+ next = jest.fn();
263
+
264
+ const plugin = htmlPlugin(context);
265
+ server = {
266
+ middlewares: { use: jest.fn() },
267
+ transformIndexHtml: jest.fn(() => Promise.resolve(TRANSFORMED_HTML)),
268
+ };
269
+ const postHook = (plugin.configureServer as Function).call(plugin, server);
270
+ postHook();
271
+ });
272
+
273
+ const subject = async () => {
274
+ const middleware = server.middlewares.use.mock.calls[0][0];
275
+ await middleware(req, res, next);
276
+ };
277
+
278
+ test('calls next middleware', async () => {
279
+ await subject();
280
+
281
+ expect(next).toHaveBeenCalled();
282
+ });
283
+
284
+ test('does not serve transformed HTML', async () => {
285
+ await subject();
286
+
287
+ expect(server.transformIndexHtml).not.toHaveBeenCalled();
288
+ expect(res.end).not.toHaveBeenCalled();
289
+ });
290
+
291
+ describe('when request URL ends with index.html', () => {
292
+ beforeEach(() => (req.url = '/index.html'));
293
+
294
+ test('serves transformed HTML', async () => {
295
+ await subject();
296
+
297
+ expect(server.transformIndexHtml).toHaveBeenCalledWith(req.url, RENDERED_HTML);
298
+ expect(res.end).toHaveBeenCalledWith(TRANSFORMED_HTML);
299
+ });
300
+
301
+ test('does not call next middleware', async () => {
302
+ await subject();
303
+
304
+ expect(next).not.toHaveBeenCalled();
305
+ });
306
+ });
307
+ });
308
+ });