@depup/angular__build 21.2.2-depup.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (602) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +39 -0
  3. package/builders.json +34 -0
  4. package/changes.json +42 -0
  5. package/index.d.ts +8 -0
  6. package/index.js +25 -0
  7. package/index.js.map +1 -0
  8. package/package.json +177 -0
  9. package/private/index.d.ts +8 -0
  10. package/private/index.js +25 -0
  11. package/private/index.js.map +1 -0
  12. package/src/builders/application/build-action.d.ts +29 -0
  13. package/src/builders/application/build-action.js +355 -0
  14. package/src/builders/application/build-action.js.map +1 -0
  15. package/src/builders/application/chunk-optimizer.d.ts +21 -0
  16. package/src/builders/application/chunk-optimizer.js +278 -0
  17. package/src/builders/application/chunk-optimizer.js.map +1 -0
  18. package/src/builders/application/execute-build.d.ts +11 -0
  19. package/src/builders/application/execute-build.js +250 -0
  20. package/src/builders/application/execute-build.js.map +1 -0
  21. package/src/builders/application/execute-post-bundle.d.ts +27 -0
  22. package/src/builders/application/execute-post-bundle.js +136 -0
  23. package/src/builders/application/execute-post-bundle.js.map +1 -0
  24. package/src/builders/application/i18n.d.ts +31 -0
  25. package/src/builders/application/i18n.js +138 -0
  26. package/src/builders/application/i18n.js.map +1 -0
  27. package/src/builders/application/index.d.ts +32 -0
  28. package/src/builders/application/index.js +253 -0
  29. package/src/builders/application/index.js.map +1 -0
  30. package/src/builders/application/options.d.ts +214 -0
  31. package/src/builders/application/options.js +499 -0
  32. package/src/builders/application/options.js.map +1 -0
  33. package/src/builders/application/results.d.ts +73 -0
  34. package/src/builders/application/results.js +18 -0
  35. package/src/builders/application/results.js.map +1 -0
  36. package/src/builders/application/schema.d.ts +650 -0
  37. package/src/builders/application/schema.js +93 -0
  38. package/src/builders/application/schema.js.map +1 -0
  39. package/src/builders/application/schema.json +728 -0
  40. package/src/builders/application/setup-bundling.d.ts +25 -0
  41. package/src/builders/application/setup-bundling.js +104 -0
  42. package/src/builders/application/setup-bundling.js.map +1 -0
  43. package/src/builders/dev-server/builder.d.ts +31 -0
  44. package/src/builders/dev-server/builder.js +61 -0
  45. package/src/builders/dev-server/builder.js.map +1 -0
  46. package/src/builders/dev-server/index.d.ts +15 -0
  47. package/src/builders/dev-server/index.js +17 -0
  48. package/src/builders/dev-server/index.js.map +1 -0
  49. package/src/builders/dev-server/internal.d.ts +18 -0
  50. package/src/builders/dev-server/internal.js +28 -0
  51. package/src/builders/dev-server/internal.js.map +1 -0
  52. package/src/builders/dev-server/options.d.ts +51 -0
  53. package/src/builders/dev-server/options.js +104 -0
  54. package/src/builders/dev-server/options.js.map +1 -0
  55. package/src/builders/dev-server/output.d.ts +16 -0
  56. package/src/builders/dev-server/output.js +10 -0
  57. package/src/builders/dev-server/output.js.map +1 -0
  58. package/src/builders/dev-server/schema.d.ts +121 -0
  59. package/src/builders/dev-server/schema.js +5 -0
  60. package/src/builders/dev-server/schema.js.map +1 -0
  61. package/src/builders/dev-server/schema.json +138 -0
  62. package/src/builders/dev-server/vite/hmr.d.ts +25 -0
  63. package/src/builders/dev-server/vite/hmr.js +115 -0
  64. package/src/builders/dev-server/vite/hmr.js.map +1 -0
  65. package/src/builders/dev-server/vite/index.d.ts +21 -0
  66. package/src/builders/dev-server/vite/index.js +390 -0
  67. package/src/builders/dev-server/vite/index.js.map +1 -0
  68. package/src/builders/dev-server/vite/server.d.ts +15 -0
  69. package/src/builders/dev-server/vite/server.js +227 -0
  70. package/src/builders/dev-server/vite/server.js.map +1 -0
  71. package/src/builders/dev-server/vite/utils.d.ts +36 -0
  72. package/src/builders/dev-server/vite/utils.js +77 -0
  73. package/src/builders/dev-server/vite/utils.js.map +1 -0
  74. package/src/builders/extract-i18n/application-extraction.d.ts +18 -0
  75. package/src/builders/extract-i18n/application-extraction.js +132 -0
  76. package/src/builders/extract-i18n/application-extraction.js.map +1 -0
  77. package/src/builders/extract-i18n/builder.d.ts +14 -0
  78. package/src/builders/extract-i18n/builder.js +161 -0
  79. package/src/builders/extract-i18n/builder.js.map +1 -0
  80. package/src/builders/extract-i18n/index.d.ts +13 -0
  81. package/src/builders/extract-i18n/index.js +16 -0
  82. package/src/builders/extract-i18n/index.js.map +1 -0
  83. package/src/builders/extract-i18n/options.d.ts +33 -0
  84. package/src/builders/extract-i18n/options.js +86 -0
  85. package/src/builders/extract-i18n/options.js.map +1 -0
  86. package/src/builders/extract-i18n/schema.d.ts +53 -0
  87. package/src/builders/extract-i18n/schema.js +30 -0
  88. package/src/builders/extract-i18n/schema.js.map +1 -0
  89. package/src/builders/extract-i18n/schema.json +38 -0
  90. package/src/builders/karma/application_builder.d.ts +11 -0
  91. package/src/builders/karma/application_builder.js +324 -0
  92. package/src/builders/karma/application_builder.js.map +1 -0
  93. package/src/builders/karma/assets-middleware.d.ts +26 -0
  94. package/src/builders/karma/assets-middleware.js +66 -0
  95. package/src/builders/karma/assets-middleware.js.map +1 -0
  96. package/src/builders/karma/coverage.d.ts +9 -0
  97. package/src/builders/karma/coverage.js +32 -0
  98. package/src/builders/karma/coverage.js.map +1 -0
  99. package/src/builders/karma/find-tests.d.ts +9 -0
  100. package/src/builders/karma/find-tests.js +24 -0
  101. package/src/builders/karma/find-tests.js.map +1 -0
  102. package/src/builders/karma/index.d.ts +20 -0
  103. package/src/builders/karma/index.js +54 -0
  104. package/src/builders/karma/index.js.map +1 -0
  105. package/src/builders/karma/karma-config.d.ts +11 -0
  106. package/src/builders/karma/karma-config.js +80 -0
  107. package/src/builders/karma/karma-config.js.map +1 -0
  108. package/src/builders/karma/options.d.ts +42 -0
  109. package/src/builders/karma/options.js +44 -0
  110. package/src/builders/karma/options.js.map +1 -0
  111. package/src/builders/karma/polyfills/init_sourcemaps.js +10 -0
  112. package/src/builders/karma/polyfills/jasmine_global.js +18 -0
  113. package/src/builders/karma/polyfills/jasmine_global_cleanup.js +14 -0
  114. package/src/builders/karma/polyfills-plugin.d.ts +13 -0
  115. package/src/builders/karma/polyfills-plugin.js +75 -0
  116. package/src/builders/karma/polyfills-plugin.js.map +1 -0
  117. package/src/builders/karma/progress-reporter.d.ts +17 -0
  118. package/src/builders/karma/progress-reporter.js +76 -0
  119. package/src/builders/karma/progress-reporter.js.map +1 -0
  120. package/src/builders/karma/schema.d.ts +250 -0
  121. package/src/builders/karma/schema.js +16 -0
  122. package/src/builders/karma/schema.js.map +1 -0
  123. package/src/builders/karma/schema.json +348 -0
  124. package/src/builders/karma/utils.d.ts +17 -0
  125. package/src/builders/karma/utils.js +67 -0
  126. package/src/builders/karma/utils.js.map +1 -0
  127. package/src/builders/ng-packagr/builder.d.ts +19 -0
  128. package/src/builders/ng-packagr/builder.js +107 -0
  129. package/src/builders/ng-packagr/builder.js.map +1 -0
  130. package/src/builders/ng-packagr/index.d.ts +13 -0
  131. package/src/builders/ng-packagr/index.js +16 -0
  132. package/src/builders/ng-packagr/index.js.map +1 -0
  133. package/src/builders/ng-packagr/schema.d.ts +21 -0
  134. package/src/builders/ng-packagr/schema.js +5 -0
  135. package/src/builders/ng-packagr/schema.js.map +1 -0
  136. package/src/builders/ng-packagr/schema.json +26 -0
  137. package/src/builders/unit-test/builder.d.ts +15 -0
  138. package/src/builders/unit-test/builder.js +376 -0
  139. package/src/builders/unit-test/builder.js.map +1 -0
  140. package/src/builders/unit-test/index.d.ts +12 -0
  141. package/src/builders/unit-test/index.js +16 -0
  142. package/src/builders/unit-test/index.js.map +1 -0
  143. package/src/builders/unit-test/options.d.ts +53 -0
  144. package/src/builders/unit-test/options.js +119 -0
  145. package/src/builders/unit-test/options.js.map +1 -0
  146. package/src/builders/unit-test/runners/api.d.ts +65 -0
  147. package/src/builders/unit-test/runners/api.js +10 -0
  148. package/src/builders/unit-test/runners/api.js.map +1 -0
  149. package/src/builders/unit-test/runners/dependency-checker.d.ts +43 -0
  150. package/src/builders/unit-test/runners/dependency-checker.js +83 -0
  151. package/src/builders/unit-test/runners/dependency-checker.js.map +1 -0
  152. package/src/builders/unit-test/runners/karma/executor.d.ts +17 -0
  153. package/src/builders/unit-test/runners/karma/executor.js +164 -0
  154. package/src/builders/unit-test/runners/karma/executor.js.map +1 -0
  155. package/src/builders/unit-test/runners/karma/index.d.ts +13 -0
  156. package/src/builders/unit-test/runners/karma/index.js +44 -0
  157. package/src/builders/unit-test/runners/karma/index.js.map +1 -0
  158. package/src/builders/unit-test/runners/vitest/browser-provider.d.ts +17 -0
  159. package/src/builders/unit-test/runners/vitest/browser-provider.js +174 -0
  160. package/src/builders/unit-test/runners/vitest/browser-provider.js.map +1 -0
  161. package/src/builders/unit-test/runners/vitest/build-options.d.ts +11 -0
  162. package/src/builders/unit-test/runners/vitest/build-options.js +169 -0
  163. package/src/builders/unit-test/runners/vitest/build-options.js.map +1 -0
  164. package/src/builders/unit-test/runners/vitest/configuration.d.ts +15 -0
  165. package/src/builders/unit-test/runners/vitest/configuration.js +57 -0
  166. package/src/builders/unit-test/runners/vitest/configuration.js.map +1 -0
  167. package/src/builders/unit-test/runners/vitest/executor.d.ts +29 -0
  168. package/src/builders/unit-test/runners/vitest/executor.js +318 -0
  169. package/src/builders/unit-test/runners/vitest/executor.js.map +1 -0
  170. package/src/builders/unit-test/runners/vitest/index.d.ts +13 -0
  171. package/src/builders/unit-test/runners/vitest/index.js +69 -0
  172. package/src/builders/unit-test/runners/vitest/index.js.map +1 -0
  173. package/src/builders/unit-test/runners/vitest/plugins.d.ts +32 -0
  174. package/src/builders/unit-test/runners/vitest/plugins.js +382 -0
  175. package/src/builders/unit-test/runners/vitest/plugins.js.map +1 -0
  176. package/src/builders/unit-test/schema.d.ts +229 -0
  177. package/src/builders/unit-test/schema.js +25 -0
  178. package/src/builders/unit-test/schema.js.map +1 -0
  179. package/src/builders/unit-test/schema.json +280 -0
  180. package/src/builders/unit-test/test-discovery.d.ts +47 -0
  181. package/src/builders/unit-test/test-discovery.js +280 -0
  182. package/src/builders/unit-test/test-discovery.js.map +1 -0
  183. package/src/index.d.ts +16 -0
  184. package/src/index.js +25 -0
  185. package/src/index.js.map +1 -0
  186. package/src/private.d.ts +57 -0
  187. package/src/private.js +104 -0
  188. package/src/private.js.map +1 -0
  189. package/src/tools/angular/angular-host.d.ts +27 -0
  190. package/src/tools/angular/angular-host.js +164 -0
  191. package/src/tools/angular/angular-host.js.map +1 -0
  192. package/src/tools/angular/compilation/angular-compilation.d.ts +45 -0
  193. package/src/tools/angular/compilation/angular-compilation.js +104 -0
  194. package/src/tools/angular/compilation/angular-compilation.js.map +1 -0
  195. package/src/tools/angular/compilation/aot-compilation.d.ts +26 -0
  196. package/src/tools/angular/compilation/aot-compilation.js +341 -0
  197. package/src/tools/angular/compilation/aot-compilation.js.map +1 -0
  198. package/src/tools/angular/compilation/factory.d.ts +17 -0
  199. package/src/tools/angular/compilation/factory.js +67 -0
  200. package/src/tools/angular/compilation/factory.js.map +1 -0
  201. package/src/tools/angular/compilation/hmr-candidates.d.ts +22 -0
  202. package/src/tools/angular/compilation/hmr-candidates.js +270 -0
  203. package/src/tools/angular/compilation/hmr-candidates.js.map +1 -0
  204. package/src/tools/angular/compilation/index.d.ts +10 -0
  205. package/src/tools/angular/compilation/index.js +18 -0
  206. package/src/tools/angular/compilation/index.js.map +1 -0
  207. package/src/tools/angular/compilation/jit-compilation.d.ts +23 -0
  208. package/src/tools/angular/compilation/jit-compilation.js +150 -0
  209. package/src/tools/angular/compilation/jit-compilation.js.map +1 -0
  210. package/src/tools/angular/compilation/noop-compilation.d.ts +20 -0
  211. package/src/tools/angular/compilation/noop-compilation.js +27 -0
  212. package/src/tools/angular/compilation/noop-compilation.js.map +1 -0
  213. package/src/tools/angular/compilation/parallel-compilation.d.ts +44 -0
  214. package/src/tools/angular/compilation/parallel-compilation.js +119 -0
  215. package/src/tools/angular/compilation/parallel-compilation.js.map +1 -0
  216. package/src/tools/angular/compilation/parallel-worker.d.ts +39 -0
  217. package/src/tools/angular/compilation/parallel-worker.js +102 -0
  218. package/src/tools/angular/compilation/parallel-worker.js.map +1 -0
  219. package/src/tools/angular/transformers/jit-bootstrap-transformer.d.ts +10 -0
  220. package/src/tools/angular/transformers/jit-bootstrap-transformer.js +181 -0
  221. package/src/tools/angular/transformers/jit-bootstrap-transformer.js.map +1 -0
  222. package/src/tools/angular/transformers/jit-resource-transformer.d.ts +17 -0
  223. package/src/tools/angular/transformers/jit-resource-transformer.js +187 -0
  224. package/src/tools/angular/transformers/jit-resource-transformer.js.map +1 -0
  225. package/src/tools/angular/transformers/lazy-routes-transformer.d.ts +39 -0
  226. package/src/tools/angular/transformers/lazy-routes-transformer.js +164 -0
  227. package/src/tools/angular/transformers/lazy-routes-transformer.js.map +1 -0
  228. package/src/tools/angular/transformers/web-worker-transformer.d.ts +17 -0
  229. package/src/tools/angular/transformers/web-worker-transformer.js +94 -0
  230. package/src/tools/angular/transformers/web-worker-transformer.js.map +1 -0
  231. package/src/tools/angular/uri.d.ts +54 -0
  232. package/src/tools/angular/uri.js +76 -0
  233. package/src/tools/angular/uri.js.map +1 -0
  234. package/src/tools/babel/plugins/add-code-coverage.d.ts +14 -0
  235. package/src/tools/babel/plugins/add-code-coverage.js +45 -0
  236. package/src/tools/babel/plugins/add-code-coverage.js.map +1 -0
  237. package/src/tools/babel/plugins/adjust-static-class-members.d.ts +25 -0
  238. package/src/tools/babel/plugins/adjust-static-class-members.js +349 -0
  239. package/src/tools/babel/plugins/adjust-static-class-members.js.map +1 -0
  240. package/src/tools/babel/plugins/adjust-typescript-enums.d.ts +21 -0
  241. package/src/tools/babel/plugins/adjust-typescript-enums.js +113 -0
  242. package/src/tools/babel/plugins/adjust-typescript-enums.js.map +1 -0
  243. package/src/tools/babel/plugins/elide-angular-metadata.d.ts +21 -0
  244. package/src/tools/babel/plugins/elide-angular-metadata.js +110 -0
  245. package/src/tools/babel/plugins/elide-angular-metadata.js.map +1 -0
  246. package/src/tools/babel/plugins/index.d.ts +11 -0
  247. package/src/tools/babel/plugins/index.js +22 -0
  248. package/src/tools/babel/plugins/index.js.map +1 -0
  249. package/src/tools/babel/plugins/pure-toplevel-functions.d.ts +13 -0
  250. package/src/tools/babel/plugins/pure-toplevel-functions.js +128 -0
  251. package/src/tools/babel/plugins/pure-toplevel-functions.js.map +1 -0
  252. package/src/tools/babel/plugins/types.d.ts +20 -0
  253. package/src/tools/babel/typings.d.ts +21 -0
  254. package/src/tools/esbuild/angular/compilation-state.d.ts +15 -0
  255. package/src/tools/esbuild/angular/compilation-state.js +45 -0
  256. package/src/tools/esbuild/angular/compilation-state.js.map +1 -0
  257. package/src/tools/esbuild/angular/compiler-plugin.d.ts +34 -0
  258. package/src/tools/esbuild/angular/compiler-plugin.js +631 -0
  259. package/src/tools/esbuild/angular/compiler-plugin.js.map +1 -0
  260. package/src/tools/esbuild/angular/component-stylesheets.d.ts +49 -0
  261. package/src/tools/esbuild/angular/component-stylesheets.js +222 -0
  262. package/src/tools/esbuild/angular/component-stylesheets.js.map +1 -0
  263. package/src/tools/esbuild/angular/diagnostics.d.ts +15 -0
  264. package/src/tools/esbuild/angular/diagnostics.js +72 -0
  265. package/src/tools/esbuild/angular/diagnostics.js.map +1 -0
  266. package/src/tools/esbuild/angular/file-reference-tracker.d.ts +17 -0
  267. package/src/tools/esbuild/angular/file-reference-tracker.js +58 -0
  268. package/src/tools/esbuild/angular/file-reference-tracker.js.map +1 -0
  269. package/src/tools/esbuild/angular/jit-plugin-callbacks.d.ts +23 -0
  270. package/src/tools/esbuild/angular/jit-plugin-callbacks.js +120 -0
  271. package/src/tools/esbuild/angular/jit-plugin-callbacks.js.map +1 -0
  272. package/src/tools/esbuild/angular/rewrite-bazel-paths.d.ts +8 -0
  273. package/src/tools/esbuild/angular/rewrite-bazel-paths.js +28 -0
  274. package/src/tools/esbuild/angular/rewrite-bazel-paths.js.map +1 -0
  275. package/src/tools/esbuild/angular/source-file-cache.d.ts +18 -0
  276. package/src/tools/esbuild/angular/source-file-cache.js +80 -0
  277. package/src/tools/esbuild/angular/source-file-cache.js.map +1 -0
  278. package/src/tools/esbuild/angular-localize-init-warning-plugin.d.ts +16 -0
  279. package/src/tools/esbuild/angular-localize-init-warning-plugin.js +50 -0
  280. package/src/tools/esbuild/angular-localize-init-warning-plugin.js.map +1 -0
  281. package/src/tools/esbuild/application-code-bundle.d.ts +19 -0
  282. package/src/tools/esbuild/application-code-bundle.js +542 -0
  283. package/src/tools/esbuild/application-code-bundle.js.map +1 -0
  284. package/src/tools/esbuild/budget-stats.d.ts +19 -0
  285. package/src/tools/esbuild/budget-stats.js +67 -0
  286. package/src/tools/esbuild/budget-stats.js.map +1 -0
  287. package/src/tools/esbuild/bundler-context.d.ts +80 -0
  288. package/src/tools/esbuild/bundler-context.js +399 -0
  289. package/src/tools/esbuild/bundler-context.js.map +1 -0
  290. package/src/tools/esbuild/bundler-execution-result.d.ts +95 -0
  291. package/src/tools/esbuild/bundler-execution-result.js +149 -0
  292. package/src/tools/esbuild/bundler-execution-result.js.map +1 -0
  293. package/src/tools/esbuild/cache.d.ts +93 -0
  294. package/src/tools/esbuild/cache.js +100 -0
  295. package/src/tools/esbuild/cache.js.map +1 -0
  296. package/src/tools/esbuild/commonjs-checker.d.ts +28 -0
  297. package/src/tools/esbuild/commonjs-checker.js +151 -0
  298. package/src/tools/esbuild/commonjs-checker.js.map +1 -0
  299. package/src/tools/esbuild/compiler-plugin-options.d.ts +14 -0
  300. package/src/tools/esbuild/compiler-plugin-options.js +30 -0
  301. package/src/tools/esbuild/compiler-plugin-options.js.map +1 -0
  302. package/src/tools/esbuild/external-packages-plugin.d.ts +18 -0
  303. package/src/tools/esbuild/external-packages-plugin.js +97 -0
  304. package/src/tools/esbuild/external-packages-plugin.js.map +1 -0
  305. package/src/tools/esbuild/global-scripts.d.ts +16 -0
  306. package/src/tools/esbuild/global-scripts.js +153 -0
  307. package/src/tools/esbuild/global-scripts.js.map +1 -0
  308. package/src/tools/esbuild/global-styles.d.ts +10 -0
  309. package/src/tools/esbuild/global-styles.js +79 -0
  310. package/src/tools/esbuild/global-styles.js.map +1 -0
  311. package/src/tools/esbuild/i18n-inliner-worker.d.ts +77 -0
  312. package/src/tools/esbuild/i18n-inliner-worker.js +184 -0
  313. package/src/tools/esbuild/i18n-inliner-worker.js.map +1 -0
  314. package/src/tools/esbuild/i18n-inliner.d.ts +58 -0
  315. package/src/tools/esbuild/i18n-inliner.js +266 -0
  316. package/src/tools/esbuild/i18n-inliner.js.map +1 -0
  317. package/src/tools/esbuild/i18n-locale-plugin.d.ts +22 -0
  318. package/src/tools/esbuild/i18n-locale-plugin.js +139 -0
  319. package/src/tools/esbuild/i18n-locale-plugin.js.map +1 -0
  320. package/src/tools/esbuild/index-html-generator.d.ts +15 -0
  321. package/src/tools/esbuild/index-html-generator.js +91 -0
  322. package/src/tools/esbuild/index-html-generator.js.map +1 -0
  323. package/src/tools/esbuild/javascript-transformer-worker.d.ts +20 -0
  324. package/src/tools/esbuild/javascript-transformer-worker.js +162 -0
  325. package/src/tools/esbuild/javascript-transformer-worker.js.map +1 -0
  326. package/src/tools/esbuild/javascript-transformer.d.ts +54 -0
  327. package/src/tools/esbuild/javascript-transformer.js +153 -0
  328. package/src/tools/esbuild/javascript-transformer.js.map +1 -0
  329. package/src/tools/esbuild/license-extractor.d.ts +25 -0
  330. package/src/tools/esbuild/license-extractor.js +158 -0
  331. package/src/tools/esbuild/license-extractor.js.map +1 -0
  332. package/src/tools/esbuild/lmdb-cache-store.d.ts +18 -0
  333. package/src/tools/esbuild/lmdb-cache-store.js +55 -0
  334. package/src/tools/esbuild/lmdb-cache-store.js.map +1 -0
  335. package/src/tools/esbuild/load-result-cache.d.ts +21 -0
  336. package/src/tools/esbuild/load-result-cache.js +76 -0
  337. package/src/tools/esbuild/load-result-cache.js.map +1 -0
  338. package/src/tools/esbuild/loader-import-attribute-plugin.d.ts +9 -0
  339. package/src/tools/esbuild/loader-import-attribute-plugin.js +42 -0
  340. package/src/tools/esbuild/loader-import-attribute-plugin.js.map +1 -0
  341. package/src/tools/esbuild/profiling.d.ts +11 -0
  342. package/src/tools/esbuild/profiling.js +78 -0
  343. package/src/tools/esbuild/profiling.js.map +1 -0
  344. package/src/tools/esbuild/rxjs-esm-resolution-plugin.d.ts +18 -0
  345. package/src/tools/esbuild/rxjs-esm-resolution-plugin.js +44 -0
  346. package/src/tools/esbuild/rxjs-esm-resolution-plugin.js.map +1 -0
  347. package/src/tools/esbuild/server-bundle-metadata-plugin.d.ts +22 -0
  348. package/src/tools/esbuild/server-bundle-metadata-plugin.js +37 -0
  349. package/src/tools/esbuild/server-bundle-metadata-plugin.js.map +1 -0
  350. package/src/tools/esbuild/sourcemap-ignorelist-plugin.d.ts +17 -0
  351. package/src/tools/esbuild/sourcemap-ignorelist-plugin.js +73 -0
  352. package/src/tools/esbuild/sourcemap-ignorelist-plugin.js.map +1 -0
  353. package/src/tools/esbuild/stylesheets/bundle-options.d.ts +41 -0
  354. package/src/tools/esbuild/stylesheets/bundle-options.js +66 -0
  355. package/src/tools/esbuild/stylesheets/bundle-options.js.map +1 -0
  356. package/src/tools/esbuild/stylesheets/css-inline-fonts-plugin.d.ts +25 -0
  357. package/src/tools/esbuild/stylesheets/css-inline-fonts-plugin.js +57 -0
  358. package/src/tools/esbuild/stylesheets/css-inline-fonts-plugin.js.map +1 -0
  359. package/src/tools/esbuild/stylesheets/css-language.d.ts +9 -0
  360. package/src/tools/esbuild/stylesheets/css-language.js +16 -0
  361. package/src/tools/esbuild/stylesheets/css-language.js.map +1 -0
  362. package/src/tools/esbuild/stylesheets/css-resource-plugin.d.ts +18 -0
  363. package/src/tools/esbuild/stylesheets/css-resource-plugin.js +114 -0
  364. package/src/tools/esbuild/stylesheets/css-resource-plugin.js.map +1 -0
  365. package/src/tools/esbuild/stylesheets/less-language.d.ts +9 -0
  366. package/src/tools/esbuild/stylesheets/less-language.js +161 -0
  367. package/src/tools/esbuild/stylesheets/less-language.js.map +1 -0
  368. package/src/tools/esbuild/stylesheets/sass-language.d.ts +10 -0
  369. package/src/tools/esbuild/stylesheets/sass-language.js +231 -0
  370. package/src/tools/esbuild/stylesheets/sass-language.js.map +1 -0
  371. package/src/tools/esbuild/stylesheets/stylesheet-plugin-factory.d.ts +77 -0
  372. package/src/tools/esbuild/stylesheets/stylesheet-plugin-factory.js +333 -0
  373. package/src/tools/esbuild/stylesheets/stylesheet-plugin-factory.js.map +1 -0
  374. package/src/tools/esbuild/utils.d.ts +58 -0
  375. package/src/tools/esbuild/utils.js +394 -0
  376. package/src/tools/esbuild/utils.js.map +1 -0
  377. package/src/tools/esbuild/virtual-module-plugin.d.ts +33 -0
  378. package/src/tools/esbuild/virtual-module-plugin.js +43 -0
  379. package/src/tools/esbuild/virtual-module-plugin.js.map +1 -0
  380. package/src/tools/esbuild/wasm-plugin.d.ts +28 -0
  381. package/src/tools/esbuild/wasm-plugin.js +211 -0
  382. package/src/tools/esbuild/wasm-plugin.js.map +1 -0
  383. package/src/tools/esbuild/wasm.d.ts +25 -0
  384. package/src/tools/esbuild/watcher.d.ts +25 -0
  385. package/src/tools/esbuild/watcher.js +119 -0
  386. package/src/tools/esbuild/watcher.js.map +1 -0
  387. package/src/tools/sass/lexer.d.ts +18 -0
  388. package/src/tools/sass/lexer.js +172 -0
  389. package/src/tools/sass/lexer.js.map +1 -0
  390. package/src/tools/sass/rebasing-importer.d.ts +101 -0
  391. package/src/tools/sass/rebasing-importer.js +333 -0
  392. package/src/tools/sass/rebasing-importer.js.map +1 -0
  393. package/src/tools/sass/sass-service.d.ts +67 -0
  394. package/src/tools/sass/sass-service.js +242 -0
  395. package/src/tools/sass/sass-service.js.map +1 -0
  396. package/src/tools/sass/worker.d.ts +63 -0
  397. package/src/tools/sass/worker.js +202 -0
  398. package/src/tools/sass/worker.js.map +1 -0
  399. package/src/tools/vite/middlewares/assets-middleware.d.ts +17 -0
  400. package/src/tools/vite/middlewares/assets-middleware.js +205 -0
  401. package/src/tools/vite/middlewares/assets-middleware.js.map +1 -0
  402. package/src/tools/vite/middlewares/base-middleware.d.ts +17 -0
  403. package/src/tools/vite/middlewares/base-middleware.js +44 -0
  404. package/src/tools/vite/middlewares/base-middleware.js.map +1 -0
  405. package/src/tools/vite/middlewares/chrome-devtools-middleware.d.ts +9 -0
  406. package/src/tools/vite/middlewares/chrome-devtools-middleware.js +53 -0
  407. package/src/tools/vite/middlewares/chrome-devtools-middleware.js.map +1 -0
  408. package/src/tools/vite/middlewares/component-middleware.d.ts +9 -0
  409. package/src/tools/vite/middlewares/component-middleware.js +36 -0
  410. package/src/tools/vite/middlewares/component-middleware.js.map +1 -0
  411. package/src/tools/vite/middlewares/headers-middleware.d.ts +19 -0
  412. package/src/tools/vite/middlewares/headers-middleware.js +35 -0
  413. package/src/tools/vite/middlewares/headers-middleware.js.map +1 -0
  414. package/src/tools/vite/middlewares/host-check-middleware.d.ts +9 -0
  415. package/src/tools/vite/middlewares/host-check-middleware.js +61 -0
  416. package/src/tools/vite/middlewares/host-check-middleware.js.map +1 -0
  417. package/src/tools/vite/middlewares/html-fallback-middleware.d.ts +10 -0
  418. package/src/tools/vite/middlewares/html-fallback-middleware.js +42 -0
  419. package/src/tools/vite/middlewares/html-fallback-middleware.js.map +1 -0
  420. package/src/tools/vite/middlewares/index-html-middleware.d.ts +10 -0
  421. package/src/tools/vite/middlewares/index-html-middleware.js +47 -0
  422. package/src/tools/vite/middlewares/index-html-middleware.js.map +1 -0
  423. package/src/tools/vite/middlewares/index.d.ts +16 -0
  424. package/src/tools/vite/middlewares/index.js +30 -0
  425. package/src/tools/vite/middlewares/index.js.map +1 -0
  426. package/src/tools/vite/middlewares/ssr-middleware.d.ts +10 -0
  427. package/src/tools/vite/middlewares/ssr-middleware.js +129 -0
  428. package/src/tools/vite/middlewares/ssr-middleware.js.map +1 -0
  429. package/src/tools/vite/plugins/angular-memory-plugin.d.ts +18 -0
  430. package/src/tools/vite/plugins/angular-memory-plugin.js +149 -0
  431. package/src/tools/vite/plugins/angular-memory-plugin.js.map +1 -0
  432. package/src/tools/vite/plugins/id-prefix-plugin.d.ts +9 -0
  433. package/src/tools/vite/plugins/id-prefix-plugin.js +46 -0
  434. package/src/tools/vite/plugins/id-prefix-plugin.js.map +1 -0
  435. package/src/tools/vite/plugins/index.d.ts +12 -0
  436. package/src/tools/vite/plugins/index.js +22 -0
  437. package/src/tools/vite/plugins/index.js.map +1 -0
  438. package/src/tools/vite/plugins/setup-middlewares-plugin.d.ts +45 -0
  439. package/src/tools/vite/plugins/setup-middlewares-plugin.js +108 -0
  440. package/src/tools/vite/plugins/setup-middlewares-plugin.js.map +1 -0
  441. package/src/tools/vite/plugins/ssr-ssl-plugin.d.ts +9 -0
  442. package/src/tools/vite/plugins/ssr-ssl-plugin.js +92 -0
  443. package/src/tools/vite/plugins/ssr-ssl-plugin.js.map +1 -0
  444. package/src/tools/vite/plugins/ssr-transform-plugin.d.ts +9 -0
  445. package/src/tools/vite/plugins/ssr-transform-plugin.js +68 -0
  446. package/src/tools/vite/plugins/ssr-transform-plugin.js.map +1 -0
  447. package/src/tools/vite/utils.d.ts +45 -0
  448. package/src/tools/vite/utils.js +106 -0
  449. package/src/tools/vite/utils.js.map +1 -0
  450. package/src/utils/bundle-calculator.d.ts +45 -0
  451. package/src/utils/bundle-calculator.js +305 -0
  452. package/src/utils/bundle-calculator.js.map +1 -0
  453. package/src/utils/check-port.d.ts +8 -0
  454. package/src/utils/check-port.js +88 -0
  455. package/src/utils/check-port.js.map +1 -0
  456. package/src/utils/color.d.ts +9 -0
  457. package/src/utils/color.js +28 -0
  458. package/src/utils/color.js.map +1 -0
  459. package/src/utils/delete-output-dir.d.ts +11 -0
  460. package/src/utils/delete-output-dir.js +46 -0
  461. package/src/utils/delete-output-dir.js.map +1 -0
  462. package/src/utils/environment-options.d.ts +64 -0
  463. package/src/utils/environment-options.js +150 -0
  464. package/src/utils/environment-options.js.map +1 -0
  465. package/src/utils/error.d.ts +10 -0
  466. package/src/utils/error.js +21 -0
  467. package/src/utils/error.js.map +1 -0
  468. package/src/utils/format-bytes.d.ts +8 -0
  469. package/src/utils/format-bytes.js +22 -0
  470. package/src/utils/format-bytes.js.map +1 -0
  471. package/src/utils/i18n-options.d.ts +36 -0
  472. package/src/utils/i18n-options.js +208 -0
  473. package/src/utils/i18n-options.js.map +1 -0
  474. package/src/utils/index-file/add-event-dispatch-contract.d.ts +8 -0
  475. package/src/utils/index-file/add-event-dispatch-contract.js +28 -0
  476. package/src/utils/index-file/add-event-dispatch-contract.js.map +1 -0
  477. package/src/utils/index-file/augment-index-html.d.ts +40 -0
  478. package/src/utils/index-file/augment-index-html.js +300 -0
  479. package/src/utils/index-file/augment-index-html.js.map +1 -0
  480. package/src/utils/index-file/auto-csp.d.ts +23 -0
  481. package/src/utils/index-file/auto-csp.js +295 -0
  482. package/src/utils/index-file/auto-csp.js.map +1 -0
  483. package/src/utils/index-file/html-rewriting-stream.d.ts +15 -0
  484. package/src/utils/index-file/html-rewriting-stream.js +60 -0
  485. package/src/utils/index-file/html-rewriting-stream.js.map +1 -0
  486. package/src/utils/index-file/index-html-generator.d.ts +61 -0
  487. package/src/utils/index-file/index-html-generator.js +154 -0
  488. package/src/utils/index-file/index-html-generator.js.map +1 -0
  489. package/src/utils/index-file/inline-critical-css.d.ts +25 -0
  490. package/src/utils/index-file/inline-critical-css.js +193 -0
  491. package/src/utils/index-file/inline-critical-css.js.map +1 -0
  492. package/src/utils/index-file/inline-fonts.d.ts +23 -0
  493. package/src/utils/index-file/inline-fonts.js +240 -0
  494. package/src/utils/index-file/inline-fonts.js.map +1 -0
  495. package/src/utils/index-file/ngcm-attribute.d.ts +15 -0
  496. package/src/utils/index-file/ngcm-attribute.js +38 -0
  497. package/src/utils/index-file/ngcm-attribute.js.map +1 -0
  498. package/src/utils/index-file/nonce.d.ts +12 -0
  499. package/src/utils/index-file/nonce.js +54 -0
  500. package/src/utils/index-file/nonce.js.map +1 -0
  501. package/src/utils/index-file/valid-self-closing-tags.d.ts +9 -0
  502. package/src/utils/index-file/valid-self-closing-tags.js +90 -0
  503. package/src/utils/index-file/valid-self-closing-tags.js.map +1 -0
  504. package/src/utils/index.d.ts +11 -0
  505. package/src/utils/index.js +28 -0
  506. package/src/utils/index.js.map +1 -0
  507. package/src/utils/load-esm.d.ts +20 -0
  508. package/src/utils/load-esm.js +31 -0
  509. package/src/utils/load-esm.js.map +1 -0
  510. package/src/utils/load-proxy-config.d.ts +8 -0
  511. package/src/utils/load-proxy-config.js +186 -0
  512. package/src/utils/load-proxy-config.js.map +1 -0
  513. package/src/utils/load-translations.d.ts +16 -0
  514. package/src/utils/load-translations.js +93 -0
  515. package/src/utils/load-translations.js.map +1 -0
  516. package/src/utils/normalize-asset-patterns.d.ts +11 -0
  517. package/src/utils/normalize-asset-patterns.js +111 -0
  518. package/src/utils/normalize-asset-patterns.js.map +1 -0
  519. package/src/utils/normalize-cache.d.ts +16 -0
  520. package/src/utils/normalize-cache.js +46 -0
  521. package/src/utils/normalize-cache.js.map +1 -0
  522. package/src/utils/normalize-optimization.d.ts +13 -0
  523. package/src/utils/normalize-optimization.js +42 -0
  524. package/src/utils/normalize-optimization.js.map +1 -0
  525. package/src/utils/normalize-source-maps.d.ts +9 -0
  526. package/src/utils/normalize-source-maps.js +25 -0
  527. package/src/utils/normalize-source-maps.js.map +1 -0
  528. package/src/utils/path.d.ts +29 -0
  529. package/src/utils/path.js +38 -0
  530. package/src/utils/path.js.map +1 -0
  531. package/src/utils/postcss-configuration.d.ts +20 -0
  532. package/src/utils/postcss-configuration.js +86 -0
  533. package/src/utils/postcss-configuration.js.map +1 -0
  534. package/src/utils/project-metadata.d.ts +21 -0
  535. package/src/utils/project-metadata.js +32 -0
  536. package/src/utils/project-metadata.js.map +1 -0
  537. package/src/utils/purge-cache.d.ts +10 -0
  538. package/src/utils/purge-cache.js +40 -0
  539. package/src/utils/purge-cache.js.map +1 -0
  540. package/src/utils/resolve-assets.d.ts +18 -0
  541. package/src/utils/resolve-assets.js +35 -0
  542. package/src/utils/resolve-assets.js.map +1 -0
  543. package/src/utils/server-rendering/esm-in-memory-loader/loader-hooks.d.ts +18 -0
  544. package/src/utils/server-rendering/esm-in-memory-loader/loader-hooks.js +125 -0
  545. package/src/utils/server-rendering/esm-in-memory-loader/loader-hooks.js.map +1 -0
  546. package/src/utils/server-rendering/esm-in-memory-loader/register-hooks.d.ts +8 -0
  547. package/src/utils/server-rendering/esm-in-memory-loader/register-hooks.js +14 -0
  548. package/src/utils/server-rendering/esm-in-memory-loader/register-hooks.js.map +1 -0
  549. package/src/utils/server-rendering/esm-in-memory-loader/utils.d.ts +8 -0
  550. package/src/utils/server-rendering/esm-in-memory-loader/utils.js +14 -0
  551. package/src/utils/server-rendering/esm-in-memory-loader/utils.js.map +1 -0
  552. package/src/utils/server-rendering/fetch-patch.d.ts +8 -0
  553. package/src/utils/server-rendering/fetch-patch.js +64 -0
  554. package/src/utils/server-rendering/fetch-patch.js.map +1 -0
  555. package/src/utils/server-rendering/launch-server.d.ts +14 -0
  556. package/src/utils/server-rendering/launch-server.js +96 -0
  557. package/src/utils/server-rendering/launch-server.js.map +1 -0
  558. package/src/utils/server-rendering/load-esm-from-memory.d.ts +27 -0
  559. package/src/utils/server-rendering/load-esm-from-memory.js +26 -0
  560. package/src/utils/server-rendering/load-esm-from-memory.js.map +1 -0
  561. package/src/utils/server-rendering/manifest.d.ts +58 -0
  562. package/src/utils/server-rendering/manifest.js +177 -0
  563. package/src/utils/server-rendering/manifest.js.map +1 -0
  564. package/src/utils/server-rendering/models.d.ts +28 -0
  565. package/src/utils/server-rendering/models.js +22 -0
  566. package/src/utils/server-rendering/models.js.map +1 -0
  567. package/src/utils/server-rendering/prerender.d.ts +39 -0
  568. package/src/utils/server-rendering/prerender.js +246 -0
  569. package/src/utils/server-rendering/prerender.js.map +1 -0
  570. package/src/utils/server-rendering/render-worker.d.ts +23 -0
  571. package/src/utils/server-rendering/render-worker.js +79 -0
  572. package/src/utils/server-rendering/render-worker.js.map +1 -0
  573. package/src/utils/server-rendering/routes-extractor-worker.d.ts +16 -0
  574. package/src/utils/server-rendering/routes-extractor-worker.js +73 -0
  575. package/src/utils/server-rendering/routes-extractor-worker.js.map +1 -0
  576. package/src/utils/server-rendering/utils.d.ts +21 -0
  577. package/src/utils/server-rendering/utils.js +43 -0
  578. package/src/utils/server-rendering/utils.js.map +1 -0
  579. package/src/utils/service-worker.d.ts +23 -0
  580. package/src/utils/service-worker.js +215 -0
  581. package/src/utils/service-worker.js.map +1 -0
  582. package/src/utils/stats-table.d.ts +20 -0
  583. package/src/utils/stats-table.js +205 -0
  584. package/src/utils/stats-table.js.map +1 -0
  585. package/src/utils/supported-browsers.d.ts +10 -0
  586. package/src/utils/supported-browsers.js +57 -0
  587. package/src/utils/supported-browsers.js.map +1 -0
  588. package/src/utils/test-files.d.ts +17 -0
  589. package/src/utils/test-files.js +83 -0
  590. package/src/utils/test-files.js.map +1 -0
  591. package/src/utils/tty.d.ts +8 -0
  592. package/src/utils/tty.js +23 -0
  593. package/src/utils/tty.js.map +1 -0
  594. package/src/utils/url.d.ts +81 -0
  595. package/src/utils/url.js +122 -0
  596. package/src/utils/url.js.map +1 -0
  597. package/src/utils/version.d.ts +8 -0
  598. package/src/utils/version.js +58 -0
  599. package/src/utils/version.js.map +1 -0
  600. package/src/utils/worker-pool.d.ts +12 -0
  601. package/src/utils/worker-pool.js +46 -0
  602. package/src/utils/worker-pool.js.map +1 -0
