@angular/build 22.2.0-next.5 → 22.2.0-next.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/package.json +14 -13
  2. package/src/builders/application/build-action.js +48 -39
  3. package/src/builders/application/build-action.js.map +1 -1
  4. package/src/builders/application/chunk-optimizer.js +4 -1
  5. package/src/builders/application/chunk-optimizer.js.map +1 -1
  6. package/src/builders/application/execute-build.js +1 -1
  7. package/src/builders/application/execute-build.js.map +1 -1
  8. package/src/builders/application/execute-post-bundle.js +4 -7
  9. package/src/builders/application/execute-post-bundle.js.map +1 -1
  10. package/src/builders/application/i18n.js +8 -9
  11. package/src/builders/application/i18n.js.map +1 -1
  12. package/src/builders/application/index.js +2 -2
  13. package/src/builders/application/index.js.map +1 -1
  14. package/src/builders/application/options.js +5 -2
  15. package/src/builders/application/options.js.map +1 -1
  16. package/src/builders/application/results.d.ts +3 -2
  17. package/src/builders/application/schema.d.ts +2 -1
  18. package/src/builders/application/schema.js.map +1 -1
  19. package/src/builders/application/schema.json +1 -2
  20. package/src/builders/dev-server/options.d.ts +4 -1
  21. package/src/builders/dev-server/options.js +1 -0
  22. package/src/builders/dev-server/options.js.map +1 -1
  23. package/src/builders/dev-server/vite/index.js +4 -7
  24. package/src/builders/dev-server/vite/index.js.map +1 -1
  25. package/src/builders/dev-server/vite/server.js +2 -2
  26. package/src/builders/dev-server/vite/server.js.map +1 -1
  27. package/src/builders/dev-server/vite/utils.d.ts +1 -1
  28. package/src/builders/dev-server/vite/utils.js +9 -4
  29. package/src/builders/dev-server/vite/utils.js.map +1 -1
  30. package/src/builders/extract-i18n/application-extraction.js +6 -5
  31. package/src/builders/extract-i18n/application-extraction.js.map +1 -1
  32. package/src/builders/karma/application_builder.js +1 -1
  33. package/src/builders/karma/application_builder.js.map +1 -1
  34. package/src/builders/karma/assets-middleware.d.ts +2 -2
  35. package/src/builders/karma/assets-middleware.js +5 -2
  36. package/src/builders/karma/assets-middleware.js.map +1 -1
  37. package/src/builders/karma/progress-reporter.js +7 -5
  38. package/src/builders/karma/progress-reporter.js.map +1 -1
  39. package/src/builders/karma/utils.d.ts +2 -1
  40. package/src/builders/karma/utils.js +2 -2
  41. package/src/builders/karma/utils.js.map +1 -1
  42. package/src/builders/unit-test/builder.js +1 -1
  43. package/src/builders/unit-test/options.d.ts +1 -0
  44. package/src/builders/unit-test/options.js +2 -1
  45. package/src/builders/unit-test/options.js.map +1 -1
  46. package/src/builders/unit-test/runners/vitest/build-options.js +5 -6
  47. package/src/builders/unit-test/runners/vitest/build-options.js.map +1 -1
  48. package/src/builders/unit-test/runners/vitest/executor.js +4 -4
  49. package/src/builders/unit-test/runners/vitest/executor.js.map +1 -1
  50. package/src/builders/unit-test/runners/vitest/plugins.d.ts +3 -4
  51. package/src/builders/unit-test/runners/vitest/plugins.js +2 -0
  52. package/src/builders/unit-test/runners/vitest/plugins.js.map +1 -1
  53. package/src/builders/unit-test/schema.d.ts +10 -2
  54. package/src/builders/unit-test/schema.js.map +1 -1
  55. package/src/builders/unit-test/schema.json +7 -1
  56. package/src/private.d.ts +1 -2
  57. package/src/private.js +4 -5
  58. package/src/private.js.map +1 -1
  59. package/src/tools/angular/compilation/angular-compilation.d.ts +3 -8
  60. package/src/tools/angular/compilation/angular-compilation.js +2 -88
  61. package/src/tools/angular/compilation/angular-compilation.js.map +1 -1
  62. package/src/tools/angular/compilation/aot-compilation.d.ts +5 -5
  63. package/src/tools/angular/compilation/aot-compilation.js +8 -14
  64. package/src/tools/angular/compilation/aot-compilation.js.map +1 -1
  65. package/src/tools/angular/compilation/compiler-options.d.ts +24 -0
  66. package/src/tools/angular/compilation/compiler-options.js +135 -0
  67. package/src/tools/angular/compilation/compiler-options.js.map +1 -0
  68. package/src/tools/angular/compilation/index.d.ts +1 -1
  69. package/src/tools/angular/compilation/index.js +1 -3
  70. package/src/tools/angular/compilation/index.js.map +1 -1
  71. package/src/tools/angular/compilation/jit-compilation.d.ts +5 -5
  72. package/src/tools/angular/compilation/jit-compilation.js +7 -16
  73. package/src/tools/angular/compilation/jit-compilation.js.map +1 -1
  74. package/src/tools/angular/compilation/parallel-compilation.d.ts +2 -7
  75. package/src/tools/angular/compilation/parallel-compilation.js +3 -29
  76. package/src/tools/angular/compilation/parallel-compilation.js.map +1 -1
  77. package/src/tools/angular/compilation/parallel-worker.d.ts +2 -2
  78. package/src/tools/angular/compilation/parallel-worker.js +3 -12
  79. package/src/tools/angular/compilation/parallel-worker.js.map +1 -1
  80. package/src/tools/angular/compilation/typescript-compilation.d.ts +31 -0
  81. package/src/tools/angular/compilation/typescript-compilation.js +115 -0
  82. package/src/tools/angular/compilation/typescript-compilation.js.map +1 -0
  83. package/src/tools/esbuild/angular/compilation-state.d.ts +23 -3
  84. package/src/tools/esbuild/angular/compilation-state.js +51 -13
  85. package/src/tools/esbuild/angular/compilation-state.js.map +1 -1
  86. package/src/tools/esbuild/angular/compiler-plugin.js +76 -114
  87. package/src/tools/esbuild/angular/compiler-plugin.js.map +1 -1
  88. package/src/tools/esbuild/bundler-execution-result.d.ts +1 -0
  89. package/src/tools/esbuild/bundler-execution-result.js +2 -2
  90. package/src/tools/esbuild/bundler-execution-result.js.map +1 -1
  91. package/src/tools/esbuild/cache.d.ts +17 -10
  92. package/src/tools/esbuild/cache.js +60 -47
  93. package/src/tools/esbuild/cache.js.map +1 -1
  94. package/src/tools/esbuild/i18n-inliner-worker.d.ts +47 -55
  95. package/src/tools/esbuild/i18n-inliner-worker.js +67 -98
  96. package/src/tools/esbuild/i18n-inliner-worker.js.map +1 -1
  97. package/src/tools/esbuild/i18n-inliner.d.ts +15 -11
  98. package/src/tools/esbuild/i18n-inliner.js +227 -122
  99. package/src/tools/esbuild/i18n-inliner.js.map +1 -1
  100. package/src/tools/esbuild/i18n-translation-encoder.d.ts +2 -1
  101. package/src/tools/esbuild/i18n-translation-encoder.js.map +1 -1
  102. package/src/tools/esbuild/i18n-translation-reader.d.ts +4 -3
  103. package/src/tools/esbuild/i18n-translation-reader.js.map +1 -1
  104. package/src/tools/esbuild/index-html-generator.js +1 -1
  105. package/src/tools/esbuild/index-html-generator.js.map +1 -1
  106. package/src/tools/esbuild/javascript-transformer-worker.js +8 -4
  107. package/src/tools/esbuild/javascript-transformer-worker.js.map +1 -1
  108. package/src/tools/esbuild/javascript-transformer.d.ts +18 -6
  109. package/src/tools/esbuild/javascript-transformer.js +104 -41
  110. package/src/tools/esbuild/javascript-transformer.js.map +1 -1
  111. package/src/tools/esbuild/lmdb-cache-store.js +1 -1
  112. package/src/tools/esbuild/lmdb-cache-store.js.map +1 -1
  113. package/src/tools/esbuild/persistent-load-result-cache.js +9 -31
  114. package/src/tools/esbuild/persistent-load-result-cache.js.map +1 -1
  115. package/src/tools/esbuild/sourcemap-ignorelist-plugin.js +109 -0
  116. package/src/tools/esbuild/sourcemap-ignorelist-plugin.js.map +1 -1
  117. package/src/tools/esbuild/sqlite-cache-store.d.ts +9 -1
  118. package/src/tools/esbuild/sqlite-cache-store.js +249 -63
  119. package/src/tools/esbuild/sqlite-cache-store.js.map +1 -1
  120. package/src/tools/esbuild/stylesheets/sass-language.d.ts +1 -0
  121. package/src/tools/esbuild/stylesheets/sass-language.js +68 -42
  122. package/src/tools/esbuild/stylesheets/sass-language.js.map +1 -1
  123. package/src/tools/esbuild/stylesheets/stylesheet-plugin-factory.d.ts +1 -1
  124. package/src/tools/esbuild/utils.d.ts +1 -1
  125. package/src/tools/esbuild/utils.js.map +1 -1
  126. package/src/tools/esbuild/watcher.js +26 -3
  127. package/src/tools/esbuild/watcher.js.map +1 -1
  128. package/src/tools/oxc/oxc-transform.js +76 -118
  129. package/src/tools/oxc/oxc-transform.js.map +1 -1
  130. package/src/tools/oxc/traversal.d.ts +32 -0
  131. package/src/tools/oxc/traversal.js +299 -0
  132. package/src/tools/oxc/traversal.js.map +1 -0
  133. package/src/tools/sass/rebasing-importer.d.ts +8 -14
  134. package/src/tools/sass/rebasing-importer.js +18 -24
  135. package/src/tools/sass/rebasing-importer.js.map +1 -1
  136. package/src/tools/sass/sass-service.d.ts +15 -38
  137. package/src/tools/sass/sass-service.js +132 -187
  138. package/src/tools/sass/sass-service.js.map +1 -1
  139. package/src/utils/environment-options.d.ts +12 -0
  140. package/src/utils/environment-options.js +20 -12
  141. package/src/utils/environment-options.js.map +1 -1
  142. package/src/utils/i18n-options.d.ts +2 -1
  143. package/src/utils/i18n-options.js.map +1 -1
  144. package/src/utils/index-file/index-html-generator.d.ts +1 -1
  145. package/src/utils/index-file/index-html-generator.js +9 -13
  146. package/src/utils/index-file/index-html-generator.js.map +1 -1
  147. package/src/utils/index-file/inline-critical-css.d.ts +16 -18
  148. package/src/utils/index-file/inline-critical-css.js +44 -189
  149. package/src/utils/index-file/inline-critical-css.js.map +1 -1
  150. package/src/utils/index-file/nonce.d.ts +2 -0
  151. package/src/utils/index-file/nonce.js +1 -0
  152. package/src/utils/index-file/nonce.js.map +1 -1
  153. package/src/utils/normalize-cache.d.ts +11 -1
  154. package/src/utils/normalize-cache.js +6 -3
  155. package/src/utils/normalize-cache.js.map +1 -1
  156. package/src/utils/purge-cache.js +24 -13
  157. package/src/utils/purge-cache.js.map +1 -1
  158. package/src/utils/server-rendering/manifest.d.ts +2 -2
  159. package/src/utils/server-rendering/manifest.js +53 -4
  160. package/src/utils/server-rendering/manifest.js.map +1 -1
  161. package/src/utils/server-rendering/prerender.d.ts +2 -1
  162. package/src/utils/server-rendering/prerender.js +31 -18
  163. package/src/utils/server-rendering/prerender.js.map +1 -1
  164. package/src/utils/server-rendering/render-worker.d.ts +6 -4
  165. package/src/utils/server-rendering/render-worker.js +3 -1
  166. package/src/utils/server-rendering/render-worker.js.map +1 -1
  167. package/src/utils/test-files.d.ts +2 -2
  168. package/src/utils/test-files.js +3 -3
  169. package/src/utils/test-files.js.map +1 -1
  170. package/src/tools/angular/compilation/noop-compilation.d.ts +0 -15
  171. package/src/tools/angular/compilation/noop-compilation.js +0 -27
  172. package/src/tools/angular/compilation/noop-compilation.js.map +0 -1
  173. package/src/tools/sass/worker.d.ts +0 -63
  174. package/src/tools/sass/worker.js +0 -202
  175. package/src/tools/sass/worker.js.map +0 -1
  176. /package/src/tools/{esbuild/angular → angular/compilation}/diagnostics.d.ts +0 -0
  177. /package/src/tools/{esbuild/angular → angular/compilation}/diagnostics.js +0 -0
  178. /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 maximum number of locales to process concurrently in a single sliding window.
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,32 @@ class I18nInliner {
59
95
  #cacheInitFailed = false;
60
96
  #workerPool;
61
97
  #cacheStore;
62
- #cache;
63
- #localizeFiles;
64
- #unmodifiedFiles;
65
- constructor(options, maxThreads) {
98
+ #transformedFileCache;
99
+ #translationCache;
100
+ #generation = 0;
101
+ get #maxConcurrency() {
102
+ return this.options.maxConcurrency ?? (this.#workerPool.maxThreads || 1);
103
+ }
104
+ constructor(options) {
66
105
  this.options = options;
67
- this.#unmodifiedFiles = [];
68
- const { outputFiles, shouldOptimize, missingTranslation, translations } = options;
69
- const files = new Map();
106
+ if (options.maxConcurrency !== undefined &&
107
+ (!Number.isInteger(options.maxConcurrency) || options.maxConcurrency < 1)) {
108
+ throw new RangeError('options.maxConcurrency must be an integer greater than or equal to 1.');
109
+ }
110
+ // Piscina uses object spread against default options internally. Only define
111
+ // maxThreads when specified to avoid overwriting Piscina's default thread count
112
+ // with undefined.
113
+ this.#workerPool = new worker_pool_1.WorkerPool({
114
+ ...(options.maxConcurrency !== undefined && { maxThreads: options.maxConcurrency }),
115
+ });
116
+ }
117
+ #partitionFiles(files) {
118
+ const filenames = [];
119
+ const localizeFiles = new Map();
120
+ const localizeMaps = new Map();
121
+ const unmodifiedFiles = [];
70
122
  const pendingMaps = [];
