@depup/angular__build 22.1.8-depup.5 → 22.2.0-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.
- package/README.md +9 -14
- package/builders.json +1 -1
- package/changes.json +12 -32
- package/package.json +29 -48
- package/src/builders/application/build-action.js +63 -92
- package/src/builders/application/build-action.js.map +1 -1
- package/src/builders/application/chunk-optimizer.d.ts +2 -2
- package/src/builders/application/chunk-optimizer.js +5 -5
- package/src/builders/application/chunk-optimizer.js.map +1 -1
- package/src/builders/application/execute-build.js +26 -19
- package/src/builders/application/execute-build.js.map +1 -1
- package/src/builders/application/execute-post-bundle.d.ts +2 -2
- package/src/builders/application/execute-post-bundle.js +5 -5
- package/src/builders/application/execute-post-bundle.js.map +1 -1
- package/src/builders/application/i18n.d.ts +3 -1
- package/src/builders/application/i18n.js +48 -13
- package/src/builders/application/i18n.js.map +1 -1
- package/src/{tools/esbuild → builders/application}/index-html-generator.d.ts +2 -2
- package/src/{tools/esbuild → builders/application}/index-html-generator.js +2 -2
- package/src/builders/application/index-html-generator.js.map +1 -0
- package/src/builders/application/index.js +2 -2
- package/src/builders/application/index.js.map +1 -1
- package/src/builders/application/options.d.ts +5 -0
- package/src/builders/application/options.js +8 -26
- package/src/builders/application/options.js.map +1 -1
- package/src/builders/application/results.d.ts +3 -2
- package/src/builders/application/schema.d.ts +2 -1
- package/src/builders/application/schema.js.map +1 -1
- package/src/builders/application/schema.json +1 -2
- package/src/builders/application/setup-bundling.js +3 -1
- package/src/builders/application/setup-bundling.js.map +1 -1
- package/src/builders/dev-server/internal.d.ts +1 -1
- package/src/builders/dev-server/internal.js +1 -1
- package/src/builders/dev-server/internal.js.map +1 -1
- package/src/builders/dev-server/vite/index.js +5 -8
- package/src/builders/dev-server/vite/index.js.map +1 -1
- package/src/builders/dev-server/vite/server.js +2 -0
- package/src/builders/dev-server/vite/server.js.map +1 -1
- package/src/builders/dev-server/vite/utils.d.ts +1 -1
- package/src/builders/dev-server/vite/utils.js +9 -4
- package/src/builders/dev-server/vite/utils.js.map +1 -1
- package/src/builders/extract-i18n/application-extraction.js +6 -5
- package/src/builders/extract-i18n/application-extraction.js.map +1 -1
- package/src/builders/karma/application_builder.js +1 -1
- package/src/builders/karma/application_builder.js.map +1 -1
- package/src/builders/karma/assets-middleware.d.ts +2 -2
- package/src/builders/karma/assets-middleware.js +5 -2
- package/src/builders/karma/assets-middleware.js.map +1 -1
- package/src/builders/karma/progress-reporter.js +7 -5
- package/src/builders/karma/progress-reporter.js.map +1 -1
- package/src/builders/karma/utils.d.ts +2 -1
- package/src/builders/karma/utils.js +2 -2
- package/src/builders/karma/utils.js.map +1 -1
- package/src/builders/unit-test/builder.js +1 -1
- package/src/builders/unit-test/runners/vitest/build-options.js +9 -3
- package/src/builders/unit-test/runners/vitest/build-options.js.map +1 -1
- package/src/builders/unit-test/runners/vitest/executor.js +5 -4
- package/src/builders/unit-test/runners/vitest/executor.js.map +1 -1
- package/src/builders/unit-test/runners/vitest/plugins.d.ts +4 -4
- package/src/builders/unit-test/runners/vitest/plugins.js +9 -2
- package/src/builders/unit-test/runners/vitest/plugins.js.map +1 -1
- package/src/builders/unit-test/schema.d.ts +3 -2
- package/src/builders/unit-test/schema.js.map +1 -1
- package/src/builders/unit-test/schema.json +3 -2
- package/src/builders/unit-test/test-discovery.js +3 -2
- package/src/builders/unit-test/test-discovery.js.map +1 -1
- package/src/private.d.ts +3 -5
- package/src/private.js +6 -9
- package/src/private.js.map +1 -1
- package/src/tools/angular/angular-host.d.ts +1 -2
- package/src/tools/angular/angular-host.js +6 -6
- package/src/tools/angular/angular-host.js.map +1 -1
- package/src/tools/angular/compilation/angular-compilation.d.ts +24 -16
- package/src/tools/angular/compilation/angular-compilation.js +4 -80
- package/src/tools/angular/compilation/angular-compilation.js.map +1 -1
- package/src/tools/angular/compilation/aot-compilation.d.ts +6 -12
- package/src/tools/angular/compilation/aot-compilation.js +23 -20
- package/src/tools/angular/compilation/aot-compilation.js.map +1 -1
- package/src/tools/angular/compilation/compiler-options.d.ts +25 -0
- package/src/tools/angular/compilation/compiler-options.js +135 -0
- package/src/tools/angular/compilation/compiler-options.js.map +1 -0
- package/src/tools/angular/compilation/factory.d.ts +5 -3
- package/src/tools/angular/compilation/factory.js +10 -5
- package/src/tools/angular/compilation/factory.js.map +1 -1
- package/src/tools/angular/compilation/index.d.ts +3 -3
- package/src/tools/angular/compilation/index.js +1 -3
- package/src/tools/angular/compilation/index.js.map +1 -1
- package/src/tools/angular/compilation/jit-compilation.d.ts +6 -9
- package/src/tools/angular/compilation/jit-compilation.js +10 -16
- package/src/tools/angular/compilation/jit-compilation.js.map +1 -1
- package/src/tools/angular/compilation/parallel-compilation.d.ts +3 -14
- package/src/tools/angular/compilation/parallel-compilation.js +40 -42
- package/src/tools/angular/compilation/parallel-compilation.js.map +1 -1
- package/src/tools/angular/compilation/parallel-worker.d.ts +5 -17
- package/src/tools/angular/compilation/parallel-worker.js +89 -68
- package/src/tools/angular/compilation/parallel-worker.js.map +1 -1
- package/src/tools/angular/compilation/typescript-compilation.d.ts +31 -0
- package/src/tools/angular/compilation/typescript-compilation.js +125 -0
- package/src/tools/angular/compilation/typescript-compilation.js.map +1 -0
- package/src/tools/angular/linker/oxc-ast-host.d.ts +33 -0
- package/src/tools/angular/linker/oxc-ast-host.js +234 -0
- package/src/tools/angular/linker/oxc-ast-host.js.map +1 -0
- package/src/tools/angular/linker/oxc-linker.d.ts +22 -0
- package/src/tools/angular/linker/oxc-linker.js +75 -0
- package/src/tools/angular/linker/oxc-linker.js.map +1 -0
- package/src/tools/angular/linker/string-ast-factory.d.ts +86 -0
- package/src/tools/angular/linker/string-ast-factory.js +234 -0
- package/src/tools/angular/linker/string-ast-factory.js.map +1 -0
- package/src/tools/esbuild/angular/compilation-state.d.ts +23 -3
- package/src/tools/esbuild/angular/compilation-state.js +51 -13
- package/src/tools/esbuild/angular/compilation-state.js.map +1 -1
- package/src/tools/esbuild/angular/compiler-plugin.d.ts +1 -0
- package/src/tools/esbuild/angular/compiler-plugin.js +126 -139
- package/src/tools/esbuild/angular/compiler-plugin.js.map +1 -1
- package/src/tools/esbuild/angular/component-stylesheets.d.ts +3 -3
- package/src/tools/esbuild/angular/component-stylesheets.js +52 -22
- package/src/tools/esbuild/angular/component-stylesheets.js.map +1 -1
- package/src/tools/esbuild/angular/source-file-cache.d.ts +1 -2
- package/src/tools/esbuild/angular/source-file-cache.js +1 -11
- package/src/tools/esbuild/angular/source-file-cache.js.map +1 -1
- package/src/tools/esbuild/application-code-bundle.js +7 -14
- package/src/tools/esbuild/application-code-bundle.js.map +1 -1
- package/src/tools/esbuild/budget-stats.js +3 -3
- package/src/tools/esbuild/budget-stats.js.map +1 -1
- package/src/tools/esbuild/bundler-context.d.ts +23 -7
- package/src/tools/esbuild/bundler-context.js +112 -43
- package/src/tools/esbuild/bundler-context.js.map +1 -1
- package/src/tools/esbuild/bundler-execution-result.d.ts +2 -1
- package/src/tools/esbuild/bundler-execution-result.js +2 -2
- package/src/tools/esbuild/bundler-execution-result.js.map +1 -1
- package/src/tools/esbuild/bundler-files.js +3 -5
- package/src/tools/esbuild/bundler-files.js.map +1 -1
- package/src/tools/esbuild/compiler-plugin-options.js +2 -1
- package/src/tools/esbuild/compiler-plugin-options.js.map +1 -1
- package/src/tools/esbuild/i18n-locale-plugin.d.ts +1 -8
- package/src/tools/esbuild/i18n-locale-plugin.js +33 -114
- package/src/tools/esbuild/i18n-locale-plugin.js.map +1 -1
- package/src/tools/esbuild/license-extractor.d.ts +1 -1
- package/src/tools/esbuild/license-extractor.js +89 -86
- package/src/tools/esbuild/license-extractor.js.map +1 -1
- package/src/tools/esbuild/load-result-cache.d.ts +2 -1
- package/src/tools/esbuild/load-result-cache.js +28 -13
- package/src/tools/esbuild/load-result-cache.js.map +1 -1
- package/src/tools/esbuild/persistent-load-result-cache.d.ts +87 -0
- package/src/tools/esbuild/persistent-load-result-cache.js +229 -0
- package/src/tools/esbuild/persistent-load-result-cache.js.map +1 -0
- package/src/tools/esbuild/stylesheets/bundle-options.d.ts +1 -0
- package/src/tools/esbuild/stylesheets/bundle-options.js +1 -1
- package/src/tools/esbuild/stylesheets/bundle-options.js.map +1 -1
- package/src/tools/esbuild/stylesheets/css-resource-plugin.d.ts +3 -1
- package/src/tools/esbuild/stylesheets/css-resource-plugin.js +4 -2
- package/src/tools/esbuild/stylesheets/css-resource-plugin.js.map +1 -1
- package/src/tools/esbuild/stylesheets/sass-language.d.ts +9 -0
- package/src/tools/esbuild/stylesheets/sass-language.js +109 -50
- package/src/tools/esbuild/stylesheets/sass-language.js.map +1 -1
- package/src/tools/esbuild/stylesheets/stylesheet-cache-key.d.ts +35 -0
- package/src/tools/esbuild/stylesheets/stylesheet-cache-key.js +64 -0
- package/src/tools/esbuild/stylesheets/stylesheet-cache-key.js.map +1 -0
- package/src/tools/esbuild/stylesheets/stylesheet-plugin-factory.d.ts +1 -1
- package/src/tools/esbuild/utils.d.ts +3 -3
- package/src/tools/esbuild/utils.js +9 -6
- package/src/tools/esbuild/utils.js.map +1 -1
- package/src/tools/i18n/i18n-inliner-worker.d.ts +126 -0
- package/src/tools/i18n/i18n-inliner-worker.js +363 -0
- package/src/tools/i18n/i18n-inliner-worker.js.map +1 -0
- package/src/tools/i18n/i18n-inliner.d.ts +97 -0
- package/src/tools/i18n/i18n-inliner.js +500 -0
- package/src/tools/i18n/i18n-inliner.js.map +1 -0
- package/src/tools/i18n/i18n-translation-encoder.d.ts +21 -0
- package/src/tools/i18n/i18n-translation-encoder.js +92 -0
- package/src/tools/i18n/i18n-translation-encoder.js.map +1 -0
- package/src/tools/i18n/i18n-translation-reader.d.ts +41 -0
- package/src/tools/i18n/i18n-translation-reader.js +164 -0
- package/src/tools/i18n/i18n-translation-reader.js.map +1 -0
- package/src/tools/i18n/index.d.ts +11 -0
- package/src/tools/i18n/index.js +28 -0
- package/src/tools/i18n/index.js.map +1 -0
- package/src/tools/i18n/locale-data.d.ts +47 -0
- package/src/tools/i18n/locale-data.js +108 -0
- package/src/tools/i18n/locale-data.js.map +1 -0
- package/src/tools/javascript-transformer/index.d.ts +8 -0
- package/src/tools/javascript-transformer/index.js +25 -0
- package/src/tools/javascript-transformer/index.js.map +1 -0
- package/src/tools/{esbuild → javascript-transformer}/javascript-transformer-worker.d.ts +0 -4
- package/src/tools/javascript-transformer/javascript-transformer-worker.js +231 -0
- package/src/tools/javascript-transformer/javascript-transformer-worker.js.map +1 -0
- package/src/tools/{esbuild → javascript-transformer}/javascript-transformer.d.ts +26 -9
- package/src/tools/javascript-transformer/javascript-transformer.js +294 -0
- package/src/tools/javascript-transformer/javascript-transformer.js.map +1 -0
- package/src/tools/{babel/plugins → oxc}/oxc-transform.d.ts +5 -2
- package/src/tools/{babel/plugins → oxc}/oxc-transform.js +105 -138
- package/src/tools/oxc/oxc-transform.js.map +1 -0
- package/src/tools/oxc/traversal.d.ts +32 -0
- package/src/tools/oxc/traversal.js +299 -0
- package/src/tools/oxc/traversal.js.map +1 -0
- package/src/tools/oxc/types.d.ts +20 -0
- package/src/tools/sass/rebasing-importer.d.ts +12 -18
- package/src/tools/sass/rebasing-importer.js +23 -26
- package/src/tools/sass/rebasing-importer.js.map +1 -1
- package/src/tools/sass/sass-service.d.ts +15 -38
- package/src/tools/sass/sass-service.js +132 -187
- package/src/tools/sass/sass-service.js.map +1 -1
- package/src/tools/vite/middlewares/assets-middleware.js +3 -3
- package/src/tools/vite/middlewares/assets-middleware.js.map +1 -1
- package/src/tools/vite/utils.d.ts +1 -1
- package/src/{tools/esbuild → utils/cache}/cache.d.ts +25 -8
- package/src/{tools/esbuild → utils/cache}/cache.js +72 -41
- package/src/utils/cache/cache.js.map +1 -0
- package/src/utils/cache/index.d.ts +8 -0
- package/src/utils/cache/index.js +25 -0
- package/src/utils/cache/index.js.map +1 -0
- package/src/{tools/esbuild → utils/cache}/lmdb-cache-store.js +1 -1
- package/src/{tools/esbuild → utils/cache}/lmdb-cache-store.js.map +1 -1
- package/src/{tools/esbuild → utils/cache}/sqlite-cache-store.d.ts +1 -1
- package/src/utils/cache/sqlite-cache-store.js +339 -0
- package/src/utils/cache/sqlite-cache-store.js.map +1 -0
- package/src/utils/concurrency.d.ts +30 -0
- package/src/utils/concurrency.js +81 -0
- package/src/utils/concurrency.js.map +1 -0
- package/src/utils/environment-options.d.ts +34 -0
- package/src/utils/environment-options.js +42 -12
- package/src/utils/environment-options.js.map +1 -1
- package/src/utils/hash.d.ts +24 -0
- package/src/utils/hash.js +94 -0
- package/src/utils/hash.js.map +1 -0
- package/src/utils/i18n-options.d.ts +3 -1
- package/src/utils/i18n-options.js.map +1 -1
- package/src/utils/index-file/auto-csp.d.ts +8 -0
- package/src/utils/index-file/auto-csp.js +30 -3
- package/src/utils/index-file/auto-csp.js.map +1 -1
- package/src/utils/index-file/index-html-generator.d.ts +1 -1
- package/src/utils/index-file/index-html-generator.js +9 -13
- package/src/utils/index-file/index-html-generator.js.map +1 -1
- package/src/utils/index-file/inline-critical-css.d.ts +16 -18
- package/src/utils/index-file/inline-critical-css.js +78 -179
- package/src/utils/index-file/inline-critical-css.js.map +1 -1
- package/src/utils/index-file/nonce.d.ts +2 -0
- package/src/utils/index-file/nonce.js +1 -0
- package/src/utils/index-file/nonce.js.map +1 -1
- package/src/utils/normalize-cache.js +1 -1
- package/src/utils/postcss-configuration.d.ts +6 -0
- package/src/utils/postcss-configuration.js +23 -0
- package/src/utils/postcss-configuration.js.map +1 -1
- package/src/{tools/esbuild → utils}/profiling.js +1 -1
- package/src/{tools/esbuild → utils}/profiling.js.map +1 -1
- package/src/utils/server-rendering/manifest.d.ts +2 -2
- package/src/utils/server-rendering/manifest.js +53 -4
- package/src/utils/server-rendering/manifest.js.map +1 -1
- package/src/utils/source-map.d.ts +26 -2
- package/src/utils/source-map.js +151 -53
- package/src/utils/source-map.js.map +1 -1
- package/src/utils/test-files.d.ts +2 -2
- package/src/utils/test-files.js +3 -3
- package/src/utils/test-files.js.map +1 -1
- package/src/utils/watcher.d.ts +61 -0
- package/src/utils/watcher.js +642 -0
- package/src/utils/watcher.js.map +1 -0
- package/src/tools/angular/compilation/noop-compilation.d.ts +0 -20
- package/src/tools/angular/compilation/noop-compilation.js +0 -27
- package/src/tools/angular/compilation/noop-compilation.js.map +0 -1
- package/src/tools/babel/plugins/add-code-coverage.d.ts +0 -14
- package/src/tools/babel/plugins/add-code-coverage.js +0 -44
- package/src/tools/babel/plugins/add-code-coverage.js.map +0 -1
- package/src/tools/babel/plugins/adjust-static-class-members.d.ts +0 -25
- package/src/tools/babel/plugins/adjust-static-class-members.js +0 -349
- package/src/tools/babel/plugins/adjust-static-class-members.js.map +0 -1
- package/src/tools/babel/plugins/adjust-typescript-enums.d.ts +0 -21
- package/src/tools/babel/plugins/adjust-typescript-enums.js +0 -113
- package/src/tools/babel/plugins/adjust-typescript-enums.js.map +0 -1
- package/src/tools/babel/plugins/elide-angular-metadata.d.ts +0 -23
- package/src/tools/babel/plugins/elide-angular-metadata.js +0 -110
- package/src/tools/babel/plugins/elide-angular-metadata.js.map +0 -1
- package/src/tools/babel/plugins/index.d.ts +0 -11
- package/src/tools/babel/plugins/index.js +0 -22
- package/src/tools/babel/plugins/index.js.map +0 -1
- package/src/tools/babel/plugins/oxc-transform.js.map +0 -1
- package/src/tools/babel/plugins/pure-toplevel-functions.d.ts +0 -13
- package/src/tools/babel/plugins/pure-toplevel-functions.js +0 -128
- package/src/tools/babel/plugins/pure-toplevel-functions.js.map +0 -1
- package/src/tools/babel/plugins/types.d.ts +0 -20
- package/src/tools/babel/typings.d.ts +0 -21
- package/src/tools/esbuild/cache.js.map +0 -1
- package/src/tools/esbuild/i18n-inliner-worker.d.ts +0 -81
- package/src/tools/esbuild/i18n-inliner-worker.js +0 -255
- package/src/tools/esbuild/i18n-inliner-worker.js.map +0 -1
- package/src/tools/esbuild/i18n-inliner.d.ts +0 -58
- package/src/tools/esbuild/i18n-inliner.js +0 -265
- package/src/tools/esbuild/i18n-inliner.js.map +0 -1
- package/src/tools/esbuild/index-html-generator.js.map +0 -1
- package/src/tools/esbuild/javascript-transformer-worker.js +0 -192
- package/src/tools/esbuild/javascript-transformer-worker.js.map +0 -1
- package/src/tools/esbuild/javascript-transformer.js +0 -197
- package/src/tools/esbuild/javascript-transformer.js.map +0 -1
- package/src/tools/esbuild/sqlite-cache-store.js +0 -165
- package/src/tools/esbuild/sqlite-cache-store.js.map +0 -1
- package/src/tools/esbuild/watcher.d.ts +0 -25
- package/src/tools/esbuild/watcher.js +0 -119
- package/src/tools/esbuild/watcher.js.map +0 -1
- package/src/tools/sass/worker.d.ts +0 -63
- package/src/tools/sass/worker.js +0 -202
- package/src/tools/sass/worker.js.map +0 -1
- /package/src/tools/{esbuild/angular → angular/compilation}/diagnostics.d.ts +0 -0
- /package/src/tools/{esbuild/angular → angular/compilation}/diagnostics.js +0 -0
- /package/src/tools/{esbuild/angular → angular/compilation}/diagnostics.js.map +0 -0
- /package/src/{tools/esbuild → utils/cache}/lmdb-cache-store.d.ts +0 -0
- /package/src/{tools/esbuild → utils}/profiling.d.ts +0 -0
|
@@ -0,0 +1,30 @@
|
|
|
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
|
+
* Executes an asynchronous function for each item in an array concurrently up to a specified limit.
|
|
10
|
+
*
|
|
11
|
+
* If any task fails, processing of subsequent items stops and the first encountered error is re-thrown
|
|
12
|
+
* after all currently in-flight tasks have settled.
|
|
13
|
+
*
|
|
14
|
+
* @param items Array of items to process.
|
|
15
|
+
* @param limit Maximum number of concurrent tasks in flight.
|
|
16
|
+
* @param fn Async task function.
|
|
17
|
+
*/
|
|
18
|
+
export declare function runConcurrent<T>(items: readonly T[], limit: number, fn: (item: T, index: number) => Promise<void>): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Maps an array asynchronously with a sliding worker pool up to a specified concurrency limit.
|
|
21
|
+
*
|
|
22
|
+
* If any task fails, processing of subsequent items stops and the first encountered error is re-thrown
|
|
23
|
+
* after all currently in-flight tasks have settled.
|
|
24
|
+
*
|
|
25
|
+
* @param items Array of items to map.
|
|
26
|
+
* @param limit Maximum number of concurrent tasks in flight.
|
|
27
|
+
* @param fn Async mapper function.
|
|
28
|
+
* @returns Array of mapped results in the original item order.
|
|
29
|
+
*/
|
|
30
|
+
export declare function mapConcurrent<T, R>(items: readonly T[], limit: number, fn: (item: T, index: number) => Promise<R>): Promise<R[]>;
|
|
@@ -0,0 +1,81 @@
|
|
|
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.runConcurrent = runConcurrent;
|
|
11
|
+
exports.mapConcurrent = mapConcurrent;
|
|
12
|
+
/**
|
|
13
|
+
* Executes an asynchronous function for each item in an array concurrently up to a specified limit.
|
|
14
|
+
*
|
|
15
|
+
* If any task fails, processing of subsequent items stops and the first encountered error is re-thrown
|
|
16
|
+
* after all currently in-flight tasks have settled.
|
|
17
|
+
*
|
|
18
|
+
* @param items Array of items to process.
|
|
19
|
+
* @param limit Maximum number of concurrent tasks in flight.
|
|
20
|
+
* @param fn Async task function.
|
|
21
|
+
*/
|
|
22
|
+
async function runConcurrent(items, limit, fn) {
|
|
23
|
+
if (items.length === 0) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
let index = 0;
|
|
27
|
+
let firstError;
|
|
28
|
+
const concurrency = Math.min(Math.max(1, Math.floor(limit) || 1), items.length);
|
|
29
|
+
const workers = Array.from({ length: concurrency }, async () => {
|
|
30
|
+
while (!firstError && index < items.length) {
|
|
31
|
+
const i = index++;
|
|
32
|
+
try {
|
|
33
|
+
await fn(items[i], i);
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
firstError ??= error;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
await Promise.allSettled(workers);
|
|
41
|
+
if (firstError) {
|
|
42
|
+
throw firstError;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Maps an array asynchronously with a sliding worker pool up to a specified concurrency limit.
|
|
47
|
+
*
|
|
48
|
+
* If any task fails, processing of subsequent items stops and the first encountered error is re-thrown
|
|
49
|
+
* after all currently in-flight tasks have settled.
|
|
50
|
+
*
|
|
51
|
+
* @param items Array of items to map.
|
|
52
|
+
* @param limit Maximum number of concurrent tasks in flight.
|
|
53
|
+
* @param fn Async mapper function.
|
|
54
|
+
* @returns Array of mapped results in the original item order.
|
|
55
|
+
*/
|
|
56
|
+
async function mapConcurrent(items, limit, fn) {
|
|
57
|
+
if (items.length === 0) {
|
|
58
|
+
return [];
|
|
59
|
+
}
|
|
60
|
+
const results = new Array(items.length);
|
|
61
|
+
let index = 0;
|
|
62
|
+
let firstError;
|
|
63
|
+
const concurrency = Math.min(Math.max(1, Math.floor(limit) || 1), items.length);
|
|
64
|
+
const workers = Array.from({ length: concurrency }, async () => {
|
|
65
|
+
while (!firstError && index < items.length) {
|
|
66
|
+
const i = index++;
|
|
67
|
+
try {
|
|
68
|
+
results[i] = await fn(items[i], i);
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
firstError ??= error;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
await Promise.allSettled(workers);
|
|
76
|
+
if (firstError) {
|
|
77
|
+
throw firstError;
|
|
78
|
+
}
|
|
79
|
+
return results;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=concurrency.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"concurrency.js","sourceRoot":"","sources":["concurrency.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAYH,sCA6BC;AAaD,sCAgCC;AApFD;;;;;;;;;GASG;AACI,KAAK,UAAU,aAAa,CACjC,KAAmB,EACnB,KAAa,EACb,EAA6C;IAE7C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,UAAmB,CAAC;IAExB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAChF,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,KAAK,IAAI,EAAE;QAC7D,OAAO,CAAC,UAAU,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,KAAK,EAAE,CAAC;YAClB,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACxB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,UAAU,KAAK,KAAK,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAElC,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,UAAU,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACI,KAAK,UAAU,aAAa,CACjC,KAAmB,EACnB,KAAa,EACb,EAA0C;IAE1C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,UAAmB,CAAC;IAExB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAChF,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,KAAK,IAAI,EAAE;QAC7D,OAAO,CAAC,UAAU,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,KAAK,EAAE,CAAC;YAClB,IAAI,CAAC;gBACH,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACrC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,UAAU,KAAK,KAAK,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAElC,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,UAAU,CAAC;IACnB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -25,11 +25,33 @@ export declare const allowMinify: boolean;
|
|
|
25
25
|
* This is useful for debugging and testing scenarios.
|
|
26
26
|
*/
|
|
27
27
|
export declare const useRolldownChunks: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Whether the maximum number of workers was explicitly configured via the
|
|
30
|
+
* `NG_BUILD_MAX_WORKERS` environment variable.
|
|
31
|
+
*/
|
|
32
|
+
export declare const hasCustomMaxWorkers: boolean;
|
|
28
33
|
/**
|
|
29
34
|
* The maximum number of workers to use for parallel processing.
|
|
30
35
|
* This can be controlled by the `NG_BUILD_MAX_WORKERS` environment variable.
|
|
36
|
+
* When not set, defaults to available parallelism minus one to ensure the main thread is not starved.
|
|
31
37
|
*/
|
|
32
38
|
export declare const maxWorkers: number;
|
|
39
|
+
/**
|
|
40
|
+
* The maximum number of workers to use for JavaScript transformations during bundling.
|
|
41
|
+
* Transformation tasks are short-lived, and esbuild concurrently utilizes all CPU cores
|
|
42
|
+
* for bundling. To prevent CPU starvation and thread startup overhead, concurrency is
|
|
43
|
+
* budgeted to a fraction of available cores, capped at 6, unless overridden by
|
|
44
|
+
* `NG_BUILD_MAX_WORKERS`.
|
|
45
|
+
*/
|
|
46
|
+
export declare const maxTransformWorkers: number;
|
|
47
|
+
/**
|
|
48
|
+
* The maximum number of workers to use for i18n translation inlining.
|
|
49
|
+
* Translation inlining and sourcemap remapping are CPU- and memory-intensive operations.
|
|
50
|
+
* To prevent thread oversubscription, memory allocator lock contention, and high-core
|
|
51
|
+
* performance degradation, concurrency is capped at 8 unless overridden by
|
|
52
|
+
* `NG_BUILD_MAX_WORKERS`.
|
|
53
|
+
*/
|
|
54
|
+
export declare const maxInlinerWorkers: number;
|
|
33
55
|
/**
|
|
34
56
|
* When `NG_BUILD_PARALLEL_TS` is set to `0` or `false`, parallel TypeScript compilation is disabled.
|
|
35
57
|
*/
|
|
@@ -63,6 +85,18 @@ export declare const useComponentTemplateHmr: boolean;
|
|
|
63
85
|
* When `NG_BUILD_PARTIAL_SSR` is enabled, a partial server-side rendering build will be performed.
|
|
64
86
|
*/
|
|
65
87
|
export declare const usePartialSsrBuild: boolean;
|
|
88
|
+
/**
|
|
89
|
+
* When `NG_BUILD_BABEL_LINKER` is enabled (`1` or `true`), the Babel-based
|
|
90
|
+
* Angular Linker (`@angular/compiler-cli/linker/babel`) will be used instead of the
|
|
91
|
+
* default OXC in-place linker.
|
|
92
|
+
*/
|
|
93
|
+
export declare const useBabelLinker: boolean;
|
|
94
|
+
/**
|
|
95
|
+
* When `NG_BUILD_SASS_EMBEDDED` is set to `0` or `false`, or when running within a
|
|
96
|
+
* WebContainer environment, the native embedded Sass compiler is disabled
|
|
97
|
+
* and the pure-JavaScript Sass compiler is used instead.
|
|
98
|
+
*/
|
|
99
|
+
export declare const useSassEmbedded: boolean;
|
|
66
100
|
export declare const bazelEsbuildPluginPath: string | undefined;
|
|
67
101
|
/**
|
|
68
102
|
* The persistent cache store configuration to use.
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* found in the LICENSE file at https://angular.dev/license
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.persistentCacheStoreSetting = exports.bazelEsbuildPluginPath = exports.usePartialSsrBuild = exports.useComponentTemplateHmr = exports.useComponentStyleHmr = exports.optimizeChunksThreshold = exports.useJSONBuildLogs = exports.useTypeChecking = exports.shouldWatchRoot = exports.debugPerformance = exports.useParallelTs = exports.maxWorkers = exports.useRolldownChunks = exports.allowMinify = exports.shouldBeautify = exports.allowMangle = void 0;
|
|
10
|
+
exports.persistentCacheStoreSetting = exports.bazelEsbuildPluginPath = exports.useSassEmbedded = exports.useBabelLinker = exports.usePartialSsrBuild = exports.useComponentTemplateHmr = exports.useComponentStyleHmr = exports.optimizeChunksThreshold = exports.useJSONBuildLogs = exports.useTypeChecking = exports.shouldWatchRoot = exports.debugPerformance = exports.useParallelTs = exports.maxInlinerWorkers = exports.maxTransformWorkers = exports.maxWorkers = exports.hasCustomMaxWorkers = exports.useRolldownChunks = exports.allowMinify = exports.shouldBeautify = exports.allowMangle = void 0;
|
|
11
11
|
const node_os_1 = require("node:os");
|
|
12
12
|
/** A set of strings that are considered "truthy" when parsing environment variables. */
|
|
13
13
|
const TRUTHY_VALUES = new Set(['1', 'true']);
|
|
@@ -94,23 +94,41 @@ exports.allowMinify = debugOptimize.minify;
|
|
|
94
94
|
* This is useful for debugging and testing scenarios.
|
|
95
95
|
*/
|
|
96
96
|
exports.useRolldownChunks = parseTristate(process.env['NG_BUILD_CHUNKS_ROLLDOWN']) ?? true;
|
|
97
|
+
const maxWorkersVariable = process.env['NG_BUILD_MAX_WORKERS'];
|
|
98
|
+
let customMaxWorkers;
|
|
99
|
+
if (isPresent(maxWorkersVariable)) {
|
|
100
|
+
const parsed = +maxWorkersVariable;
|
|
101
|
+
if (Number.isInteger(parsed) && parsed >= 1) {
|
|
102
|
+
customMaxWorkers = parsed;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
97
105
|
/**
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
*
|
|
101
|
-
* @see https://github.com/nodejs/node/issues/28762
|
|
102
|
-
* @see https://github.com/webpack-contrib/terser-webpack-plugin/issues/143
|
|
103
|
-
* @see https://ithub.com/angular/angular-cli/issues/16860#issuecomment-588828079
|
|
104
|
-
*
|
|
106
|
+
* Whether the maximum number of workers was explicitly configured via the
|
|
107
|
+
* `NG_BUILD_MAX_WORKERS` environment variable.
|
|
105
108
|
*/
|
|
106
|
-
|
|
109
|
+
exports.hasCustomMaxWorkers = customMaxWorkers !== undefined;
|
|
107
110
|
/**
|
|
108
111
|
* The maximum number of workers to use for parallel processing.
|
|
109
112
|
* This can be controlled by the `NG_BUILD_MAX_WORKERS` environment variable.
|
|
113
|
+
* When not set, defaults to available parallelism minus one to ensure the main thread is not starved.
|
|
114
|
+
*/
|
|
115
|
+
exports.maxWorkers = customMaxWorkers ?? Math.max((0, node_os_1.availableParallelism)() - 1, 1);
|
|
116
|
+
/**
|
|
117
|
+
* The maximum number of workers to use for JavaScript transformations during bundling.
|
|
118
|
+
* Transformation tasks are short-lived, and esbuild concurrently utilizes all CPU cores
|
|
119
|
+
* for bundling. To prevent CPU starvation and thread startup overhead, concurrency is
|
|
120
|
+
* budgeted to a fraction of available cores, capped at 6, unless overridden by
|
|
121
|
+
* `NG_BUILD_MAX_WORKERS`.
|
|
122
|
+
*/
|
|
123
|
+
exports.maxTransformWorkers = customMaxWorkers ?? Math.max(1, Math.min(6, Math.floor((0, node_os_1.availableParallelism)() / 4)));
|
|
124
|
+
/**
|
|
125
|
+
* The maximum number of workers to use for i18n translation inlining.
|
|
126
|
+
* Translation inlining and sourcemap remapping are CPU- and memory-intensive operations.
|
|
127
|
+
* To prevent thread oversubscription, memory allocator lock contention, and high-core
|
|
128
|
+
* performance degradation, concurrency is capped at 8 unless overridden by
|
|
129
|
+
* `NG_BUILD_MAX_WORKERS`.
|
|
110
130
|
*/
|
|
111
|
-
exports.
|
|
112
|
-
? +maxWorkersVariable
|
|
113
|
-
: Math.min(4, Math.max((0, node_os_1.availableParallelism)() - 1, 1));
|
|
131
|
+
exports.maxInlinerWorkers = customMaxWorkers ?? Math.min(8, (0, node_os_1.availableParallelism)());
|
|
114
132
|
/**
|
|
115
133
|
* When `NG_BUILD_PARALLEL_TS` is set to `0` or `false`, parallel TypeScript compilation is disabled.
|
|
116
134
|
*/
|
|
@@ -168,6 +186,18 @@ exports.useComponentTemplateHmr = parseTristate(process.env['NG_HMR_TEMPLATES'])
|
|
|
168
186
|
* When `NG_BUILD_PARTIAL_SSR` is enabled, a partial server-side rendering build will be performed.
|
|
169
187
|
*/
|
|
170
188
|
exports.usePartialSsrBuild = parseTristate(process.env['NG_BUILD_PARTIAL_SSR']) === true;
|
|
189
|
+
/**
|
|
190
|
+
* When `NG_BUILD_BABEL_LINKER` is enabled (`1` or `true`), the Babel-based
|
|
191
|
+
* Angular Linker (`@angular/compiler-cli/linker/babel`) will be used instead of the
|
|
192
|
+
* default OXC in-place linker.
|
|
193
|
+
*/
|
|
194
|
+
exports.useBabelLinker = parseTristate(process.env['NG_BUILD_BABEL_LINKER']) === true;
|
|
195
|
+
/**
|
|
196
|
+
* When `NG_BUILD_SASS_EMBEDDED` is set to `0` or `false`, or when running within a
|
|
197
|
+
* WebContainer environment, the native embedded Sass compiler is disabled
|
|
198
|
+
* and the pure-JavaScript Sass compiler is used instead.
|
|
199
|
+
*/
|
|
200
|
+
exports.useSassEmbedded = !process.versions.webcontainer && parseTristate(process.env['NG_BUILD_SASS_EMBEDDED']) !== false;
|
|
171
201
|
const bazelBinDirectory = process.env['BAZEL_BINDIR'];
|
|
172
202
|
const bazelExecRoot = process.env['JS_BINARY__EXECROOT'];
|
|
173
203
|
exports.bazelEsbuildPluginPath = bazelBinDirectory && bazelExecRoot
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment-options.js","sourceRoot":"","sources":["environment-options.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,qCAA+C;AAE/C,wFAAwF;AACxF,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;AAE7C,uFAAuF;AACvF,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;AAE7C;;;;GAIG;AACH,SAAS,SAAS,CAAC,QAA4B;IAC7C,OAAO,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,EAAE,CAAC;AACzD,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAC,QAA4B;IACjD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,+EAA+E;IAC/E,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,4BAA4B;AAC5B,MAAM,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;AACrE,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE;IAC1B,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,aAAa,CAAC,qBAAqB,CAAC,KAAK,KAAK,EAAE,CAAC;QACxF,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,KAAK;SAChB,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG;QACjB,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,IAAI;KACf,CAAC;IAEF,IAAI,aAAa,CAAC,qBAAqB,CAAC,KAAK,IAAI,EAAE,CAAC;QAClD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACpD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;YAClC,KAAK,QAAQ;gBACX,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;gBACzB,MAAM;YACR,KAAK,QAAQ;gBACX,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;gBACzB,MAAM;YACR,KAAK,UAAU;gBACb,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;gBAC3B,MAAM;QACV,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC,EAAE,CAAC;AAEL;;;GAGG;AACU,QAAA,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC;AAEjG;;;GAGG;AACU,QAAA,cAAc,GAAG,aAAa,CAAC,QAAQ,CAAC;AAErD;;;GAGG;AACU,QAAA,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC;AAEhD;;;GAGG;AACU,QAAA,iBAAiB,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,IAAI,IAAI,CAAC;AAEhG
|
|
1
|
+
{"version":3,"file":"environment-options.js","sourceRoot":"","sources":["environment-options.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
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
|
+
* Initializes the xxHash WASM instance early to ensure synchronous hashing uses xxHash.
|
|
10
|
+
*/
|
|
11
|
+
export declare function initializeHash(): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* Calculates a fast 64-bit non-cryptographic hash of the provided content.
|
|
14
|
+
* Suitable for cache keys, ETags, and change detection.
|
|
15
|
+
*/
|
|
16
|
+
export declare function calculateHash(data: string | Uint8Array): string;
|
|
17
|
+
export interface ContentHasher {
|
|
18
|
+
update(data: string | Uint8Array): ContentHasher;
|
|
19
|
+
digest(): string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Creates a streaming 64-bit non-cryptographic content hasher.
|
|
23
|
+
*/
|
|
24
|
+
export declare function createContentHash(): ContentHasher;
|
|
@@ -0,0 +1,94 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
43
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
44
|
+
};
|
|
45
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
|
+
exports.initializeHash = initializeHash;
|
|
47
|
+
exports.calculateHash = calculateHash;
|
|
48
|
+
exports.createContentHash = createContentHash;
|
|
49
|
+
const node_assert_1 = __importDefault(require("node:assert"));
|
|
50
|
+
let xxhashInstance;
|
|
51
|
+
let xxhashPromise;
|
|
52
|
+
/**
|
|
53
|
+
* Initializes the xxHash WASM instance early to ensure synchronous hashing uses xxHash.
|
|
54
|
+
*/
|
|
55
|
+
async function initializeHash() {
|
|
56
|
+
if (xxhashInstance) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
xxhashPromise ??= Promise.resolve().then(() => __importStar(require('xxhash-wasm'))).then((m) => m.default());
|
|
60
|
+
xxhashInstance = await xxhashPromise;
|
|
61
|
+
}
|
|
62
|
+
function getXxhash() {
|
|
63
|
+
(0, node_assert_1.default)(xxhashInstance, 'Hash utility must be initialized by awaiting `initializeHash()` before use.');
|
|
64
|
+
return xxhashInstance;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Calculates a fast 64-bit non-cryptographic hash of the provided content.
|
|
68
|
+
* Suitable for cache keys, ETags, and change detection.
|
|
69
|
+
*/
|
|
70
|
+
function calculateHash(data) {
|
|
71
|
+
const instance = getXxhash();
|
|
72
|
+
if (typeof data === 'string') {
|
|
73
|
+
return instance.h64ToString(data);
|
|
74
|
+
}
|
|
75
|
+
return instance.h64Raw(data).toString(16).padStart(16, '0');
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Creates a streaming 64-bit non-cryptographic content hasher.
|
|
79
|
+
*/
|
|
80
|
+
function createContentHash() {
|
|
81
|
+
const instance = getXxhash();
|
|
82
|
+
const hasher = instance.create64();
|
|
83
|
+
const contentHasher = {
|
|
84
|
+
update(data) {
|
|
85
|
+
hasher.update(data);
|
|
86
|
+
return contentHasher;
|
|
87
|
+
},
|
|
88
|
+
digest() {
|
|
89
|
+
return hasher.digest().toString(16).padStart(16, '0');
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
return contentHasher;
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=hash.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash.js","sourceRoot":"","sources":["hash.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWH,wCAOC;AAeD,sCAQC;AAUD,8CAgBC;AAjED,8DAAiC;AAGjC,IAAI,cAAqC,CAAC;AAC1C,IAAI,aAA6C,CAAC;AAElD;;GAEG;AACI,KAAK,UAAU,cAAc;IAClC,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO;IACT,CAAC;IAED,aAAa,KAAK,kDAAO,aAAa,IAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACjE,cAAc,GAAG,MAAM,aAAa,CAAC;AACvC,CAAC;AAED,SAAS,SAAS;IAChB,IAAA,qBAAM,EACJ,cAAc,EACd,6EAA6E,CAC9E,CAAC;IAEF,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAAC,IAAyB;IACrD,MAAM,QAAQ,GAAG,SAAS,EAAE,CAAC;IAE7B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAC9D,CAAC;AAOD;;GAEG;AACH,SAAgB,iBAAiB;IAC/B,MAAM,QAAQ,GAAG,SAAS,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAEnC,MAAM,aAAa,GAAkB;QACnC,MAAM,CAAC,IAAyB;YAC9B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAEpB,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,MAAM;YACJ,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QACxD,CAAC;KACF,CAAC;IAEF,OAAO,aAAa,CAAC;AACvB,CAAC"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* Use of this source code is governed by an MIT-style license that can be
|
|
6
6
|
* found in the LICENSE file at https://angular.dev/license
|
|
7
7
|
*/
|
|
8
|
+
import type { ɵParsedTranslation } from '@angular/localize';
|
|
8
9
|
import type { TranslationLoader } from './load-translations';
|
|
9
10
|
export interface LocaleDescription {
|
|
10
11
|
files: {
|
|
@@ -12,7 +13,7 @@ export interface LocaleDescription {
|
|
|
12
13
|
integrity?: string;
|
|
13
14
|
format?: string;
|
|
14
15
|
}[];
|
|
15
|
-
translation?: Record<string,
|
|
16
|
+
translation?: Record<string, ɵParsedTranslation>;
|
|
16
17
|
dataPath?: string;
|
|
17
18
|
baseHref?: string;
|
|
18
19
|
subPath: string;
|
|
@@ -24,6 +25,7 @@ export interface I18nOptions {
|
|
|
24
25
|
flatOutput?: boolean;
|
|
25
26
|
readonly shouldInline: boolean;
|
|
26
27
|
hasDefinedSourceLocale?: boolean;
|
|
28
|
+
localizeVersion?: string;
|
|
27
29
|
}
|
|
28
30
|
export declare function createI18nOptions(projectMetadata: {
|
|
29
31
|
i18n?: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n-options.js","sourceRoot":"","sources":["i18n-options.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;
|
|
1
|
+
{"version":3,"file":"i18n-options.js","sourceRoot":"","sources":["i18n-options.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,14 @@
|
|
|
5
5
|
* Use of this source code is governed by an MIT-style license that can be
|
|
6
6
|
* found in the LICENSE file at https://angular.dev/license
|
|
7
7
|
*/
|
|
8
|
+
/**
|
|
9
|
+
* Checks whether a particular string is a MIME type associated with JavaScript, according to
|
|
10
|
+
* https://html.spec.whatwg.org/multipage/scripting.html#javascript-mime-type
|
|
11
|
+
*
|
|
12
|
+
* @param mimeType a string that may be a MIME type
|
|
13
|
+
* @returns whether the string is a MIME type that is associated with JavaScript
|
|
14
|
+
*/
|
|
15
|
+
export declare function isJavascriptMimeType(mimeType: string): boolean;
|
|
8
16
|
/**
|
|
9
17
|
* Calculates a CSP compatible hash of an inline script.
|
|
10
18
|
* @param scriptText Text between opening and closing script tag. Has to
|
|
@@ -40,6 +40,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
40
40
|
};
|
|
41
41
|
})();
|
|
42
42
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
+
exports.isJavascriptMimeType = isJavascriptMimeType;
|
|
43
44
|
exports.hashTextContent = hashTextContent;
|
|
44
45
|
exports.autoCsp = autoCsp;
|
|
45
46
|
const crypto = __importStar(require("node:crypto"));
|
|
@@ -57,15 +58,38 @@ const HASH_FUNCTION = 'sha256';
|
|
|
57
58
|
function getScriptAttributeValue(tag, attrName) {
|
|
58
59
|
return tag.attrs.find((attr) => attr.name === attrName)?.value;
|
|
59
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* All MIME types associated with JavaScript according to the HTML specification:
|
|
63
|
+
* https://html.spec.whatwg.org/multipage/scripting.html#javascript-mime-type
|
|
64
|
+
*/
|
|
65
|
+
const JAVASCRIPT_MIME_TYPES = new Set([
|
|
66
|
+
'application/ecmascript',
|
|
67
|
+
'application/javascript',
|
|
68
|
+
'application/x-ecmascript',
|
|
69
|
+
'application/x-javascript',
|
|
70
|
+
'text/ecmascript',
|
|
71
|
+
'text/javascript',
|
|
72
|
+
'text/javascript1.0',
|
|
73
|
+
'text/javascript1.1',
|
|
74
|
+
'text/javascript1.2',
|
|
75
|
+
'text/javascript1.3',
|
|
76
|
+
'text/javascript1.4',
|
|
77
|
+
'text/javascript1.5',
|
|
78
|
+
'text/jscript',
|
|
79
|
+
'text/livescript',
|
|
80
|
+
'text/x-ecmascript',
|
|
81
|
+
'text/x-javascript',
|
|
82
|
+
]);
|
|
60
83
|
/**
|
|
61
84
|
* Checks whether a particular string is a MIME type associated with JavaScript, according to
|
|
62
|
-
* https://
|
|
85
|
+
* https://html.spec.whatwg.org/multipage/scripting.html#javascript-mime-type
|
|
63
86
|
*
|
|
64
87
|
* @param mimeType a string that may be a MIME type
|
|
65
88
|
* @returns whether the string is a MIME type that is associated with JavaScript
|
|
66
89
|
*/
|
|
67
90
|
function isJavascriptMimeType(mimeType) {
|
|
68
|
-
|
|
91
|
+
const [essence] = mimeType.split(';', 1);
|
|
92
|
+
return JAVASCRIPT_MIME_TYPES.has(essence.trim().toLowerCase());
|
|
69
93
|
}
|
|
70
94
|
/**
|
|
71
95
|
* Which of the type attributes on the script tag we should try passing along
|
|
@@ -74,7 +98,10 @@ function isJavascriptMimeType(mimeType) {
|
|
|
74
98
|
* @returns whether to add the script tag to the dynamically loaded script tag
|
|
75
99
|
*/
|
|
76
100
|
function shouldDynamicallyLoadScriptTagBasedOnType(scriptType) {
|
|
77
|
-
|
|
101
|
+
if (!scriptType) {
|
|
102
|
+
return true;
|
|
103
|
+
}
|
|
104
|
+
return scriptType.trim().toLowerCase() === 'module' || isJavascriptMimeType(scriptType);
|
|
78
105
|
}
|
|
79
106
|
/**
|
|
80
107
|
* Calculates a CSP compatible hash of an inline script.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-csp.js","sourceRoot":"","sources":["auto-csp.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"auto-csp.js","sourceRoot":"","sources":["auto-csp.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,6 @@ export type HintMode = 'prefetch' | 'preload' | 'modulepreload' | 'preconnect' |
|
|
|
12
12
|
export interface IndexHtmlGeneratorProcessOptions {
|
|
13
13
|
lang: string | undefined;
|
|
14
14
|
baseHref: string | undefined;
|
|
15
|
-
outputPath: string;
|
|
16
15
|
files: FileInfo[];
|
|
17
16
|
hints?: {
|
|
18
17
|
url: string;
|
|
@@ -35,6 +34,7 @@ export interface IndexHtmlGeneratorOptions {
|
|
|
35
34
|
imageDomains?: string[];
|
|
36
35
|
generateDedicatedSSRContent?: boolean;
|
|
37
36
|
autoCsp?: AutoCspOptions;
|
|
37
|
+
outputPath: string;
|
|
38
38
|
/**
|
|
39
39
|
* Integrity metadata for module URLs not directly referenced in the index
|
|
40
40
|
* (typically lazy-loaded chunks). Forwarded to {@link augmentIndexHtml} so
|
|
@@ -32,7 +32,7 @@ class IndexHtmlGenerator {
|
|
|
32
32
|
this.plugins = [augmentIndexHtmlPlugin(this), ...extraCommonPlugins, postTransformPlugin(this)];
|
|
33
33
|
// CSR plugins
|
|
34
34
|
if (options?.optimization?.styles?.inlineCritical) {
|
|
35
|
-
this.csrPlugins.push(inlineCriticalCssPlugin(this
|
|
35
|
+
this.csrPlugins.push(inlineCriticalCssPlugin(this));
|
|
36
36
|
}
|
|
37
37
|
this.csrPlugins.push(addNoncePlugin());
|
|
38
38
|
// SSR plugins
|
|
@@ -103,9 +103,9 @@ class IndexHtmlGenerator {
|
|
|
103
103
|
}
|
|
104
104
|
exports.IndexHtmlGenerator = IndexHtmlGenerator;
|
|
105
105
|
function augmentIndexHtmlPlugin(generator) {
|
|
106
|
-
const { deployUrl, crossOrigin, sri = false, entrypoints, imageDomains, chunksIntegrity, } = generator.options;
|
|
107
|
-
return
|
|
108
|
-
const { lang, baseHref,
|
|
106
|
+
const { deployUrl, crossOrigin, sri = false, entrypoints, imageDomains, chunksIntegrity, outputPath, } = generator.options;
|
|
107
|
+
return (html, options) => {
|
|
108
|
+
const { lang, baseHref, files, hints } = options;
|
|
109
109
|
return (0, augment_index_html_1.augmentIndexHtml)({
|
|
110
110
|
html,
|
|
111
111
|
baseHref,
|
|
@@ -126,16 +126,12 @@ function inlineFontsPlugin({ options }) {
|
|
|
126
126
|
const inlineFontsProcessor = new inline_fonts_1.InlineFontsProcessor({
|
|
127
127
|
minify: options.optimization?.styles.minify,
|
|
128
128
|
});
|
|
129
|
-
return
|
|
129
|
+
return (html) => inlineFontsProcessor.process(html);
|
|
130
130
|
}
|
|
131
|
-
function inlineCriticalCssPlugin(generator
|
|
132
|
-
const
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
readAsset: (filePath) => generator.readAsset(filePath),
|
|
136
|
-
autoCsp,
|
|
137
|
-
});
|
|
138
|
-
return async (html, options) => inlineCriticalCssProcessor.process(html, { outputPath: options.outputPath });
|
|
131
|
+
function inlineCriticalCssPlugin(generator) {
|
|
132
|
+
const { outputPath, deployUrl, optimization } = generator.options;
|
|
133
|
+
const { minify = false } = optimization?.styles ?? {};
|
|
134
|
+
return (html) => (0, inline_critical_css_1.inlineCriticalCss)(html, outputPath, deployUrl, minify, (path) => generator.readAsset(path));
|
|
139
135
|
}
|
|
140
136
|
function addNoncePlugin() {
|
|
141
137
|
return (html) => (0, nonce_1.addNonce)(html);
|