@angular/build 21.0.0-next.0 → 21.0.0-next.10

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 (425) hide show
  1. package/index.js +1 -0
  2. package/index.js.map +1 -0
  3. package/package.json +18 -18
  4. package/private/index.js +1 -0
  5. package/private/index.js.map +1 -0
  6. package/src/builders/application/build-action.js +1 -0
  7. package/src/builders/application/build-action.js.map +1 -0
  8. package/src/builders/application/chunk-optimizer.js +3 -1
  9. package/src/builders/application/chunk-optimizer.js.map +1 -0
  10. package/src/builders/application/execute-build.js +1 -0
  11. package/src/builders/application/execute-build.js.map +1 -0
  12. package/src/builders/application/execute-post-bundle.js +1 -0
  13. package/src/builders/application/execute-post-bundle.js.map +1 -0
  14. package/src/builders/application/i18n.js +1 -0
  15. package/src/builders/application/i18n.js.map +1 -0
  16. package/src/builders/application/index.js +42 -1
  17. package/src/builders/application/index.js.map +1 -0
  18. package/src/builders/application/options.d.ts +4 -1
  19. package/src/builders/application/options.js +1 -0
  20. package/src/builders/application/options.js.map +1 -0
  21. package/src/builders/application/results.js +1 -0
  22. package/src/builders/application/results.js.map +1 -0
  23. package/src/builders/application/schema.d.ts +14 -1
  24. package/src/builders/application/schema.js +7 -0
  25. package/src/builders/application/schema.js.map +1 -0
  26. package/src/builders/application/schema.json +2 -2
  27. package/src/builders/application/setup-bundling.js +1 -0
  28. package/src/builders/application/setup-bundling.js.map +1 -0
  29. package/src/builders/dev-server/builder.js +1 -0
  30. package/src/builders/dev-server/builder.js.map +1 -0
  31. package/src/builders/dev-server/index.js +1 -0
  32. package/src/builders/dev-server/index.js.map +1 -0
  33. package/src/builders/dev-server/internal.js +1 -0
  34. package/src/builders/dev-server/internal.js.map +1 -0
  35. package/src/builders/dev-server/options.d.ts +3 -0
  36. package/src/builders/dev-server/options.js +3 -1
  37. package/src/builders/dev-server/options.js.map +1 -0
  38. package/src/builders/dev-server/output.js +1 -0
  39. package/src/builders/dev-server/output.js.map +1 -0
  40. package/src/builders/dev-server/schema.d.ts +9 -0
  41. package/src/builders/dev-server/schema.js +1 -0
  42. package/src/builders/dev-server/schema.js.map +1 -0
  43. package/src/builders/dev-server/schema.json +7 -0
  44. package/src/builders/dev-server/vite/hmr.js +1 -0
  45. package/src/builders/dev-server/vite/hmr.js.map +1 -0
  46. package/src/builders/dev-server/vite/index.js +14 -5
  47. package/src/builders/dev-server/vite/index.js.map +1 -0
  48. package/src/builders/dev-server/vite/server.js +2 -4
  49. package/src/builders/dev-server/vite/server.js.map +1 -0
  50. package/src/builders/dev-server/vite/utils.js +1 -0
  51. package/src/builders/dev-server/vite/utils.js.map +1 -0
  52. package/src/builders/extract-i18n/application-extraction.js +1 -0
  53. package/src/builders/extract-i18n/application-extraction.js.map +1 -0
  54. package/src/builders/extract-i18n/builder.js +2 -3
  55. package/src/builders/extract-i18n/builder.js.map +1 -0
  56. package/src/builders/extract-i18n/index.js +1 -0
  57. package/src/builders/extract-i18n/index.js.map +1 -0
  58. package/src/builders/extract-i18n/options.js +1 -0
  59. package/src/builders/extract-i18n/options.js.map +1 -0
  60. package/src/builders/extract-i18n/schema.js +1 -0
  61. package/src/builders/extract-i18n/schema.js.map +1 -0
  62. package/src/builders/karma/application_builder.d.ts +0 -2
  63. package/src/builders/karma/application_builder.js +52 -350
  64. package/src/builders/karma/application_builder.js.map +1 -0
  65. package/src/builders/karma/assets-middleware.d.ts +26 -0
  66. package/src/builders/karma/assets-middleware.js +66 -0
  67. package/src/builders/karma/assets-middleware.js.map +1 -0
  68. package/src/builders/karma/coverage.d.ts +9 -0
  69. package/src/builders/karma/coverage.js +32 -0
  70. package/src/builders/karma/coverage.js.map +1 -0
  71. package/src/builders/karma/find-tests.d.ts +1 -8
  72. package/src/builders/karma/find-tests.js +7 -102
  73. package/src/builders/karma/find-tests.js.map +1 -0
  74. package/src/builders/karma/index.js +1 -0
  75. package/src/builders/karma/index.js.map +1 -0
  76. package/src/builders/karma/karma-config.d.ts +11 -0
  77. package/src/builders/karma/karma-config.js +80 -0
  78. package/src/builders/karma/karma-config.js.map +1 -0
  79. package/src/builders/karma/options.js +1 -0
  80. package/src/builders/karma/options.js.map +1 -0
  81. package/src/builders/karma/polyfills-plugin.d.ts +13 -0
  82. package/src/builders/karma/polyfills-plugin.js +75 -0
  83. package/src/builders/karma/polyfills-plugin.js.map +1 -0
  84. package/src/builders/karma/progress-reporter.d.ts +17 -0
  85. package/src/builders/karma/progress-reporter.js +76 -0
  86. package/src/builders/karma/progress-reporter.js.map +1 -0
  87. package/src/builders/karma/schema.js +1 -0
  88. package/src/builders/karma/schema.js.map +1 -0
  89. package/src/builders/karma/utils.d.ts +17 -0
  90. package/src/builders/karma/utils.js +67 -0
  91. package/src/builders/karma/utils.js.map +1 -0
  92. package/src/builders/ng-packagr/builder.js +1 -0
  93. package/src/builders/ng-packagr/builder.js.map +1 -0
  94. package/src/builders/ng-packagr/index.js +1 -0
  95. package/src/builders/ng-packagr/index.js.map +1 -0
  96. package/src/builders/ng-packagr/schema.js +1 -0
  97. package/src/builders/ng-packagr/schema.js.map +1 -0
  98. package/src/builders/unit-test/builder.js +158 -44
  99. package/src/builders/unit-test/builder.js.map +1 -0
  100. package/src/builders/unit-test/index.js +1 -0
  101. package/src/builders/unit-test/index.js.map +1 -0
  102. package/src/builders/unit-test/options.d.ts +25 -6
  103. package/src/builders/unit-test/options.js +61 -13
  104. package/src/builders/unit-test/options.js.map +1 -0
  105. package/src/builders/unit-test/runners/api.d.ts +19 -1
  106. package/src/builders/unit-test/runners/api.js +1 -0
  107. package/src/builders/unit-test/runners/api.js.map +1 -0
  108. package/src/builders/unit-test/runners/dependency-checker.d.ts +43 -0
  109. package/src/builders/unit-test/runners/dependency-checker.js +83 -0
  110. package/src/builders/unit-test/runners/dependency-checker.js.map +1 -0
  111. package/src/builders/unit-test/runners/karma/executor.js +72 -5
  112. package/src/builders/unit-test/runners/karma/executor.js.map +1 -0
  113. package/src/builders/unit-test/runners/karma/index.js +18 -0
  114. package/src/builders/unit-test/runners/karma/index.js.map +1 -0
  115. package/src/builders/unit-test/runners/vitest/browser-provider.d.ts +8 -3
  116. package/src/builders/unit-test/runners/vitest/browser-provider.js +71 -17
  117. package/src/builders/unit-test/runners/vitest/browser-provider.js.map +1 -0
  118. package/src/builders/unit-test/runners/vitest/build-options.js +48 -9
  119. package/src/builders/unit-test/runners/vitest/build-options.js.map +1 -0
  120. package/src/builders/unit-test/runners/vitest/configuration.d.ts +15 -0
  121. package/src/builders/unit-test/runners/vitest/configuration.js +57 -0
  122. package/src/builders/unit-test/runners/vitest/configuration.js.map +1 -0
  123. package/src/builders/unit-test/runners/vitest/executor.d.ts +7 -4
  124. package/src/builders/unit-test/runners/vitest/executor.js +183 -89
  125. package/src/builders/unit-test/runners/vitest/executor.js.map +1 -0
  126. package/src/builders/unit-test/runners/vitest/index.js +25 -2
  127. package/src/builders/unit-test/runners/vitest/index.js.map +1 -0
  128. package/src/builders/unit-test/runners/vitest/plugins.d.ts +23 -0
  129. package/src/builders/unit-test/runners/vitest/plugins.js +141 -0
  130. package/src/builders/unit-test/runners/vitest/plugins.js.map +1 -0
  131. package/src/builders/unit-test/schema.d.ts +163 -39
  132. package/src/builders/unit-test/schema.js +14 -13
  133. package/src/builders/unit-test/schema.js.map +1 -0
  134. package/src/builders/unit-test/schema.json +186 -40
  135. package/src/builders/unit-test/test-discovery.d.ts +29 -1
  136. package/src/builders/unit-test/test-discovery.js +215 -5
  137. package/src/builders/unit-test/test-discovery.js.map +1 -0
  138. package/src/index.js +1 -0
  139. package/src/index.js.map +1 -0
  140. package/src/private.js +1 -0
  141. package/src/private.js.map +1 -0
  142. package/src/tools/angular/angular-host.js +1 -0
  143. package/src/tools/angular/angular-host.js.map +1 -0
  144. package/src/tools/angular/compilation/angular-compilation.js +2 -5
  145. package/src/tools/angular/compilation/angular-compilation.js.map +1 -0
  146. package/src/tools/angular/compilation/aot-compilation.js +1 -0
  147. package/src/tools/angular/compilation/aot-compilation.js.map +1 -0
  148. package/src/tools/angular/compilation/factory.js +1 -0
  149. package/src/tools/angular/compilation/factory.js.map +1 -0
  150. package/src/tools/angular/compilation/hmr-candidates.js +1 -0
  151. package/src/tools/angular/compilation/hmr-candidates.js.map +1 -0
  152. package/src/tools/angular/compilation/index.js +1 -0
  153. package/src/tools/angular/compilation/index.js.map +1 -0
  154. package/src/tools/angular/compilation/jit-compilation.js +35 -2
  155. package/src/tools/angular/compilation/jit-compilation.js.map +1 -0
  156. package/src/tools/angular/compilation/noop-compilation.js +1 -0
  157. package/src/tools/angular/compilation/noop-compilation.js.map +1 -0
  158. package/src/tools/angular/compilation/parallel-compilation.js +1 -0
  159. package/src/tools/angular/compilation/parallel-compilation.js.map +1 -0
  160. package/src/tools/angular/compilation/parallel-worker.js +1 -0
  161. package/src/tools/angular/compilation/parallel-worker.js.map +1 -0
  162. package/src/tools/angular/transformers/jit-bootstrap-transformer.js +2 -1
  163. package/src/tools/angular/transformers/jit-bootstrap-transformer.js.map +1 -0
  164. package/src/tools/angular/transformers/jit-resource-transformer.js +2 -1
  165. package/src/tools/angular/transformers/jit-resource-transformer.js.map +1 -0
  166. package/src/tools/angular/transformers/lazy-routes-transformer.js +1 -0
  167. package/src/tools/angular/transformers/lazy-routes-transformer.js.map +1 -0
  168. package/src/tools/angular/transformers/web-worker-transformer.js +1 -0
  169. package/src/tools/angular/transformers/web-worker-transformer.js.map +1 -0
  170. package/src/tools/angular/uri.js +1 -0
  171. package/src/tools/angular/uri.js.map +1 -0
  172. package/src/tools/babel/plugins/add-code-coverage.js +1 -0
  173. package/src/tools/babel/plugins/add-code-coverage.js.map +1 -0
  174. package/src/tools/babel/plugins/adjust-static-class-members.js +1 -0
  175. package/src/tools/babel/plugins/adjust-static-class-members.js.map +1 -0
  176. package/src/tools/babel/plugins/adjust-typescript-enums.js +1 -0
  177. package/src/tools/babel/plugins/adjust-typescript-enums.js.map +1 -0
  178. package/src/tools/babel/plugins/elide-angular-metadata.js +1 -0
  179. package/src/tools/babel/plugins/elide-angular-metadata.js.map +1 -0
  180. package/src/tools/babel/plugins/index.js +1 -0
  181. package/src/tools/babel/plugins/index.js.map +1 -0
  182. package/src/tools/babel/plugins/pure-toplevel-functions.d.ts +0 -1
  183. package/src/tools/babel/plugins/pure-toplevel-functions.js +22 -5
  184. package/src/tools/babel/plugins/pure-toplevel-functions.js.map +1 -0
  185. package/src/tools/esbuild/angular/compilation-state.js +1 -0
  186. package/src/tools/esbuild/angular/compilation-state.js.map +1 -0
  187. package/src/tools/esbuild/angular/compiler-plugin.js +44 -16
  188. package/src/tools/esbuild/angular/compiler-plugin.js.map +1 -0
  189. package/src/tools/esbuild/angular/component-stylesheets.js +1 -0
  190. package/src/tools/esbuild/angular/component-stylesheets.js.map +1 -0
  191. package/src/tools/esbuild/angular/diagnostics.js +1 -0
  192. package/src/tools/esbuild/angular/diagnostics.js.map +1 -0
  193. package/src/tools/esbuild/angular/file-reference-tracker.js +1 -0
  194. package/src/tools/esbuild/angular/file-reference-tracker.js.map +1 -0
  195. package/src/tools/esbuild/angular/jit-plugin-callbacks.js +1 -0
  196. package/src/tools/esbuild/angular/jit-plugin-callbacks.js.map +1 -0
  197. package/src/tools/esbuild/angular/rewrite-bazel-paths.d.ts +8 -0
  198. package/src/tools/esbuild/angular/rewrite-bazel-paths.js +28 -0
  199. package/src/tools/esbuild/angular/rewrite-bazel-paths.js.map +1 -0
  200. package/src/tools/esbuild/angular/source-file-cache.js +1 -0
  201. package/src/tools/esbuild/angular/source-file-cache.js.map +1 -0
  202. package/src/tools/esbuild/angular-localize-init-warning-plugin.js +1 -0
  203. package/src/tools/esbuild/angular-localize-init-warning-plugin.js.map +1 -0
  204. package/src/tools/esbuild/application-code-bundle.js +2 -1
  205. package/src/tools/esbuild/application-code-bundle.js.map +1 -0
  206. package/src/tools/esbuild/budget-stats.js +1 -0
  207. package/src/tools/esbuild/budget-stats.js.map +1 -0
  208. package/src/tools/esbuild/bundler-context.js +1 -0
  209. package/src/tools/esbuild/bundler-context.js.map +1 -0
  210. package/src/tools/esbuild/bundler-execution-result.js +1 -0
  211. package/src/tools/esbuild/bundler-execution-result.js.map +1 -0
  212. package/src/tools/esbuild/cache.js +1 -0
  213. package/src/tools/esbuild/cache.js.map +1 -0
  214. package/src/tools/esbuild/commonjs-checker.js +1 -0
  215. package/src/tools/esbuild/commonjs-checker.js.map +1 -0
  216. package/src/tools/esbuild/compiler-plugin-options.js +1 -0
  217. package/src/tools/esbuild/compiler-plugin-options.js.map +1 -0
  218. package/src/tools/esbuild/external-packages-plugin.js +1 -0
  219. package/src/tools/esbuild/external-packages-plugin.js.map +1 -0
  220. package/src/tools/esbuild/global-scripts.js +1 -0
  221. package/src/tools/esbuild/global-scripts.js.map +1 -0
  222. package/src/tools/esbuild/global-styles.js +1 -0
  223. package/src/tools/esbuild/global-styles.js.map +1 -0
  224. package/src/tools/esbuild/i18n-inliner-worker.js +35 -2
  225. package/src/tools/esbuild/i18n-inliner-worker.js.map +1 -0
  226. package/src/tools/esbuild/i18n-inliner.js +1 -0
  227. package/src/tools/esbuild/i18n-inliner.js.map +1 -0
  228. package/src/tools/esbuild/i18n-locale-plugin.js +34 -15
  229. package/src/tools/esbuild/i18n-locale-plugin.js.map +1 -0
  230. package/src/tools/esbuild/index-html-generator.js +1 -0
  231. package/src/tools/esbuild/index-html-generator.js.map +1 -0
  232. package/src/tools/esbuild/javascript-transformer-worker.js +5 -10
  233. package/src/tools/esbuild/javascript-transformer-worker.js.map +1 -0
  234. package/src/tools/esbuild/javascript-transformer.js +1 -0
  235. package/src/tools/esbuild/javascript-transformer.js.map +1 -0
  236. package/src/tools/esbuild/license-extractor.js +1 -0
  237. package/src/tools/esbuild/license-extractor.js.map +1 -0
  238. package/src/tools/esbuild/lmdb-cache-store.js +1 -0
  239. package/src/tools/esbuild/lmdb-cache-store.js.map +1 -0
  240. package/src/tools/esbuild/load-result-cache.js +1 -0
  241. package/src/tools/esbuild/load-result-cache.js.map +1 -0
  242. package/src/tools/esbuild/loader-import-attribute-plugin.js +1 -0
  243. package/src/tools/esbuild/loader-import-attribute-plugin.js.map +1 -0
  244. package/src/tools/esbuild/profiling.js +1 -0
  245. package/src/tools/esbuild/profiling.js.map +1 -0
  246. package/src/tools/esbuild/rxjs-esm-resolution-plugin.js +1 -0
  247. package/src/tools/esbuild/rxjs-esm-resolution-plugin.js.map +1 -0
  248. package/src/tools/esbuild/server-bundle-metadata-plugin.js +1 -0
  249. package/src/tools/esbuild/server-bundle-metadata-plugin.js.map +1 -0
  250. package/src/tools/esbuild/sourcemap-ignorelist-plugin.js +1 -0
  251. package/src/tools/esbuild/sourcemap-ignorelist-plugin.js.map +1 -0
  252. package/src/tools/esbuild/stylesheets/bundle-options.d.ts +4 -1
  253. package/src/tools/esbuild/stylesheets/bundle-options.js +1 -0
  254. package/src/tools/esbuild/stylesheets/bundle-options.js.map +1 -0
  255. package/src/tools/esbuild/stylesheets/css-inline-fonts-plugin.js +1 -0
  256. package/src/tools/esbuild/stylesheets/css-inline-fonts-plugin.js.map +1 -0
  257. package/src/tools/esbuild/stylesheets/css-language.js +1 -0
  258. package/src/tools/esbuild/stylesheets/css-language.js.map +1 -0
  259. package/src/tools/esbuild/stylesheets/css-resource-plugin.js +1 -0
  260. package/src/tools/esbuild/stylesheets/css-resource-plugin.js.map +1 -0
  261. package/src/tools/esbuild/stylesheets/less-language.js +3 -26
  262. package/src/tools/esbuild/stylesheets/less-language.js.map +1 -0
  263. package/src/tools/esbuild/stylesheets/sass-language.js +1 -0
  264. package/src/tools/esbuild/stylesheets/sass-language.js.map +1 -0
  265. package/src/tools/esbuild/stylesheets/stylesheet-plugin-factory.d.ts +4 -1
  266. package/src/tools/esbuild/stylesheets/stylesheet-plugin-factory.js +8 -3
  267. package/src/tools/esbuild/stylesheets/stylesheet-plugin-factory.js.map +1 -0
  268. package/src/tools/esbuild/utils.js +1 -0
  269. package/src/tools/esbuild/utils.js.map +1 -0
  270. package/src/tools/esbuild/virtual-module-plugin.js +1 -0
  271. package/src/tools/esbuild/virtual-module-plugin.js.map +1 -0
  272. package/src/tools/esbuild/wasm-plugin.js +1 -0
  273. package/src/tools/esbuild/wasm-plugin.js.map +1 -0
  274. package/src/tools/esbuild/watcher.js +1 -0
  275. package/src/tools/esbuild/watcher.js.map +1 -0
  276. package/src/tools/sass/lexer.js +1 -0
  277. package/src/tools/sass/lexer.js.map +1 -0
  278. package/src/tools/sass/rebasing-importer.js +1 -0
  279. package/src/tools/sass/rebasing-importer.js.map +1 -0
  280. package/src/tools/sass/sass-service.js +1 -0
  281. package/src/tools/sass/sass-service.js.map +1 -0
  282. package/src/tools/sass/worker.js +1 -0
  283. package/src/tools/sass/worker.js.map +1 -0
  284. package/src/tools/vite/middlewares/assets-middleware.d.ts +2 -0
  285. package/src/tools/vite/middlewares/assets-middleware.js +32 -0
  286. package/src/tools/vite/middlewares/assets-middleware.js.map +1 -0
  287. package/src/tools/vite/middlewares/chrome-devtools-middleware.js +1 -0
  288. package/src/tools/vite/middlewares/chrome-devtools-middleware.js.map +1 -0
  289. package/src/tools/vite/middlewares/component-middleware.js +1 -0
  290. package/src/tools/vite/middlewares/component-middleware.js.map +1 -0
  291. package/src/tools/vite/middlewares/headers-middleware.js +1 -0
  292. package/src/tools/vite/middlewares/headers-middleware.js.map +1 -0
  293. package/src/tools/vite/middlewares/html-fallback-middleware.js +1 -0
  294. package/src/tools/vite/middlewares/html-fallback-middleware.js.map +1 -0
  295. package/src/tools/vite/middlewares/index-html-middleware.js +1 -0
  296. package/src/tools/vite/middlewares/index-html-middleware.js.map +1 -0
  297. package/src/tools/vite/middlewares/index.js +1 -0
  298. package/src/tools/vite/middlewares/index.js.map +1 -0
  299. package/src/tools/vite/middlewares/ssr-middleware.js +42 -5
  300. package/src/tools/vite/middlewares/ssr-middleware.js.map +1 -0
  301. package/src/tools/vite/plugins/angular-memory-plugin.js +35 -2
  302. package/src/tools/vite/plugins/angular-memory-plugin.js.map +1 -0
  303. package/src/tools/vite/plugins/id-prefix-plugin.js +1 -0
  304. package/src/tools/vite/plugins/id-prefix-plugin.js.map +1 -0
  305. package/src/tools/vite/plugins/index.d.ts +0 -1
  306. package/src/tools/vite/plugins/index.js +2 -3
  307. package/src/tools/vite/plugins/index.js.map +1 -0
  308. package/src/tools/vite/plugins/setup-middlewares-plugin.js +35 -2
  309. package/src/tools/vite/plugins/setup-middlewares-plugin.js.map +1 -0
  310. package/src/tools/vite/plugins/ssr-transform-plugin.js +35 -2
  311. package/src/tools/vite/plugins/ssr-transform-plugin.js.map +1 -0
  312. package/src/tools/vite/utils.js +1 -0
  313. package/src/tools/vite/utils.js.map +1 -0
  314. package/src/utils/bundle-calculator.js +1 -0
  315. package/src/utils/bundle-calculator.js.map +1 -0
  316. package/src/utils/check-port.js +1 -0
  317. package/src/utils/check-port.js.map +1 -0
  318. package/src/utils/color.js +1 -0
  319. package/src/utils/color.js.map +1 -0
  320. package/src/utils/delete-output-dir.js +1 -0
  321. package/src/utils/delete-output-dir.js.map +1 -0
  322. package/src/utils/environment-options.d.ts +1 -0
  323. package/src/utils/environment-options.js +7 -1
  324. package/src/utils/environment-options.js.map +1 -0
  325. package/src/utils/error.js +1 -0
  326. package/src/utils/error.js.map +1 -0
  327. package/src/utils/format-bytes.js +1 -0
  328. package/src/utils/format-bytes.js.map +1 -0
  329. package/src/utils/i18n-options.js +1 -0
  330. package/src/utils/i18n-options.js.map +1 -0
  331. package/src/utils/index-file/add-event-dispatch-contract.js +1 -0
  332. package/src/utils/index-file/add-event-dispatch-contract.js.map +1 -0
  333. package/src/utils/index-file/augment-index-html.js +35 -2
  334. package/src/utils/index-file/augment-index-html.js.map +1 -0
  335. package/src/utils/index-file/auto-csp.js +1 -0
  336. package/src/utils/index-file/auto-csp.js.map +1 -0
  337. package/src/utils/index-file/html-rewriting-stream.js +35 -2
  338. package/src/utils/index-file/html-rewriting-stream.js.map +1 -0
  339. package/src/utils/index-file/index-html-generator.js +1 -0
  340. package/src/utils/index-file/index-html-generator.js.map +1 -0
  341. package/src/utils/index-file/inline-critical-css.js +1 -0
  342. package/src/utils/index-file/inline-critical-css.js.map +1 -0
  343. package/src/utils/index-file/inline-fonts.js +1 -0
  344. package/src/utils/index-file/inline-fonts.js.map +1 -0
  345. package/src/utils/index-file/ngcm-attribute.js +1 -0
  346. package/src/utils/index-file/ngcm-attribute.js.map +1 -0
  347. package/src/utils/index-file/nonce.js +1 -0
  348. package/src/utils/index-file/nonce.js.map +1 -0
  349. package/src/utils/index-file/valid-self-closing-tags.js +1 -0
  350. package/src/utils/index-file/valid-self-closing-tags.js.map +1 -0
  351. package/src/utils/index.js +1 -0
  352. package/src/utils/index.js.map +1 -0
  353. package/src/utils/load-esm.js +1 -0
  354. package/src/utils/load-esm.js.map +1 -0
  355. package/src/utils/load-proxy-config.js +8 -21
  356. package/src/utils/load-proxy-config.js.map +1 -0
  357. package/src/utils/load-translations.js +2 -2
  358. package/src/utils/load-translations.js.map +1 -0
  359. package/src/utils/normalize-asset-patterns.js +1 -0
  360. package/src/utils/normalize-asset-patterns.js.map +1 -0
  361. package/src/utils/normalize-cache.js +2 -1
  362. package/src/utils/normalize-cache.js.map +1 -0
  363. package/src/utils/normalize-optimization.js +1 -0
  364. package/src/utils/normalize-optimization.js.map +1 -0
  365. package/src/utils/normalize-source-maps.js +1 -0
  366. package/src/utils/normalize-source-maps.js.map +1 -0
  367. package/src/utils/path.js +1 -0
  368. package/src/utils/path.js.map +1 -0
  369. package/src/utils/postcss-configuration.d.ts +4 -1
  370. package/src/utils/postcss-configuration.js +3 -2
  371. package/src/utils/postcss-configuration.js.map +1 -0
  372. package/src/utils/project-metadata.js +1 -0
  373. package/src/utils/project-metadata.js.map +1 -0
  374. package/src/utils/purge-cache.js +1 -0
  375. package/src/utils/purge-cache.js.map +1 -0
  376. package/src/utils/resolve-assets.js +1 -0
  377. package/src/utils/resolve-assets.js.map +1 -0
  378. package/src/utils/server-rendering/esm-in-memory-loader/loader-hooks.js +3 -13
  379. package/src/utils/server-rendering/esm-in-memory-loader/loader-hooks.js.map +1 -0
  380. package/src/utils/server-rendering/esm-in-memory-loader/register-hooks.js +1 -0
  381. package/src/utils/server-rendering/esm-in-memory-loader/register-hooks.js.map +1 -0
  382. package/src/utils/server-rendering/esm-in-memory-loader/utils.js +1 -0
  383. package/src/utils/server-rendering/esm-in-memory-loader/utils.js.map +1 -0
  384. package/src/utils/server-rendering/fetch-patch.js +1 -0
  385. package/src/utils/server-rendering/fetch-patch.js.map +1 -0
  386. package/src/utils/server-rendering/launch-server.js +37 -2
  387. package/src/utils/server-rendering/launch-server.js.map +1 -0
  388. package/src/utils/server-rendering/load-esm-from-memory.d.ts +2 -1
  389. package/src/utils/server-rendering/load-esm-from-memory.js +1 -0
  390. package/src/utils/server-rendering/load-esm-from-memory.js.map +1 -0
  391. package/src/utils/server-rendering/manifest.js +1 -0
  392. package/src/utils/server-rendering/manifest.js.map +1 -0
  393. package/src/utils/server-rendering/models.js +1 -0
  394. package/src/utils/server-rendering/models.js.map +1 -0
  395. package/src/utils/server-rendering/prerender.js +3 -25
  396. package/src/utils/server-rendering/prerender.js.map +1 -0
  397. package/src/utils/server-rendering/render-worker.js +43 -1
  398. package/src/utils/server-rendering/render-worker.js.map +1 -0
  399. package/src/utils/server-rendering/routes-extractor-worker.js +37 -0
  400. package/src/utils/server-rendering/routes-extractor-worker.js.map +1 -0
  401. package/src/utils/server-rendering/utils.d.ts +11 -1
  402. package/src/utils/server-rendering/utils.js +26 -0
  403. package/src/utils/server-rendering/utils.js.map +1 -0
  404. package/src/utils/service-worker.d.ts +1 -1
  405. package/src/utils/service-worker.js +4 -6
  406. package/src/utils/service-worker.js.map +1 -0
  407. package/src/utils/stats-table.js +1 -0
  408. package/src/utils/stats-table.js.map +1 -0
  409. package/src/utils/supported-browsers.js +8 -3
  410. package/src/utils/supported-browsers.js.map +1 -0
  411. package/src/utils/test-files.d.ts +17 -0
  412. package/src/utils/test-files.js +83 -0
  413. package/src/utils/test-files.js.map +1 -0
  414. package/src/utils/tty.js +1 -0
  415. package/src/utils/tty.js.map +1 -0
  416. package/src/utils/url.js +1 -0
  417. package/src/utils/url.js.map +1 -0
  418. package/src/utils/version.js +1 -0
  419. package/src/utils/version.js.map +1 -0
  420. package/src/utils/worker-pool.js +1 -0
  421. package/src/utils/worker-pool.js.map +1 -0
  422. package/.browserslistrc +0 -7
  423. package/src/tools/vite/plugins/i18n-locale-plugin.d.ts +0 -14
  424. package/src/tools/vite/plugins/i18n-locale-plugin.js +0 -54
  425. package/src/typings.d.ts +0 -19