71
- for (const file of outputFiles) {
123
+ for (const file of files) {
72
124
  if (file.type === bundler_files_1.BuildOutputFileType.Root || file.type === bundler_files_1.BuildOutputFileType.ServerRoot) {
73
125
  // Skip also the server entry-point.
74
126
  // Skip stats and similar files.
@@ -82,7 +134,8 @@ class I18nInliner {
82
134
  : Buffer.from(file.contents.buffer, file.contents.byteOffset, file.contents.byteLength);
83
135
  const hasLocalize = contentBuffer.includes(LOCALIZE_KEYWORD);
84
136
  if (hasLocalize) {
85
- files.set(file.path, file);
137
+ localizeFiles.set(file.path, file);
138
+ filenames.push(file.path);
86
139
  continue;
87
140
  }
88
141
  }
@@ -92,33 +145,19 @@ class I18nInliner {
92
145
  pendingMaps.push(file);
93
146
  continue;
94
147
  }
95
- this.#unmodifiedFiles.push(file);
148
+ unmodifiedFiles.push(file);
96
149
  }
97
150
  // Check if any pending map files should be processed by checking if the parent JS file is present
98
151
  for (const file of pendingMaps) {
99
- if (files.has(file.path.slice(0, -4))) {
100
- files.set(file.path, file);
152
+ const jsPath = file.path.slice(0, -4);
153
+ if (localizeFiles.has(jsPath)) {
154
+ localizeMaps.set(jsPath, file);
101
155
  }
102
156
  else {
103
- this.#unmodifiedFiles.push(file);
157
+ unmodifiedFiles.push(file);
104
158
  }
105
159
  }
106
- this.#localizeFiles = files;
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
- });
160
+ return { filenames, localizeFiles, localizeMaps, unmodifiedFiles };
122
161
  }
