@angular/build 21.0.0-next.1 → 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 (424) 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 +1 -0
  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 -352
  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 +6 -4
  124. package/src/builders/unit-test/runners/vitest/executor.js +169 -115
  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 +39 -14
  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.js +1 -0
  198. package/src/tools/esbuild/angular/rewrite-bazel-paths.js.map +1 -0
  199. package/src/tools/esbuild/angular/source-file-cache.js +1 -0
  200. package/src/tools/esbuild/angular/source-file-cache.js.map +1 -0
  201. package/src/tools/esbuild/angular-localize-init-warning-plugin.js +1 -0
  202. package/src/tools/esbuild/angular-localize-init-warning-plugin.js.map +1 -0
  203. package/src/tools/esbuild/application-code-bundle.js +2 -1
  204. package/src/tools/esbuild/application-code-bundle.js.map +1 -0
  205. package/src/tools/esbuild/budget-stats.js +1 -0
  206. package/src/tools/esbuild/budget-stats.js.map +1 -0
  207. package/src/tools/esbuild/bundler-context.js +1 -0
  208. package/src/tools/esbuild/bundler-context.js.map +1 -0
  209. package/src/tools/esbuild/bundler-execution-result.js +1 -0
  210. package/src/tools/esbuild/bundler-execution-result.js.map +1 -0
  211. package/src/tools/esbuild/cache.js +1 -0
  212. package/src/tools/esbuild/cache.js.map +1 -0
  213. package/src/tools/esbuild/commonjs-checker.js +1 -0
  214. package/src/tools/esbuild/commonjs-checker.js.map +1 -0
  215. package/src/tools/esbuild/compiler-plugin-options.js +1 -0
  216. package/src/tools/esbuild/compiler-plugin-options.js.map +1 -0
  217. package/src/tools/esbuild/external-packages-plugin.js +1 -0
  218. package/src/tools/esbuild/external-packages-plugin.js.map +1 -0
  219. package/src/tools/esbuild/global-scripts.js +1 -0
  220. package/src/tools/esbuild/global-scripts.js.map +1 -0
  221. package/src/tools/esbuild/global-styles.js +1 -0
  222. package/src/tools/esbuild/global-styles.js.map +1 -0
  223. package/src/tools/esbuild/i18n-inliner-worker.js +35 -2
  224. package/src/tools/esbuild/i18n-inliner-worker.js.map +1 -0
  225. package/src/tools/esbuild/i18n-inliner.js +1 -0
  226. package/src/tools/esbuild/i18n-inliner.js.map +1 -0
  227. package/src/tools/esbuild/i18n-locale-plugin.js +34 -15
  228. package/src/tools/esbuild/i18n-locale-plugin.js.map +1 -0
  229. package/src/tools/esbuild/index-html-generator.js +1 -0
  230. package/src/tools/esbuild/index-html-generator.js.map +1 -0
  231. package/src/tools/esbuild/javascript-transformer-worker.js +5 -10
  232. package/src/tools/esbuild/javascript-transformer-worker.js.map +1 -0
  233. package/src/tools/esbuild/javascript-transformer.js +1 -0
  234. package/src/tools/esbuild/javascript-transformer.js.map +1 -0
  235. package/src/tools/esbuild/license-extractor.js +1 -0
  236. package/src/tools/esbuild/license-extractor.js.map +1 -0
  237. package/src/tools/esbuild/lmdb-cache-store.js +1 -0
  238. package/src/tools/esbuild/lmdb-cache-store.js.map +1 -0
  239. package/src/tools/esbuild/load-result-cache.js +1 -0
  240. package/src/tools/esbuild/load-result-cache.js.map +1 -0
  241. package/src/tools/esbuild/loader-import-attribute-plugin.js +1 -0
  242. package/src/tools/esbuild/loader-import-attribute-plugin.js.map +1 -0
  243. package/src/tools/esbuild/profiling.js +1 -0
  244. package/src/tools/esbuild/profiling.js.map +1 -0
  245. package/src/tools/esbuild/rxjs-esm-resolution-plugin.js +1 -0
  246. package/src/tools/esbuild/rxjs-esm-resolution-plugin.js.map +1 -0
  247. package/src/tools/esbuild/server-bundle-metadata-plugin.js +1 -0
  248. package/src/tools/esbuild/server-bundle-metadata-plugin.js.map +1 -0
  249. package/src/tools/esbuild/sourcemap-ignorelist-plugin.js +1 -0
  250. package/src/tools/esbuild/sourcemap-ignorelist-plugin.js.map +1 -0
  251. package/src/tools/esbuild/stylesheets/bundle-options.d.ts +4 -1
  252. package/src/tools/esbuild/stylesheets/bundle-options.js +1 -0
  253. package/src/tools/esbuild/stylesheets/bundle-options.js.map +1 -0
  254. package/src/tools/esbuild/stylesheets/css-inline-fonts-plugin.js +1 -0
  255. package/src/tools/esbuild/stylesheets/css-inline-fonts-plugin.js.map +1 -0
  256. package/src/tools/esbuild/stylesheets/css-language.js +1 -0
  257. package/src/tools/esbuild/stylesheets/css-language.js.map +1 -0
  258. package/src/tools/esbuild/stylesheets/css-resource-plugin.js +1 -0
  259. package/src/tools/esbuild/stylesheets/css-resource-plugin.js.map +1 -0
  260. package/src/tools/esbuild/stylesheets/less-language.js +3 -26
  261. package/src/tools/esbuild/stylesheets/less-language.js.map +1 -0
  262. package/src/tools/esbuild/stylesheets/sass-language.js +1 -0
  263. package/src/tools/esbuild/stylesheets/sass-language.js.map +1 -0
  264. package/src/tools/esbuild/stylesheets/stylesheet-plugin-factory.d.ts +4 -1
  265. package/src/tools/esbuild/stylesheets/stylesheet-plugin-factory.js +8 -3
  266. package/src/tools/esbuild/stylesheets/stylesheet-plugin-factory.js.map +1 -0
  267. package/src/tools/esbuild/utils.js +1 -0
  268. package/src/tools/esbuild/utils.js.map +1 -0
  269. package/src/tools/esbuild/virtual-module-plugin.js +1 -0
  270. package/src/tools/esbuild/virtual-module-plugin.js.map +1 -0
  271. package/src/tools/esbuild/wasm-plugin.js +1 -0
  272. package/src/tools/esbuild/wasm-plugin.js.map +1 -0
  273. package/src/tools/esbuild/watcher.js +1 -0
  274. package/src/tools/esbuild/watcher.js.map +1 -0
  275. package/src/tools/sass/lexer.js +1 -0
  276. package/src/tools/sass/lexer.js.map +1 -0
  277. package/src/tools/sass/rebasing-importer.js +1 -0
  278. package/src/tools/sass/rebasing-importer.js.map +1 -0
  279. package/src/tools/sass/sass-service.js +1 -0
  280. package/src/tools/sass/sass-service.js.map +1 -0
  281. package/src/tools/sass/worker.js +1 -0
  282. package/src/tools/sass/worker.js.map +1 -0
  283. package/src/tools/vite/middlewares/assets-middleware.d.ts +2 -0
  284. package/src/tools/vite/middlewares/assets-middleware.js +32 -0
  285. package/src/tools/vite/middlewares/assets-middleware.js.map +1 -0
  286. package/src/tools/vite/middlewares/chrome-devtools-middleware.js +1 -0
  287. package/src/tools/vite/middlewares/chrome-devtools-middleware.js.map +1 -0
  288. package/src/tools/vite/middlewares/component-middleware.js +1 -0
  289. package/src/tools/vite/middlewares/component-middleware.js.map +1 -0
  290. package/src/tools/vite/middlewares/headers-middleware.js +1 -0
  291. package/src/tools/vite/middlewares/headers-middleware.js.map +1 -0
  292. package/src/tools/vite/middlewares/html-fallback-middleware.js +1 -0
  293. package/src/tools/vite/middlewares/html-fallback-middleware.js.map +1 -0
  294. package/src/tools/vite/middlewares/index-html-middleware.js +1 -0
  295. package/src/tools/vite/middlewares/index-html-middleware.js.map +1 -0
  296. package/src/tools/vite/middlewares/index.js +1 -0
  297. package/src/tools/vite/middlewares/index.js.map +1 -0
  298. package/src/tools/vite/middlewares/ssr-middleware.js +42 -5
  299. package/src/tools/vite/middlewares/ssr-middleware.js.map +1 -0
  300. package/src/tools/vite/plugins/angular-memory-plugin.js +35 -2
  301. package/src/tools/vite/plugins/angular-memory-plugin.js.map +1 -0
  302. package/src/tools/vite/plugins/id-prefix-plugin.js +1 -0
  303. package/src/tools/vite/plugins/id-prefix-plugin.js.map +1 -0
  304. package/src/tools/vite/plugins/index.d.ts +0 -1
  305. package/src/tools/vite/plugins/index.js +2 -3
  306. package/src/tools/vite/plugins/index.js.map +1 -0
  307. package/src/tools/vite/plugins/setup-middlewares-plugin.js +35 -2
  308. package/src/tools/vite/plugins/setup-middlewares-plugin.js.map +1 -0
  309. package/src/tools/vite/plugins/ssr-transform-plugin.js +35 -2
  310. package/src/tools/vite/plugins/ssr-transform-plugin.js.map +1 -0
  311. package/src/tools/vite/utils.js +1 -0
  312. package/src/tools/vite/utils.js.map +1 -0
  313. package/src/utils/bundle-calculator.js +1 -0
  314. package/src/utils/bundle-calculator.js.map +1 -0
  315. package/src/utils/check-port.js +1 -0
  316. package/src/utils/check-port.js.map +1 -0
  317. package/src/utils/color.js +1 -0
  318. package/src/utils/color.js.map +1 -0
  319. package/src/utils/delete-output-dir.js +1 -0
  320. package/src/utils/delete-output-dir.js.map +1 -0
  321. package/src/utils/environment-options.d.ts +1 -0
  322. package/src/utils/environment-options.js +7 -1
  323. package/src/utils/environment-options.js.map +1 -0
  324. package/src/utils/error.js +1 -0
  325. package/src/utils/error.js.map +1 -0
  326. package/src/utils/format-bytes.js +1 -0
  327. package/src/utils/format-bytes.js.map +1 -0
  328. package/src/utils/i18n-options.js +1 -0
  329. package/src/utils/i18n-options.js.map +1 -0
  330. package/src/utils/index-file/add-event-dispatch-contract.js +1 -0
  331. package/src/utils/index-file/add-event-dispatch-contract.js.map +1 -0
  332. package/src/utils/index-file/augment-index-html.js +35 -2
  333. package/src/utils/index-file/augment-index-html.js.map +1 -0
  334. package/src/utils/index-file/auto-csp.js +1 -0
  335. package/src/utils/index-file/auto-csp.js.map +1 -0
  336. package/src/utils/index-file/html-rewriting-stream.js +35 -2
  337. package/src/utils/index-file/html-rewriting-stream.js.map +1 -0
  338. package/src/utils/index-file/index-html-generator.js +1 -0
  339. package/src/utils/index-file/index-html-generator.js.map +1 -0
  340. package/src/utils/index-file/inline-critical-css.js +1 -0
  341. package/src/utils/index-file/inline-critical-css.js.map +1 -0
  342. package/src/utils/index-file/inline-fonts.js +1 -0
  343. package/src/utils/index-file/inline-fonts.js.map +1 -0
  344. package/src/utils/index-file/ngcm-attribute.js +1 -0
  345. package/src/utils/index-file/ngcm-attribute.js.map +1 -0
  346. package/src/utils/index-file/nonce.js +1 -0
  347. package/src/utils/index-file/nonce.js.map +1 -0
  348. package/src/utils/index-file/valid-self-closing-tags.js +1 -0
  349. package/src/utils/index-file/valid-self-closing-tags.js.map +1 -0
  350. package/src/utils/index.js +1 -0
  351. package/src/utils/index.js.map +1 -0
  352. package/src/utils/load-esm.js +1 -0
  353. package/src/utils/load-esm.js.map +1 -0
  354. package/src/utils/load-proxy-config.js +8 -21
  355. package/src/utils/load-proxy-config.js.map +1 -0
  356. package/src/utils/load-translations.js +2 -2
  357. package/src/utils/load-translations.js.map +1 -0
  358. package/src/utils/normalize-asset-patterns.js +1 -0
  359. package/src/utils/normalize-asset-patterns.js.map +1 -0
  360. package/src/utils/normalize-cache.js +2 -1
  361. package/src/utils/normalize-cache.js.map +1 -0
  362. package/src/utils/normalize-optimization.js +1 -0
  363. package/src/utils/normalize-optimization.js.map +1 -0
  364. package/src/utils/normalize-source-maps.js +1 -0
  365. package/src/utils/normalize-source-maps.js.map +1 -0
  366. package/src/utils/path.js +1 -0
  367. package/src/utils/path.js.map +1 -0
  368. package/src/utils/postcss-configuration.d.ts +4 -1
  369. package/src/utils/postcss-configuration.js +3 -2
  370. package/src/utils/postcss-configuration.js.map +1 -0
  371. package/src/utils/project-metadata.js +1 -0
  372. package/src/utils/project-metadata.js.map +1 -0
  373. package/src/utils/purge-cache.js +1 -0
  374. package/src/utils/purge-cache.js.map +1 -0
  375. package/src/utils/resolve-assets.js +1 -0
  376. package/src/utils/resolve-assets.js.map +1 -0
  377. package/src/utils/server-rendering/esm-in-memory-loader/loader-hooks.js +3 -13
  378. package/src/utils/server-rendering/esm-in-memory-loader/loader-hooks.js.map +1 -0
  379. package/src/utils/server-rendering/esm-in-memory-loader/register-hooks.js +1 -0
  380. package/src/utils/server-rendering/esm-in-memory-loader/register-hooks.js.map +1 -0
  381. package/src/utils/server-rendering/esm-in-memory-loader/utils.js +1 -0
  382. package/src/utils/server-rendering/esm-in-memory-loader/utils.js.map +1 -0
  383. package/src/utils/server-rendering/fetch-patch.js +1 -0
  384. package/src/utils/server-rendering/fetch-patch.js.map +1 -0
  385. package/src/utils/server-rendering/launch-server.js +37 -2
  386. package/src/utils/server-rendering/launch-server.js.map +1 -0
  387. package/src/utils/server-rendering/load-esm-from-memory.d.ts +2 -1
  388. package/src/utils/server-rendering/load-esm-from-memory.js +1 -0
  389. package/src/utils/server-rendering/load-esm-from-memory.js.map +1 -0
  390. package/src/utils/server-rendering/manifest.js +1 -0
  391. package/src/utils/server-rendering/manifest.js.map +1 -0
  392. package/src/utils/server-rendering/models.js +1 -0
  393. package/src/utils/server-rendering/models.js.map +1 -0
  394. package/src/utils/server-rendering/prerender.js +3 -25
  395. package/src/utils/server-rendering/prerender.js.map +1 -0
  396. package/src/utils/server-rendering/render-worker.js +43 -1
  397. package/src/utils/server-rendering/render-worker.js.map +1 -0
  398. package/src/utils/server-rendering/routes-extractor-worker.js +37 -0
  399. package/src/utils/server-rendering/routes-extractor-worker.js.map +1 -0
  400. package/src/utils/server-rendering/utils.d.ts +11 -1
  401. package/src/utils/server-rendering/utils.js +26 -0
  402. package/src/utils/server-rendering/utils.js.map +1 -0
  403. package/src/utils/service-worker.d.ts +1 -1
  404. package/src/utils/service-worker.js +4 -6
  405. package/src/utils/service-worker.js.map +1 -0
  406. package/src/utils/stats-table.js +1 -0
  407. package/src/utils/stats-table.js.map +1 -0
  408. package/src/utils/supported-browsers.js +8 -3
  409. package/src/utils/supported-browsers.js.map +1 -0
  410. package/src/utils/test-files.d.ts +17 -0
  411. package/src/utils/test-files.js +83 -0
  412. package/src/utils/test-files.js.map +1 -0
  413. package/src/utils/tty.js +1 -0
  414. package/src/utils/tty.js.map +1 -0
  415. package/src/utils/url.js +1 -0
  416. package/src/utils/url.js.map +1 -0
  417. package/src/utils/version.js +1 -0
  418. package/src/utils/version.js.map +1 -0
  419. package/src/utils/worker-pool.js +1 -0
  420. package/src/utils/worker-pool.js.map +1 -0
  421. package/.browserslistrc +0 -7
  422. package/src/tools/vite/plugins/i18n-locale-plugin.d.ts +0 -14
  423. package/src/tools/vite/plugins/i18n-locale-plugin.js +0 -54
  424. package/src/typings.d.ts +0 -19