@@ -6,47 +6,143 @@
6
6
  * Use of this source code is governed by an MIT-style license that can be
7
7
  * found in the LICENSE file at https://angular.dev/license
8
8
  */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
9
42
  var __importDefault = (this && this.__importDefault) || function (mod) {
10
43
  return (mod && mod.__esModule) ? mod : { "default": mod };
11
44
  };
12
45
  Object.defineProperty(exports, "__esModule", { value: true });
13
46
  exports.VitestExecutor = void 0;
14
47
  const node_assert_1 = __importDefault(require("node:assert"));
15
- const node_crypto_1 = require("node:crypto");
16
48
  const node_path_1 = __importDefault(require("node:path"));
49
+ const picomatch_1 = require("picomatch");
17
50
  const error_1 = require("../../../../utils/error");
18
- const load_esm_1 = require("../../../../utils/load-esm");
19
51
  const path_1 = require("../../../../utils/path");
20
- const application_builder_1 = require("../../../karma/application_builder");
52
+ const results_1 = require("../../../application/results");
21
53
  const browser_provider_1 = require("./browser-provider");
54
+ const configuration_1 = require("./configuration");
55
+ const plugins_1 = require("./plugins");
22
56
  class VitestExecutor {
23
57
  vitest;
58
+ normalizePath;
24
59
  projectName;
25
60
  options;
26
- outputPath;
27
- latestBuildResult;
28
- constructor(projectName, options) {
61
+ buildResultFiles = new Map();
62
+ // This is a reverse map of the entry points created in `build-options.ts`.
63
+ // It is used by the in-memory provider plugin to map the requested test file
64
+ // path back to its bundled output path.
65
+ // Example: `Map<'/path/to/src/app.spec.ts', 'spec-src-app-spec'>`
66
+ testFileToEntryPoint = new Map();
67
+ entryPointToTestFile = new Map();
68
+ constructor(projectName, options, testEntryPointMappings) {
29
69
  this.projectName = projectName;
30
70
  this.options = options;
31
- this.outputPath = (0, path_1.toPosixPath)(node_path_1.default.join(options.workspaceRoot, generateOutputPath()));
71
+ if (testEntryPointMappings) {
72
+ for (const [entryPoint, testFile] of testEntryPointMappings) {
73
+ this.testFileToEntryPoint.set(testFile, entryPoint);
74
+ this.entryPointToTestFile.set(entryPoint + '.js', testFile);
75
+ }
76
+ }
32
77
  }
33
78
  async *execute(buildResult) {
34
- await (0, application_builder_1.writeTestFiles)(buildResult.files, this.outputPath);
35
- this.latestBuildResult = buildResult;
79
+ this.normalizePath ??= (await Promise.resolve().then(() => __importStar(require('vite')))).normalizePath;
80
+ if (buildResult.kind === results_1.ResultKind.Full) {
81
+ this.buildResultFiles.clear();
82
+ for (const [path, file] of Object.entries(buildResult.files)) {
83
+ this.buildResultFiles.set(this.normalizePath(path), file);
84
+ }
85
+ }
86
+ else {
87
+ for (const file of buildResult.removed) {
88
+ this.buildResultFiles.delete(this.normalizePath(file.path));
89
+ }
90
+ for (const [path, file] of Object.entries(buildResult.files)) {
91
+ this.buildResultFiles.set(this.normalizePath(path), file);
92
+ }
93
+ }
94
+ // Initialize Vitest if not already present.
36
95
  this.vitest ??= await this.initializeVitest();
96
+ const vitest = this.vitest;
97
+ let testResults;
98
+ if (buildResult.kind === results_1.ResultKind.Incremental) {
99
+ // To rerun tests, Vitest needs the original test file paths, not the output paths.
100
+ const modifiedSourceFiles = new Set();
101
+ for (const modifiedFile of buildResult.modified) {
102
+ // The `modified` files in the build result are the output paths.
103
+ // We need to find the original source file path to pass to Vitest.
104
+ const source = this.entryPointToTestFile.get(modifiedFile);
105
+ if (source) {
106
+ modifiedSourceFiles.add(source);
107
+ }
108
+ vitest.invalidateFile((0, path_1.toPosixPath)(node_path_1.default.join(this.options.workspaceRoot, modifiedFile)));
109
+ }
110
+ const specsToRerun = [];
111
+ for (const file of modifiedSourceFiles) {
112
+ vitest.invalidateFile(file);
113
+ const specs = vitest.getModuleSpecifications(file);
114
+ if (specs) {
115
+ specsToRerun.push(...specs);
116
+ }
117
+ }
118
+ if (specsToRerun.length > 0) {
119
+ testResults = await vitest.rerunTestSpecifications(specsToRerun);
120
+ }
121
+ }
37
122
  // Check if all the tests pass to calculate the result
38
- const testModules = this.vitest.state.getTestModules();
123
+ const testModules = testResults?.testModules ?? this.vitest.state.getTestModules();
39
124
  yield { success: testModules.every((testModule) => testModule.ok()) };
40
125
  }
41
126
  async [Symbol.asyncDispose]() {
42
127
  await this.vitest?.close();
43
128
  }
129
+ prepareSetupFiles() {
130
+ const { setupFiles } = this.options;
131
+ // Add setup file entries for TestBed initialization and project polyfills
132
+ const testSetupFiles = ['init-testbed.js', ...setupFiles];
133
+ // TODO: Provide additional result metadata to avoid needing to extract based on filename
134
+ if (this.buildResultFiles.has('polyfills.js')) {
135
+ testSetupFiles.unshift('polyfills.js');
136
+ }
137
+ return testSetupFiles;
138
+ }
44
139
  async initializeVitest() {
45
- const { codeCoverage, reporters, watch, workspaceRoot, setupFiles, browsers, debug } = this.options;
46
- const { outputPath, projectName, latestBuildResult } = this;
140
+ const { coverage, reporters, outputFile, workspaceRoot, browsers, debug, watch, browserViewport, ui, } = this.options;
47
141
  let vitestNodeModule;
142
+ let vitestCoverageModule;
48
143
  try {
49
- vitestNodeModule = await (0, load_esm_1.loadEsmModule)('vitest/node');
144
+ vitestCoverageModule = await Promise.resolve().then(() => __importStar(require('vitest/coverage')));
145
+ vitestNodeModule = await Promise.resolve().then(() => __importStar(require('vitest/node')));
50
146
  }
51
147
  catch (error) {
52
148
  (0, error_1.assertIsError)(error);
@@ -56,19 +152,37 @@ class VitestExecutor {
56
152
  throw new Error('The `vitest` package was not found. Please install the package and rerun the test command.');
57
153
  }
58
154
  const { startVitest } = vitestNodeModule;
155
+ // Augment BaseCoverageProvider to include logic to support the built virtual files.
156
+ // Temporary workaround to avoid the direct filesystem checks in the base provider that
157
+ // were introduced in v4. Also ensures that all built virtual files are available.
158
+ const builtVirtualFiles = this.buildResultFiles;
159
+ vitestCoverageModule.BaseCoverageProvider.prototype.isIncluded = function (filename) {
160
+ const relativeFilename = node_path_1.default.relative(workspaceRoot, filename);
161
+ if (!this.options.include || builtVirtualFiles.has(relativeFilename)) {
162
+ return !(0, picomatch_1.isMatch)(relativeFilename, this.options.exclude);
163
+ }
164
+ else {
165
+ return (0, picomatch_1.isMatch)(relativeFilename, this.options.include, {
166
+ ignore: this.options.exclude,
167
+ });
168
+ }
169
+ };
59
170
  // Setup vitest browser options if configured
60
- const browserOptions = (0, browser_provider_1.setupBrowserConfiguration)(browsers, debug, this.options.projectSourceRoot);
171
+ const browserOptions = await (0, browser_provider_1.setupBrowserConfiguration)(browsers, debug, this.options.projectSourceRoot, browserViewport);
61
172
  if (browserOptions.errors?.length) {
62
173
  throw new Error(browserOptions.errors.join('\n'));
63
174
  }
64
- (0, node_assert_1.default)(latestBuildResult, 'buildResult must be available before initializing vitest');
65
- // Add setup file entries for TestBed initialization and project polyfills
66
- const testSetupFiles = ['init-testbed.js', ...setupFiles];
67
- // TODO: Provide additional result metadata to avoid needing to extract based on filename
68
- const polyfillsFile = Object.keys(latestBuildResult.files).find((f) => f === 'polyfills.js');
69
- if (polyfillsFile) {
70
- testSetupFiles.unshift(polyfillsFile);
71
- }
175
+ (0, node_assert_1.default)(this.buildResultFiles.size > 0, 'buildResult must be available before initializing vitest');
176
+ const testSetupFiles = this.prepareSetupFiles();
177
+ const plugins = (0, plugins_1.createVitestPlugins)(this.options, testSetupFiles, browserOptions, {
178
+ workspaceRoot,
179
+ projectSourceRoot: this.options.projectSourceRoot,
180
+ projectName: this.projectName,
181
+ include: this.options.include,
182
+ exclude: this.options.exclude,
183
+ buildResultFiles: this.buildResultFiles,
184
+ testFileToEntryPoint: this.testFileToEntryPoint,
185
+ });
72
186
  const debugOptions = debug
73
187
  ? {
74
188
  inspectBrk: true,
@@ -76,85 +190,65 @@ class VitestExecutor {
76
190
  fileParallelism: false,
77
191
  }
78
192
  : {};
79
- return startVitest('test', undefined /* cliFilters */, {
80
- // Disable configuration file resolution/loading
81
- config: false,
193
+ const runnerConfig = this.options.runnerConfig;
194
+ return startVitest('test', undefined, {
195
+ config: runnerConfig === true
196
+ ? await (0, configuration_1.findVitestBaseConfig)([this.options.projectRoot, this.options.workspaceRoot])
197
+ : runnerConfig,
82
198
  root: workspaceRoot,
83
- project: ['base', projectName],
199
+ project: ['base', this.projectName],
84
200
  name: 'base',
85
201
  include: [],
86
- reporters: reporters ?? ['default'],
202
+ testNamePattern: this.options.filter,
87
203
  watch,
88
- coverage: generateCoverageOption(codeCoverage, workspaceRoot, this.outputPath),
89
- ...debugOptions,
204
+ ui,
90
205
  }, {
91
- plugins: [
92
- {
93
- name: 'angular:project-init',
94
- async configureVitest(context) {
95
- // Create a subproject that can be configured with plugins for browser mode.
96
- // Plugins defined directly in the vite overrides will not be present in the
97
- // browser specific Vite instance.
98
- const [project] = await context.injectTestProjects({
99
- test: {
100
- name: projectName,
101
- root: outputPath,
102
- globals: true,
103
- setupFiles: testSetupFiles,
104
- // Use `jsdom` if no browsers are explicitly configured.
105
- // `node` is effectively no "environment" and the default.
106
- environment: browserOptions.browser ? 'node' : 'jsdom',
107
- browser: browserOptions.browser,
108
- },
109
- plugins: [
110
- {
111
- name: 'angular:html-index',
112
- transformIndexHtml: () => {
113
- (0, node_assert_1.default)(latestBuildResult, 'buildResult must be available for HTML index transformation.');
114
- // Add all global stylesheets
115
- const styleFiles = Object.entries(latestBuildResult.files).filter(([file]) => file === 'styles.css');
116
- return styleFiles.map(([href]) => ({
117
- tag: 'link',
118
- attrs: { href, rel: 'stylesheet' },
119
- injectTo: 'head',
120
- }));
121
- },
122
- },
123
- ],
124
- });
125
- // Adjust coverage excludes to not include the otherwise automatically inserted included unit tests.
126
- // Vite does this as a convenience but is problematic for the bundling strategy employed by the
127
- // builder's test setup. To workaround this, the excludes are adjusted here to only automatically
128
- // exclude the TypeScript source test files.
129
- project.config.coverage.exclude = [
130
- ...(codeCoverage?.exclude ?? []),
131
- '**/*.{test,spec}.?(c|m)ts',
132
- ];
133
- },
134
- },
135
- ],
206
+ test: {
207
+ coverage: await generateCoverageOption(coverage, this.projectName),
208
+ outputFile,
209
+ ...debugOptions,
210
+ ...(reporters ? { reporters } : {}),
211
+ },
212
+ server: {
213
+ // Disable the actual file watcher. The boolean watch option above should still
214
+ // be enabled as it controls other internal behavior related to rerunning tests.
215
+ watch: null,
216
+ },
217
+ plugins,
136
218
  });
137
219
  }
138
220
  }
139
221
  exports.VitestExecutor = VitestExecutor;
140
- function generateOutputPath() {
141
- const datePrefix = new Date().toISOString().replaceAll(/[-:.]/g, '');
142
- const uuidSuffix = (0, node_crypto_1.randomUUID)().slice(0, 8);
143
- return node_path_1.default.join('dist', 'test-out', `${datePrefix}-${uuidSuffix}`);
144
- }
145
- function generateCoverageOption(codeCoverage, workspaceRoot, outputPath) {
146
- if (!codeCoverage) {
147
- return {
148
- enabled: false,
149
- };
222
+ async function generateCoverageOption(coverage, projectName) {
223
+ let defaultExcludes = [];
224
+ if (coverage.exclude) {
225
+ try {
226
+ const vitestConfig = await Promise.resolve().then(() => __importStar(require('vitest/config')));
227
+ defaultExcludes = vitestConfig.coverageConfigDefaults.exclude;
228
+ }
229
+ catch { }
150
230
  }
151
231
  return {
152
- enabled: true,
232
+ enabled: coverage.enabled,
153
233
  excludeAfterRemap: true,
154
- include: [`${(0, path_1.toPosixPath)(node_path_1.default.relative(workspaceRoot, outputPath))}/**`],
155
- // Special handling for `reporter` due to an undefined value causing upstream failures
156
- ...(codeCoverage.reporters
157
- ? { reporter: codeCoverage.reporters }
234
+ include: coverage.include,
235
+ reportsDirectory: (0, path_1.toPosixPath)(node_path_1.default.join('coverage', projectName)),
236
+ thresholds: coverage.thresholds,
237
+ watermarks: coverage.watermarks,
238
+ // Special handling for `exclude`/`reporters` due to an undefined value causing upstream failures
239
+ ...(coverage.exclude
240
+ ? {
241
+ exclude: [
242
+ // Augment the default exclude https://vitest.dev/config/#coverage-exclude
243
+ // with the user defined exclusions
244
+ ...coverage.exclude,
245
+ ...defaultExcludes,
246
+ ],
247
+ }
248
+ : {}),
249
+ ...(coverage.reporters
250
+ ? { reporter: coverage.reporters }
158
251
  : {}),
159
252
  };
160
253
  }
254
+ //# sourceMappingURL=executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["executor.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGH,8DAAiC;AACjC,0DAA6B;AAC7B,yCAAoC;AAEpC,mDAAwD;AACxD,iDAAqD;AACrD,0DAKsC;AAGtC,yDAA+D;AAC/D,mDAAuD;AACvD,uCAAgD;AAIhD,MAAa,cAAc;IACjB,MAAM,CAAqB;IAC3B,aAAa,CAAuC;IAC3C,WAAW,CAAS;IACpB,OAAO,CAAmC;IAC1C,gBAAgB,GAAG,IAAI,GAAG,EAAsB,CAAC;IAElE,2EAA2E;IAC3E,6EAA6E;IAC7E,wCAAwC;IACxC,kEAAkE;IACjD,oBAAoB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACjD,oBAAoB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAElE,YACE,WAAmB,EACnB,OAAyC,EACzC,sBAAuD;QAEvD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,IAAI,sBAAsB,EAAE,CAAC;YAC3B,KAAK,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,sBAAsB,EAAE,CAAC;gBAC5D,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;gBACpD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAU,GAAG,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,CAAC,OAAO,CAAC,WAA2C;QACxD,IAAI,CAAC,aAAa,KAAK,CAAC,wDAAa,MAAM,GAAC,CAAC,CAAC,aAAa,CAAC;QAE5D,IAAI,WAAW,CAAC,IAAI,KAAK,oBAAU,CAAC,IAAI,EAAE,CAAC;YACzC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC9B,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7D,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;gBACvC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9D,CAAC;YACD,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7D,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAED,4CAA4C;QAC5C,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAE3B,IAAI,WAAW,CAAC;QAChB,IAAI,WAAW,CAAC,IAAI,KAAK,oBAAU,CAAC,WAAW,EAAE,CAAC;YAChD,mFAAmF;YACnF,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;YAC9C,KAAK,MAAM,YAAY,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;gBAChD,iEAAiE;gBACjE,mEAAmE;gBACnE,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBAC3D,IAAI,MAAM,EAAE,CAAC;oBACX,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAClC,CAAC;gBACD,MAAM,CAAC,cAAc,CAAC,IAAA,kBAAW,EAAC,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;YAC1F,CAAC;YAED,MAAM,YAAY,GAAG,EAAE,CAAC;YACxB,KAAK,MAAM,IAAI,IAAI,mBAAmB,EAAE,CAAC;gBACvC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;gBACnD,IAAI,KAAK,EAAE,CAAC;oBACV,YAAY,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;YAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,WAAW,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QAED,sDAAsD;QACtD,MAAM,WAAW,GAAG,WAAW,EAAE,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAEnF,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;QACzB,MAAM,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;IAEO,iBAAiB;QACvB,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QACpC,0EAA0E;QAC1E,MAAM,cAAc,GAAG,CAAC,iBAAiB,EAAE,GAAG,UAAU,CAAC,CAAC;QAE1D,yFAAyF;QACzF,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;YAC9C,cAAc,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,MAAM,EACJ,QAAQ,EACR,SAAS,EACT,UAAU,EACV,aAAa,EACb,QAAQ,EACR,KAAK,EACL,KAAK,EACL,eAAe,EACf,EAAE,GACH,GAAG,IAAI,CAAC,OAAO,CAAC;QAEjB,IAAI,gBAAgB,CAAC;QACrB,IAAI,oBAAoB,CAAC;QACzB,IAAI,CAAC;YACH,oBAAoB,GAAG,wDAAa,iBAAiB,GAAC,CAAC;YACvD,gBAAgB,GAAG,wDAAa,aAAa,GAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAA,qBAAa,EAAC,KAAK,CAAC,CAAC;YACrB,IAAI,KAAK,CAAC,IAAI,KAAK,sBAAsB,EAAE,CAAC;gBAC1C,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,IAAI,KAAK,CACb,4FAA4F,CAC7F,CAAC;QACJ,CAAC;QACD,MAAM,EAAE,WAAW,EAAE,GAAG,gBAAgB,CAAC;QAEzC,oFAAoF;QACpF,uFAAuF;QACvF,kFAAkF;QAClF,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAChD,oBAAoB,CAAC,oBAAoB,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,QAAQ;YACjF,MAAM,gBAAgB,GAAG,mBAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;YAChE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,iBAAiB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACrE,OAAO,CAAC,IAAA,mBAAO,EAAC,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC1D,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAA,mBAAO,EAAC,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;oBACrD,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;iBAC7B,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;QAEF,6CAA6C;QAC7C,MAAM,cAAc,GAAG,MAAM,IAAA,4CAAyB,EACpD,QAAQ,EACR,KAAK,EACL,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAC9B,eAAe,CAChB,CAAC;QACF,IAAI,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,CAAC;QAED,IAAA,qBAAM,EACJ,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,EAC9B,0DAA0D,CAC3D,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,IAAA,6BAAmB,EAAC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE;YAChF,aAAa;YACb,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB;YACjD,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;YAC7B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;SAChD,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,KAAK;YACxB,CAAC,CAAC;gBACE,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,KAAK;gBACd,eAAe,EAAE,KAAK;aACvB;YACH,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;QAE/C,OAAO,WAAW,CAChB,MAAM,EACN,SAAS,EACT;YACE,MAAM,EACJ,YAAY,KAAK,IAAI;gBACnB,CAAC,CAAC,MAAM,IAAA,oCAAoB,EAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBACpF,CAAC,CAAC,YAAY;YAClB,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC;YACnC,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,EAAE;YACX,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;YACpC,KAAK;YACL,EAAE;SACH,EACD;YACE,IAAI,EAAE;gBACJ,QAAQ,EAAE,MAAM,sBAAsB,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC;gBAClE,UAAU;gBACV,GAAG,YAAY;gBACf,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACpC;YACD,MAAM,EAAE;gBACN,+EAA+E;gBAC/E,gFAAgF;gBAChF,KAAK,EAAE,IAAI;aACZ;YACD,OAAO;SACR,CACF,CAAC;IACJ,CAAC;CACF;AAvND,wCAuNC;AAED,KAAK,UAAU,sBAAsB,CACnC,QAAsD,EACtD,WAAmB;IAEnB,IAAI,eAAe,GAAa,EAAE,CAAC;IACnC,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,wDAAa,eAAe,GAAC,CAAC;YACnD,eAAe,GAAG,YAAY,CAAC,sBAAsB,CAAC,OAAO,CAAC;QAChE,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,iBAAiB,EAAE,IAAI;QACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,gBAAgB,EAAE,IAAA,kBAAW,EAAC,mBAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QACjE,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,iGAAiG;QACjG,GAAG,CAAC,QAAQ,CAAC,OAAO;YAClB,CAAC,CAAC;gBACE,OAAO,EAAE;oBACP,0EAA0E;oBAC1E,mCAAmC;oBACnC,GAAG,QAAQ,CAAC,OAAO;oBACnB,GAAG,eAAe;iBACnB;aACF;YACH,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,QAAQ,CAAC,SAAS;YACpB,CAAC,CAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,SAAS,EAAkC;YACnE,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC"}
@@ -11,6 +11,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  const node_assert_1 = __importDefault(require("node:assert"));
14
+ const dependency_checker_1 = require("../dependency-checker");
14
15
  const build_options_1 = require("./build-options");
15
16
  const executor_1 = require("./executor");
16
17
  /**
@@ -18,13 +19,35 @@ const executor_1 = require("./executor");
18
19
  */
19
20
  const VitestTestRunner = {
20
21
  name: 'vitest',
22
+ validateDependencies(options) {
23
+ const checker = new dependency_checker_1.DependencyChecker(options.projectSourceRoot);
24
+ checker.check('vitest');
25
+ if (options.browsers?.length) {
26
+ checker.checkAny(['playwright', 'webdriverio'], 'The "browsers" option requires either "playwright" or "webdriverio" to be installed.');
27
+ }
28
+ else {
29
+ // JSDOM is used when no browsers are specified
30
+ checker.check('jsdom');
31
+ }
32
+ if (options.coverage.enabled) {
33
+ checker.check('@vitest/coverage-v8');
34
+ }
35
+ checker.report();
36
+ },
21
37
  getBuildOptions(options, baseBuildOptions) {
22
38
  return (0, build_options_1.getVitestBuildOptions)(options, baseBuildOptions);
23
39
  },
24
- async createExecutor(context, options) {
40
+ async createExecutor(context, options, testEntryPointMappings) {
25
41
  const projectName = context.target?.project;
26
42
  (0, node_assert_1.default)(projectName, 'The builder requires a target.');
27
- return new executor_1.VitestExecutor(projectName, options);
43
+ if (typeof options.runnerConfig === 'string') {
44
+ context.logger.info(`Using Vitest configuration file: ${options.runnerConfig}`);
45
+ }
46
+ else if (options.runnerConfig) {
47
+ context.logger.info('Automatically searching for and using Vitest configuration file.');
48
+ }
49
+ return new executor_1.VitestExecutor(projectName, options, testEntryPointMappings);
28
50
  },
29
51
  };
30
52
  exports.default = VitestTestRunner;
53
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;AAEH,8DAAiC;AAEjC,8DAA0D;AAC1D,mDAAwD;AACxD,yCAA4C;AAE5C;;GAEG;AACH,MAAM,gBAAgB,GAAe;IACnC,IAAI,EAAE,QAAQ;IAEd,oBAAoB,CAAC,OAAO;QAC1B,MAAM,OAAO,GAAG,IAAI,sCAAiB,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACjE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAExB,IAAI,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;YAC7B,OAAO,CAAC,QAAQ,CACd,CAAC,YAAY,EAAE,aAAa,CAAC,EAC7B,sFAAsF,CACvF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,+CAA+C;YAC/C,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC7B,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,CAAC,MAAM,EAAE,CAAC;IACnB,CAAC;IAED,eAAe,CAAC,OAAO,EAAE,gBAAgB;QACvC,OAAO,IAAA,qCAAqB,EAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,sBAAsB;QAC3D,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;QAC5C,IAAA,qBAAM,EAAC,WAAW,EAAE,gCAAgC,CAAC,CAAC;QAEtD,IAAI,OAAO,OAAO,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YAC7C,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAoC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QAClF,CAAC;aAAM,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YAChC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QAC1F,CAAC;QAED,OAAO,IAAI,yBAAc,CAAC,WAAW,EAAE,OAAO,EAAE,sBAAsB,CAAC,CAAC;IAC1E,CAAC;CACF,CAAC;AAEF,kBAAe,gBAAgB,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.dev/license
7
+ */
8
+ import type { VitestPlugin } from 'vitest/node';
9
+ import type { ResultFile } from '../../../application/results';
10
+ import type { NormalizedUnitTestBuilderOptions } from '../../options';
11
+ import type { BrowserConfiguration } from './browser-provider';
12
+ type VitestPlugins = Awaited<ReturnType<typeof VitestPlugin>>;
13
+ interface PluginOptions {
14
+ workspaceRoot: string;
15
+ projectSourceRoot: string;
16
+ projectName: string;
17
+ include?: string[];
18
+ exclude?: string[];
19
+ buildResultFiles: ReadonlyMap<string, ResultFile>;
20
+ testFileToEntryPoint: ReadonlyMap<string, string>;
21
+ }
22
+ export declare function createVitestPlugins(options: NormalizedUnitTestBuilderOptions, testSetupFiles: string[], browserOptions: BrowserConfiguration, pluginOptions: PluginOptions): VitestPlugins;
23
+ export {};
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright Google LLC All Rights Reserved.
5
+ *
6
+ * Use of this source code is governed by an MIT-style license that can be
7
+ * found in the LICENSE file at https://angular.dev/license
8
+ */
9
+ var __importDefault = (this && this.__importDefault) || function (mod) {
10
+ return (mod && mod.__esModule) ? mod : { "default": mod };
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.createVitestPlugins = createVitestPlugins;
14
+ const node_assert_1 = __importDefault(require("node:assert"));
15
+ const promises_1 = require("node:fs/promises");
16
+ const node_path_1 = __importDefault(require("node:path"));
17
+ const assets_middleware_1 = require("../../../../tools/vite/middlewares/assets-middleware");
18
+ const path_1 = require("../../../../utils/path");
19
+ function createVitestPlugins(options, testSetupFiles, browserOptions, pluginOptions) {
20
+ const { workspaceRoot, projectName, buildResultFiles, testFileToEntryPoint } = pluginOptions;
21
+ return [
22
+ {
23
+ name: 'angular:project-init',
24
+ // Type is incorrect. This allows a Promise<void>.
25
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
26
+ configureVitest: async (context) => {
27
+ // Create a subproject that can be configured with plugins for browser mode.
28
+ // Plugins defined directly in the vite overrides will not be present in the
29
+ // browser specific Vite instance.
30
+ await context.injectTestProjects({
31
+ test: {
32
+ name: projectName,
33
+ root: workspaceRoot,
34
+ globals: true,
35
+ setupFiles: testSetupFiles,
36
+ include: options.include,
37
+ ...(options.exclude ? { exclude: options.exclude } : {}),
38
+ browser: browserOptions.browser,
39
+ // Use `jsdom` if no browsers are explicitly configured.
40
+ ...(browserOptions.browser ? {} : { environment: 'jsdom' }),
41
+ },
42
+ plugins: [
43
+ {
44
+ name: 'angular:test-in-memory-provider',
45
+ enforce: 'pre',
46
+ resolveId: (id, importer) => {
47
+ if (importer && (id[0] === '.' || id[0] === '/')) {
48
+ let fullPath;
49
+ if (testFileToEntryPoint.has(importer)) {
50
+ fullPath = (0, path_1.toPosixPath)(node_path_1.default.join(workspaceRoot, id));
51
+ }
52
+ else {
53
+ fullPath = (0, path_1.toPosixPath)(node_path_1.default.join(node_path_1.default.dirname(importer), id));
54
+ }
55
+ const relativePath = node_path_1.default.relative(workspaceRoot, fullPath);
56
+ if (buildResultFiles.has((0, path_1.toPosixPath)(relativePath))) {
57
+ return fullPath;
58
+ }
59
+ }
60
+ if (testFileToEntryPoint.has(id)) {
61
+ return id;
62
+ }
63
+ (0, node_assert_1.default)(buildResultFiles.size > 0, 'buildResult must be available for resolving.');
64
+ const relativePath = node_path_1.default.relative(workspaceRoot, id);
65
+ if (buildResultFiles.has((0, path_1.toPosixPath)(relativePath))) {
66
+ return id;
67
+ }
68
+ },
69
+ load: async (id) => {
70
+ (0, node_assert_1.default)(buildResultFiles.size > 0, 'buildResult must be available for in-memory loading.');
71
+ // Attempt to load as a source test file.
72
+ const entryPoint = testFileToEntryPoint.get(id);
73
+ let outputPath;
74
+ if (entryPoint) {
75
+ outputPath = entryPoint + '.js';
76
+ // To support coverage exclusion of the actual test file, the virtual
77
+ // test entry point only references the built and bundled intermediate file.
78
+ return {
79
+ code: `import "./${outputPath}";`,
80
+ };
81
+ }
82
+ else {
83
+ // Attempt to load as a built artifact.
84
+ const relativePath = node_path_1.default.relative(workspaceRoot, id);
85
+ outputPath = (0, path_1.toPosixPath)(relativePath);
86
+ }
87
+ const outputFile = buildResultFiles.get(outputPath);
88
+ if (outputFile) {
89
+ const sourceMapPath = outputPath + '.map';
90
+ const sourceMapFile = buildResultFiles.get(sourceMapPath);
91
+ const code = outputFile.origin === 'memory'
92
+ ? Buffer.from(outputFile.contents).toString('utf-8')
93
+ : await (0, promises_1.readFile)(outputFile.inputPath, 'utf-8');
94
+ const sourceMapText = sourceMapFile
95
+ ? sourceMapFile.origin === 'memory'
96
+ ? Buffer.from(sourceMapFile.contents).toString('utf-8')
97
+ : await (0, promises_1.readFile)(sourceMapFile.inputPath, 'utf-8')
98
+ : undefined;
99
+ // Vitest will include files in the coverage report if the sourcemap contains no sources.
100
+ // For builder-internal generated code chunks, which are typically helper functions,
101
+ // a virtual source is added to the sourcemap to prevent them from being incorrectly
102
+ // included in the final coverage report.
103
+ const map = sourceMapText ? JSON.parse(sourceMapText) : undefined;
104
+ if (map) {
105
+ if (!map.sources?.length && !map.sourcesContent?.length && !map.mappings) {
106
+ map.sources = ['virtual:builder'];
107
+ }
108
+ }
109
+ return {
110
+ code,
111
+ map,
112
+ };
113
+ }
114
+ },
115
+ configureServer: (server) => {
116
+ server.middlewares.use((0, assets_middleware_1.createBuildAssetsMiddleware)(server.config.base, buildResultFiles));
117
+ },
118
+ },
119
+ {
120
+ name: 'angular:html-index',
121
+ transformIndexHtml: () => {
122
+ // Add all global stylesheets
123
+ if (buildResultFiles.has('styles.css')) {
124
+ return [
125
+ {
126
+ tag: 'link',
127
+ attrs: { href: 'styles.css', rel: 'stylesheet' },
128
+ injectTo: 'head',
129
+ },
130
+ ];
131
+ }
132
+ return [];
133
+ },
134
+ },
135
+ ],
136
+ });
137
+ },
138
+ },
139
+ ];
140
+ }
141
+ //# sourceMappingURL=plugins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.js","sourceRoot":"","sources":["plugins.ts"],"names":[],"mappings":"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"}