@depup/angular__build 22.1.8-depup.5 → 22.2.0-depup.1
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 +11 -15
- package/builders.json +1 -1
- package/changes.json +17 -33
- package/package.json +36 -51
- 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
|
@@ -1,255 +0,0 @@
|
|
|
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.default = inlineFile;
|
|
47
|
-
exports.inlineCode = inlineCode;
|
|
48
|
-
const remapping_1 = __importDefault(require("@ampproject/remapping"));
|
|
49
|
-
const magic_string_1 = require("magic-string");
|
|
50
|
-
const node_assert_1 = __importDefault(require("node:assert"));
|
|
51
|
-
const node_v8_1 = require("node:v8");
|
|
52
|
-
const node_worker_threads_1 = require("node:worker_threads");
|
|
53
|
-
const oxc_parser_1 = require("oxc-parser");
|
|
54
|
-
// Extract the application files and common options used for inline requests from the Worker context
|
|
55
|
-
const { files, missingTranslation, shouldOptimize } = (node_worker_threads_1.workerData || {});
|
|
56
|
-
/**
|
|
57
|
-
* The translation messages deserialized for the locale most recently requested of this Worker.
|
|
58
|
-
* Locales are inlined one at a time, so retaining only the active locale is enough to avoid
|
|
59
|
-
* deserializing the messages once per file while holding at most one set of messages in memory.
|
|
60
|
-
*/
|
|
61
|
-
let activeTranslation;
|
|
62
|
-
/**
|
|
63
|
-
* Deserializes the translation messages for an inline request, reusing the result for any
|
|
64
|
-
* subsequent request that targets the same locale.
|
|
65
|
-
* @param request An inline request containing the locale and its serialized messages.
|
|
66
|
-
* @returns The translation messages, or undefined if the locale has no translations.
|
|
67
|
-
*/
|
|
68
|
-
function loadTranslation(request) {
|
|
69
|
-
const { locale, translation } = request;
|
|
70
|
-
if (!translation) {
|
|
71
|
-
return undefined;
|
|
72
|
-
}
|
|
73
|
-
if (activeTranslation?.locale !== locale) {
|
|
74
|
-
activeTranslation = {
|
|
75
|
-
locale,
|
|
76
|
-
// Deserializing within the stored promise ensures that concurrent requests for a locale
|
|
77
|
-
// share the one deserialization instead of each performing their own.
|
|
78
|
-
messages: translation
|
|
79
|
-
.arrayBuffer()
|
|
80
|
-
.then((buffer) => (0, node_v8_1.deserialize)(new Uint8Array(buffer))),
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
return activeTranslation.messages;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Inlines the provided locale and translation into a JavaScript file that contains `$localize` usage.
|
|
87
|
-
* This function is the main entry for the Worker's action that is called by the worker pool.
|
|
88
|
-
*
|
|
89
|
-
* @param request An InlineRequest object representing the options for inlining
|
|
90
|
-
* @returns An object containing the inlined file and optional map content.
|
|
91
|
-
*/
|
|
92
|
-
async function inlineFile(request) {
|
|
93
|
-
const data = files.get(request.filename);
|
|
94
|
-
(0, node_assert_1.default)(data !== undefined, `Invalid inline request for file '${request.filename}'.`);
|
|
95
|
-
const code = await data.text();
|
|
96
|
-
const map = await files.get(request.filename + '.map')?.text();
|
|
97
|
-
const result = await transformWithOxc(code, map && JSON.parse(map), request, await loadTranslation(request));
|
|
98
|
-
return {
|
|
99
|
-
file: request.filename,
|
|
100
|
-
code: result.code,
|
|
101
|
-
map: result.map,
|
|
102
|
-
messages: result.diagnostics.messages,
|
|
103
|
-
};
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Inlines the provided locale and translation into JavaScript code that contains `$localize` usage.
|
|
107
|
-
* This function is a secondary entry primarily for use with component HMR update modules.
|
|
108
|
-
*
|
|
109
|
-
* @param request An InlineRequest object representing the options for inlining
|
|
110
|
-
* @returns An object containing the inlined code.
|
|
111
|
-
*/
|
|
112
|
-
async function inlineCode(request) {
|
|
113
|
-
const result = await transformWithOxc(request.code, undefined, request, await loadTranslation(request));
|
|
114
|
-
return {
|
|
115
|
-
output: result.code,
|
|
116
|
-
messages: result.diagnostics.messages,
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Cached instance of the `@angular/localize/tools` module.
|
|
121
|
-
* This is used to remove the need to repeatedly import the module per file translation.
|
|
122
|
-
*/
|
|
123
|
-
let localizeToolsModule;
|
|
124
|
-
/**
|
|
125
|
-
* Attempts to load the `@angular/localize/tools` module containing the functionality to
|
|
126
|
-
* perform the file translations.
|
|
127
|
-
* This module must be dynamically loaded as it is an ESM module and this file is CommonJS.
|
|
128
|
-
*/
|
|
129
|
-
async function loadLocalizeTools() {
|
|
130
|
-
// Load ESM `@angular/localize/tools` using the TypeScript dynamic import workaround.
|
|
131
|
-
// Once TypeScript provides support for keeping the dynamic import this workaround can be
|
|
132
|
-
// changed to a direct dynamic import.
|
|
133
|
-
localizeToolsModule ??= await Promise.resolve().then(() => __importStar(require('@angular/localize/tools')));
|
|
134
|
-
return localizeToolsModule;
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Traverses ESTree AST nodes in post-order (bottom-up) without recursion.
|
|
138
|
-
* Bottom-up traversal ensures that nested `$localize` expressions are transformed and
|
|
139
|
-
* written to MagicString before outer containing templates are evaluated.
|
|
140
|
-
*
|
|
141
|
-
* @param root The root AST node to traverse.
|
|
142
|
-
* @param onExit Callback invoked on each AST node in post-order.
|
|
143
|
-
*/
|
|
144
|
-
function walkAstPostOrder(root, onExit) {
|
|
145
|
-
const traverseStack = [root];
|
|
146
|
-
const postOrderNodes = [];
|
|
147
|
-
while (traverseStack.length > 0) {
|
|
148
|
-
const current = traverseStack.pop();
|
|
149
|
-
if (!current) {
|
|
150
|
-
continue;
|
|
151
|
-
}
|
|
152
|
-
postOrderNodes.push(current);
|
|
153
|
-
const keys = oxc_parser_1.visitorKeys[current.type];
|
|
154
|
-
if (!keys) {
|
|
155
|
-
continue;
|
|
156
|
-
}
|
|
157
|
-
for (let i = 0; i < keys.length; i++) {
|
|
158
|
-
const child = current[keys[i]];
|
|
159
|
-
if (!child) {
|
|
160
|
-
continue;
|
|
161
|
-
}
|
|
162
|
-
if (Array.isArray(child)) {
|
|
163
|
-
for (const item of child) {
|
|
164
|
-
if (item) {
|
|
165
|
-
traverseStack.push(item);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
else {
|
|
170
|
-
traverseStack.push(child);
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
// Process collected nodes in reverse order to achieve bottom-up (post-order) traversal
|
|
175
|
-
for (let i = postOrderNodes.length - 1; i >= 0; i--) {
|
|
176
|
-
onExit(postOrderNodes[i]);
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* Transforms a JavaScript file using OXC and Magic-String to inline the request locale and translation.
|
|
181
|
-
* @param code A string containing the JavaScript code to transform.
|
|
182
|
-
* @param map A sourcemap object for the provided JavaScript code.
|
|
183
|
-
* @param options The inline request options to use.
|
|
184
|
-
* @param translation The translation messages to inline, or undefined for an untranslated locale.
|
|
185
|
-
* @returns An object containing the code, map, and diagnostics from the transformation.
|
|
186
|
-
*/
|
|
187
|
-
async function transformWithOxc(code, map, options, translation) {
|
|
188
|
-
const { program } = (0, oxc_parser_1.parseSync)(options.filename, code, {
|
|
189
|
-
sourceType: 'unambiguous',
|
|
190
|
-
});
|
|
191
|
-
if (!program) {
|
|
192
|
-
throw new Error(`Unknown error occurred parsing file "${options.filename}" with OXC.`);
|
|
193
|
-
}
|
|
194
|
-
const magicString = new magic_string_1.MagicString(code);
|
|
195
|
-
const { Diagnostics, translate } = await loadLocalizeTools();
|
|
196
|
-
const diagnostics = new Diagnostics();
|
|
197
|
-
walkAstPostOrder(program, (node) => {
|
|
198
|
-
if (node.type === 'Literal') {
|
|
199
|
-
if (typeof node.value === 'string' && node.value === '___NG_LOCALE_INSERT___') {
|
|
200
|
-
magicString.overwrite(node.start, node.end, JSON.stringify(options.locale));
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
else if (node.type === 'TaggedTemplateExpression') {
|
|
204
|
-
if (node.tag.type === 'Identifier' && node.tag.name === '$localize') {
|
|
205
|
-
const cooked = node.quasi.quasis.map((q) => q.value.cooked);
|
|
206
|
-
const raw = node.quasi.quasis.map((q) => q.value.raw);
|
|
207
|
-
const messageParts = Object.assign(cooked, { raw });
|
|
208
|
-
const [translatedParts, translatedSubstitutions] = translate(diagnostics, translation || {}, messageParts, node.quasi.expressions.map((_, index) => index), translation === undefined ? 'ignore' : missingTranslation);
|
|
209
|
-
// Reconstruct the new template/string literal replacement
|
|
210
|
-
let replacement;
|
|
211
|
-
if (translatedSubstitutions.length === 0) {
|
|
212
|
-
replacement = JSON.stringify(translatedParts[0]);
|
|
213
|
-
}
|
|
214
|
-
else {
|
|
215
|
-
replacement = '`';
|
|
216
|
-
for (let i = 0; i < translatedParts.length; i++) {
|
|
217
|
-
const escapedPart = JSON.stringify(translatedParts[i])
|
|
218
|
-
.slice(1, -1)
|
|
219
|
-
.replace(/\\"/g, '"')
|
|
220
|
-
.replace(/`/g, '\\`')
|
|
221
|
-
.replace(/\$\{/g, '\\${');
|
|
222
|
-
replacement += escapedPart;
|
|
223
|
-
if (i < translatedSubstitutions.length) {
|
|
224
|
-
const originalIndex = translatedSubstitutions[i];
|
|
225
|
-
const exprNode = node.quasi.expressions[originalIndex];
|
|
226
|
-
const exprCode = magicString.slice(exprNode.start, exprNode.end);
|
|
227
|
-
replacement += '${' + exprCode + '}';
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
replacement += '`';
|
|
231
|
-
}
|
|
232
|
-
magicString.overwrite(node.start, node.end, replacement);
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
});
|
|
236
|
-
const outputCode = magicString.toString();
|
|
237
|
-
let outputMap;
|
|
238
|
-
if (map && magicString.hasChanged()) {
|
|
239
|
-
// A decoded map is generated here rather than an encoded one because remapping decodes its
|
|
240
|
-
// inputs. Encoding the mappings only for remapping to immediately decode them again doubles
|
|
241
|
-
// the peak memory of the largest structure involved in inlining a file.
|
|
242
|
-
const rawMap = magicString.generateDecodedMap({
|
|
243
|
-
source: options.filename,
|
|
244
|
-
includeContent: true,
|
|
245
|
-
hires: 'boundary',
|
|
246
|
-
});
|
|
247
|
-
outputMap = (0, remapping_1.default)([{ ...rawMap, version: 3 }, map], () => null);
|
|
248
|
-
}
|
|
249
|
-
return {
|
|
250
|
-
code: outputCode,
|
|
251
|
-
map: outputMap && JSON.stringify(outputMap),
|
|
252
|
-
diagnostics,
|
|
253
|
-
};
|
|
254
|
-
}
|
|
255
|
-
//# sourceMappingURL=i18n-inliner-worker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"i18n-inliner-worker.js","sourceRoot":"","sources":["i18n-inliner-worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.dev/license
|
|
7
|
-
*/
|
|
8
|
-
import { type BuildOutputFile } from './bundler-files';
|
|
9
|
-
/**
|
|
10
|
-
* Inlining options that should apply to all transformed code.
|
|
11
|
-
*/
|
|
12
|
-
export interface I18nInlinerOptions {
|
|
13
|
-
missingTranslation: 'error' | 'warning' | 'ignore';
|
|
14
|
-
outputFiles: BuildOutputFile[];
|
|
15
|
-
shouldOptimize?: boolean;
|
|
16
|
-
persistentCachePath?: string;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* A class that performs i18n translation inlining of JavaScript code.
|
|
20
|
-
* A worker pool is used to distribute the transformation actions and allow
|
|
21
|
-
* parallel processing. Inlining is only performed on code that contains the
|
|
22
|
-
* localize function (`$localize`).
|
|
23
|
-
*/
|
|
24
|
-
export declare class I18nInliner {
|
|
25
|
-
#private;
|
|
26
|
-
private readonly options;
|
|
27
|
-
constructor(options: I18nInlinerOptions, maxThreads?: number);
|
|
28
|
-
/**
|
|
29
|
-
* Performs inlining of translations for the provided locale and translations. The files that
|
|
30
|
-
* are processed originate from the files passed to the class constructor and filter by presence
|
|
31
|
-
* of the localize function keyword.
|
|
32
|
-
* @param locale The string representing the locale to inline.
|
|
33
|
-
* @param translation The translation messages to use when inlining.
|
|
34
|
-
* @returns A promise that resolves to an array of OutputFiles representing a translated result.
|
|
35
|
-
*/
|
|
36
|
-
inlineForLocale(locale: string, translation: Record<string, unknown> | undefined): Promise<{
|
|
37
|
-
outputFiles: BuildOutputFile[];
|
|
38
|
-
errors: string[];
|
|
39
|
-
warnings: string[];
|
|
40
|
-
}>;
|
|
41
|
-
inlineTemplateUpdate(locale: string, translation: Record<string, unknown> | undefined, templateCode: string, templateId: string): Promise<{
|
|
42
|
-
code: string;
|
|
43
|
-
errors: string[];
|
|
44
|
-
warnings: string[];
|
|
45
|
-
}>;
|
|
46
|
-
/**
|
|
47
|
-
* Stops all active transformation tasks and shuts down all workers.
|
|
48
|
-
* @returns A void promise that resolves when closing is complete.
|
|
49
|
-
*/
|
|
50
|
-
close(): Promise<void>;
|
|
51
|
-
/**
|
|
52
|
-
* Initializes the cache for storing translated bundles.
|
|
53
|
-
* If the cache is already initialized, it does nothing.
|
|
54
|
-
*
|
|
55
|
-
* @returns A promise that resolves once the cache initialization process is complete.
|
|
56
|
-
*/
|
|
57
|
-
private initCache;
|
|
58
|
-
}
|
|
@@ -1,265 +0,0 @@
|
|
|
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.I18nInliner = void 0;
|
|
14
|
-
const node_assert_1 = __importDefault(require("node:assert"));
|
|
15
|
-
const node_crypto_1 = require("node:crypto");
|
|
16
|
-
const node_path_1 = require("node:path");
|
|
17
|
-
const node_v8_1 = require("node:v8");
|
|
18
|
-
const worker_pool_1 = require("../../utils/worker-pool");
|
|
19
|
-
const bundler_files_1 = require("./bundler-files");
|
|
20
|
-
const cache_1 = require("./cache");
|
|
21
|
-
/**
|
|
22
|
-
* A keyword used to indicate if a JavaScript file may require inlining of translations.
|
|
23
|
-
* This keyword is used to avoid processing files that would not otherwise need i18n processing.
|
|
24
|
-
*/
|
|
25
|
-
const LOCALIZE_KEYWORD = '$localize';
|
|
26
|
-
/**
|
|
27
|
-
* Serializes the translation messages for a locale for transfer to an inliner Worker.
|
|
28
|
-
*
|
|
29
|
-
* A Blob is used because cloning one shares its data by reference, whereas sending the messages
|
|
30
|
-
* themselves copies them into a Worker for every request that carries them. A locale can contain
|
|
31
|
-
* tens of thousands of messages, which makes that copy the dominant cost of inlining a locale.
|
|
32
|
-
*
|
|
33
|
-
* @param translation The translation messages for a locale, if the locale has any.
|
|
34
|
-
* @returns A Blob containing the serialized messages, or undefined if the locale has none.
|
|
35
|
-
*/
|
|
36
|
-
function serializeTranslation(translation) {
|
|
37
|
-
return translation && new Blob([(0, node_v8_1.serialize)(translation)]);
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* A class that performs i18n translation inlining of JavaScript code.
|
|
41
|
-
* A worker pool is used to distribute the transformation actions and allow
|
|
42
|
-
* parallel processing. Inlining is only performed on code that contains the
|
|
43
|
-
* localize function (`$localize`).
|
|
44
|
-
*/
|
|
45
|
-
class I18nInliner {
|
|
46
|
-
options;
|
|
47
|
-
#cacheInitFailed = false;
|
|
48
|
-
#workerPool;
|
|
49
|
-
#cache;
|
|
50
|
-
#localizeFiles;
|
|
51
|
-
#unmodifiedFiles;
|
|
52
|
-
constructor(options, maxThreads) {
|
|
53
|
-
this.options = options;
|
|
54
|
-
this.#unmodifiedFiles = [];
|
|
55
|
-
const { outputFiles, shouldOptimize, missingTranslation } = options;
|
|
56
|
-
const files = new Map();
|
|
57
|
-
const pendingMaps = [];
|
|
58
|
-
for (const file of outputFiles) {
|
|
59
|
-
if (file.type === bundler_files_1.BuildOutputFileType.Root || file.type === bundler_files_1.BuildOutputFileType.ServerRoot) {
|
|
60
|
-
// Skip also the server entry-point.
|
|
61
|
-
// Skip stats and similar files.
|
|
62
|
-
continue;
|
|
63
|
-
}
|
|
64
|
-
const fileExtension = (0, node_path_1.extname)(file.path);
|
|
65
|
-
if (fileExtension === '.js' || fileExtension === '.mjs') {
|
|
66
|
-
// Check if localizations are present
|
|
67
|
-
const contentBuffer = Buffer.isBuffer(file.contents)
|
|
68
|
-
? file.contents
|
|
69
|
-
: Buffer.from(file.contents.buffer, file.contents.byteOffset, file.contents.byteLength);
|
|
70
|
-
const hasLocalize = contentBuffer.includes(LOCALIZE_KEYWORD);
|
|
71
|
-
if (hasLocalize) {
|
|
72
|
-
files.set(file.path, file);
|
|
73
|
-
continue;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
else if (fileExtension === '.map') {
|
|
77
|
-
// The related JS file may not have been checked yet. To ensure that map files are not
|
|
78
|
-
// missed, store any pending map files and check them after all output files.
|
|
79
|
-
pendingMaps.push(file);
|
|
80
|
-
continue;
|
|
81
|
-
}
|
|
82
|
-
this.#unmodifiedFiles.push(file);
|
|
83
|
-
}
|
|
84
|
-
// Check if any pending map files should be processed by checking if the parent JS file is present
|
|
85
|
-
for (const file of pendingMaps) {
|
|
86
|
-
if (files.has(file.path.slice(0, -4))) {
|
|
87
|
-
files.set(file.path, file);
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
this.#unmodifiedFiles.push(file);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
this.#localizeFiles = files;
|
|
94
|
-
this.#workerPool = new worker_pool_1.WorkerPool({
|
|
95
|
-
filename: require.resolve('./i18n-inliner-worker'),
|
|
96
|
-
maxThreads,
|
|
97
|
-
// Extract options to ensure only the named options are serialized and sent to the worker
|
|
98
|
-
workerData: {
|
|
99
|
-
missingTranslation,
|
|
100
|
-
shouldOptimize,
|
|
101
|
-
// A Blob is an immutable data structure that allows sharing the data between workers
|
|
102
|
-
// without copying until the data is actually used within a Worker. This is useful here
|
|
103
|
-
// since each file may not actually be processed in each Worker and the Blob avoids
|
|
104
|
-
// unneeded repeat copying of potentially large JavaScript files.
|
|
105
|
-
files: new Map(Array.from(files, ([name, file]) => [name, new Blob([file.contents])])),
|
|
106
|
-
},
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Performs inlining of translations for the provided locale and translations. The files that
|
|
111
|
-
* are processed originate from the files passed to the class constructor and filter by presence
|
|
112
|
-
* of the localize function keyword.
|
|
113
|
-
* @param locale The string representing the locale to inline.
|
|
114
|
-
* @param translation The translation messages to use when inlining.
|
|
115
|
-
* @returns A promise that resolves to an array of OutputFiles representing a translated result.
|
|
116
|
-
*/
|
|
117
|
-
async inlineForLocale(locale, translation) {
|
|
118
|
-
await this.initCache();
|
|
119
|
-
const { shouldOptimize, missingTranslation } = this.options;
|
|
120
|
-
// Serialized once here and then shared by the request for every file of this locale
|
|
121
|
-
const translationBlob = serializeTranslation(translation);
|
|
122
|
-
// Request inlining for each file that contains localize calls
|
|
123
|
-
const requests = [];
|
|
124
|
-
let fileCacheKeyBase;
|
|
125
|
-
for (const [filename, file] of this.#localizeFiles) {
|
|
126
|
-
let cacheKey;
|
|
127
|
-
if (filename.endsWith('.map')) {
|
|
128
|
-
continue;
|
|
129
|
-
}
|
|
130
|
-
let cacheResultPromise = Promise.resolve(null);
|
|
131
|
-
if (this.#cache) {
|
|
132
|
-
// The options are digested here so that each file's key is derived from a fixed number
|
|
133
|
-
// of bytes. Hashing the options directly would re-hash the full set of messages, which
|
|
134
|
-
// can be several megabytes, once for every file.
|
|
135
|
-
fileCacheKeyBase ??= (0, node_crypto_1.createHash)('sha256')
|
|
136
|
-
.update(JSON.stringify({ locale, translation, missingTranslation, shouldOptimize }))
|
|
137
|
-
.digest();
|
|
138
|
-
// NOTE: If additional options are added, this may need to be updated.
|
|
139
|
-
// TODO: Consider xxhash or similar instead of SHA256
|
|
140
|
-
cacheKey = (0, node_crypto_1.createHash)('sha256')
|
|
141
|
-
.update(file.hash)
|
|
142
|
-
.update(filename)
|
|
143
|
-
.update(fileCacheKeyBase)
|
|
144
|
-
.digest('hex');
|
|
145
|
-
// Failure to get the value should not fail the transform
|
|
146
|
-
cacheResultPromise = this.#cache.get(cacheKey).catch(() => null);
|
|
147
|
-
}
|
|
148
|
-
const fileResult = cacheResultPromise.then(async (cachedResult) => {
|
|
149
|
-
if (cachedResult) {
|
|
150
|
-
return cachedResult;
|
|
151
|
-
}
|
|
152
|
-
const result = await this.#workerPool.run({
|
|
153
|
-
filename,
|
|
154
|
-
locale,
|
|
155
|
-
translation: translationBlob,
|
|
156
|
-
});
|
|
157
|
-
if (this.#cache && cacheKey) {
|
|
158
|
-
try {
|
|
159
|
-
// Failure to set the value should not fail the transform
|
|
160
|
-
await this.#cache.set(cacheKey, result);
|
|
161
|
-
}
|
|
162
|
-
catch { }
|
|
163
|
-
}
|
|
164
|
-
return result;
|
|
165
|
-
});
|
|
166
|
-
requests.push(fileResult);
|
|
167
|
-
}
|
|
168
|
-
// Wait for all file requests to complete
|
|
169
|
-
const rawResults = await Promise.all(requests);
|
|
170
|
-
// Convert raw results to output file objects and include all unmodified files
|
|
171
|
-
const errors = [];
|
|
172
|
-
const warnings = [];
|
|
173
|
-
const outputFiles = [
|
|
174
|
-
...rawResults.flatMap(({ file, code, map, messages }) => {
|
|
175
|
-
const type = this.#localizeFiles.get(file)?.type;
|
|
176
|
-
(0, node_assert_1.default)(type !== undefined, 'localized file should always have a type' + file);
|
|
177
|
-
const resultFiles = [(0, bundler_files_1.createOutputFile)(file, code, type)];
|
|
178
|
-
if (map) {
|
|
179
|
-
resultFiles.push((0, bundler_files_1.createOutputFile)(file + '.map', map, type));
|
|
180
|
-
}
|
|
181
|
-
for (const message of messages) {
|
|
182
|
-
if (message.type === 'error') {
|
|
183
|
-
errors.push(message.message);
|
|
184
|
-
}
|
|
185
|
-
else {
|
|
186
|
-
warnings.push(message.message);
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
return resultFiles;
|
|
190
|
-
}),
|
|
191
|
-
...this.#unmodifiedFiles.map((file) => file.clone()),
|
|
192
|
-
];
|
|
193
|
-
return {
|
|
194
|
-
outputFiles,
|
|
195
|
-
errors,
|
|
196
|
-
warnings,
|
|
197
|
-
};
|
|
198
|
-
}
|
|
199
|
-
async inlineTemplateUpdate(locale, translation, templateCode, templateId) {
|
|
200
|
-
const hasLocalize = templateCode.includes(LOCALIZE_KEYWORD);
|
|
201
|
-
if (!hasLocalize) {
|
|
202
|
-
return {
|
|
203
|
-
code: templateCode,
|
|
204
|
-
errors: [],
|
|
205
|
-
warnings: [],
|
|
206
|
-
};
|
|
207
|
-
}
|
|
208
|
-
const { output, messages } = await this.#workerPool.run({
|
|
209
|
-
code: templateCode,
|
|
210
|
-
filename: templateId,
|
|
211
|
-
locale,
|
|
212
|
-
translation: serializeTranslation(translation),
|
|
213
|
-
}, { name: 'inlineCode' });
|
|
214
|
-
const errors = [];
|
|
215
|
-
const warnings = [];
|
|
216
|
-
for (const message of messages) {
|
|
217
|
-
if (message.type === 'error') {
|
|
218
|
-
errors.push(message.message);
|
|
219
|
-
}
|
|
220
|
-
else {
|
|
221
|
-
warnings.push(message.message);
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
return {
|
|
225
|
-
code: output,
|
|
226
|
-
errors,
|
|
227
|
-
warnings,
|
|
228
|
-
};
|
|
229
|
-
}
|
|
230
|
-
/**
|
|
231
|
-
* Stops all active transformation tasks and shuts down all workers.
|
|
232
|
-
* @returns A void promise that resolves when closing is complete.
|
|
233
|
-
*/
|
|
234
|
-
async close() {
|
|
235
|
-
await Promise.allSettled([this.#cache?.close(), this.#workerPool.destroy()]);
|
|
236
|
-
}
|
|
237
|
-
/**
|
|
238
|
-
* Initializes the cache for storing translated bundles.
|
|
239
|
-
* If the cache is already initialized, it does nothing.
|
|
240
|
-
*
|
|
241
|
-
* @returns A promise that resolves once the cache initialization process is complete.
|
|
242
|
-
*/
|
|
243
|
-
async initCache() {
|
|
244
|
-
if (this.#cache || this.#cacheInitFailed) {
|
|
245
|
-
return;
|
|
246
|
-
}
|
|
247
|
-
const { persistentCachePath } = this.options;
|
|
248
|
-
// Webcontainers currently do not support this persistent cache store.
|
|
249
|
-
if (!persistentCachePath || process.versions.webcontainer) {
|
|
250
|
-
return;
|
|
251
|
-
}
|
|
252
|
-
// Initialize a persistent cache for i18n transformations.
|
|
253
|
-
try {
|
|
254
|
-
this.#cache = await (0, cache_1.createPersistentCacheStore)((0, node_path_1.join)(persistentCachePath, 'angular-i18n'));
|
|
255
|
-
}
|
|
256
|
-
catch {
|
|
257
|
-
this.#cacheInitFailed = true;
|
|
258
|
-
// eslint-disable-next-line no-console
|
|
259
|
-
console.warn('Unable to initialize JavaScript cache storage.\n' +
|
|
260
|
-
'This will not affect the build output content but may result in slower builds.');
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
exports.I18nInliner = I18nInliner;
|
|
265
|
-
//# sourceMappingURL=i18n-inliner.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"i18n-inliner.js","sourceRoot":"","sources":["i18n-inliner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-html-generator.js","sourceRoot":"","sources":["index-html-generator.ts"],"names":[],"mappings":"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"}
|