@@ -3,84 +3,146 @@
3
3
  */
4
4
  export type Schema = {
5
5
  /**
6
- * A list of browsers to use for test execution. If undefined, jsdom on Node.js will be used
7
- * instead of a browser. For Vitest and Karma, browser names ending with 'Headless' (e.g.,
8
- * 'ChromeHeadless') will enable headless mode for that browser.
6
+ * Specifies the browser viewport dimensions for browser-based tests in the format
7
+ * `widthxheight`.
8
+ */
9
+ browserViewport?: string;
10
+ /**
11
+ * Specifies the browsers to use for test execution. When not specified, tests are run in a
12
+ * Node.js environment using jsdom. For both Vitest and Karma, browser names ending with
13
+ * 'Headless' (e.g., 'ChromeHeadless') will enable headless mode.
9
14
  */
10
15
  browsers?: string[];
11
16
  /**
12
- * A build builder target to serve in the format of `project:target[:configuration]`. You
13
- * can also pass in more than one configuration name as a comma-separated list. Example:
14
- * `project:target:production,staging`.
17
+ * Specifies the build target to use for the unit test build in the format
18
+ * `project:target[:configuration]`. This defaults to the `build` target of the current
19
+ * project with the `development` configuration. You can also pass a comma-separated list of
20
+ * configurations. Example: `project:target:production,staging`.
21
+ */
22
+ buildTarget?: string;
23
+ /**
24
+ * Enables coverage reporting for tests.
25
+ */
26
+ coverage?: boolean;
27
+ /**
28
+ * Specifies glob patterns of files to exclude from the coverage report.
15
29
  */
16
- buildTarget: string;
30
+ coverageExclude?: string[];
17
31
  /**
18
- * Output a code coverage report.
32
+ * Specifies glob patterns of files to include in the coverage report.
19
33
  */
20
- codeCoverage?: boolean;
34
+ coverageInclude?: string[];
21
35
  /**
22
- * Globs to exclude from code coverage.
36
+ * Specifies the reporters to use for coverage results. Each reporter can be a string
37
+ * representing its name, or a tuple containing the name and an options object. Built-in
38
+ * reporters include 'html', 'lcov', 'lcovonly', 'text', 'text-summary', 'cobertura',
39
+ * 'json', and 'json-summary'.
23
40
  */
24
- codeCoverageExclude?: string[];
41
+ coverageReporters?: SchemaCoverageReporter[];
25
42
  /**
26
- * Reporters to use for code coverage results.
43
+ * Specifies minimum coverage thresholds that must be met. If thresholds are not met, the
44
+ * builder will exit with an error.
27
45
  */
28
- codeCoverageReporters?: SchemaCodeCoverageReporter[];
46
+ coverageThresholds?: CoverageThresholds;
29
47
  /**
30
- * Initialize the test runner to support using the Node Inspector for test debugging.
48
+ * Specifies coverage watermarks for the HTML reporter. These determine the color coding for
49
+ * high, medium, and low coverage.
50
+ */
51
+ coverageWatermarks?: CoverageWatermarks;
52
+ /**
53
+ * Enables debugging mode for tests, allowing the use of the Node Inspector.
31
54
  */
32
55
  debug?: boolean;
33
56
  /**
34
- * Globs of files to exclude, relative to the project root.
57
+ * Dumps build output files to the `.angular/cache` directory for debugging purposes.
58
+ */
59
+ dumpVirtualFiles?: boolean;
60
+ /**
61
+ * Specifies glob patterns of files to exclude from testing, relative to the project root.
35
62
  */
36
63
  exclude?: string[];
37
64
  /**
38
- * Globs of files to include, relative to project root.
39
- * There are 2 special cases:
40
- * - when a path to directory is provided, all spec files ending ".spec.@(ts|tsx)" will be
41
- * included
42
- * - when a path to a file is provided, and a matching spec file exists it will be included
43
- * instead.
65
+ * Specifies a regular expression pattern to match against test suite and test names. Only
66
+ * tests with a name matching the pattern will be executed. For example, `^App` will run
67
+ * only tests in suites beginning with 'App'.
68
+ */
69
+ filter?: string;
70
+ /**
71
+ * Specifies glob patterns of files to include for testing, relative to the project root.
72
+ * This option also has special handling for directory paths (includes all test files
73
+ * within) and file paths (includes the corresponding test file if one exists).
44
74
  */
45
75
  include?: string[];
46
76
  /**
47
- * Log progress to the console while building. Defaults to the build target's progress value.
77
+ * Lists all discovered test files and exits the process without building or executing the
78
+ * tests.
79
+ */
80
+ listTests?: boolean;
81
+ /**
82
+ * Specifies a file path for the test report, applying only to the first reporter. To
83
+ * configure output files for multiple reporters, use the tuple format `['reporter-name', {
84
+ * outputFile: '...' }]` within the `reporters` option. When not provided, output is written
85
+ * to the console.
86
+ */
87
+ outputFile?: string;
88
+ /**
89
+ * Shows build progress information in the console. Defaults to the `progress` setting of
90
+ * the specified `buildTarget`.
48
91
  */
49
92
  progress?: boolean;
50
93
  /**
51
- * TypeScript file that exports an array of Angular providers to use during test execution.
52
- * The array must be a default export.
94
+ * Specifies the path to a TypeScript file that provides an array of Angular providers for
95
+ * the test environment. The file must contain a default export of the provider array.
53
96
  */
54
97
  providersFile?: string;
55
98
  /**
56
- * Test runner reporters to use. Directly passed to the test runner.
99
+ * Specifies the reporters to use during test execution. Each reporter can be a string
100
+ * representing its name, or a tuple containing the name and an options object. Built-in
101
+ * reporters include 'default', 'verbose', 'dots', 'json', 'junit', 'tap', 'tap-flat', and
102
+ * 'html'. You can also provide a path to a custom reporter.
103
+ */
104
+ reporters?: SchemaReporter[];
105
+ /**
106
+ * Specifies the test runner to use for test execution.
57
107
  */
58
- reporters?: string[];
108
+ runner?: Runner;
59
109
  /**
60
- * The name of the test runner to use for test execution.
110
+ * Specifies the configuration file for the selected test runner. If a string is provided,
111
+ * it will be used as the path to the configuration file. If `true`, the builder will search
112
+ * for a default configuration file (e.g., `vitest.config.ts` or `karma.conf.js`). If
113
+ * `false`, no external configuration file will be used.\nFor Vitest, this enables advanced
114
+ * options and the use of custom plugins. Please note that while the file is loaded, the
115
+ * Angular team does not provide direct support for its specific contents or any third-party
116
+ * plugins used within it.
61
117
  */
62
- runner: Runner;
118
+ runnerConfig?: RunnerConfig;
63
119
  /**
64
- * A list of global setup and configuration files that are included before the test files.
65
- * The application's polyfills are always included before these files. The Angular Testbed
66
- * is also initialized prior to the execution of these files.
120
+ * A list of paths to global setup files that are executed before the test files. The
121
+ * application's polyfills and the Angular TestBed are always initialized before these files.
67
122
  */
68
123
  setupFiles?: string[];
69
124
  /**
70
- * The name of the TypeScript configuration file.
125
+ * The path to the TypeScript configuration file, relative to the workspace root. Defaults
126
+ * to `tsconfig.spec.json` in the project root if it exists. If not specified and the
127
+ * default does not exist, the `tsConfig` from the specified `buildTarget` will be used.
71
128
  */
72
- tsConfig: string;
129
+ tsConfig?: string;
73
130
  /**
74
- * Re-run tests when source files change. Defaults to `true` in TTY environments and `false`
75
- * otherwise.
131
+ * Enables the Vitest UI for interactive test execution. This option is only available for
132
+ * the Vitest runner.
133
+ */
134
+ ui?: boolean;
135
+ /**
136
+ * Enables watch mode, which re-runs tests when source files change. Defaults to `true` in
137
+ * TTY environments and `false` otherwise.
76
138
  */
77
139
  watch?: boolean;
78
140
  };
