@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,211 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright Google LLC All Rights Reserved.
5
+ *
6
+ * Use of this source code is governed by an MIT-style license that can be
7
+ * found in the LICENSE file at https://angular.dev/license
8
+ */
9
+ var __importDefault = (this && this.__importDefault) || function (mod) {
10
+ return (mod && mod.__esModule) ? mod : { "default": mod };
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.createWasmPlugin = createWasmPlugin;
14
+ const node_assert_1 = __importDefault(require("node:assert"));
15
+ const node_crypto_1 = require("node:crypto");
16
+ const promises_1 = require("node:fs/promises");
17
+ const node_path_1 = require("node:path");
18
+ const error_1 = require("../../utils/error");
19
+ const load_result_cache_1 = require("./load-result-cache");
20
+ const WASM_INIT_NAMESPACE = 'angular:wasm:init';
21
+ const WASM_CONTENTS_NAMESPACE = 'angular:wasm:contents';
22
+ const WASM_RESOLVE_SYMBOL = Symbol('WASM_RESOLVE_SYMBOL');
23
+ // See: https://github.com/tc39/proposal-regexp-unicode-property-escapes/blob/fe6d07fad74cd0192d154966baa1e95e7cda78a1/README.md#other-examples
24
+ const ecmaIdentifierNameRegExp = /^(?:[$_\p{ID_Start}])(?:[$_\u200C\u200D\p{ID_Continue}])*$/u;
25
+ /**
26
+ * Creates an esbuild plugin to use WASM files with import statements and expressions.
27
+ * The default behavior follows the WebAssembly/ES mode integration proposal found at
28
+ * https://github.com/WebAssembly/esm-integration/tree/main/proposals/esm-integration.
29
+ * This behavior requires top-level await support which is only available in zoneless
30
+ * Angular applications.
31
+ * @returns An esbuild plugin.
32
+ */
33
+ function createWasmPlugin(options) {
34
+ const { allowAsync = false, cache } = options;
35
+ return {
36
+ name: 'angular-wasm',
37
+ setup(build) {
38
+ build.onResolve({ filter: /\.wasm$/ }, async (args) => {
39
+ // Skip if already resolving the WASM file to avoid infinite resolution
40
+ if (args.pluginData?.[WASM_RESOLVE_SYMBOL]) {
41
+ return;
42
+ }
43
+ // Skip if not an import statement or expression
44
+ if (args.kind !== 'import-statement' && args.kind !== 'dynamic-import') {
45
+ return;
46
+ }
47
+ // When in the initialization namespace, the content has already been resolved
48
+ // and only needs to be loaded for use with the initialization code.
49
+ if (args.namespace === WASM_INIT_NAMESPACE) {
50
+ return {
51
+ namespace: WASM_CONTENTS_NAMESPACE,
52
+ path: (0, node_path_1.join)(args.resolveDir, args.path),
53
+ pluginData: args.pluginData,
54
+ };
55
+ }
56
+ // Skip if a custom loader is defined
57
+ if (build.initialOptions.loader?.['.wasm'] || args.with['loader']) {
58
+ return;
59
+ }
60
+ // Attempt full resolution of the WASM file
61
+ const resolveOptions = {
62
+ ...args,
63
+ pluginData: { [WASM_RESOLVE_SYMBOL]: true },
64
+ };
65
+ // The "path" property will cause an error if used in the resolve call
66
+ delete resolveOptions.path;
67
+ const result = await build.resolve(args.path, resolveOptions);
68
+ // Skip if there are errors, is external, or another plugin resolves to a custom namespace
69
+ if (result.errors.length > 0 || result.external || result.namespace !== 'file') {
70
+ // Reuse already resolved result
71
+ return result;
72
+ }
73
+ return {
74
+ ...result,
75
+ namespace: WASM_INIT_NAMESPACE,
76
+ };
77
+ });
78
+ build.onLoad({ filter: /\.wasm$/, namespace: WASM_INIT_NAMESPACE }, (0, load_result_cache_1.createCachedLoad)(cache, async (args) => {
79
+ // Ensure async mode is supported
80
+ if (!allowAsync) {
81
+ return {
82
+ errors: [
83
+ {
84
+ text: 'WASM/ES module integration imports are not supported with Zone.js applications',
85
+ notes: [
86
+ {
87
+ text: 'Information about zoneless Angular applications can be found here: https://angular.dev/guide/experimental/zoneless',
88
+ },
89
+ ],
90
+ },
91
+ ],
92
+ };
93
+ }
94
+ const wasmContents = await (0, promises_1.readFile)(args.path);
95
+ // Inline WASM code less than 10kB
96
+ const inlineWasm = wasmContents.byteLength < 10_000;
97
+ // Add import of WASM contents
98
+ let initContents = `import ${inlineWasm ? 'wasmData' : 'wasmPath'} from ${JSON.stringify((0, node_path_1.basename)(args.path))}`;
99
+ initContents += inlineWasm ? ' with { loader: "binary" };' : ';\n\n';
100
+ // Read from the file system when on Node.js (SSR) and not inline
101
+ if (!inlineWasm && build.initialOptions.platform === 'node') {
102
+ initContents += 'import { readFile } from "node:fs/promises";\n';
103
+ initContents +=
104
+ 'const wasmData = await readFile(new URL(wasmPath, import.meta.url));\n';
105
+ }
106
+ // Create initialization function
107
+ initContents += generateInitHelper(!inlineWasm && build.initialOptions.platform !== 'node', wasmContents);
108
+ // Analyze WASM for imports and exports
109
+ let importModuleNames, exportNames;
110
+ try {
111
+ const wasm = await WebAssembly.compile(wasmContents);
112
+ importModuleNames = new Set(WebAssembly.Module.imports(wasm).map((value) => value.module));
113
+ exportNames = WebAssembly.Module.exports(wasm).map((value) => value.name);
114
+ }
115
+ catch (error) {
116
+ (0, error_1.assertIsError)(error);
117
+ return {
118
+ errors: [{ text: 'Unable to analyze WASM file', notes: [{ text: error.message }] }],
119
+ };
120
+ }
121
+ // Ensure export names are valid JavaScript identifiers
122
+ const invalidExportNames = exportNames.filter((name) => !ecmaIdentifierNameRegExp.test(name));
123
+ if (invalidExportNames.length > 0) {
124
+ return {
125
+ errors: invalidExportNames.map((name) => ({
126
+ text: 'WASM export names must be valid JavaScript identifiers',
127
+ notes: [
128
+ {
129
+ text: `The export "${name}" is not valid. The WASM file should be updated to remove this error.`,
130
+ },
131
+ ],
132
+ })),
133
+ };
134
+ }
135
+ // Add import statements and setup import object
136
+ initContents += 'const importObject = Object.create(null);\n';
137
+ let importIndex = 0;
138
+ for (const moduleName of importModuleNames) {
139
+ // Add a namespace import for each module name
140
+ initContents += `import * as wasm_import_${++importIndex} from ${JSON.stringify(moduleName)};\n`;
141
+ // Add the namespace object to the import object
142
+ initContents += `importObject[${JSON.stringify(moduleName)}] = wasm_import_${importIndex};\n`;
143
+ }
144
+ // Instantiate the module
145
+ initContents += 'const instance = await init(importObject);\n';
146
+ // Add exports
147
+ const exportNameList = exportNames.join(', ');
148
+ initContents += `const { ${exportNameList} } = instance.exports;\n`;
149
+ initContents += `export { ${exportNameList} }\n`;
150
+ return {
151
+ contents: initContents,
152
+ loader: 'js',
153
+ resolveDir: (0, node_path_1.dirname)(args.path),
154
+ pluginData: { wasmContents },
155
+ watchFiles: [args.path],
156
+ };
157
+ }));
158
+ build.onLoad({ filter: /\.wasm$/, namespace: WASM_CONTENTS_NAMESPACE }, async (args) => {
159
+ const contents = args.pluginData.wasmContents ?? (await (0, promises_1.readFile)(args.path));
160
+ let loader = 'file';
161
+ if (args.with.loader) {
162
+ (0, node_assert_1.default)(args.with.loader === 'binary' || args.with.loader === 'file', 'WASM loader type should only be binary or file.');
163
+ loader = args.with.loader;
164
+ }
165
+ return {
166
+ contents,
167
+ loader,
168
+ watchFiles: [args.path],
169
+ };
170
+ });
171
+ },
172
+ };
173
+ }
174
+ /**
175
+ * Generates the string content of the WASM initialization helper function.
176
+ * This function supports both file fetching and inline byte data depending on
177
+ * the preferred option for the WASM file. When fetching, an integrity hash is
178
+ * also generated and used with the fetch action.
179
+ *
180
+ * @param streaming Uses fetch and WebAssembly.instantiateStreaming.
181
+ * @param wasmContents The binary contents to generate an integrity hash.
182
+ * @returns A string containing the initialization function.
183
+ */
184
+ function generateInitHelper(streaming, wasmContents) {
185
+ let resultContents;
186
+ if (streaming) {
187
+ const fetchOptions = {
188
+ integrity: 'sha256-' + (0, node_crypto_1.createHash)('sha256').update(wasmContents).digest('base64'),
189
+ };
190
+ const fetchContents = `fetch(new URL(wasmPath, import.meta.url), ${JSON.stringify(fetchOptions)})`;
191
+ resultContents = `await WebAssembly.instantiateStreaming(${fetchContents}, imports)`;
192
+ }
193
+ else {
194
+ resultContents = 'await WebAssembly.instantiate(wasmData, imports)';
195
+ }
196
+ const contents = `
197
+ let mod;
198
+ async function init(imports) {
199
+ if (mod) {
200
+ return await WebAssembly.instantiate(mod, imports);
201
+ }
202
+
203
+ const result = ${resultContents};
204
+ mod = result.module;
205
+
206
+ return result.instance;
207
+ }
208
+ `;
209
+ return contents;
210
+ }
211
+ //# sourceMappingURL=wasm-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wasm-plugin.js","sourceRoot":"","sources":["wasm-plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
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
+ /** @fileoverview
10
+ * TypeScript does not provide a separate lib for WASM types and the Node.js
11
+ * types (`@types/node`) does not contain them either. This type definition
12
+ * file provides type information for the subset of functionality required
13
+ * by the Angular build process. Ideally this can be removed when the WASM
14
+ * type situation has improved.
15
+ */
16
+
17
+ declare namespace WebAssembly {
18
+ class Module {
19
+ constructor(data: Uint8Array);
20
+
21
+ static imports(mod: Module): { module: string; name: string }[];
22
+ static exports(mode: Module): { name: string }[];
23
+ }
24
+ function compile(data: Uint8Array): Promise<Module>;
25
+ }
@@ -0,0 +1,25 @@
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
+ export declare class ChangedFiles {
9
+ readonly added: Set<string>;
10
+ readonly modified: Set<string>;
11
+ readonly removed: Set<string>;
12
+ get all(): string[];
13
+ toDebugString(): string;
14
+ }
15
+ export interface BuildWatcher extends AsyncIterableIterator<ChangedFiles> {
16
+ add(paths: string | readonly string[]): void;
17
+ remove(paths: string | readonly string[]): void;
18
+ close(): Promise<void>;
19
+ }
20
+ export declare function createWatcher(options?: {
21
+ polling?: boolean;
22
+ interval?: number;
23
+ ignored?: string[];
24
+ followSymlinks?: boolean;
25
+ }): BuildWatcher;
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright Google LLC All Rights Reserved.
5
+ *
6
+ * Use of this source code is governed by an MIT-style license that can be
7
+ * found in the LICENSE file at https://angular.dev/license
8
+ */
9
+ var __importDefault = (this && this.__importDefault) || function (mod) {
10
+ return (mod && mod.__esModule) ? mod : { "default": mod };
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.ChangedFiles = void 0;
14
+ exports.createWatcher = createWatcher;
15
+ const watchpack_1 = __importDefault(require("watchpack"));
16
+ class ChangedFiles {
17
+ added = new Set();
18
+ modified = new Set();
19
+ removed = new Set();
20
+ get all() {
21
+ return [...this.added, ...this.modified, ...this.removed];
22
+ }
23
+ toDebugString() {
24
+ const content = {
25
+ added: Array.from(this.added),
26
+ modified: Array.from(this.modified),
27
+ removed: Array.from(this.removed),
28
+ };
29
+ return JSON.stringify(content, null, 2);
30
+ }
31
+ }
32
+ exports.ChangedFiles = ChangedFiles;
33
+ function createWatcher(options) {
34
+ const watcher = new watchpack_1.default({
35
+ poll: options?.polling ? options?.interval ?? true : false,
36
+ ignored: options?.ignored,
37
+ followSymlinks: options?.followSymlinks,
38
+ aggregateTimeout: 250,
39
+ });
40
+ const watchedFiles = new Set();
41
+ const nextQueue = [];
42
+ let currentChangedFiles;
43
+ watcher.on('aggregated', (changes, removals) => {
44
+ const changedFiles = currentChangedFiles ?? new ChangedFiles();
45
+ for (const file of changes) {
46
+ changedFiles.modified.add(file);
47
+ }
48
+ for (const file of removals) {
49
+ changedFiles.removed.add(file);
50
+ }
51
+ const next = nextQueue.shift();
52
+ if (next) {
53
+ currentChangedFiles = undefined;
54
+ next(changedFiles);
55
+ }
56
+ else {
57
+ currentChangedFiles = changedFiles;
58
+ }
59
+ });
60
+ return {
61
+ [Symbol.asyncIterator]() {
62
+ return this;
63
+ },
64
+ async next() {
65
+ if (currentChangedFiles && nextQueue.length === 0) {
66
+ const result = { value: currentChangedFiles };
67
+ currentChangedFiles = undefined;
68
+ return result;
69
+ }
70
+ return new Promise((resolve) => {
71
+ nextQueue.push((value) => resolve(value ? { value } : { done: true, value }));
72
+ });
73
+ },
74
+ add(paths) {
75
+ const previousSize = watchedFiles.size;
76
+ if (typeof paths === 'string') {
77
+ watchedFiles.add(paths);
78
+ }
79
+ else {
80
+ for (const file of paths) {
81
+ watchedFiles.add(file);
82
+ }
83
+ }
84
+ if (previousSize !== watchedFiles.size) {
85
+ watcher.watch({
86
+ files: watchedFiles,
87
+ });
88
+ }
89
+ },
90
+ remove(paths) {
91
+ const previousSize = watchedFiles.size;
92
+ if (typeof paths === 'string') {
93
+ watchedFiles.delete(paths);
94
+ }
95
+ else {
96
+ for (const file of paths) {
97
+ watchedFiles.delete(file);
98
+ }
99
+ }
100
+ if (previousSize !== watchedFiles.size) {
101
+ watcher.watch({
102
+ files: watchedFiles,
103
+ });
104
+ }
105
+ },
106
+ async close() {
107
+ try {
108
+ watcher.close();
109
+ }
110
+ finally {
111
+ let next;
112
+ while ((next = nextQueue.shift()) !== undefined) {
113
+ next();
114
+ }
115
+ }
116
+ },
117
+ };
118
+ }
119
+ //# sourceMappingURL=watcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watcher.js","sourceRoot":"","sources":["watcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
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
+ * Scans a CSS or Sass file and locates all valid url function values as defined by the
10
+ * syntax specification.
11
+ * @param contents A string containing a CSS or Sass file to scan.
12
+ * @returns An iterable that yields each CSS url function value found.
13
+ */
14
+ export declare function findUrls(contents: string): Iterable<{
15
+ start: number;
16
+ end: number;
17
+ value: string;
18
+ }>;
@@ -0,0 +1,172 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.findUrls = findUrls;
11
+ // TODO: Combine everything into a single pass lexer
12
+ /**
13
+ * Determines if a unicode code point is a CSS whitespace character.
14
+ * @param code The unicode code point to test.
15
+ * @returns true, if the code point is CSS whitespace; false, otherwise.
16
+ */
17
+ function isWhitespace(code) {
18
+ // Based on https://www.w3.org/TR/css-syntax-3/#whitespace
19
+ switch (code) {
20
+ case 0x0009: // tab
21
+ case 0x0020: // space
22
+ case 0x000a: // line feed
23
+ case 0x000c: // form feed
24
+ case 0x000d: // carriage return
25
+ return true;
26
+ default:
27
+ return false;
28
+ }
29
+ }
30
+ /**
31
+ * Scans a CSS or Sass file and locates all valid url function values as defined by the
32
+ * syntax specification.
33
+ * @param contents A string containing a CSS or Sass file to scan.
34
+ * @returns An iterable that yields each CSS url function value found.
35
+ */
36
+ function* findUrls(contents) {
37
+ let pos = 0;
38
+ let width = 1;
39
+ let current = -1;
40
+ const next = () => {
41
+ pos += width;
42
+ current = contents.codePointAt(pos) ?? -1;
43
+ width = current > 0xffff ? 2 : 1;
44
+ return current;
45
+ };
46
+ // Based on https://www.w3.org/TR/css-syntax-3/#consume-ident-like-token
47
+ while ((pos = contents.indexOf('url(', pos)) !== -1) {
48
+ width = 1;
49
+ // Ensure whitespace, comma, or colon before `url(`
50
+ if (pos > 0) {
51
+ pos -= 2;
52
+ next();
53
+ if (!isWhitespace(current) && current !== 0x002c && current !== 0x003a) {
54
+ // Skip - not a url token
55
+ pos += 3;
56
+ continue;
57
+ }
58
+ pos += 1;
59
+ }
60
+ // Set to position of the (
61
+ pos += 3;
62
+ // Consume all leading whitespace
63
+ while (isWhitespace(next())) {
64
+ /* empty */
65
+ }
66
+ // Initialize URL state
67
+ const url = { start: pos, end: -1, value: '' };
68
+ let complete = false;
69
+ // If " or ', then consume the value as a string
70
+ if (current === 0x0022 || current === 0x0027) {
71
+ const ending = current;
72
+ // Based on https://www.w3.org/TR/css-syntax-3/#consume-string-token
73
+ while (!complete) {
74
+ switch (next()) {
75
+ case -1: // EOF
76
+ return;
77
+ case 0x000a: // line feed
78
+ case 0x000c: // form feed
79
+ case 0x000d: // carriage return
80
+ // Invalid
81
+ complete = true;
82
+ break;
83
+ case 0x005c: // \ -- character escape
84
+ // If not EOF or newline, add the character after the escape
85
+ switch (next()) {
86
+ case -1:
87
+ return;
88
+ case 0x000a: // line feed
89
+ case 0x000c: // form feed
90
+ case 0x000d: // carriage return
91
+ // Skip when inside a string
92
+ break;
93
+ default:
94
+ // TODO: Handle hex escape codes
95
+ url.value += String.fromCodePoint(current);
96
+ break;
97
+ }
98
+ break;
99
+ case ending:
100
+ // Full string position should include the quotes for replacement
101
+ url.end = pos + 1;
102
+ complete = true;
103
+ yield url;
104
+ break;
105
+ default:
106
+ url.value += String.fromCodePoint(current);
107
+ break;
108
+ }
109
+ }
110
+ next();
111
+ continue;
112
+ }
113
+ // Based on https://www.w3.org/TR/css-syntax-3/#consume-url-token
114
+ while (!complete) {
115
+ switch (current) {
116
+ case -1: // EOF
117
+ return;
118
+ case 0x0022: // "
119
+ case 0x0027: // '
120
+ case 0x0028: // (
121
+ // Invalid
122
+ complete = true;
123
+ break;
124
+ case 0x0029: // )
125
+ // URL is valid and complete
126
+ url.end = pos;
127
+ complete = true;
128
+ break;
129
+ case 0x005c: // \ -- character escape
130
+ // If not EOF or newline, add the character after the escape
131
+ switch (next()) {
132
+ case -1: // EOF
133
+ return;
134
+ case 0x000a: // line feed
135
+ case 0x000c: // form feed
136
+ case 0x000d: // carriage return
137
+ // Invalid
138
+ complete = true;
139
+ break;
140
+ default:
141
+ // TODO: Handle hex escape codes
142
+ url.value += String.fromCodePoint(current);
143
+ break;
144
+ }
145
+ break;
146
+ default:
147
+ if (isWhitespace(current)) {
148
+ while (isWhitespace(next())) {
149
+ /* empty */
150
+ }
151
+ // Unescaped whitespace is only valid before the closing )
152
+ if (current === 0x0029) {
153
+ // URL is valid
154
+ url.end = pos;
155
+ }
156
+ complete = true;
157
+ }
158
+ else {
159
+ // Add the character to the url value
160
+ url.value += String.fromCodePoint(current);
161
+ }
162
+ break;
163
+ }
164
+ next();
165
+ }
166
+ // An end position indicates a URL was found
167
+ if (url.end !== -1) {
168
+ yield url;
169
+ }
170
+ }
171
+ }
172
+ //# sourceMappingURL=lexer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lexer.js","sourceRoot":"","sources":["lexer.ts"],"names":[],"mappings":"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"}