@angular/build 22.2.0-next.5 → 22.2.0-next.6
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/package.json +7 -6
- package/src/builders/application/build-action.js +47 -39
- package/src/builders/application/build-action.js.map +1 -1
- package/src/builders/application/execute-build.js +1 -1
- package/src/builders/application/execute-build.js.map +1 -1
- package/src/builders/application/execute-post-bundle.js +2 -5
- package/src/builders/application/execute-post-bundle.js.map +1 -1
- package/src/builders/application/i18n.js +6 -8
- package/src/builders/application/i18n.js.map +1 -1
- package/src/builders/application/index.js +2 -2
- package/src/builders/application/index.js.map +1 -1
- package/src/builders/application/results.d.ts +3 -2
- package/src/builders/dev-server/vite/index.js +4 -7
- package/src/builders/dev-server/vite/index.js.map +1 -1
- package/src/builders/dev-server/vite/server.js +1 -1
- 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/options.d.ts +1 -0
- package/src/builders/unit-test/options.js +2 -1
- package/src/builders/unit-test/options.js.map +1 -1
- package/src/builders/unit-test/runners/vitest/build-options.js +5 -6
- package/src/builders/unit-test/runners/vitest/build-options.js.map +1 -1
- package/src/builders/unit-test/runners/vitest/executor.js +4 -4
- package/src/builders/unit-test/runners/vitest/executor.js.map +1 -1
- package/src/builders/unit-test/schema.d.ts +7 -0
- package/src/builders/unit-test/schema.js.map +1 -1
- package/src/builders/unit-test/schema.json +5 -0
- package/src/private.d.ts +1 -1
- package/src/private.js +4 -3
- package/src/private.js.map +1 -1
- package/src/tools/angular/compilation/angular-compilation.d.ts +3 -8
- package/src/tools/angular/compilation/angular-compilation.js +2 -88
- package/src/tools/angular/compilation/angular-compilation.js.map +1 -1
- package/src/tools/angular/compilation/aot-compilation.d.ts +5 -5
- package/src/tools/angular/compilation/aot-compilation.js +9 -13
- package/src/tools/angular/compilation/aot-compilation.js.map +1 -1
- package/src/tools/angular/compilation/compiler-options.d.ts +24 -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/index.d.ts +1 -1
- 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 +5 -5
- package/src/tools/angular/compilation/jit-compilation.js +8 -15
- package/src/tools/angular/compilation/jit-compilation.js.map +1 -1
- package/src/tools/angular/compilation/parallel-compilation.d.ts +2 -7
- package/src/tools/angular/compilation/parallel-compilation.js +3 -29
- package/src/tools/angular/compilation/parallel-compilation.js.map +1 -1
- package/src/tools/angular/compilation/parallel-worker.d.ts +2 -2
- package/src/tools/angular/compilation/parallel-worker.js +3 -12
- package/src/tools/angular/compilation/parallel-worker.js.map +1 -1
- package/src/tools/angular/compilation/typescript-compilation.d.ts +24 -0
- package/src/tools/angular/compilation/typescript-compilation.js +107 -0
- package/src/tools/angular/compilation/typescript-compilation.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.js +36 -101
- package/src/tools/esbuild/angular/compiler-plugin.js.map +1 -1
- package/src/tools/esbuild/bundler-execution-result.d.ts +1 -0
- 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/i18n-inliner-worker.d.ts +47 -55
- package/src/tools/esbuild/i18n-inliner-worker.js +67 -98
- package/src/tools/esbuild/i18n-inliner-worker.js.map +1 -1
- package/src/tools/esbuild/i18n-inliner.d.ts +9 -10
- package/src/tools/esbuild/i18n-inliner.js +215 -120
- package/src/tools/esbuild/i18n-inliner.js.map +1 -1
- package/src/tools/esbuild/i18n-translation-encoder.d.ts +2 -1
- package/src/tools/esbuild/i18n-translation-encoder.js.map +1 -1
- package/src/tools/esbuild/i18n-translation-reader.d.ts +4 -3
- package/src/tools/esbuild/i18n-translation-reader.js.map +1 -1
- package/src/tools/esbuild/javascript-transformer-worker.js +8 -4
- package/src/tools/esbuild/javascript-transformer-worker.js.map +1 -1
- package/src/tools/esbuild/javascript-transformer.js +53 -1
- package/src/tools/esbuild/javascript-transformer.js.map +1 -1
- package/src/tools/esbuild/sqlite-cache-store.d.ts +8 -0
- package/src/tools/esbuild/sqlite-cache-store.js +19 -7
- package/src/tools/esbuild/sqlite-cache-store.js.map +1 -1
- package/src/tools/esbuild/stylesheets/sass-language.js +19 -14
- package/src/tools/esbuild/stylesheets/sass-language.js.map +1 -1
- package/src/tools/esbuild/stylesheets/stylesheet-plugin-factory.d.ts +1 -1
- package/src/tools/esbuild/utils.d.ts +1 -1
- package/src/tools/esbuild/utils.js.map +1 -1
- package/src/tools/oxc/oxc-transform.js +75 -117
- package/src/tools/oxc/oxc-transform.js.map +1 -1
- 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/sass/rebasing-importer.d.ts +8 -14
- package/src/tools/sass/rebasing-importer.js +18 -24
- package/src/tools/sass/rebasing-importer.js.map +1 -1
- package/src/tools/sass/sass-service.d.ts +11 -38
- package/src/tools/sass/sass-service.js +124 -187
- package/src/tools/sass/sass-service.js.map +1 -1
- package/src/utils/environment-options.d.ts +12 -0
- package/src/utils/environment-options.js +20 -12
- package/src/utils/environment-options.js.map +1 -1
- package/src/utils/i18n-options.d.ts +2 -1
- package/src/utils/i18n-options.js.map +1 -1
- package/src/utils/normalize-cache.d.ts +11 -1
- package/src/utils/normalize-cache.js +6 -3
- package/src/utils/normalize-cache.js.map +1 -1
- package/src/utils/purge-cache.js +24 -13
- package/src/utils/purge-cache.js.map +1 -1
- package/src/utils/server-rendering/prerender.d.ts +2 -1
- package/src/utils/server-rendering/prerender.js +31 -18
- package/src/utils/server-rendering/prerender.js.map +1 -1
- package/src/utils/server-rendering/render-worker.d.ts +6 -4
- package/src/utils/server-rendering/render-worker.js +3 -1
- package/src/utils/server-rendering/render-worker.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/tools/angular/compilation/noop-compilation.d.ts +0 -15
- package/src/tools/angular/compilation/noop-compilation.js +0 -27
- package/src/tools/angular/compilation/noop-compilation.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
|
@@ -12,6 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
exports.I18nInliner = void 0;
|
|
14
14
|
const node_assert_1 = __importDefault(require("node:assert"));
|
|
15
|
+
const node_module_1 = require("node:module");
|
|
15
16
|
const node_path_1 = require("node:path");
|
|
16
17
|
const node_v8_1 = require("node:v8");
|
|
17
18
|
const hash_1 = require("../../utils/hash");
|
|
@@ -19,16 +20,29 @@ const worker_pool_1 = require("../../utils/worker-pool");
|
|
|
19
20
|
const bundler_files_1 = require("./bundler-files");
|
|
20
21
|
const cache_1 = require("./cache");
|
|
21
22
|
const i18n_translation_encoder_1 = require("./i18n-translation-encoder");
|
|
23
|
+
// TODO: Convert to import.meta usage during ESM transition
|
|
24
|
+
const localRequire = (0, node_module_1.createRequire)(__filename);
|
|
25
|
+
const INLINER_WORKER_PATH = localRequire.resolve('./i18n-inliner-worker');
|
|
22
26
|
/**
|
|
23
27
|
* A keyword used to indicate if a JavaScript file may require inlining of translations.
|
|
24
28
|
* This keyword is used to avoid processing files that would not otherwise need i18n processing.
|
|
25
29
|
*/
|
|
26
30
|
const LOCALIZE_KEYWORD = '$localize';
|
|
27
31
|
/**
|
|
28
|
-
* The
|
|
29
|
-
* This caps peak worker memory while maintaining multi-locale batching throughput.
|
|
32
|
+
* The baseline number of locales to process concurrently in a single sliding window.
|
|
33
|
+
* This caps peak worker memory on low-core machines while maintaining multi-locale batching throughput.
|
|
30
34
|
*/
|
|
31
35
|
const DEFAULT_LOCALE_WINDOW_SIZE = 8;
|
|
36
|
+
/**
|
|
37
|
+
* Minimum byte size threshold for a file to be eligible for multi-batch sharding.
|
|
38
|
+
* Files below this threshold (< 100 KB) are processed in a single batch to minimize IPC overhead.
|
|
39
|
+
*/
|
|
40
|
+
const SMALL_FILE_FLOOR_BYTES = 100 * 1024;
|
|
41
|
+
/**
|
|
42
|
+
* Ratio of the maximum file size in a window to consider a file "dominant".
|
|
43
|
+
* Files within 70% of the largest file are sharded across all workers for maximum concurrency.
|
|
44
|
+
*/
|
|
45
|
+
const DOMINANT_FILE_RATIO = 0.7;
|
|
32
46
|
/**
|
|
33
47
|
* Serializes the translation messages for a locale for transfer to an inliner Worker.
|
|
34
48
|
*
|
|
@@ -37,13 +51,35 @@ const DEFAULT_LOCALE_WINDOW_SIZE = 8;
|
|
|
37
51
|
* SharedArrayBuffer is unavailable.
|
|
38
52
|
*
|
|
39
53
|
* @param translation The translation messages for a locale, if the locale has any.
|
|
54
|
+
* @param translationIntegrity Optional content hash of the translation file for cache lookup.
|
|
55
|
+
* @param translationCache Optional Cache instance for binary translation buffers.
|
|
40
56
|
* @returns A SharedArrayBuffer or Blob containing the serialized messages, or undefined if none.
|
|
41
57
|
*/
|
|
42
|
-
function serializeTranslation(translation) {
|
|
58
|
+
async function serializeTranslation(translation, translationIntegrity, translationCache) {
|
|
43
59
|
if (!translation) {
|
|
44
60
|
return undefined;
|
|
45
61
|
}
|
|
46
62
|
if (typeof SharedArrayBuffer !== 'undefined') {
|
|
63
|
+
if (translationIntegrity && translationCache) {
|
|
64
|
+
// Look up or generate binary translation data in the persistent cache.
|
|
65
|
+
// A Uint8Array view is stored in the cache store to allow binary persistence.
|
|
66
|
+
const binaryData = await translationCache.getOrCreate(translationIntegrity, () => {
|
|
67
|
+
return new Uint8Array((0, i18n_translation_encoder_1.encodeTranslationToBuffer)(translation));
|
|
68
|
+
});
|
|
69
|
+
// On a cache miss, getOrCreate returns the newly created Uint8Array backed by the
|
|
70
|
+
// original SharedArrayBuffer. Return it directly to avoid an unnecessary allocation and copy.
|
|
71
|
+
if (binaryData.buffer instanceof SharedArrayBuffer &&
|
|
72
|
+
binaryData.byteOffset === 0 &&
|
|
73
|
+
binaryData.byteLength === binaryData.buffer.byteLength) {
|
|
74
|
+
return binaryData.buffer;
|
|
75
|
+
}
|
|
76
|
+
// On a warm cache hit, the restored data is backed by a standard ArrayBuffer from disk.
|
|
77
|
+
// Copy it into a SharedArrayBuffer so worker threads can access it via zero-copy shared memory.
|
|
78
|
+
const buffer = new SharedArrayBuffer(binaryData.byteLength);
|
|
79
|
+
new Uint8Array(buffer).set(binaryData);
|
|
80
|
+
return buffer;
|
|
81
|
+
}
|
|
82
|
+
// When persistent caching is not configured, encode directly into a SharedArrayBuffer.
|
|
47
83
|
return (0, i18n_translation_encoder_1.encodeTranslationToBuffer)(translation);
|
|
48
84
|
}
|
|
49
85
|
return new Blob([(0, node_v8_1.serialize)(translation)]);
|
|
@@ -59,16 +95,22 @@ class I18nInliner {
|
|
|
59
95
|
#cacheInitFailed = false;
|
|
60
96
|
#workerPool;
|
|
61
97
|
#cacheStore;
|
|
62
|
-
#
|
|
63
|
-
#
|
|
64
|
-
#
|
|
98
|
+
#transformedFileCache;
|
|
99
|
+
#translationCache;
|
|
100
|
+
#generation = 0;
|
|
65
101
|
constructor(options, maxThreads) {
|
|
66
102
|
this.options = options;
|
|
67
|
-
this.#
|
|
68
|
-
|
|
69
|
-
|
|
103
|
+
this.#workerPool = new worker_pool_1.WorkerPool({
|
|
104
|
+
maxThreads,
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
#partitionFiles(files) {
|
|
108
|
+
const filenames = [];
|
|
109
|
+
const localizeFiles = new Map();
|
|
110
|
+
const localizeMaps = new Map();
|
|
111
|
+
const unmodifiedFiles = [];
|
|
70
112
|
const pendingMaps = [];
|
|
71
|
-
for (const file of
|
|
113
|
+
for (const file of files) {
|
|
72
114
|
if (file.type === bundler_files_1.BuildOutputFileType.Root || file.type === bundler_files_1.BuildOutputFileType.ServerRoot) {
|
|
73
115
|
// Skip also the server entry-point.
|
|
74
116
|
// Skip stats and similar files.
|
|
@@ -82,7 +124,8 @@ class I18nInliner {
|
|
|
82
124
|
: Buffer.from(file.contents.buffer, file.contents.byteOffset, file.contents.byteLength);
|
|
83
125
|
const hasLocalize = contentBuffer.includes(LOCALIZE_KEYWORD);
|
|
84
126
|
if (hasLocalize) {
|
|
85
|
-
|
|
127
|
+
localizeFiles.set(file.path, file);
|
|
128
|
+
filenames.push(file.path);
|
|
86
129
|
continue;
|
|
87
130
|
}
|
|
88
131
|
}
|
|
@@ -92,33 +135,19 @@ class I18nInliner {
|
|
|
92
135
|
pendingMaps.push(file);
|
|
93
136
|
continue;
|
|
94
137
|
}
|
|
95
|
-
|
|
138
|
+
unmodifiedFiles.push(file);
|
|
96
139
|
}
|
|
97
140
|
// Check if any pending map files should be processed by checking if the parent JS file is present
|
|
98
141
|
for (const file of pendingMaps) {
|
|
99
|
-
|
|
100
|
-
|
|
142
|
+
const jsPath = file.path.slice(0, -4);
|
|
143
|
+
if (localizeFiles.has(jsPath)) {
|
|
144
|
+
localizeMaps.set(jsPath, file);
|
|
101
145
|
}
|
|
102
146
|
else {
|
|
103
|
-
|
|
147
|
+
unmodifiedFiles.push(file);
|
|
104
148
|
}
|
|
105
149
|
}
|
|
106
|
-
|
|
107
|
-
this.#workerPool = new worker_pool_1.WorkerPool({
|
|
108
|
-
filename: require.resolve('./i18n-inliner-worker'),
|
|
109
|
-
maxThreads,
|
|
110
|
-
// Extract options to ensure only the named options are serialized and sent to the worker
|
|
111
|
-
workerData: {
|
|
112
|
-
missingTranslation,
|
|
113
|
-
shouldOptimize,
|
|
114
|
-
translations,
|
|
115
|
-
// A Blob is an immutable data structure that allows sharing the data between workers
|
|
116
|
-
// without copying until the data is actually used within a Worker. This is useful here
|
|
117
|
-
// since each file may not actually be processed in each Worker and the Blob avoids
|
|
118
|
-
// unneeded repeat copying of potentially large JavaScript files.
|
|
119
|
-
files: new Map(Array.from(files, ([name, file]) => [name, new Blob([file.contents])])),
|
|
120
|
-
},
|
|
121
|
-
});
|
|
150
|
+
return { filenames, localizeFiles, localizeMaps, unmodifiedFiles };
|
|
122
151
|
}
|
|
123
152
|
/**
|
|
124
153
|
* Performs inlining of translations across multiple locales in parallel.
|
|
@@ -126,98 +155,95 @@ class I18nInliner {
|
|
|
126
155
|
* An adaptive 2D task-partitioning algorithm distributes (files x locales) work units
|
|
127
156
|
* across all worker threads while caching AST metadata and sourcemaps in worker memory.
|
|
128
157
|
*
|
|
158
|
+
* @param files The build output files to transform.
|
|
129
159
|
* @param locales The locales and translations to inline.
|
|
130
160
|
* @returns A map of locale names to their inlined output files and diagnostics.
|
|
131
161
|
*/
|
|
132
|
-
async inlineAll(locales) {
|
|
162
|
+
async inlineAll(files, locales) {
|
|
133
163
|
await this.initCache();
|
|
134
|
-
const
|
|
164
|
+
const generation = ++this.#generation;
|
|
165
|
+
const { missingTranslation, localizeVersion } = this.options;
|
|
135
166
|
const localeList = Array.from(locales);
|
|
136
167
|
if (localeList.length === 0) {
|
|
137
168
|
return new Map();
|
|
138
169
|
}
|
|
170
|
+
const { filenames, localizeFiles, localizeMaps, unmodifiedFiles } = this.#partitionFiles(files);
|
|
139
171
|
const fileResultsByLocale = new Map();
|
|
140
172
|
for (const { locale } of localeList) {
|
|
173
|
+
(0, node_assert_1.default)(!fileResultsByLocale.has(locale), 'Duplicate locale provided to inliner: ' + locale);
|
|
141
174
|
fileResultsByLocale.set(locale, new Map());
|
|
142
175
|
}
|
|
143
|
-
|
|
144
|
-
//
|
|
145
|
-
|
|
146
|
-
|
|
176
|
+
// Process locales in sliding windows to cap peak worker memory.
|
|
177
|
+
// Ensure the window has at least enough locales to saturate all available workers on high-core machines.
|
|
178
|
+
const windowSize = Math.max(DEFAULT_LOCALE_WINDOW_SIZE, this.#workerPool.maxThreads || 1);
|
|
179
|
+
for (let i = 0; i < localeList.length; i += windowSize) {
|
|
180
|
+
const windowLocales = localeList.slice(i, i + windowSize);
|
|
147
181
|
const activeLocales = windowLocales.map((item) => item.locale);
|
|
148
|
-
const isLastWindow = i +
|
|
182
|
+
const isLastWindow = i + windowSize >= localeList.length;
|
|
149
183
|
// Pre-calculate cache key bases and serialized Blobs for each locale in this window
|
|
150
184
|
const localeCacheBases = new Map();
|
|
151
185
|
const localeBlobs = new Map();
|
|
152
|
-
|
|
153
|
-
|
|
186
|
+
await Promise.all(windowLocales.map(async ({ locale, translation, translationIntegrity }) => {
|
|
187
|
+
const serialized = await serializeTranslation(translation, translationIntegrity, this.#translationCache);
|
|
188
|
+
localeBlobs.set(locale, serialized);
|
|
154
189
|
if (this.#cacheStore) {
|
|
155
190
|
localeCacheBases.set(locale, (0, hash_1.calculateHash)(JSON.stringify({
|
|
156
191
|
locale,
|
|
157
192
|
translation: translationIntegrity || translation,
|
|
158
193
|
missingTranslation,
|
|
159
|
-
shouldOptimize,
|
|
160
194
|
localizeVersion,
|
|
161
195
|
})));
|
|
162
196
|
}
|
|
163
|
-
}
|
|
164
|
-
const
|
|
165
|
-
|
|
166
|
-
const
|
|
167
|
-
|
|
168
|
-
for (const
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
197
|
+
}));
|
|
198
|
+
const uncachedByFile = new Map();
|
|
199
|
+
if (this.#transformedFileCache) {
|
|
200
|
+
const cache = this.#transformedFileCache;
|
|
201
|
+
const cacheChecks = [];
|
|
202
|
+
for (const filename of filenames) {
|
|
203
|
+
const file = localizeFiles.get(filename);
|
|
204
|
+
(0, node_assert_1.default)(file !== undefined, 'Localize file must exist: ' + filename);
|
|
205
|
+
const fileEntriesPromises = windowLocales.map(async ({ locale }) => {
|
|
172
206
|
const fileCacheKeyBase = localeCacheBases.get(locale);
|
|
173
207
|
(0, node_assert_1.default)(fileCacheKeyBase !== undefined, 'Cache base must exist for locale: ' + locale);
|
|
174
208
|
const hasher = (0, hash_1.createContentHash)();
|
|
175
209
|
hasher.update(file.hash);
|
|
176
210
|
hasher.update(filename);
|
|
177
211
|
hasher.update(fileCacheKeyBase);
|
|
178
|
-
cacheKey = hasher.digest();
|
|
179
|
-
|
|
180
|
-
.get(cacheKey)
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
212
|
+
const cacheKey = hasher.digest();
|
|
213
|
+
try {
|
|
214
|
+
const result = await cache.get(cacheKey);
|
|
215
|
+
if (result) {
|
|
216
|
+
fileResultsByLocale.get(locale)?.set(filename, result);
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
catch { }
|
|
221
|
+
return {
|
|
222
|
+
locale,
|
|
223
|
+
cacheKey,
|
|
224
|
+
translation: localeBlobs.get(locale),
|
|
225
|
+
};
|
|
189
226
|
});
|
|
227
|
+
cacheChecks.push(Promise.all(fileEntriesPromises).then((entries) => {
|
|
228
|
+
const filtered = entries.filter((e) => e !== undefined);
|
|
229
|
+
if (filtered.length > 0) {
|
|
230
|
+
uncachedByFile.set(filename, filtered);
|
|
231
|
+
}
|
|
232
|
+
}));
|
|
190
233
|
}
|
|
234
|
+
await Promise.all(cacheChecks);
|
|
191
235
|
}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
const uncachedByFile = new Map();
|
|
199
|
-
for (const item of resolvedChecks) {
|
|
200
|
-
if (item.result) {
|
|
201
|
-
// Cache hit: store directly in locale file results
|
|
202
|
-
fileResultsByLocale.get(item.locale)?.set(item.filename, item.result);
|
|
203
|
-
}
|
|
204
|
-
else {
|
|
205
|
-
// Cache miss: needs worker processing
|
|
206
|
-
let fileEntries = uncachedByFile.get(item.filename);
|
|
207
|
-
if (!fileEntries) {
|
|
208
|
-
fileEntries = [];
|
|
209
|
-
uncachedByFile.set(item.filename, fileEntries);
|
|
210
|
-
}
|
|
211
|
-
fileEntries.push({
|
|
212
|
-
locale: item.locale,
|
|
213
|
-
cacheKey: item.cacheKey,
|
|
214
|
-
translation: localeBlobs.get(item.locale),
|
|
215
|
-
});
|
|
236
|
+
else {
|
|
237
|
+
for (const filename of filenames) {
|
|
238
|
+
uncachedByFile.set(filename, windowLocales.map(({ locale }) => ({
|
|
239
|
+
locale,
|
|
240
|
+
translation: localeBlobs.get(locale),
|
|
241
|
+
})));
|
|
216
242
|
}
|
|
217
243
|
}
|
|
218
244
|
// Adaptive 2D Sharding for uncached tasks in this window
|
|
219
245
|
if (uncachedByFile.size > 0) {
|
|
220
|
-
await this.#processUncachedBatches(
|
|
246
|
+
await this.#processUncachedBatches(localizeFiles, localizeMaps, uncachedByFile, fileResultsByLocale, activeLocales, isLastWindow, generation);
|
|
221
247
|
}
|
|
222
248
|
}
|
|
223
249
|
// Assemble final results in deterministic order per locale
|
|
@@ -229,16 +255,26 @@ class I18nInliner {
|
|
|
229
255
|
const warnings = [];
|
|
230
256
|
if (fileResults) {
|
|
231
257
|
for (const filename of filenames) {
|
|
258
|
+
const originalFile = localizeFiles.get(filename);
|
|
259
|
+
(0, node_assert_1.default)(originalFile !== undefined, 'Localize file must exist: ' + filename);
|
|
232
260
|
const fileResult = fileResults.get(filename);
|
|
233
261
|
if (!fileResult) {
|
|
234
262
|
continue;
|
|
235
263
|
}
|
|
236
|
-
const type =
|
|
237
|
-
(
|
|
238
|
-
|
|
239
|
-
|
|
264
|
+
const type = originalFile.type;
|
|
265
|
+
if (fileResult.code != undefined) {
|
|
266
|
+
outputFiles.push((0, bundler_files_1.createOutputFile)(filename, fileResult.code, type));
|
|
267
|
+
}
|
|
268
|
+
else {
|
|
269
|
+
outputFiles.push(originalFile.clone());
|
|
270
|
+
}
|
|
271
|
+
const originalMap = localizeMaps.get(filename);
|
|
272
|
+
if (fileResult.map !== undefined) {
|
|
240
273
|
outputFiles.push((0, bundler_files_1.createOutputFile)(filename + '.map', fileResult.map, type));
|
|
241
274
|
}
|
|
275
|
+
else if (originalMap !== undefined) {
|
|
276
|
+
outputFiles.push(originalMap.clone());
|
|
277
|
+
}
|
|
242
278
|
for (const message of fileResult.messages) {
|
|
243
279
|
if (message.type === 'error') {
|
|
244
280
|
errors.push(message.message);
|
|
@@ -250,7 +286,7 @@ class I18nInliner {
|
|
|
250
286
|
}
|
|
251
287
|
}
|
|
252
288
|
// Include cloned unmodified files for every locale
|
|
253
|
-
outputFiles.push(...
|
|
289
|
+
outputFiles.push(...unmodifiedFiles.map((file) => file.clone()));
|
|
254
290
|
resultsByLocale.set(locale, {
|
|
255
291
|
outputFiles,
|
|
256
292
|
errors,
|
|
@@ -259,62 +295,119 @@ class I18nInliner {
|
|
|
259
295
|
}
|
|
260
296
|
return resultsByLocale;
|
|
261
297
|
}
|
|
262
|
-
async #processUncachedBatches(
|
|
298
|
+
async #processUncachedBatches(localizeFiles, localizeMaps, uncachedByFile, fileResultsByLocale, activeLocales, isLastWindow = true, generation) {
|
|
263
299
|
const workerCount = this.#workerPool.maxThreads || 1;
|
|
264
|
-
|
|
265
|
-
|
|
300
|
+
// Extract file data and identify the heaviest file size in a single pass
|
|
301
|
+
let maxFileSize = 0;
|
|
302
|
+
const sortedFiles = Array.from(uncachedByFile, ([filename, entries]) => {
|
|
303
|
+
const codeFile = localizeFiles.get(filename);
|
|
304
|
+
(0, node_assert_1.default)(codeFile !== undefined, 'Localize file must exist: ' + filename);
|
|
305
|
+
const fileSize = codeFile.contents.byteLength;
|
|
306
|
+
if (fileSize > maxFileSize) {
|
|
307
|
+
maxFileSize = fileSize;
|
|
308
|
+
}
|
|
309
|
+
return { filename, entries, codeFile, fileSize };
|
|
310
|
+
});
|
|
311
|
+
// Sort files descending by byte size (Longest Processing Time First / LPT).
|
|
312
|
+
// Heavy files (e.g. main.js) are queued first to saturate all worker threads immediately,
|
|
313
|
+
// while small files act as gap fillers near the window barrier to prevent tail stragglers.
|
|
314
|
+
sortedFiles.sort((a, b) => b.fileSize - a.fileSize);
|
|
266
315
|
const workerTasks = [];
|
|
267
|
-
for (const
|
|
316
|
+
for (const { filename, entries, codeFile, fileSize } of sortedFiles) {
|
|
317
|
+
const mapFile = localizeMaps.get(filename);
|
|
318
|
+
const codeBlob = new Blob([codeFile.contents]);
|
|
319
|
+
const mapBlob = mapFile ? new Blob([mapFile.contents]) : undefined;
|
|
320
|
+
let localesPerBatch;
|
|
321
|
+
if (uncachedByFile.size === 1) {
|
|
322
|
+
// Single file in window: shard across all workers to avoid idle threads
|
|
323
|
+
localesPerBatch = Math.max(1, Math.ceil(entries.length / workerCount));
|
|
324
|
+
}
|
|
325
|
+
else if (fileSize < SMALL_FILE_FLOOR_BYTES) {
|
|
326
|
+
// Small chunks (< 100 KB): process all locales in 1 batch to eliminate IPC overhead
|
|
327
|
+
localesPerBatch = entries.length;
|
|
328
|
+
}
|
|
329
|
+
else if (fileSize >= maxFileSize * DOMINANT_FILE_RATIO) {
|
|
330
|
+
// Dominant file(s): shard across all workers for maximum multi-core parallelism
|
|
331
|
+
localesPerBatch = Math.max(1, Math.ceil(entries.length / workerCount));
|
|
332
|
+
}
|
|
333
|
+
else {
|
|
334
|
+
// Intermediate files: moderate sharding
|
|
335
|
+
localesPerBatch = Math.max(1, Math.ceil(entries.length / 2));
|
|
336
|
+
}
|
|
268
337
|
const ephemeral = isLastWindow && entries.length <= localesPerBatch;
|
|
269
338
|
for (let i = 0; i < entries.length; i += localesPerBatch) {
|
|
270
339
|
const batchEntries = entries.slice(i, i + localesPerBatch);
|
|
271
340
|
const task = (async () => {
|
|
272
|
-
const batchResult =
|
|
341
|
+
const batchResult = await this.#runWorkerTask('inlineFileBatch', {
|
|
273
342
|
filename,
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
343
|
+
code: codeBlob,
|
|
344
|
+
map: mapBlob,
|
|
345
|
+
locales: new Map(batchEntries.map((e) => [e.locale, e.translation])),
|
|
346
|
+
missingTranslation: this.options.missingTranslation,
|
|
278
347
|
ephemeral,
|
|
279
348
|
activeLocales,
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
const
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
349
|
+
generation,
|
|
350
|
+
});
|
|
351
|
+
if (batchResult.unmodified) {
|
|
352
|
+
const unmodifiedResult = {
|
|
353
|
+
file: filename,
|
|
354
|
+
messages: batchResult.messages,
|
|
355
|
+
};
|
|
356
|
+
const cachePromises = [];
|
|
357
|
+
for (const { locale, cacheKey } of batchEntries) {
|
|
358
|
+
fileResultsByLocale.get(locale)?.set(filename, unmodifiedResult);
|
|
359
|
+
if (this.#transformedFileCache && cacheKey) {
|
|
360
|
+
cachePromises.push(this.#transformedFileCache.put(cacheKey, unmodifiedResult));
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
await Promise.allSettled(cachePromises);
|
|
364
|
+
}
|
|
365
|
+
else {
|
|
366
|
+
const cachePromises = [];
|
|
367
|
+
for (const res of batchResult.results) {
|
|
368
|
+
const matchingEntry = batchEntries.find((e) => e.locale === res.locale);
|
|
369
|
+
const cacheKey = matchingEntry?.cacheKey;
|
|
370
|
+
const fileResult = {
|
|
287
371
|
file: filename,
|
|
288
372
|
code: res.code,
|
|
289
373
|
map: res.map,
|
|
290
374
|
messages: res.messages,
|
|
291
|
-
}
|
|
375
|
+
};
|
|
376
|
+
if (this.#transformedFileCache && cacheKey) {
|
|
377
|
+
cachePromises.push(this.#transformedFileCache.put(cacheKey, fileResult));
|
|
378
|
+
}
|
|
379
|
+
fileResultsByLocale.get(res.locale)?.set(filename, fileResult);
|
|
292
380
|
}
|
|
293
|
-
|
|
381
|
+
await Promise.allSettled(cachePromises);
|
|
294
382
|
}
|
|
295
|
-
await Promise.allSettled(cachePromises);
|
|
296
383
|
})();
|
|
297
384
|
workerTasks.push(task);
|
|
298
385
|
}
|
|
299
386
|
}
|
|
300
387
|
await Promise.all(workerTasks);
|
|
301
388
|
}
|
|
389
|
+
#runWorkerTask(name, request) {
|
|
390
|
+
return this.#workerPool.run(request, {
|
|
391
|
+
filename: INLINER_WORKER_PATH,
|
|
392
|
+
name,
|
|
393
|
+
});
|
|
394
|
+
}
|
|
302
395
|
/**
|
|
303
|
-
* Performs inlining of translations for the provided locale and translations.
|
|
304
|
-
*
|
|
305
|
-
*
|
|
396
|
+
* Performs inlining of translations for the provided locale and translations.
|
|
397
|
+
*
|
|
398
|
+
* @param files The build output files to transform.
|
|
306
399
|
* @param locale The string representing the locale to inline.
|
|
307
400
|
* @param translation The translation messages to use when inlining.
|
|
308
401
|
* @param translationIntegrity An optional integrity value for the translation messages to use for caching.
|
|
309
402
|
* @returns A promise that resolves to an array of OutputFiles representing a translated result.
|
|
310
403
|
*/
|
|
311
|
-
async inlineForLocale(locale, translation, translationIntegrity) {
|
|
312
|
-
const results = await this.inlineAll([{ locale, translation, translationIntegrity }]);
|
|
404
|
+
async inlineForLocale(files, locale, translation, translationIntegrity) {
|
|
405
|
+
const results = await this.inlineAll(files, [{ locale, translation, translationIntegrity }]);
|
|
313
406
|
const result = results.get(locale);
|
|
314
407
|
(0, node_assert_1.default)(result !== undefined, `Result for locale '${locale}' should be present.`);
|
|
315
408
|
return result;
|
|
316
409
|
}
|
|
317
|
-
async inlineTemplateUpdate(locale, translation, templateCode, templateId) {
|
|
410
|
+
async inlineTemplateUpdate(locale, translation, templateCode, templateId, translationIntegrity) {
|
|
318
411
|
const hasLocalize = templateCode.includes(LOCALIZE_KEYWORD);
|
|
319
412
|
if (!hasLocalize) {
|
|
320
413
|
return {
|
|
@@ -323,12 +416,13 @@ class I18nInliner {
|
|
|
323
416
|
warnings: [],
|
|
324
417
|
};
|
|
325
418
|
}
|
|
326
|
-
const { output, messages } = await this.#
|
|
419
|
+
const { output, messages } = await this.#runWorkerTask('inlineCode', {
|
|
327
420
|
code: templateCode,
|
|
328
421
|
filename: templateId,
|
|
329
422
|
locale,
|
|
330
|
-
|
|
331
|
-
|
|
423
|
+
missingTranslation: this.options.missingTranslation,
|
|
424
|
+
translation: await serializeTranslation(translation, translationIntegrity, this.#translationCache),
|
|
425
|
+
});
|
|
332
426
|
const errors = [];
|
|
333
427
|
const warnings = [];
|
|
334
428
|
for (const message of messages) {
|
|
@@ -374,7 +468,8 @@ class I18nInliner {
|
|
|
374
468
|
(0, cache_1.createPersistentCacheStore)((0, node_path_1.join)(persistentCachePath, 'angular-i18n')),
|
|
375
469
|
]);
|
|
376
470
|
this.#cacheStore = cacheStore;
|
|
377
|
-
this.#
|
|
471
|
+
this.#transformedFileCache = cacheStore.createCache('transforms');
|
|
472
|
+
this.#translationCache = cacheStore.createCache('translations');
|
|
378
473
|
}
|
|
379
474
|
catch {
|
|
380
475
|
this.#cacheInitFailed = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n-inliner.js","sourceRoot":"","sources":["i18n-inliner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"i18n-inliner.js","sourceRoot":"","sources":["i18n-inliner.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
/**
|
|
9
10
|
* Magic header identifier for i18n SharedArrayBuffer translation tables ('I18N').
|
|
10
11
|
*/
|
|
@@ -17,4 +18,4 @@ export declare const I18N_MAGIC_ID = 1227962446;
|
|
|
17
18
|
* @param translation The translation dictionary object.
|
|
18
19
|
* @returns A SharedArrayBuffer containing the binary encoded translation catalog.
|
|
19
20
|
*/
|
|
20
|
-
export declare function encodeTranslationToBuffer(translation: Record<string,
|
|
21
|
+
export declare function encodeTranslationToBuffer<T = ɵParsedTranslation>(translation: Record<string, T>): SharedArrayBuffer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n-translation-encoder.js","sourceRoot":"","sources":["i18n-translation-encoder.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;
|
|
1
|
+
{"version":3,"file":"i18n-translation-encoder.js","sourceRoot":"","sources":["i18n-translation-encoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,11 +5,12 @@
|
|
|
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
|
/**
|
|
9
10
|
* A zero-copy reader that queries translation messages directly from a SharedArrayBuffer
|
|
10
11
|
* using binary search over a sorted key index.
|
|
11
12
|
*/
|
|
12
|
-
export declare class SharedTranslationDictionary {
|
|
13
|
+
export declare class SharedTranslationDictionary<T = ɵParsedTranslation> {
|
|
13
14
|
private readonly entryCount;
|
|
14
15
|
private readonly uint32Index;
|
|
15
16
|
private readonly uint8Pool;
|
|
@@ -24,7 +25,7 @@ export declare class SharedTranslationDictionary {
|
|
|
24
25
|
* @param targetKey The message key ID to search for.
|
|
25
26
|
* @returns The parsed translation message, or undefined if not found.
|
|
26
27
|
*/
|
|
27
|
-
get(targetKey: string):
|
|
28
|
+
get(targetKey: string): T | undefined;
|
|
28
29
|
}
|
|
29
30
|
/**
|
|
30
31
|
* Creates a JavaScript object Proxy wrapping a SharedTranslationDictionary so it can be passed
|
|
@@ -37,4 +38,4 @@ export declare class SharedTranslationDictionary {
|
|
|
37
38
|
* @param buffer The SharedArrayBuffer containing binary encoded translation catalog.
|
|
38
39
|
* @returns A Proxy object that intercepts property reads and queries the SharedTranslationDictionary.
|
|
39
40
|
*/
|
|
40
|
-
export declare function createSharedTranslationProxy(buffer: SharedArrayBuffer): Record<string,
|
|
41
|
+
export declare function createSharedTranslationProxy<T = ɵParsedTranslation>(buffer: SharedArrayBuffer): Record<string, T>;
|