123
162
  /**
124
163
  * Performs inlining of translations across multiple locales in parallel.
@@ -126,98 +165,95 @@ class I18nInliner {
126
165
  * An adaptive 2D task-partitioning algorithm distributes (files x locales) work units
127
166
  * across all worker threads while caching AST metadata and sourcemaps in worker memory.
128
167
  *
168
+ * @param files The build output files to transform.
129
169
  * @param locales The locales and translations to inline.
130
170
  * @returns A map of locale names to their inlined output files and diagnostics.
131
171
  */
132
- async inlineAll(locales) {
172
+ async inlineAll(files, locales) {
133
173
  await this.initCache();
134
- const { shouldOptimize, missingTranslation, localizeVersion } = this.options;
174
+ const generation = ++this.#generation;
175
+ const { missingTranslation, localizeVersion } = this.options;
135
176
  const localeList = Array.from(locales);
136
177
  if (localeList.length === 0) {
137
178
  return new Map();
138
179
  }
180
+ const { filenames, localizeFiles, localizeMaps, unmodifiedFiles } = this.#partitionFiles(files);
139
181
  const fileResultsByLocale = new Map();
140
182
  for (const { locale } of localeList) {
183
+ (0, node_assert_1.default)(!fileResultsByLocale.has(locale), 'Duplicate locale provided to inliner: ' + locale);
141
184
  fileResultsByLocale.set(locale, new Map());
142
185
  }
143
- const filenames = Array.from(this.#localizeFiles.keys()).filter((name) => !name.endsWith('.map'));
144
- // Process locales in sliding windows to cap peak worker memory
145
- for (let i = 0; i < localeList.length; i += DEFAULT_LOCALE_WINDOW_SIZE) {
146
- const windowLocales = localeList.slice(i, i + DEFAULT_LOCALE_WINDOW_SIZE);
186
+ // Process locales in sliding windows to cap peak worker memory.
187
+ // Ensure the window has at least enough locales to saturate all available workers on high-core machines.
188
+ const windowSize = Math.max(DEFAULT_LOCALE_WINDOW_SIZE, this.#maxConcurrency);
189
+ for (let i = 0; i < localeList.length; i += windowSize) {
190
+ const windowLocales = localeList.slice(i, i + windowSize);
147
191
  const activeLocales = windowLocales.map((item) => item.locale);
148
- const isLastWindow = i + DEFAULT_LOCALE_WINDOW_SIZE >= localeList.length;
192
+ const isLastWindow = i + windowSize >= localeList.length;
149
193
  // Pre-calculate cache key bases and serialized Blobs for each locale in this window
150
194
  const localeCacheBases = new Map();
151
195
  const localeBlobs = new Map();
152
- for (const { locale, translation, translationIntegrity } of windowLocales) {
153
- localeBlobs.set(locale, serializeTranslation(translation));
196
+ await Promise.all(windowLocales.map(async ({ locale, translation, translationIntegrity }) => {
197
+ const serialized = await serializeTranslation(translation, translationIntegrity, this.#translationCache);
198
+ localeBlobs.set(locale, serialized);
154
199
  if (this.#cacheStore) {
155
200
  localeCacheBases.set(locale, (0, hash_1.calculateHash)(JSON.stringify({
156
201
  locale,
157
202
  translation: translationIntegrity || translation,
158
203
  missingTranslation,
159
- shouldOptimize,
160
204
  localizeVersion,
161
205
  })));
162
206
  }
163
- }
164
- const cacheChecks = [];
165
- for (const filename of filenames) {
166
- const file = this.#localizeFiles.get(filename);
167
- (0, node_assert_1.default)(file !== undefined, 'Localize file must exist: ' + filename);
168
- for (const { locale } of windowLocales) {
169
- let cacheKey;
170
- let cachedResultPromise = Promise.resolve(null);
171
- if (this.#cache) {
207
+ }));
208
+ const uncachedByFile = new Map();
209
+ if (this.#transformedFileCache) {
210
+ const cache = this.#transformedFileCache;
211
+ const cacheChecks = [];
212
+ for (const filename of filenames) {
213
+ const file = localizeFiles.get(filename);
214
+ (0, node_assert_1.default)(file !== undefined, 'Localize file must exist: ' + filename);
215
+ const fileEntriesPromises = windowLocales.map(async ({ locale }) => {
172
216
  const fileCacheKeyBase = localeCacheBases.get(locale);
173
217
  (0, node_assert_1.default)(fileCacheKeyBase !== undefined, 'Cache base must exist for locale: ' + locale);
174
218
  const hasher = (0, hash_1.createContentHash)();
175
219
  hasher.update(file.hash);
176
220
  hasher.update(filename);
177
221
  hasher.update(fileCacheKeyBase);
178
- cacheKey = hasher.digest();
179
- cachedResultPromise = this.#cache
180
- .get(cacheKey)
181
- .then((val) => val ?? null)
182
- .catch(() => null);
183
- }
184
- cacheChecks.push({
185
- filename,
186
- locale,
187
- cacheKey,
188
- cachedResult: cachedResultPromise,
222
+ const cacheKey = hasher.digest();
223
+ try {
224
+ const result = await cache.get(cacheKey);
225
+ if (result) {
226
+ fileResultsByLocale.get(locale)?.set(filename, result);
227
+ return;
228
+ }
229
+ }
230
+ catch { }
231
+ return {
232
+ locale,
233
+ cacheKey,
234
+ translation: localeBlobs.get(locale),
235
+ };
189
236
  });
237
+ cacheChecks.push(Promise.all(fileEntriesPromises).then((entries) => {
238
+ const filtered = entries.filter((e) => e !== undefined);
239
+ if (filtered.length > 0) {
240
+ uncachedByFile.set(filename, filtered);
241
+ }
242
+ }));
190
243
  }
244
+ await Promise.all(cacheChecks);
191
245
  }
192
- // Await all cache checks for this window
193
- const resolvedChecks = await Promise.all(cacheChecks.map(async (item) => ({
194
- ...item,
195
- result: await item.cachedResult,
196
- })));
197
- // Group uncached items by filename for this window
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
- });
246
+ else {
247
+ for (const filename of filenames) {
248
+ uncachedByFile.set(filename, windowLocales.map(({ locale }) => ({
249
+ locale,
250
+ translation: localeBlobs.get(locale),
251
+ })));
216
252
  }
217
253
  }
218
254
  // Adaptive 2D Sharding for uncached tasks in this window
219
255
  if (uncachedByFile.size > 0) {
220
- await this.#processUncachedBatches(uncachedByFile, windowLocales.length, fileResultsByLocale, activeLocales, isLastWindow);
256
+ await this.#processUncachedBatches(localizeFiles, localizeMaps, uncachedByFile, fileResultsByLocale, activeLocales, isLastWindow, generation);
221
257
  }
222
258
  }
223
259
  // Assemble final results in deterministic order per locale
@@ -229,16 +265,26 @@ class I18nInliner {
229
265
  const warnings = [];
230
266
  if (fileResults) {
231
267
  for (const filename of filenames) {
268
+ const originalFile = localizeFiles.get(filename);
269
+ (0, node_assert_1.default)(originalFile !== undefined, 'Localize file must exist: ' + filename);
232
270
  const fileResult = fileResults.get(filename);
233
271
  if (!fileResult) {
234
272
  continue;
235
273
  }
236
- const type = this.#localizeFiles.get(filename)?.type;
237
- (0, node_assert_1.default)(type !== undefined, 'localized file should always have a type: ' + filename);
238
- outputFiles.push((0, bundler_files_1.createOutputFile)(filename, fileResult.code, type));
239
- if (fileResult.map) {
274
+ const type = originalFile.type;
275
+ if (fileResult.code != undefined) {
276
+ outputFiles.push((0, bundler_files_1.createOutputFile)(filename, fileResult.code, type));
277
+ }
278
+ else {
279
+ outputFiles.push(originalFile.clone());
280
+ }
281
+ const originalMap = localizeMaps.get(filename);
282
+ if (fileResult.map !== undefined) {
240
283
  outputFiles.push((0, bundler_files_1.createOutputFile)(filename + '.map', fileResult.map, type));
241
284
  }
285
+ else if (originalMap !== undefined) {
286
+ outputFiles.push(originalMap.clone());
287
+ }
242
288
  for (const message of fileResult.messages) {
243
289
  if (message.type === 'error') {
244
290
  errors.push(message.message);
@@ -250,7 +296,7 @@ class I18nInliner {
250
296
  }
251
297
  }
252
298
  // Include cloned unmodified files for every locale
253
- outputFiles.push(...this.#unmodifiedFiles.map((file) => file.clone()));
299
+ outputFiles.push(...unmodifiedFiles.map((file) => file.clone()));
254
300
  resultsByLocale.set(locale, {
255
301
  outputFiles,
256
302
  errors,
@@ -259,62 +305,119 @@ class I18nInliner {
259
305
  }
260
306
  return resultsByLocale;
261
307
  }
262
- async #processUncachedBatches(uncachedByFile, localeCount, fileResultsByLocale, activeLocales, isLastWindow = true) {
263
- const workerCount = this.#workerPool.maxThreads || 1;
264
- const targetTaskCount = Math.max(uncachedByFile.size, workerCount * 2);
265
- const localesPerBatch = Math.max(1, Math.ceil(localeCount / (targetTaskCount / (uncachedByFile.size || 1))));
308
+ async #processUncachedBatches(localizeFiles, localizeMaps, uncachedByFile, fileResultsByLocale, activeLocales, isLastWindow = true, generation) {
309
+ const workerCount = this.#maxConcurrency;
310
+ // Extract file data and identify the heaviest file size in a single pass
311
+ let maxFileSize = 0;
312
+ const sortedFiles = Array.from(uncachedByFile, ([filename, entries]) => {
313
+ const codeFile = localizeFiles.get(filename);
314
+ (0, node_assert_1.default)(codeFile !== undefined, 'Localize file must exist: ' + filename);
315
+ const fileSize = codeFile.contents.byteLength;
316
+ if (fileSize > maxFileSize) {
317
+ maxFileSize = fileSize;
318
+ }
319
+ return { filename, entries, codeFile, fileSize };
320
+ });
321
+ // Sort files descending by byte size (Longest Processing Time First / LPT).
322
+ // Heavy files (e.g. main.js) are queued first to saturate all worker threads immediately,
323
+ // while small files act as gap fillers near the window barrier to prevent tail stragglers.
324
+ sortedFiles.sort((a, b) => b.fileSize - a.fileSize);
266
325
  const workerTasks = [];
267
- for (const [filename, entries] of uncachedByFile) {
326
+ for (const { filename, entries, codeFile, fileSize } of sortedFiles) {
327
+ const mapFile = localizeMaps.get(filename);
328
+ const codeBlob = new Blob([codeFile.contents]);
329
+ const mapBlob = mapFile ? new Blob([mapFile.contents]) : undefined;
330
+ let localesPerBatch;
331
+ if (uncachedByFile.size === 1) {
332
+ // Single file in window: shard across all workers to avoid idle threads
333
+ localesPerBatch = Math.max(1, Math.ceil(entries.length / workerCount));
334
+ }
335
+ else if (fileSize < SMALL_FILE_FLOOR_BYTES) {
336
+ // Small chunks (< 100 KB): process all locales in 1 batch to eliminate IPC overhead
337
+ localesPerBatch = entries.length;
338
+ }
339
+ else if (fileSize >= maxFileSize * DOMINANT_FILE_RATIO) {
340
+ // Dominant file(s): shard across all workers for maximum multi-core parallelism
341
+ localesPerBatch = Math.max(1, Math.ceil(entries.length / workerCount));
342
+ }
343
+ else {
344
+ // Intermediate files: moderate sharding
345
+ localesPerBatch = Math.max(1, Math.ceil(entries.length / 2));
346
+ }
268
347
  const ephemeral = isLastWindow && entries.length <= localesPerBatch;
269
348
  for (let i = 0; i < entries.length; i += localesPerBatch) {
270
349
  const batchEntries = entries.slice(i, i + localesPerBatch);
271
350
  const task = (async () => {
272
- const batchResult = (await this.#workerPool.run({
351
+ const batchResult = await this.#runWorkerTask('inlineFileBatch', {
273
352
  filename,
274
- locales: batchEntries.map((e) => ({
275
- locale: e.locale,
276
- translation: e.translation,
277
- })),
353
+ code: codeBlob,
354
+ map: mapBlob,
355
+ locales: new Map(batchEntries.map((e) => [e.locale, e.translation])),
356
+ missingTranslation: this.options.missingTranslation,
278
357
  ephemeral,
279
358
  activeLocales,
280
- }, { name: 'inlineFileBatch' }));
281
- const cachePromises = [];
282
- for (const res of batchResult.results) {
283
- const matchingEntry = batchEntries.find((e) => e.locale === res.locale);
284
- const cacheKey = matchingEntry?.cacheKey;
285
- if (this.#cache && cacheKey) {
286
- cachePromises.push(this.#cache.put(cacheKey, {
359
+ generation,
360
+ });
361
+ if (batchResult.unmodified) {
362
+ const unmodifiedResult = {
363
+ file: filename,
364
+ messages: batchResult.messages,
365
+ };
366
+ const cachePromises = [];
367
+ for (const { locale, cacheKey } of batchEntries) {
368
+ fileResultsByLocale.get(locale)?.set(filename, unmodifiedResult);
369
+ if (this.#transformedFileCache && cacheKey) {
370
+ cachePromises.push(this.#transformedFileCache.put(cacheKey, unmodifiedResult));
371
+ }
372
+ }
373
+ await Promise.allSettled(cachePromises);
374
+ }
375
+ else {
376
+ const cachePromises = [];
377
+ for (const res of batchResult.results) {
378
+ const matchingEntry = batchEntries.find((e) => e.locale === res.locale);
379
+ const cacheKey = matchingEntry?.cacheKey;
380
+ const fileResult = {
287
381
  file: filename,
288
382
  code: res.code,
289
383
  map: res.map,
290
384
  messages: res.messages,
291
- }));
385
+ };
386
+ if (this.#transformedFileCache && cacheKey) {
387
+ cachePromises.push(this.#transformedFileCache.put(cacheKey, fileResult));
388
+ }
389
+ fileResultsByLocale.get(res.locale)?.set(filename, fileResult);
292
390
  }
293
- fileResultsByLocale.get(res.locale)?.set(filename, res);
391
+ await Promise.allSettled(cachePromises);
294
392
  }
295
- await Promise.allSettled(cachePromises);
296
393
  })();
297
394
  workerTasks.push(task);
298
395
  }
299
396
  }
300
397
  await Promise.all(workerTasks);
301
398
  }
399
+ #runWorkerTask(name, request) {
400
+ return this.#workerPool.run(request, {
401
+ filename: INLINER_WORKER_PATH,
402
+ name,
403
+ });
404
+ }
302
405
  /**
303
- * Performs inlining of translations for the provided locale and translations. The files that
304
- * are processed originate from the files passed to the class constructor and filter by presence
305
- * of the localize function keyword.
406
+ * Performs inlining of translations for the provided locale and translations.
407
+ *
408
+ * @param files The build output files to transform.
306
409
  * @param locale The string representing the locale to inline.
307
410
  * @param translation The translation messages to use when inlining.
308
411
  * @param translationIntegrity An optional integrity value for the translation messages to use for caching.
309
412
  * @returns A promise that resolves to an array of OutputFiles representing a translated result.
310
413
  */
311
- async inlineForLocale(locale, translation, translationIntegrity) {
312
- const results = await this.inlineAll([{ locale, translation, translationIntegrity }]);
414
+ async inlineForLocale(files, locale, translation, translationIntegrity) {
415
+ const results = await this.inlineAll(files, [{ locale, translation, translationIntegrity }]);
313
416
  const result = results.get(locale);
314
417
  (0, node_assert_1.default)(result !== undefined, `Result for locale '${locale}' should be present.`);
315
418
  return result;
316
419
  }
317
- async inlineTemplateUpdate(locale, translation, templateCode, templateId) {
420
+ async inlineTemplateUpdate(locale, translation, templateCode, templateId, translationIntegrity) {
318
421
  const hasLocalize = templateCode.includes(LOCALIZE_KEYWORD);
319
422
  if (!hasLocalize) {
320
423
  return {
@@ -323,12 +426,13 @@ class I18nInliner {
323
426
  warnings: [],
324
427
  };
325
428
  }
326
- const { output, messages } = await this.#workerPool.run({
429
+ const { output, messages } = await this.#runWorkerTask('inlineCode', {
327
430
  code: templateCode,
328
431
  filename: templateId,
329
432
  locale,
330
- translation: serializeTranslation(translation),
331
- }, { name: 'inlineCode' });
433
+ missingTranslation: this.options.missingTranslation,
434
+ translation: await serializeTranslation(translation, translationIntegrity, this.#translationCache),
435
+ });
332
436
  const errors = [];
333
437
  const warnings = [];
334
438
  for (const message of messages) {
@@ -374,7 +478,8 @@ class I18nInliner {
374
478
  (0, cache_1.createPersistentCacheStore)((0, node_path_1.join)(persistentCachePath, 'angular-i18n')),
375
479
  ]);
376
480
  this.#cacheStore = cacheStore;
377
- this.#cache = cacheStore.createCache('transforms');
481
+ this.#transformedFileCache = cacheStore.createCache('transforms');
482
+ this.#translationCache = cacheStore.createCache('translations');
378
483
  }
379
484
  catch {
380
485
  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, unknown>): SharedArrayBuffer;
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":"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"}
1
+ {"version":3,"file":"i18n-translation-encoder.js","sourceRoot":"","sources":["i18n-translation-encoder.ts"],"names":[],"mappings":"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"}