@@ -0,0 +1,300 @@
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 __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
+ })();
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.augmentIndexHtml = augmentIndexHtml;
44
+ const node_crypto_1 = require("node:crypto");
45
+ const node_path_1 = require("node:path");
46
+ const html_rewriting_stream_1 = require("./html-rewriting-stream");
47
+ const valid_self_closing_tags_1 = require("./valid-self-closing-tags");
48
+ /*
49
+ * Helper function used by the IndexHtmlWebpackPlugin.
50
+ * Can also be directly used by builder, e. g. in order to generate an index.html
51
+ * after processing several configurations in order to build different sets of
52
+ * bundles for differential serving.
53
+ */
54
+ // eslint-disable-next-line max-lines-per-function
55
+ async function augmentIndexHtml(params) {
56
+ const { loadOutputFile, files, entrypoints, sri, deployUrl, lang, baseHref, html, imageDomains } = params;
57
+ const warnings = [];
58
+ const errors = [];
59
+ let { crossOrigin = 'none' } = params;
60
+ if (sri && crossOrigin === 'none') {
61
+ crossOrigin = 'anonymous';
62
+ }
63
+ const stylesheets = new Set();
64
+ const scripts = new Map();
65
+ // Sort files in the order we want to insert them by entrypoint
66
+ for (const [entrypoint, isModule] of entrypoints) {
67
+ for (const { extension, file, name } of files) {
68
+ if (name !== entrypoint || scripts.has(file) || stylesheets.has(file)) {
69
+ continue;
70
+ }
71
+ switch (extension) {
72
+ case '.js':
73
+ // Also, non entrypoints need to be loaded as no module as they can contain problematic code.
74
+ scripts.set(file, isModule);
75
+ break;
76
+ case '.mjs':
77
+ if (!isModule) {
78
+ // It would be very confusing to link an `*.mjs` file in a non-module script context,
79
+ // so we disallow it entirely.
80
+ throw new Error('`.mjs` files *must* set `isModule` to `true`.');
81
+ }
82
+ scripts.set(file, true /* isModule */);
83
+ break;
84
+ case '.css':
85
+ stylesheets.add(file);
86
+ break;
87
+ }
88
+ }
89
+ }
90
+ let scriptTags = [];
91
+ for (const [src, isModule] of scripts) {
92
+ const attrs = [`src="${generateUrl(src, deployUrl)}"`];
93
+ // This is also need for non entry-points as they may contain problematic code.
94
+ if (isModule) {
95
+ attrs.push('type="module"');
96
+ }
97
+ else {
98
+ attrs.push('defer');
99
+ }
100
+ if (crossOrigin !== 'none') {
101
+ attrs.push(`crossorigin="${crossOrigin}"`);
102
+ }
103
+ if (sri) {
104
+ const content = await loadOutputFile(src);
105
+ attrs.push(generateSriAttributes(content));
106
+ }
107
+ scriptTags.push(`<script ${attrs.join(' ')}></script>`);
108
+ }
109
+ let headerLinkTags = [];
110
+ let bodyLinkTags = [];
111
+ for (const src of stylesheets) {
112
+ const attrs = [`rel="stylesheet"`, `href="${generateUrl(src, deployUrl)}"`];
113
+ if (crossOrigin !== 'none') {
114
+ attrs.push(`crossorigin="${crossOrigin}"`);
115
+ }
116
+ if (sri) {
117
+ const content = await loadOutputFile(src);
118
+ attrs.push(generateSriAttributes(content));
119
+ }
120
+ headerLinkTags.push(`<link ${attrs.join(' ')}>`);
121
+ }
122
+ if (params.hints?.length) {
123
+ for (const hint of params.hints) {
124
+ const attrs = [`rel="${hint.mode}"`, `href="${generateUrl(hint.url, deployUrl)}"`];
125
+ if (hint.mode !== 'modulepreload' && crossOrigin !== 'none') {
126
+ // Value is considered anonymous by the browser when not present or empty
127
+ attrs.push(crossOrigin === 'anonymous' ? 'crossorigin' : `crossorigin="${crossOrigin}"`);
128
+ }
129
+ if (hint.mode === 'preload' || hint.mode === 'prefetch') {
130
+ switch ((0, node_path_1.extname)(hint.url)) {
131
+ case '.js':
132
+ attrs.push('as="script"');
133
+ break;
134
+ case '.css':
135
+ attrs.push('as="style"');
136
+ break;
137
+ default:
138
+ if (hint.as) {
139
+ attrs.push(`as="${hint.as}"`);
140
+ }
141
+ break;
142
+ }
143
+ }
144
+ if (sri &&
145
+ (hint.mode === 'preload' || hint.mode === 'prefetch' || hint.mode === 'modulepreload')) {
146
+ const content = await loadOutputFile(hint.url);
147
+ attrs.push(generateSriAttributes(content));
148
+ }
149
+ const tag = `<link ${attrs.join(' ')}>`;
150
+ if (hint.mode === 'modulepreload') {
151
+ // Module preloads should be placed by the inserted script elements in the body since
152
+ // they are only useful in combination with the scripts.
153
+ bodyLinkTags.push(tag);
154
+ }
155
+ else {
156
+ headerLinkTags.push(tag);
157
+ }
158
+ }
159
+ }
160
+ const dir = lang ? await getLanguageDirection(lang, warnings) : undefined;
161
+ const { rewriter, transformedContent } = await (0, html_rewriting_stream_1.htmlRewritingStream)(html);
162
+ const baseTagExists = html.includes('<base');
163
+ const foundPreconnects = new Set();
164
+ rewriter
165
+ .on('startTag', (tag, rawTagHtml) => {
166
+ switch (tag.tagName) {
167
+ case 'html':
168
+ // Adjust document locale if specified
169
+ if (isString(lang)) {
170
+ updateAttribute(tag, 'lang', lang);
171
+ }
172
+ if (dir) {
173
+ updateAttribute(tag, 'dir', dir);
174
+ }
175
+ break;
176
+ case 'head':
177
+ // Base href should be added before any link, meta tags
178
+ if (!baseTagExists && isString(baseHref)) {
179
+ rewriter.emitStartTag(tag);
180
+ rewriter.emitRaw(`<base href="${baseHref}">`);
181
+ return;
182
+ }
183
+ break;
184
+ case 'base':
185
+ // Adjust base href if specified
186
+ if (isString(baseHref)) {
187
+ updateAttribute(tag, 'href', baseHref);
188
+ }
189
+ break;
190
+ case 'link':
191
+ if (readAttribute(tag, 'rel') === 'preconnect') {
192
+ const href = readAttribute(tag, 'href');
193
+ if (href) {
194
+ foundPreconnects.add(href);
195
+ }
196
+ }
197
+ break;
198
+ default:
199
+ if (tag.selfClosing && !valid_self_closing_tags_1.VALID_SELF_CLOSING_TAGS.has(tag.tagName)) {
200
+ errors.push(`Invalid self-closing element in index HTML file: '${rawTagHtml}'.`);
201
+ return;
202
+ }
203
+ }
204
+ rewriter.emitStartTag(tag);
205
+ })
206
+ .on('endTag', (tag) => {
207
+ switch (tag.tagName) {
208
+ case 'head':
209
+ for (const linkTag of headerLinkTags) {
210
+ rewriter.emitRaw(linkTag);
211
+ }
212
+ if (imageDomains) {
213
+ for (const imageDomain of imageDomains) {
214
+ if (!foundPreconnects.has(imageDomain)) {
215
+ rewriter.emitRaw(`<link rel="preconnect" href="${imageDomain}" data-ngimg>`);
216
+ }
217
+ }
218
+ }
219
+ headerLinkTags = [];
220
+ break;
221
+ case 'body':
222
+ for (const linkTag of bodyLinkTags) {
223
+ rewriter.emitRaw(linkTag);
224
+ }
225
+ bodyLinkTags = [];
226
+ // Add script tags
227
+ for (const scriptTag of scriptTags) {
228
+ rewriter.emitRaw(scriptTag);
229
+ }
230
+ scriptTags = [];
231
+ break;
232
+ }
233
+ rewriter.emitEndTag(tag);
234
+ });
235
+ const content = await transformedContent();
236
+ return {
237
+ content: headerLinkTags.length || scriptTags.length
238
+ ? // In case no body/head tags are not present (dotnet partial templates)
239
+ headerLinkTags.join('') + scriptTags.join('') + content
240
+ : content,
241
+ warnings,
242
+ errors,
243
+ };
244
+ }
245
+ function generateSriAttributes(content) {
246
+ const algo = 'sha384';
247
+ const hash = (0, node_crypto_1.createHash)(algo).update(content, 'utf8').digest('base64');
248
+ return `integrity="${algo}-${hash}"`;
249
+ }
250
+ function generateUrl(value, deployUrl) {
251
+ if (!deployUrl) {
252
+ return value;
253
+ }
254
+ // Skip if root-relative, absolute or protocol relative url
255
+ if (/^((?:\w+:)?\/\/|data:|chrome:|\/)/.test(value)) {
256
+ return value;
257
+ }
258
+ return `${deployUrl}${value}`;
259
+ }
260
+ function updateAttribute(tag, name, value) {
261
+ const index = tag.attrs.findIndex((a) => a.name === name);
262
+ const newValue = { name, value };
263
+ if (index === -1) {
264
+ tag.attrs.push(newValue);
265
+ }
266
+ else {
267
+ tag.attrs[index] = newValue;
268
+ }
269
+ }
270
+ function readAttribute(tag, name) {
271
+ const targetAttr = tag.attrs.find((attr) => attr.name === name);
272
+ return targetAttr ? targetAttr.value : undefined;
273
+ }
274
+ function isString(value) {
275
+ return typeof value === 'string';
276
+ }
277
+ async function getLanguageDirection(locale, warnings) {
278
+ const dir = await getLanguageDirectionFromLocales(locale);
279
+ if (!dir) {
280
+ warnings.push(`Locale data for '${locale}' cannot be found. 'dir' attribute will not be set for this locale.`);
281
+ }
282
+ return dir;
283
+ }
284
+ async function getLanguageDirectionFromLocales(locale) {
285
+ try {
286
+ const localeData = (await Promise.resolve(`${`@angular/common/locales/${locale}`}`).then(s => __importStar(require(s)))).default;
287
+ const dir = localeData[localeData.length - 2];
288
+ return isString(dir) ? dir : undefined;
289
+ }
290
+ catch {
291
+ // In some cases certain locales might map to files which are named only with language id.
292
+ // Example: `en-US` -> `en`.
293
+ const [languageId] = locale.split('-', 1);
294
+ if (languageId !== locale) {
295
+ return getLanguageDirectionFromLocales(languageId);
296
+ }
297
+ }
298
+ return undefined;
299
+ }
300
+ //# sourceMappingURL=augment-index-html.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"augment-index-html.js","sourceRoot":"","sources":["augment-index-html.ts"],"names":[],"mappings":"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"}
@@ -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
+ /**
9
+ * Calculates a CSP compatible hash of an inline script.
10
+ * @param scriptText Text between opening and closing script tag. Has to
11
+ * include whitespaces and newlines!
12
+ * @returns The hash of the text formatted appropriately for CSP.
13
+ */
14
+ export declare function hashTextContent(scriptText: string): string;
15
+ /**
16
+ * Finds all `<script>` tags and creates a dynamic script loading block for consecutive `<script>` with `src` attributes.
17
+ * Hashes all scripts, both inline and generated dynamic script loading blocks.
18
+ * Inserts a `<meta>` tag at the end of the `<head>` of the document with the generated hash-based CSP.
19
+ *
20
+ * @param html Markup that should be processed.
21
+ * @returns The transformed HTML that contains the `<meta>` tag CSP and dynamic loader scripts.
22
+ */
23
+ export declare function autoCsp(html: string, unsafeEval?: boolean): Promise<string>;
@@ -0,0 +1,295 @@
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 __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
+ })();
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.hashTextContent = hashTextContent;
44
+ exports.autoCsp = autoCsp;
45
+ const crypto = __importStar(require("node:crypto"));
46
+ const html_rewriting_stream_1 = require("./html-rewriting-stream");
47
+ /**
48
+ * The hash function to use for hash directives to use in the CSP.
49
+ */
50
+ const HASH_FUNCTION = 'sha256';
51
+ /**
52
+ * Get the specified attribute or return undefined if the tag doesn't have that attribute.
53
+ *
54
+ * @param tag StartTag of the <script>
55
+ * @returns
56
+ */
57
+ function getScriptAttributeValue(tag, attrName) {
58
+ return tag.attrs.find((attr) => attr.name === attrName)?.value;
59
+ }
60
+ /**
61
+ * Checks whether a particular string is a MIME type associated with JavaScript, according to
62
+ * https://developer.mozilla.org/en-US/docs/Web/HTTP/MIME_types#textjavascript
63
+ *
64
+ * @param mimeType a string that may be a MIME type
65
+ * @returns whether the string is a MIME type that is associated with JavaScript
66
+ */
67
+ function isJavascriptMimeType(mimeType) {
68
+ return mimeType.split(';')[0] === 'text/javascript';
69
+ }
70
+ /**
71
+ * Which of the type attributes on the script tag we should try passing along
72
+ * based on https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script/type
73
+ * @param scriptType the `type` attribute on the `<script>` tag under question
74
+ * @returns whether to add the script tag to the dynamically loaded script tag
75
+ */
76
+ function shouldDynamicallyLoadScriptTagBasedOnType(scriptType) {
77
+ return !scriptType || scriptType === 'module' || isJavascriptMimeType(scriptType);
78
+ }
79
+ /**
80
+ * Calculates a CSP compatible hash of an inline script.
81
+ * @param scriptText Text between opening and closing script tag. Has to
82
+ * include whitespaces and newlines!
83
+ * @returns The hash of the text formatted appropriately for CSP.
84
+ */
85
+ function hashTextContent(scriptText) {
86
+ // Normalize CRLF to LF to ensure consistent since the rewriter might normalize the line endings.
87
+ const hash = crypto
88
+ .createHash(HASH_FUNCTION)
89
+ .update(scriptText.replace(/\r\n?/g, '\n'), 'utf-8')
90
+ .digest('base64');
91
+ return `'${HASH_FUNCTION}-${hash}'`;
92
+ }
93
+ /**
94
+ * Finds all `<script>` tags and creates a dynamic script loading block for consecutive `<script>` with `src` attributes.
95
+ * Hashes all scripts, both inline and generated dynamic script loading blocks.
96
+ * Inserts a `<meta>` tag at the end of the `<head>` of the document with the generated hash-based CSP.
97
+ *
98
+ * @param html Markup that should be processed.
99
+ * @returns The transformed HTML that contains the `<meta>` tag CSP and dynamic loader scripts.
100
+ */
101
+ async function autoCsp(html, unsafeEval = false) {
102
+ const { rewriter, transformedContent } = await (0, html_rewriting_stream_1.htmlRewritingStream)(html);
103
+ let openedScriptTag = undefined;
104
+ let scriptContent = [];
105
+ const hashes = [];
106
+ /**
107
+ * Generates the dynamic loading script and puts it in the rewriter and adds the hash of the dynamic
108
+ * loader script to the collection of hashes to add to the <meta> tag CSP.
109
+ */
110
+ function emitLoaderScript() {
111
+ const loaderScript = createLoaderScript(scriptContent, /* enableTrustedTypes = */ false);
112
+ hashes.push(hashTextContent(loaderScript));
113
+ rewriter.emitRaw(`<script>${loaderScript}</script>`);
114
+ scriptContent = [];
115
+ }
116
+ rewriter.on('startTag', (tag) => {
117
+ if (tag.tagName === 'script') {
118
+ openedScriptTag = tag;
119
+ const src = getScriptAttributeValue(tag, 'src');
120
+ if (src) {
121
+ // If there are any interesting attributes, note them down.
122
+ const scriptType = getScriptAttributeValue(tag, 'type');
123
+ if (shouldDynamicallyLoadScriptTagBasedOnType(scriptType)) {
124
+ scriptContent.push({
125
+ src: src,
126
+ type: scriptType,
127
+ async: getScriptAttributeValue(tag, 'async') !== undefined,
128
+ defer: getScriptAttributeValue(tag, 'defer') !== undefined,
129
+ });
130
+ return; // Skip writing my script tag until we've read it all.
131
+ }
132
+ }
133
+ }
134
+ // We are encountering the first start tag that's not <script src="..."> after a string of
135
+ // consecutive <script src="...">. <script> tags without a src attribute will also end a chain
136
+ // of src attributes that can be loaded in a single loader script, so those will end up here.
137
+ //
138
+ // The first place when we can determine this to be the case is
139
+ // during the first opening tag that's not <script src="...">, where we need to insert the
140
+ // dynamic loader script before continuing on with writing the rest of the tags.
141
+ // (One edge case is where there are no more opening tags after the last <script src="..."> is
142
+ // closed, but this case is handled below with the final </body> tag.)
143
+ if (scriptContent.length > 0) {
144
+ emitLoaderScript();
145
+ }
146
+ rewriter.emitStartTag(tag);
147
+ });
148
+ rewriter.on('text', (tag, html) => {
149
+ if (openedScriptTag && !getScriptAttributeValue(openedScriptTag, 'src')) {
150
+ hashes.push(hashTextContent(html));
151
+ }
152
+ rewriter.emitText(tag);
153
+ });
154
+ rewriter.on('endTag', (tag, html) => {
155
+ if (openedScriptTag && tag.tagName === 'script') {
156
+ const src = getScriptAttributeValue(openedScriptTag, 'src');
157
+ const scriptType = getScriptAttributeValue(openedScriptTag, 'type');
158
+ openedScriptTag = undefined;
159
+ // Return early to avoid writing the closing </script> tag if it's a part of the
160
+ // dynamic loader script.
161
+ if (src && shouldDynamicallyLoadScriptTagBasedOnType(scriptType)) {
162
+ return;
163
+ }
164
+ }
165
+ if (tag.tagName === 'head' || tag.tagName === 'body' || tag.tagName === 'html') {
166
+ // Write the loader script if a string of <script>s were the last opening tag of the document.
167
+ if (scriptContent.length > 0) {
168
+ emitLoaderScript();
169
+ }
170
+ }
171
+ rewriter.emitEndTag(tag);
172
+ });
173
+ const rewritten = await transformedContent();
174
+ // Second pass to add the header
175
+ const secondPass = await (0, html_rewriting_stream_1.htmlRewritingStream)(rewritten);
176
+ secondPass.rewriter.on('startTag', (tag, _) => {
177
+ secondPass.rewriter.emitStartTag(tag);
178
+ if (tag.tagName === 'head') {
179
+ // See what hashes we came up with!
180
+ secondPass.rewriter.emitRaw(`<meta http-equiv="Content-Security-Policy" content="${getStrictCsp(hashes, {
181
+ enableBrowserFallbacks: true,
182
+ enableTrustedTypes: false,
183
+ enableUnsafeEval: unsafeEval,
184
+ })}">`);
185
+ }
186
+ });
187
+ return secondPass.transformedContent();
188
+ }
189
+ /**
190
+ * Returns a strict Content Security Policy for mitigating XSS.
191
+ * For more details read csp.withgoogle.com.
192
+ * If you modify this CSP, make sure it has not become trivially bypassable by
193
+ * checking the policy using csp-evaluator.withgoogle.com.
194
+ *
195
+ * @param hashes A list of sha-256 hashes of trusted inline scripts.
196
+ * @param enableTrustedTypes If Trusted Types should be enabled for scripts.
197
+ * @param enableBrowserFallbacks If fallbacks for older browsers should be
198
+ * added. This is will not weaken the policy as modern browsers will ignore
199
+ * the fallbacks.
200
+ * @param enableUnsafeEval If you cannot remove all uses of eval(), you can
201
+ * still set a strict CSP, but you will have to use the 'unsafe-eval'
202
+ * keyword which will make your policy slightly less secure.
203
+ */
204
+ function getStrictCsp(hashes,
205
+ // default CSP options
206
+ cspOptions = {
207
+ enableBrowserFallbacks: true,
208
+ enableTrustedTypes: false,
209
+ enableUnsafeEval: false,
210
+ }) {
211
+ hashes = hashes || [];
212
+ const strictCspTemplate = {
213
+ // 'strict-dynamic' allows hashed scripts to create new scripts.
214
+ 'script-src': [`'strict-dynamic'`, ...hashes],
215
+ // Restricts `object-src` to disable dangerous plugins like Flash.
216
+ 'object-src': [`'none'`],
217
+ // Restricts `base-uri` to block the injection of `<base>` tags. This
218
+ // prevents attackers from changing the locations of scripts loaded from
219
+ // relative URLs.
220
+ 'base-uri': [`'self'`],
221
+ };
222
+ // Adds fallbacks for browsers not compatible to CSP3 and CSP2.
223
+ // These fallbacks are ignored by modern browsers in presence of hashes,
224
+ // and 'strict-dynamic'.
225
+ if (cspOptions.enableBrowserFallbacks) {
226
+ // Fallback for Safari. All modern browsers supporting strict-dynamic will
227
+ // ignore the 'https:' fallback.
228
+ strictCspTemplate['script-src'].push('https:');
229
+ // 'unsafe-inline' is only ignored in presence of a hash or nonce.
230
+ if (hashes.length > 0) {
231
+ strictCspTemplate['script-src'].push(`'unsafe-inline'`);
232
+ }
233
+ }
234
+ // If enabled, dangerous DOM sinks will only accept typed objects instead of
235
+ // strings.
236
+ if (cspOptions.enableTrustedTypes) {
237
+ strictCspTemplate['require-trusted-types-for'] = ['script'];
238
+ }
239
+ // If enabled, `eval()`-calls will be allowed, making the policy slightly
240
+ // less secure.
241
+ if (cspOptions.enableUnsafeEval) {
242
+ strictCspTemplate['script-src'].push(`'unsafe-eval'`);
243
+ }
244
+ return Object.entries(strictCspTemplate)
245
+ .map(([directive, values]) => {
246
+ return `${directive} ${values.join(' ')};`;
247
+ })
248
+ .join('');
249
+ }
250
+ /**
251
+ * Returns JS code for dynamically loading sourced (external) scripts.
252
+ * @param srcList A list of paths for scripts that should be loaded.
253
+ */
254
+ function createLoaderScript(srcList, enableTrustedTypes = false) {
255
+ if (!srcList.length) {
256
+ throw new Error('Cannot create a loader script with no scripts to load.');
257
+ }
258
+ const srcListFormatted = srcList
259
+ .map((s) => {
260
+ // URI encoding means value can't escape string, JS, or HTML context.
261
+ const srcAttr = encodeURI(s.src).replaceAll("'", "\\'");
262
+ // Can only be 'module' or a JS MIME type or an empty string.
263
+ const typeAttr = s.type ? "'" + s.type + "'" : "''";
264
+ const asyncAttr = s.async ? 'true' : 'false';
265
+ const deferAttr = s.defer ? 'true' : 'false';
266
+ return `['${srcAttr}', ${typeAttr}, ${asyncAttr}, ${deferAttr}]`;
267
+ })
268
+ .join();
269
+ return enableTrustedTypes
270
+ ? `
271
+ var scripts = [${srcListFormatted}];
272
+ var policy = self.trustedTypes && self.trustedTypes.createPolicy ?
273
+ self.trustedTypes.createPolicy('angular#auto-csp', {createScriptURL: function(u) {
274
+ return scripts.includes(u) ? u : null;
275
+ }}) : { createScriptURL: function(u) { return u; } };
276
+ scripts.forEach(function(scriptUrl) {
277
+ var s = document.createElement('script');
278
+ s.src = policy.createScriptURL(scriptUrl[0]);
279
+ s.type = scriptUrl[1];
280
+ s.async = !!scriptUrl[2];
281
+ s.defer = !!scriptUrl[3];
282
+ document.lastElementChild.appendChild(s);
283
+ });\n`
284
+ : `
285
+ var scripts = [${srcListFormatted}];
286
+ scripts.forEach(function(scriptUrl) {
287
+ var s = document.createElement('script');
288
+ s.src = scriptUrl[0];
289
+ s.type = scriptUrl[1];
290
+ s.async = !!scriptUrl[2];
291
+ s.defer = !!scriptUrl[3];
292
+ document.lastElementChild.appendChild(s);
293
+ });\n`;
294
+ }
295
+ //# sourceMappingURL=auto-csp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-csp.js","sourceRoot":"","sources":["auto-csp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
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 { RewritingStream } from 'parse5-html-rewriting-stream';
9
+ export type StartTag = Parameters<RewritingStream['emitStartTag']>[0];
10
+ export type EndTag = Parameters<RewritingStream['emitEndTag']>[0];
11
+ export type { RewritingStream };
12
+ export declare function htmlRewritingStream(content: string): Promise<{
13
+ rewriter: RewritingStream;
14
+ transformedContent: () => Promise<string>;
15
+ }>;