79
- export type SchemaCodeCoverageReporter = CodeCoverageReporterCodeCoverageReporter[] | CoverageReporters;
80
- export type CodeCoverageReporterCodeCoverageReporter = CoverageReporters | {
141
+ export type SchemaCoverageReporter = CoverageReporterCoverageReporterUnion[] | CoverageReporterEnum;
142
+ export type CoverageReporterCoverageReporterUnion = CoverageReporterEnum | {
81
143
  [key: string]: any;
82
144
  };
83
- export declare enum CoverageReporters {
145
+ export declare enum CoverageReporterEnum {
84
146
  Cobertura = "cobertura",
85
147
  Html = "html",
86
148
  Json = "json",
@@ -91,9 +153,71 @@ export declare enum CoverageReporters {
91
153
  TextSummary = "text-summary"
92
154
  }
93
155
  /**
94
- * The name of the test runner to use for test execution.
156
+ * Specifies minimum coverage thresholds that must be met. If thresholds are not met, the
157
+ * builder will exit with an error.
158
+ */
159
+ export type CoverageThresholds = {
160
+ /**
161
+ * Minimum percentage of branches covered.
162
+ */
163
+ branches?: number;
164
+ /**
165
+ * Minimum percentage of functions covered.
166
+ */
167
+ functions?: number;
168
+ /**
169
+ * Minimum percentage of lines covered.
170
+ */
171
+ lines?: number;
172
+ /**
173
+ * When true, thresholds are enforced for each file individually.
174
+ */
175
+ perFile?: boolean;
176
+ /**
177
+ * Minimum percentage of statements covered.
178
+ */
179
+ statements?: number;
180
+ };
181
+ /**
182
+ * Specifies coverage watermarks for the HTML reporter. These determine the color coding for
183
+ * high, medium, and low coverage.
184
+ */
185
+ export type CoverageWatermarks = {
186
+ /**
187
+ * The high and low watermarks for branches coverage. `[low, high]`
188
+ */
189
+ branches?: number[];
190
+ /**
191
+ * The high and low watermarks for functions coverage. `[low, high]`
192
+ */
193
+ functions?: number[];
194
+ /**
195
+ * The high and low watermarks for lines coverage. `[low, high]`
196
+ */
197
+ lines?: number[];
198
+ /**
199
+ * The high and low watermarks for statements coverage. `[low, high]`
200
+ */
201
+ statements?: number[];
202
+ };
203
+ export type SchemaReporter = ReporterReporter[] | string;
204
+ export type ReporterReporter = {
205
+ [key: string]: any;
206
+ } | string;
207
+ /**
208
+ * Specifies the test runner to use for test execution.
95
209
  */
96
210
  export declare enum Runner {
97
211
  Karma = "karma",
98
212
  Vitest = "vitest"
99
213
  }
214
+ /**
215
+ * Specifies the configuration file for the selected test runner. If a string is provided,
216
+ * it will be used as the path to the configuration file. If `true`, the builder will search
217
+ * for a default configuration file (e.g., `vitest.config.ts` or `karma.conf.js`). If
218
+ * `false`, no external configuration file will be used.\nFor Vitest, this enables advanced
219
+ * options and the use of custom plugins. Please note that while the file is loaded, the
220
+ * Angular team does not provide direct support for its specific contents or any third-party
221
+ * plugins used within it.
222
+ */
223
+ export type RunnerConfig = boolean | string;
@@ -2,23 +2,24 @@
2
2
  // THIS FILE IS AUTOMATICALLY GENERATED. TO UPDATE THIS FILE YOU NEED TO CHANGE THE
3
3
  // CORRESPONDING JSON SCHEMA FILE, THEN RUN devkit-admin build (or bazel build ...).
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.Runner = exports.CoverageReporters = void 0;
6
- var CoverageReporters;
7
- (function (CoverageReporters) {
8
- CoverageReporters["Cobertura"] = "cobertura";
9
- CoverageReporters["Html"] = "html";
10
- CoverageReporters["Json"] = "json";
11
- CoverageReporters["JsonSummary"] = "json-summary";
12
- CoverageReporters["Lcov"] = "lcov";
13
- CoverageReporters["Lcovonly"] = "lcovonly";
14
- CoverageReporters["Text"] = "text";
15
- CoverageReporters["TextSummary"] = "text-summary";
16
- })(CoverageReporters || (exports.CoverageReporters = CoverageReporters = {}));
5
+ exports.Runner = exports.CoverageReporterEnum = void 0;
6
+ var CoverageReporterEnum;
7
+ (function (CoverageReporterEnum) {
8
+ CoverageReporterEnum["Cobertura"] = "cobertura";
9
+ CoverageReporterEnum["Html"] = "html";
10
+ CoverageReporterEnum["Json"] = "json";
11
+ CoverageReporterEnum["JsonSummary"] = "json-summary";
12
+ CoverageReporterEnum["Lcov"] = "lcov";
13
+ CoverageReporterEnum["Lcovonly"] = "lcovonly";
14
+ CoverageReporterEnum["Text"] = "text";
15
+ CoverageReporterEnum["TextSummary"] = "text-summary";
16
+ })(CoverageReporterEnum || (exports.CoverageReporterEnum = CoverageReporterEnum = {}));
17
17
  /**
18
- * The name of the test runner to use for test execution.
18
+ * Specifies the test runner to use for test execution.
19
19
  */
20
20
  var Runner;
21
21
  (function (Runner) {
22
22
  Runner["Karma"] = "karma";
23
23
  Runner["Vitest"] = "vitest";
24
24
  })(Runner || (exports.Runner = Runner = {}));
25
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["schema.ts"],"names":[],"mappings":";AACA,mFAAmF;AACnF,oFAAoF;;;AAmJpF,IAAY,oBASX;AATD,WAAY,oBAAoB;IAC5B,+CAAuB,CAAA;IACvB,qCAAa,CAAA;IACb,qCAAa,CAAA;IACb,oDAA4B,CAAA;IAC5B,qCAAa,CAAA;IACb,6CAAqB,CAAA;IACrB,qCAAa,CAAA;IACb,oDAA4B,CAAA;AAChC,CAAC,EATW,oBAAoB,oCAApB,oBAAoB,QAS/B;AAwDD;;GAEG;AACH,IAAY,MAGX;AAHD,WAAY,MAAM;IACd,yBAAe,CAAA;IACf,2BAAiB,CAAA;AACrB,CAAC,EAHW,MAAM,sBAAN,MAAM,QAGjB"}
@@ -6,71 +6,105 @@
6
6
  "properties": {
7
7
  "buildTarget": {
8
8
  "type": "string",
9
- "description": "A build builder target to serve in the format of `project:target[:configuration]`. You can also pass in more than one configuration name as a comma-separated list. Example: `project:target:production,staging`.",
9
+ "description": "Specifies the build target to use for the unit test build in the format `project:target[:configuration]`. This defaults to the `build` target of the current project with the `development` configuration. You can also pass a comma-separated list of configurations. Example: `project:target:production,staging`.",
10
10
  "pattern": "^[^:\\s]*:[^:\\s]*(:[^\\s]+)?$"
11
11
  },
12
12
  "tsConfig": {
13
13
  "type": "string",
14
- "description": "The name of the TypeScript configuration file."
14
+ "description": "The path to the TypeScript configuration file, relative to the workspace root. Defaults to `tsconfig.spec.json` in the project root if it exists. If not specified and the default does not exist, the `tsConfig` from the specified `buildTarget` will be used."
15
15
  },
16
16
  "runner": {
17
17
  "type": "string",
18
- "description": "The name of the test runner to use for test execution.",
18
+ "description": "Specifies the test runner to use for test execution.",
19
+ "default": "vitest",
19
20
  "enum": ["karma", "vitest"]
20
21
  },
22
+ "runnerConfig": {
23
+ "type": ["boolean", "string"],
24
+ "description": "Specifies the configuration file for the selected test runner. If a string is provided, it will be used as the path to the configuration file. If `true`, the builder will search for a default configuration file (e.g., `vitest.config.ts` or `karma.conf.js`). If `false`, no external configuration file will be used.\\nFor Vitest, this enables advanced options and the use of custom plugins. Please note that while the file is loaded, the Angular team does not provide direct support for its specific contents or any third-party plugins used within it.",
25
+ "default": false
26
+ },
21
27
  "browsers": {
22
- "description": "A list of browsers to use for test execution. If undefined, jsdom on Node.js will be used instead of a browser. For Vitest and Karma, browser names ending with 'Headless' (e.g., 'ChromeHeadless') will enable headless mode for that browser.",
28
+ "description": "Specifies the browsers to use for test execution. When not specified, tests are run in a Node.js environment using jsdom. For both Vitest and Karma, browser names ending with 'Headless' (e.g., 'ChromeHeadless') will enable headless mode.",
23
29
  "type": "array",
24
30
  "items": {
25
31
  "type": "string"
26
32
  },
27
33
  "minItems": 1
28
34
  },
35
+ "browserViewport": {
36
+ "description": "Specifies the browser viewport dimensions for browser-based tests in the format `widthxheight`.",
37
+ "type": "string",
38
+ "pattern": "^\\d+x\\d+$"
39
+ },
29
40
  "include": {
30
41
  "type": "array",
31
42
  "items": {
32
43
  "type": "string"
33
44
  },
34
- "default": ["**/*.spec.ts"],
35
- "description": "Globs of files to include, relative to project root. \nThere are 2 special cases:\n - when a path to directory is provided, all spec files ending \".spec.@(ts|tsx)\" will be included\n - when a path to a file is provided, and a matching spec file exists it will be included instead."
45
+ "default": ["**/*.spec.ts", "**/*.test.ts"],
46
+ "description": "Specifies glob patterns of files to include for testing, relative to the project root. This option also has special handling for directory paths (includes all test files within) and file paths (includes the corresponding test file if one exists)."
36
47
  },
37
48
  "exclude": {
38
49
  "type": "array",
39
50
  "items": {
40
51
  "type": "string"
41
52
  },
42
- "default": [],
43
- "description": "Globs of files to exclude, relative to the project root."
53
+ "description": "Specifies glob patterns of files to exclude from testing, relative to the project root."
54
+ },
55
+ "filter": {
56
+ "type": "string",
57
+ "description": "Specifies a regular expression pattern to match against test suite and test names. Only tests with a name matching the pattern will be executed. For example, `^App` will run only tests in suites beginning with 'App'."
44
58
  },
45
59
  "watch": {
46
60
  "type": "boolean",
47
- "description": "Re-run tests when source files change. Defaults to `true` in TTY environments and `false` otherwise."
61
+ "description": "Enables watch mode, which re-runs tests when source files change. Defaults to `true` in TTY environments and `false` otherwise."
48
62
  },
49
63
  "debug": {
50
64
  "type": "boolean",
51
- "description": "Initialize the test runner to support using the Node Inspector for test debugging.",
65
+ "description": "Enables debugging mode for tests, allowing the use of the Node Inspector.",
52
66
  "default": false
53
67
  },
54
- "codeCoverage": {
68
+ "ui": {
55
69
  "type": "boolean",
56
- "description": "Output a code coverage report.",
70
+ "description": "Enables the Vitest UI for interactive test execution. This option is only available for the Vitest runner.",
57
71
  "default": false
58
72
  },
59
- "codeCoverageExclude": {
73
+ "coverage": {
74
+ "type": "boolean",
75
+ "description": "Enables coverage reporting for tests.",
76
+ "default": false
77
+ },
78
+ "coverageInclude": {
60
79
  "type": "array",
61
- "description": "Globs to exclude from code coverage.",
80
+ "description": "Specifies glob patterns of files to include in the coverage report.",
62
81
  "items": {
63
82
  "type": "string"
64
- },
65
- "default": []
83
+ }
84
+ },
85
+ "coverageExclude": {
86
+ "type": "array",
87
+ "description": "Specifies glob patterns of files to exclude from the coverage report.",
88
+ "items": {
89
+ "type": "string"
90
+ }
66
91
  },
67
- "codeCoverageReporters": {
92
+ "coverageReporters": {
68
93
  "type": "array",
69
- "description": "Reporters to use for code coverage results.",
94
+ "description": "Specifies the reporters to use for coverage results. Each reporter can be a string representing its name, or a tuple containing the name and an options object. Built-in reporters include 'html', 'lcov', 'lcovonly', 'text', 'text-summary', 'cobertura', 'json', and 'json-summary'.",
70
95
  "items": {
71
96
  "oneOf": [
72
97
  {
73
- "$ref": "#/definitions/coverage-reporters"
98
+ "enum": [
99
+ "html",
100
+ "lcov",
101
+ "lcovonly",
102
+ "text",
103
+ "text-summary",
104
+ "cobertura",
105
+ "json",
106
+ "json-summary"
107
+ ]
74
108
  },
75
109
  {
76
110
  "type": "array",
@@ -78,7 +112,16 @@
78
112
  "maxItems": 2,
79
113
  "items": [
80
114
  {
81
- "$ref": "#/definitions/coverage-reporters"
115
+ "enum": [
116
+ "html",
117
+ "lcov",
118
+ "lcovonly",
119
+ "text",
120
+ "text-summary",
121
+ "cobertura",
122
+ "json",
123
+ "json-summary"
124
+ ]
82
125
  },
83
126
  {
84
127
  "type": "object"
@@ -88,16 +131,122 @@
88
131
  ]
89
132
  }
90
133
  },
134
+ "coverageThresholds": {
135
+ "type": "object",
136
+ "description": "Specifies minimum coverage thresholds that must be met. If thresholds are not met, the builder will exit with an error.",
137
+ "properties": {
138
+ "perFile": {
139
+ "type": "boolean",
140
+ "description": "When true, thresholds are enforced for each file individually."
141
+ },
142
+ "statements": {
143
+ "type": "number",
144
+ "description": "Minimum percentage of statements covered."
145
+ },
146
+ "branches": {
147
+ "type": "number",
148
+ "description": "Minimum percentage of branches covered."
149
+ },
150
+ "functions": {
151
+ "type": "number",
152
+ "description": "Minimum percentage of functions covered."
153
+ },
154
+ "lines": {
155
+ "type": "number",
156
+ "description": "Minimum percentage of lines covered."
157
+ }
158
+ },
159
+ "additionalProperties": false
160
+ },
161
+ "coverageWatermarks": {
162
+ "type": "object",
163
+ "description": "Specifies coverage watermarks for the HTML reporter. These determine the color coding for high, medium, and low coverage.",
164
+ "properties": {
165
+ "statements": {
166
+ "type": "array",
167
+ "description": "The high and low watermarks for statements coverage. `[low, high]`",
168
+ "items": { "type": "number" },
169
+ "minItems": 2,
170
+ "maxItems": 2
171
+ },
172
+ "branches": {
173
+ "type": "array",
174
+ "description": "The high and low watermarks for branches coverage. `[low, high]`",
175
+ "items": { "type": "number" },
176
+ "minItems": 2,
177
+ "maxItems": 2
178
+ },
179
+ "functions": {
180
+ "type": "array",
181
+ "description": "The high and low watermarks for functions coverage. `[low, high]`",
182
+ "items": { "type": "number" },
183
+ "minItems": 2,
184
+ "maxItems": 2
185
+ },
186
+ "lines": {
187
+ "type": "array",
188
+ "description": "The high and low watermarks for lines coverage. `[low, high]`",
189
+ "items": { "type": "number" },
190
+ "minItems": 2,
191
+ "maxItems": 2
192
+ }
193
+ },
194
+ "additionalProperties": false
195
+ },
91
196
  "reporters": {
92
197
  "type": "array",
93
- "description": "Test runner reporters to use. Directly passed to the test runner.",
198
+ "description": "Specifies the reporters to use during test execution. Each reporter can be a string representing its name, or a tuple containing the name and an options object. Built-in reporters include 'default', 'verbose', 'dots', 'json', 'junit', 'tap', 'tap-flat', and 'html'. You can also provide a path to a custom reporter.",
94
199
  "items": {
95
- "type": "string"
200
+ "oneOf": [
201
+ {
202
+ "anyOf": [
203
+ {
204
+ "type": "string"
205
+ },
206
+ {
207
+ "enum": ["default", "verbose", "dots", "json", "junit", "tap", "tap-flat", "html"]
208
+ }
209
+ ]
210
+ },
211
+ {
212
+ "type": "array",
213
+ "minItems": 1,
214
+ "maxItems": 2,
215
+ "items": [
216
+ {
217
+ "anyOf": [
218
+ {
219
+ "type": "string"
220
+ },
221
+ {
222
+ "enum": [
223
+ "default",
224
+ "verbose",
225
+ "dots",
226
+ "json",
227
+ "junit",
228
+ "tap",
229
+ "tap-flat",
230
+ "html"
231
+ ]
232
+ }
233
+ ]
234
+ },
235
+ {
236
+ "type": "object"
237
+ }
238
+ ]
239
+ }
240
+ ]
96
241
  }
97
242
  },
243
+ "outputFile": {
244
+ "type": "string",
245
+ "description": "Specifies a file path for the test report, applying only to the first reporter. To configure output files for multiple reporters, use the tuple format `['reporter-name', { outputFile: '...' }]` within the `reporters` option. When not provided, output is written to the console."
246
+ },
98
247
  "providersFile": {
99
248
  "type": "string",
100
- "description": "TypeScript file that exports an array of Angular providers to use during test execution. The array must be a default export.",
249
+ "description": "Specifies the path to a TypeScript file that provides an array of Angular providers for the test environment. The file must contain a default export of the provider array.",
101
250
  "minLength": 1
102
251
  },
103
252
  "setupFiles": {
@@ -105,27 +254,24 @@
105
254
  "items": {
106
255
  "type": "string"
107
256
  },
108
- "description": "A list of global setup and configuration files that are included before the test files. The application's polyfills are always included before these files. The Angular Testbed is also initialized prior to the execution of these files."
257
+ "description": "A list of paths to global setup files that are executed before the test files. The application's polyfills and the Angular TestBed are always initialized before these files."
109
258
  },
110
259
  "progress": {
111
260
  "type": "boolean",
112
- "description": "Log progress to the console while building. Defaults to the build target's progress value."
261
+ "description": "Shows build progress information in the console. Defaults to the `progress` setting of the specified `buildTarget`."
262
+ },
263
+ "listTests": {
264
+ "type": "boolean",
265
+ "description": "Lists all discovered test files and exits the process without building or executing the tests.",
266
+ "default": false
267
+ },
268
+ "dumpVirtualFiles": {
269
+ "type": "boolean",
270
+ "description": "Dumps build output files to the `.angular/cache` directory for debugging purposes.",
271
+ "default": false,
272
+ "visible": false
113
273
  }
114
274
  },
115
275
  "additionalProperties": false,
116
- "required": ["buildTarget", "tsConfig", "runner"],
117
- "definitions": {
118
- "coverage-reporters": {
119
- "enum": [
120
- "html",
121
- "lcov",
122
- "lcovonly",
123
- "text",
124
- "text-summary",
125
- "cobertura",
126
- "json",
127
- "json-summary"
128
- ]
129
- }
130
- }
276
+ "required": []
131
277
  }
@@ -5,4 +5,32 @@
5
5
  * Use of this source code is governed by an MIT-style license that can be
6
6
  * found in the LICENSE file at https://angular.dev/license
7
7
  */
8
- export { findTests, getTestEntrypoints } from '../karma/find-tests';
8
+ /**
9
+ * Finds all test files in the project. This function implements a special handling
10
+ * for static paths (non-globs) to improve developer experience. For example, if a
11
+ * user provides a path to a component, this function will find the corresponding
12
+ * test file. If a user provides a path to a directory, it will find all test
13
+ * files within that directory.
14
+ *
15
+ * @param include Glob patterns of files to include.
16
+ * @param exclude Glob patterns of files to exclude.
17
+ * @param workspaceRoot The absolute path to the workspace root.
18
+ * @param projectSourceRoot The absolute path to the project's source root.
19
+ * @returns A unique set of absolute paths to all test files.
20
+ */
21
+ export declare function findTests(include: string[], exclude: string[], workspaceRoot: string, projectSourceRoot: string): Promise<string[]>;
22
+ interface TestEntrypointsOptions {
23
+ projectSourceRoot: string;
24
+ workspaceRoot: string;
25
+ removeTestExtension?: boolean;
26
+ }
27
+ /**
28
+ * Generates unique, dash-delimited bundle names for a set of test files.
29
+ * This is used to create distinct output files for each test.
30
+ *
31
+ * @param testFiles An array of absolute paths to test files.
32
+ * @param options Configuration options for generating entry points.
33
+ * @returns A map where keys are the generated unique bundle names and values are the original file paths.
34
+ */
35
+ export declare function getTestEntrypoints(testFiles: string[], { projectSourceRoot, workspaceRoot, removeTestExtension }: TestEntrypointsOptions): Map<string, string>;
36
+ export {};