@angular/build 22.2.0-next.1 → 22.2.0-next.3

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 (92) hide show
  1. package/package.json +10 -8
  2. package/src/builders/application/build-action.js +14 -3
  3. package/src/builders/application/build-action.js.map +1 -1
  4. package/src/builders/application/chunk-optimizer.js +1 -0
  5. package/src/builders/application/chunk-optimizer.js.map +1 -1
  6. package/src/builders/application/execute-build.js +2 -1
  7. package/src/builders/application/execute-build.js.map +1 -1
  8. package/src/builders/application/setup-bundling.js +2 -2
  9. package/src/builders/application/setup-bundling.js.map +1 -1
  10. package/src/builders/dev-server/internal.d.ts +1 -1
  11. package/src/builders/dev-server/internal.js +2 -2
  12. package/src/builders/dev-server/internal.js.map +1 -1
  13. package/src/builders/dev-server/vite/server.js +6 -2
  14. package/src/builders/dev-server/vite/server.js.map +1 -1
  15. package/src/builders/unit-test/options.js +1 -1
  16. package/src/builders/unit-test/options.js.map +1 -1
  17. package/src/builders/unit-test/test-discovery.js +3 -2
  18. package/src/builders/unit-test/test-discovery.js.map +1 -1
  19. package/src/private.d.ts +1 -1
  20. package/src/private.js +2 -2
  21. package/src/private.js.map +1 -1
  22. package/src/tools/angular/angular-host.js +3 -3
  23. package/src/tools/angular/angular-host.js.map +1 -1
  24. package/src/tools/angular/compilation/parallel-worker.js +2 -0
  25. package/src/tools/angular/compilation/parallel-worker.js.map +1 -1
  26. package/src/tools/angular/linker/oxc-linker.d.ts +2 -1
  27. package/src/tools/angular/linker/oxc-linker.js +3 -11
  28. package/src/tools/angular/linker/oxc-linker.js.map +1 -1
  29. package/src/tools/angular/linker/string-ast-factory.js +17 -6
  30. package/src/tools/angular/linker/string-ast-factory.js.map +1 -1
  31. package/src/tools/esbuild/angular/compiler-plugin.js +4 -7
  32. package/src/tools/esbuild/angular/compiler-plugin.js.map +1 -1
  33. package/src/tools/esbuild/angular/component-stylesheets.js +5 -6
  34. package/src/tools/esbuild/angular/component-stylesheets.js.map +1 -1
  35. package/src/tools/esbuild/application-code-bundle.js +2 -2
  36. package/src/tools/esbuild/application-code-bundle.js.map +1 -1
  37. package/src/tools/esbuild/bundler-files.js +3 -5
  38. package/src/tools/esbuild/bundler-files.js.map +1 -1
  39. package/src/tools/esbuild/i18n-inliner-worker.d.ts +8 -4
  40. package/src/tools/esbuild/i18n-inliner-worker.js +40 -7
  41. package/src/tools/esbuild/i18n-inliner-worker.js.map +1 -1
  42. package/src/tools/esbuild/i18n-inliner.js +37 -10
  43. package/src/tools/esbuild/i18n-inliner.js.map +1 -1
  44. package/src/tools/esbuild/javascript-transformer-worker.d.ts +0 -4
  45. package/src/tools/esbuild/javascript-transformer-worker.js +105 -55
  46. package/src/tools/esbuild/javascript-transformer-worker.js.map +1 -1
  47. package/src/tools/esbuild/javascript-transformer.d.ts +1 -1
  48. package/src/tools/esbuild/javascript-transformer.js +63 -37
  49. package/src/tools/esbuild/javascript-transformer.js.map +1 -1
  50. package/src/tools/esbuild/persistent-load-result-cache.js +11 -13
  51. package/src/tools/esbuild/persistent-load-result-cache.js.map +1 -1
  52. package/src/tools/esbuild/sqlite-cache-store.js +51 -1
  53. package/src/tools/esbuild/sqlite-cache-store.js.map +1 -1
  54. package/src/tools/esbuild/stylesheets/stylesheet-cache-key.js +4 -8
  55. package/src/tools/esbuild/stylesheets/stylesheet-cache-key.js.map +1 -1
  56. package/src/tools/esbuild/target.d.ts +29 -0
  57. package/src/tools/esbuild/target.js +105 -0
  58. package/src/tools/esbuild/target.js.map +1 -0
  59. package/src/tools/esbuild/utils.d.ts +0 -10
  60. package/src/tools/esbuild/utils.js +0 -58
  61. package/src/tools/esbuild/utils.js.map +1 -1
  62. package/src/tools/esbuild/watcher.d.ts +21 -2
  63. package/src/tools/esbuild/watcher.js +483 -60
  64. package/src/tools/esbuild/watcher.js.map +1 -1
  65. package/src/tools/{babel/plugins → oxc}/oxc-transform.d.ts +2 -2
  66. package/src/tools/{babel/plugins → oxc}/oxc-transform.js +10 -18
  67. package/src/tools/oxc/oxc-transform.js.map +1 -0
  68. package/src/tools/sass/rebasing-importer.d.ts +5 -5
  69. package/src/tools/sass/rebasing-importer.js +5 -2
  70. package/src/tools/sass/rebasing-importer.js.map +1 -1
  71. package/src/tools/sass/worker.d.ts +1 -1
  72. package/src/tools/sass/worker.js.map +1 -1
  73. package/src/tools/vite/middlewares/assets-middleware.js +3 -3
  74. package/src/tools/vite/middlewares/assets-middleware.js.map +1 -1
  75. package/src/tools/vite/utils.d.ts +2 -1
  76. package/src/tools/vite/utils.js +2 -1
  77. package/src/tools/vite/utils.js.map +1 -1
  78. package/src/utils/bundle-calculator.js +12 -3
  79. package/src/utils/bundle-calculator.js.map +1 -1
  80. package/src/utils/hash.d.ts +24 -0
  81. package/src/utils/hash.js +94 -0
  82. package/src/utils/hash.js.map +1 -0
  83. package/src/utils/index-file/inline-critical-css.js +153 -109
  84. package/src/utils/index-file/inline-critical-css.js.map +1 -1
  85. package/src/utils/normalize-cache.js +1 -1
  86. package/src/utils/server-rendering/manifest.js +9 -4
  87. package/src/utils/server-rendering/manifest.js.map +1 -1
  88. package/src/utils/source-map.d.ts +26 -2
  89. package/src/utils/source-map.js +172 -85
  90. package/src/utils/source-map.js.map +1 -1
  91. package/src/tools/babel/plugins/oxc-transform.js.map +0 -1
  92. /package/src/tools/{babel/plugins → oxc}/types.d.ts +0 -0
@@ -8,11 +8,34 @@
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.JavaScriptTransformer = void 0;
11
- const node_crypto_1 = require("node:crypto");
12
11
  const promises_1 = require("node:fs/promises");
12
+ const hash_1 = require("../../utils/hash");
13
13
  const utils_1 = require("../../utils/server-rendering/esm-in-memory-loader/utils");
14
14
  const source_map_1 = require("../../utils/source-map");
15
15
  const worker_pool_1 = require("../../utils/worker-pool");
16
+ const LINKER_DECLARATION_PREFIX = 'ɵɵngDeclare';
17
+ const LINKER_DECLARATION_PREFIX_BYTES = Buffer.from(LINKER_DECLARATION_PREFIX, 'utf-8');
18
+ /**
19
+ * Determines whether JavaScript code requires Angular linker processing.
20
+ *
21
+ * @param path The full path to the file.
22
+ * @param data The data (string or Buffer) of the file.
23
+ * @returns True if the code contains an Angular partial declaration; otherwise false.
24
+ */
25
+ function requiresLinking(path, data) {
26
+ // @angular/core and @angular/compiler will cause false positives
27
+ // Also, TypeScript files do not require linking
28
+ if (/[\\/]@angular[\\/](?:compiler|core)[\\/]|\.[cm]?tsx?$/.test(path)) {
29
+ return false;
30
+ }
31
+ if (typeof data === 'string') {
32
+ return data.includes(LINKER_DECLARATION_PREFIX);
33
+ }
34
+ const dataBuffer = Buffer.isBuffer(data)
35
+ ? data
36
+ : Buffer.from(data.buffer, data.byteOffset, data.byteLength);
37
+ return dataBuffer.includes(LINKER_DECLARATION_PREFIX_BYTES);
38
+ }
16
39
  /**
17
40
  * A class that performs transformation of JavaScript files and raw data.
18
41
  * A worker pool is used to distribute the transformation actions and allow
@@ -46,6 +69,7 @@ class JavaScriptTransformer {
46
69
  jit,
47
70
  };
48
71
  this.#fileCacheKeyBase = Buffer.from(JSON.stringify(this.#commonOptions), 'utf-8');
72
+ this.#workerPool = this.#ensureWorkerPool();
49
73
  }
50
74
  /**
51
75
  * Executes a transformation action using a semaphore-based backpressure throttle.
@@ -82,6 +106,8 @@ class JavaScriptTransformer {
82
106
  const workerPoolOptions = {
83
107
  filename: require.resolve('./javascript-transformer-worker'),
84
108
  maxThreads: this.maxThreads,
109
+ minThreads: this.maxThreads,
110
+ workerData: this.#commonOptions,
85
111
  };
86
112
  // Prevent passing SSR `--import` (loader-hooks) from parent to child worker.
87
113
  const filteredExecArgv = process.execArgv.filter((v) => v !== utils_1.IMPORT_EXEC_ARGV);
@@ -102,46 +128,32 @@ class JavaScriptTransformer {
102
128
  async transformFile(filename, skipLinker, sideEffects, instrumentForCoverage) {
103
129
  return this.#runWithThrottle(async () => {
104
130
  const data = await (0, promises_1.readFile)(filename);
105
- let result;
106
131
  let cacheKey;
107
132
  if (this.cache) {
108
133
  // Create a cache key from the file data and options that effect the output.
109
134
  // NOTE: If additional options are added, this may need to be updated.
110
- // TODO: Consider xxhash or similar instead of SHA256
111
- const hash = (0, node_crypto_1.createHash)('sha256');
112
- hash.update(`${!!skipLinker}--${!!sideEffects}`);
113
- hash.update(data);
114
- hash.update(this.#fileCacheKeyBase);
115
- cacheKey = hash.digest('hex');
135
+ const hasher = (0, hash_1.createContentHash)();
136
+ hasher.update(`${!!skipLinker}--${!!sideEffects}`);
137
+ hasher.update(data);
138
+ hasher.update(this.#fileCacheKeyBase);
139
+ cacheKey = hasher.digest();
116
140
  try {
117
- result = await this.cache?.get(cacheKey);
141
+ const cached = await this.cache.get(cacheKey);
142
+ if (cached !== undefined) {
143
+ return cached;
144
+ }
118
145
  }
119
146
  catch {
120
147
  // Failure to get the value should not fail the transform
121
148
  }
122
149
  }
123
- if (result === undefined) {
124
- // If there is no cache or no cached entry, process the file
125
- result = (await this.#ensureWorkerPool().run({
126
- filename,
127
- data,
128
- skipLinker,
129
- sideEffects,
130
- instrumentForCoverage,
131
- ...this.#commonOptions,
132
- }, {
133
- // The below is disable as with Yarn PNP this causes build failures with the below message
134
- // `Unable to deserialize cloned data`.
135
- transferList: process.versions.pnp ? undefined : [data.buffer],
136
- }));
137
- // If there is a cache then store the result
138
- if (this.cache && cacheKey) {
139
- try {
140
- await this.cache.put(cacheKey, result);
141
- }
142
- catch {
143
- // Failure to store the value in the cache should not fail the transform
144
- }
150
+ const result = await this.transformData(filename, data, !!skipLinker, sideEffects, instrumentForCoverage);
151
+ if (this.cache && cacheKey) {
152
+ try {
153
+ await this.cache.put(cacheKey, result);
154
+ }
155
+ catch {
156
+ // Failure to store the value in the cache should not fail the transform
145
157
  }
146
158
  }
147
159
  return result;
@@ -157,21 +169,35 @@ class JavaScriptTransformer {
157
169
  * @returns A promise that resolves to a UTF-8 encoded Uint8Array containing the result.
158
170
  */
159
171
  async transformData(filename, data, skipLinker, sideEffects, instrumentForCoverage) {
172
+ const shouldLink = !skipLinker && requiresLinking(filename, data);
160
173
  // Perform a quick test to determine if the data needs any transformations.
161
174
  // This allows directly returning the data without the worker communication overhead.
162
- if (skipLinker && !this.#commonOptions.advancedOptimizations && !instrumentForCoverage) {
175
+ if (!shouldLink && !this.#commonOptions.advancedOptimizations && !instrumentForCoverage) {
163
176
  const keepSourcemap = this.#commonOptions.sourcemap &&
164
177
  (!!this.#commonOptions.thirdPartySourcemaps || !/[\\/]node_modules[\\/]/.test(filename));
165
- return Buffer.from(keepSourcemap ? data : (0, source_map_1.removeSourceMappingURL)(data), 'utf-8');
178
+ if (typeof data === 'string') {
179
+ return Buffer.from(keepSourcemap ? data : (0, source_map_1.removeSourceMappingURL)(data), 'utf-8');
180
+ }
181
+ return keepSourcemap ? data : (0, source_map_1.removeSourceMappingURL)(data);
166
182
  }
167
- return this.#runWithThrottle(() => this.#ensureWorkerPool().run({
183
+ // Only standalone (non-pooled) ArrayBuffers can be transferred across worker threads.
184
+ // Node.js shares an internal 8KB ArrayBuffer pool for small buffers, and transferring
185
+ // a pooled buffer will throw a DataCloneError because detaching it invalidates other slices.
186
+ // In addition, SharedArrayBuffers cannot be transferred, and Yarn PnP has deserialization issues.
187
+ const isTransferable = typeof data !== 'string' &&
188
+ data.buffer instanceof ArrayBuffer &&
189
+ data.byteOffset === 0 &&
190
+ data.byteLength === data.buffer.byteLength &&
191
+ !process.versions.pnp;
192
+ return this.#ensureWorkerPool().run({
168
193
  filename,
169
194
  data,
170
- skipLinker,
195
+ skipLinker: !shouldLink,
171
196
  sideEffects,
172
197
  instrumentForCoverage,
173
- ...this.#commonOptions,
174
- }));
198
+ }, {
199
+ transferList: isTransferable ? [data.buffer] : undefined,
200
+ });
175
201
  }
176
202
  /**
177
203
  * Stops all active transformation tasks and shuts down all workers.
@@ -1 +1 @@
1
- {"version":3,"file":"javascript-transformer.js","sourceRoot":"","sources":["javascript-transformer.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,6CAAyC;AACzC,+CAA4C;AAC5C,mFAA2F;AAC3F,uDAAgE;AAChE,yDAAwE;AAaxE;;;;;;GAMG;AACH,MAAa,qBAAqB;IAgBrB;IACQ;IAhBnB,WAAW,CAAyB;IACpC,cAAc,CAAyC;IACvD,iBAAiB,CAAa;IAE9B,oFAAoF;IACpF,aAAa,GAA+D,EAAE,CAAC;IAE/E,gEAAgE;IAChE,YAAY,GAAG,CAAC,CAAC;IAEjB,8EAA8E;IAC9E,cAAc,CAAS;IAEvB,YACE,OAAqC,EAC5B,UAAkB,EACV,KAAyB;QADjC,eAAU,GAAV,UAAU,CAAQ;QACV,UAAK,GAAL,KAAK,CAAoB;QAE1C,6FAA6F;QAC7F,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;QAClD,yFAAyF;QACzF,MAAM,EACJ,SAAS,EACT,oBAAoB,GAAG,KAAK,EAC5B,qBAAqB,GAAG,KAAK,EAC7B,GAAG,GAAG,KAAK,GACZ,GAAG,OAAO,CAAC;QACZ,IAAI,CAAC,cAAc,GAAG;YACpB,SAAS;YACT,oBAAoB;YACpB,qBAAqB;YACrB,GAAG;SACJ,CAAC;QACF,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC;IACrF,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,gBAAgB,CAAI,MAAwB;QAChD,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC7C,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC1C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;QAED,IAAI,CAAC;YACH,OAAO,MAAM,MAAM,EAAE,CAAC;QACxB,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YACxC,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAED,iBAAiB;QACf,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;QAED,MAAM,iBAAiB,GAAsB;YAC3C,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,iCAAiC,CAAC;YAC5D,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC;QAEF,6EAA6E;QAC7E,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,wBAAgB,CAAC,CAAC;QAChF,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,gBAAgB,CAAC,MAAM,EAAE,CAAC;YACxD,iBAAiB,CAAC,QAAQ,GAAG,gBAAgB,CAAC;QAChD,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,wBAAU,CAAC,iBAAiB,CAAC,CAAC;QAErD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,aAAa,CACjB,QAAgB,EAChB,UAAoB,EACpB,WAAqB,EACrB,qBAA+B;QAE/B,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE;YACtC,MAAM,IAAI,GAAG,MAAM,IAAA,mBAAQ,EAAC,QAAQ,CAAC,CAAC;YAEtC,IAAI,MAAM,CAAC;YACX,IAAI,QAAQ,CAAC;YACb,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,4EAA4E;gBAC5E,sEAAsE;gBACtE,qDAAqD;gBACrD,MAAM,IAAI,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC;gBAClC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;gBACjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBACpC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAE9B,IAAI,CAAC;oBACH,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC3C,CAAC;gBAAC,MAAM,CAAC;oBACP,yDAAyD;gBAC3D,CAAC;YACH,CAAC;YAED,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,4DAA4D;gBAC5D,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC,GAAG,CAC1C;oBACE,QAAQ;oBACR,IAAI;oBACJ,UAAU;oBACV,WAAW;oBACX,qBAAqB;oBACrB,GAAG,IAAI,CAAC,cAAc;iBACvB,EACD;oBACE,0FAA0F;oBAC1F,uCAAuC;oBACvC,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;iBAC/D,CACF,CAAe,CAAC;gBAEjB,4CAA4C;gBAC5C,IAAI,IAAI,CAAC,KAAK,IAAI,QAAQ,EAAE,CAAC;oBAC3B,IAAI,CAAC;wBACH,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;oBACzC,CAAC;oBAAC,MAAM,CAAC;wBACP,wEAAwE;oBAC1E,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,aAAa,CACjB,QAAgB,EAChB,IAAY,EACZ,UAAmB,EACnB,WAAqB,EACrB,qBAA+B;QAE/B,2EAA2E;QAC3E,qFAAqF;QACrF,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,qBAAqB,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACvF,MAAM,aAAa,GACjB,IAAI,CAAC,cAAc,CAAC,SAAS;gBAC7B,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,oBAAoB,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAE3F,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,mCAAsB,EAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;QACnF,CAAC;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAChC,IAAI,CAAC,iBAAiB,EAAE,CAAC,GAAG,CAAC;YAC3B,QAAQ;YACR,IAAI;YACJ,UAAU;YACV,WAAW;YACX,qBAAqB;YACrB,GAAG,IAAI,CAAC,cAAc;SACvB,CAAC,CACH,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK;QACT,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACnC,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAlND,sDAkNC"}
1
+ {"version":3,"file":"javascript-transformer.js","sourceRoot":"","sources":["javascript-transformer.ts"],"names":[],"mappings":"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"}
@@ -9,26 +9,23 @@
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.PersistentLoadResultCache = void 0;
11
11
  exports.extractDiskFilePath = extractDiskFilePath;
12
- const node_crypto_1 = require("node:crypto");
13
12
  const promises_1 = require("node:fs/promises");
14
13
  const node_path_1 = require("node:path");
15
14
  const node_url_1 = require("node:url");
15
+ const hash_1 = require("../../utils/hash");
16
16
  const load_result_cache_1 = require("./load-result-cache");
17
- function hashContent(content) {
18
- return (0, node_crypto_1.createHash)('sha256').update(content).digest('hex');
19
- }
20
17
  /**
21
18
  * Calculates a unique cache key by updating the hash incrementally.
22
19
  * This prevents implicit string coercion of large binary content buffers.
23
20
  */
24
21
  function calculateCacheKey(globalConfigHash, path, content) {
25
- return (0, node_crypto_1.createHash)('sha256')
26
- .update(globalConfigHash)
27
- .update('\0')
28
- .update(path)
29
- .update('\0')
30
- .update(content)
31
- .digest('hex');
22
+ const hasher = (0, hash_1.createContentHash)();
23
+ hasher.update(globalConfigHash);
24
+ hasher.update('\0');
25
+ hasher.update(path);
26
+ hasher.update('\0');
27
+ hasher.update(content);
28
+ return hasher.digest();
32
29
  }
33
30
  /**
34
31
  * Normalizes a namespaced cache key into a valid disk file path if one exists.
@@ -107,7 +104,7 @@ async function validateAndHealCacheEntry(watchFilesMetadata, store, cacheKey, ca
107
104
  }
108
105
  // 3. Slow Path for dependencies: content hash fallback
109
106
  const currentContent = await (0, promises_1.readFile)(filePath);
110
- const currentHash = hashContent(currentContent);
107
+ const currentHash = (0, hash_1.calculateHash)(currentContent);
111
108
  if (currentHash === expected.hash) {
112
109
  // Heal cache entry with new metadata
113
110
  watchFilesMetadata[filePath] = {
@@ -150,8 +147,9 @@ async function computeMetadataForWatchFiles(watchFiles, knownContents) {
150
147
  knownContent !== undefined ? knownContent : (0, promises_1.readFile)(filePath),
151
148
  (0, promises_1.stat)(filePath),
152
149
  ]);
150
+ const hash = (0, hash_1.calculateHash)(content);
153
151
  watchFilesMetadata[filePath] = {
154
- hash: hashContent(content),
152
+ hash,
155
153
  mtimeMs: stats.mtimeMs,
156
154
  size: stats.size,
157
155
  };
@@ -1 +1 @@
1
- {"version":3,"file":"persistent-load-result-cache.js","sourceRoot":"","sources":["persistent-load-result-cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"persistent-load-result-cache.js","sourceRoot":"","sources":["persistent-load-result-cache.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,8 @@ class SqliteCacheStore {
19
19
  #hasStmt;
20
20
  #setStmt;
21
21
  #updateAccessedStmt;
22
+ #pendingAccessedKeys = new Set();
23
+ #flushTimeout;
22
24
  constructor(cachePath, maxPayloadSize = 1024 * 1024 * 1024, ttlDays = 14) {
23
25
  this.cachePath = cachePath;
24
26
  this.maxPayloadSize = maxPayloadSize;
@@ -31,6 +33,9 @@ class SqliteCacheStore {
31
33
  this.#db.exec('PRAGMA auto_vacuum = FULL;');
32
34
  this.#db.exec('PRAGMA journal_mode = WAL;');
33
35
  this.#db.exec('PRAGMA synchronous = NORMAL;');
36
+ this.#db.exec('PRAGMA busy_timeout = 5000;');
37
+ this.#db.exec('PRAGMA temp_store = MEMORY;');
38
+ this.#db.exec('PRAGMA mmap_size = 268435456;');
34
39
  this.#db.exec('CREATE TABLE IF NOT EXISTS cache (key TEXT PRIMARY KEY, value TEXT, last_accessed INTEGER NOT NULL) WITHOUT ROWID;');
35
40
  this.#getStmt = this.#db.prepare('SELECT value FROM cache WHERE key = ?');
36
41
  this.#hasStmt = this.#db.prepare('SELECT 1 FROM cache WHERE key = ?');
@@ -39,12 +44,49 @@ class SqliteCacheStore {
39
44
  }
40
45
  return this.#db;
41
46
  }
47
+ #queueAccessUpdate(key) {
48
+ this.#pendingAccessedKeys.add(key);
49
+ if (this.#pendingAccessedKeys.size >= 100) {
50
+ this.#flushAccessUpdates();
51
+ }
52
+ else if (!this.#flushTimeout) {
53
+ this.#flushTimeout = setTimeout(() => this.#flushAccessUpdates(), 500);
54
+ this.#flushTimeout.unref?.();
55
+ }
56
+ }
57
+ #flushAccessUpdates() {
58
+ if (this.#flushTimeout) {
59
+ clearTimeout(this.#flushTimeout);
60
+ this.#flushTimeout = undefined;
61
+ }
62
+ if (!this.#db || this.#pendingAccessedKeys.size === 0 || !this.#updateAccessedStmt) {
63
+ return;
64
+ }
65
+ try {
66
+ this.#db.exec('BEGIN IMMEDIATE TRANSACTION;');
67
+ for (const key of this.#pendingAccessedKeys) {
68
+ this.#updateAccessedStmt.run(key);
69
+ }
70
+ this.#db.exec('COMMIT;');
71
+ }
72
+ catch {
73
+ try {
74
+ this.#db.exec('ROLLBACK;');
75
+ }
76
+ catch {
77
+ // Ignore rollback errors if transaction was not active
78
+ }
79
+ }
80
+ finally {
81
+ this.#pendingAccessedKeys.clear();
82
+ }
83
+ }
42
84
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
43
85
  async get(key) {
44
86
  this.#ensureDb();
45
87
  const row = this.#getStmt?.get(key);
46
88
  if (row) {
47
- this.#updateAccessedStmt?.run(key);
89
+ this.#queueAccessUpdate(key);
48
90
  try {
49
91
  return JSON.parse(row.value);
50
92
  }
@@ -60,6 +102,7 @@ class SqliteCacheStore {
60
102
  }
61
103
  async set(key, value) {
62
104
  this.#ensureDb();
105
+ this.#pendingAccessedKeys.delete(key);
63
106
  this.#setStmt?.run(key, JSON.stringify(value));
64
107
  return this;
65
108
  }
@@ -69,6 +112,8 @@ class SqliteCacheStore {
69
112
  close() {
70
113
  if (this.#db) {
71
114
  try {
115
+ // Flush any pending access updates in one transaction before pruning
116
+ this.#flushAccessUpdates();
72
117
  // 1. Delete items older than N days
73
118
  this.#db
74
119
  .prepare("DELETE FROM cache WHERE last_accessed < unixepoch('now', ?);")
@@ -89,6 +134,11 @@ class SqliteCacheStore {
89
134
  // Pruning errors should not block build success
90
135
  }
91
136
  finally {
137
+ if (this.#flushTimeout) {
138
+ clearTimeout(this.#flushTimeout);
139
+ this.#flushTimeout = undefined;
140
+ }
141
+ this.#pendingAccessedKeys.clear();
92
142
  this.#getStmt = undefined;
93
143
  this.#hasStmt = undefined;
94
144
  this.#setStmt = undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-cache-store.js","sourceRoot":"","sources":["sqlite-cache-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlite-cache-store.js","sourceRoot":"","sources":["sqlite-cache-store.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.calculateGlobalStylesheetConfigHash = calculateGlobalStylesheetConfigHash;
11
- const node_crypto_1 = require("node:crypto");
11
+ const hash_1 = require("../../../utils/hash");
12
12
  /**
13
13
  * Generates a global hash based on all build options that affect stylesheet compilation.
14
14
  *
@@ -36,8 +36,7 @@ const node_crypto_1 = require("node:crypto");
36
36
  * that alters generated stylesheet code or asset outputs, it MUST be added to this hash object.
37
37
  */
38
38
  function calculateGlobalStylesheetConfigHash(options, packageVersion = '') {
39
- return (0, node_crypto_1.createHash)('sha256')
40
- .update(JSON.stringify({
39
+ return (0, hash_1.calculateHash)(JSON.stringify({
41
40
  optimization: options.optimization,
42
41
  sourcemap: options.sourcemap,
43
42
  sourcesContent: options.sourcesContent,
@@ -58,11 +57,8 @@ function calculateGlobalStylesheetConfigHash(options, packageVersion = '') {
58
57
  postcssConfig: options.postcssConfiguration?.configPath
59
58
  ? options.postcssConfiguration.configPath
60
59
  : '',
61
- tailwindConfig: options.tailwindConfiguration?.file
62
- ? options.tailwindConfiguration.file
63
- : '',
60
+ tailwindConfig: options.tailwindConfiguration?.file ? options.tailwindConfiguration.file : '',
64
61
  packageVersion,
65
- }))
66
- .digest('hex');
62
+ }));
67
63
  }
68
64
  //# sourceMappingURL=stylesheet-cache-key.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stylesheet-cache-key.js","sourceRoot":"","sources":["stylesheet-cache-key.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AA+BH,kFAkCC;AA/DD,6CAAyC;AAGzC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,SAAgB,mCAAmC,CACjD,OAAgC,EAChC,iBAAyB,EAAE;IAE3B,OAAO,IAAA,wBAAU,EAAC,QAAQ,CAAC;SACxB,MAAM,CACL,IAAI,CAAC,SAAS,CAAC;QACb,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,WAAW,EAAE,OAAO,CAAC,IAAI;YACvB,CAAC,CAAC;gBACE,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC,kBAAkB;gBACnD,iBAAiB,EAAE,OAAO,CAAC,IAAI,CAAC,iBAAiB;gBACjD,mBAAmB,EAAE,OAAO,CAAC,IAAI,CAAC,mBAAmB;aACtD;YACH,CAAC,CAAC,SAAS;QACb,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;QAClD,aAAa,EAAE,OAAO,CAAC,oBAAoB,EAAE,UAAU;YACrD,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,UAAU;YACzC,CAAC,CAAC,EAAE;QACN,cAAc,EAAE,OAAO,CAAC,qBAAqB,EAAE,IAAI;YACjD,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI;YACpC,CAAC,CAAC,EAAE;QACN,cAAc;KACf,CAAC,CACH;SACA,MAAM,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"stylesheet-cache-key.js","sourceRoot":"","sources":["stylesheet-cache-key.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AA+BH,kFA8BC;AA3DD,8CAAoD;AAGpD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,SAAgB,mCAAmC,CACjD,OAAgC,EAChC,iBAAyB,EAAE;IAE3B,OAAO,IAAA,oBAAa,EAClB,IAAI,CAAC,SAAS,CAAC;QACb,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,WAAW,EAAE,OAAO,CAAC,IAAI;YACvB,CAAC,CAAC;gBACE,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC,kBAAkB;gBACnD,iBAAiB,EAAE,OAAO,CAAC,IAAI,CAAC,iBAAiB;gBACjD,mBAAmB,EAAE,OAAO,CAAC,IAAI,CAAC,mBAAmB;aACtD;YACH,CAAC,CAAC,SAAS;QACb,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;QAClD,aAAa,EAAE,OAAO,CAAC,oBAAoB,EAAE,UAAU;YACrD,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,UAAU;YACzC,CAAC,CAAC,EAAE;QACN,cAAc,EAAE,OAAO,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;QAC7F,cAAc;KACf,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.dev/license
7
+ */
8
+ /**
9
+ * Transform browserlists result to esbuild target.
10
+ *
11
+ * Only the lowest version for each browser is returned to avoid issues with esbuild and rolldown
12
+ * when multiple versions of the same target engine are specified.
13
+ *
14
+ * @see https://esbuild.github.io/api/#target
15
+ * @see https://github.com/evanw/esbuild/issues/4509
16
+ * @see https://github.com/rolldown/rolldown/issues/10633
17
+ */
18
+ export declare function transformSupportedBrowsersToTargets(supportedBrowsers: string[]): string[];
19
+ /**
20
+ * Transform supported Node.js versions to esbuild target.
21
+ *
22
+ * Only the lowest Node.js version is returned to avoid issues with esbuild and rolldown
23
+ * when multiple versions of the same target engine are specified.
24
+ *
25
+ * @see https://esbuild.github.io/api/#target
26
+ * @see https://github.com/evanw/esbuild/issues/4509
27
+ * @see https://github.com/rolldown/rolldown/issues/10633
28
+ */
29
+ export declare function getSupportedNodeTargets(): string[];
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright Google LLC All Rights Reserved.
5
+ *
6
+ * Use of this source code is governed by an MIT-style license that can be
7
+ * found in the LICENSE file at https://angular.dev/license
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.transformSupportedBrowsersToTargets = transformSupportedBrowsersToTargets;
11
+ exports.getSupportedNodeTargets = getSupportedNodeTargets;
12
+ const semver_1 = require("semver");
13
+ /**
14
+ * Compares two target version strings.
15
+ *
16
+ * This function is used to determine the lowest version for a given browser target.
17
+ *
18
+ * @param a The first version string.
19
+ * @param b The second version string.
20
+ * @returns A negative value if `a` is lower than `b`, a positive value if `a` is higher than `b`, and 0 if they are equal.
21
+ */
22
+ function compareTargetVersions(a, b) {
23
+ const aVersion = (0, semver_1.coerce)(a);
24
+ const bVersion = (0, semver_1.coerce)(b);
25
+ if (!aVersion || !bVersion) {
26
+ return aVersion ? -1 : bVersion ? 1 : 0;
27
+ }
28
+ return (0, semver_1.compare)(aVersion, bVersion);
29
+ }
30
+ // https://esbuild.github.io/api/#target
31
+ const ESBUILD_SUPPORTED_BROWSERS = new Set([
32
+ 'chrome',
33
+ 'edge',
34
+ 'firefox',
35
+ 'ie',
36
+ 'ios',
37
+ 'node',
38
+ 'opera',
39
+ 'safari',
40
+ ]);
41
+ /**
42
+ * Transform browserlists result to esbuild target.
43
+ *
44
+ * Only the lowest version for each browser is returned to avoid issues with esbuild and rolldown
45
+ * when multiple versions of the same target engine are specified.
46
+ *
47
+ * @see https://esbuild.github.io/api/#target
48
+ * @see https://github.com/evanw/esbuild/issues/4509
49
+ * @see https://github.com/rolldown/rolldown/issues/10633
50
+ */
51
+ function transformSupportedBrowsersToTargets(supportedBrowsers) {
52
+ const browsers = new Map();
53
+ for (const browser of supportedBrowsers) {
54
+ let [browserName, version] = browser.toLowerCase().split(' ');
55
+ if (!browserName || !version) {
56
+ continue;
57
+ }
58
+ // browserslist uses the name `ios_saf` for iOS Safari whereas esbuild uses `ios`
59
+ if (browserName === 'ios_saf') {
60
+ browserName = 'ios';
61
+ }
62
+ if (!ESBUILD_SUPPORTED_BROWSERS.has(browserName)) {
63
+ continue;
64
+ }
65
+ // browserslist uses ranges `15.2-15.3` versions but only the lowest is required
66
+ // to perform minimum supported feature checks. esbuild also expects a single version.
67
+ [version] = version.split('-');
68
+ if (browserName === 'safari' && version === 'tp') {
69
+ // esbuild only supports numeric versions so `TP` is converted to a high number (999) since
70
+ // a Technology Preview (TP) of Safari is assumed to support all currently known features.
71
+ version = '999';
72
+ }
73
+ else if (!version.includes('.')) {
74
+ // A lone major version is considered by esbuild to include all minor versions. However,
75
+ // browserslist does not and is also inconsistent in its `.0` version naming. For example,
76
+ // Safari 15.0 is named `safari 15` but Safari 16.0 is named `safari 16.0`.
77
+ version += '.0';
78
+ }
79
+ const current = browsers.get(browserName);
80
+ if (!current || compareTargetVersions(version, current) < 0) {
81
+ browsers.set(browserName, version);
82
+ }
83
+ }
84
+ return Array.from(browsers, ([browserName, version]) => browserName + version);
85
+ }
86
+ const SUPPORTED_NODE_VERSIONS = '^22.22.3 || ^24.15.0 || >=26.0.0';
87
+ /**
88
+ * Transform supported Node.js versions to esbuild target.
89
+ *
90
+ * Only the lowest Node.js version is returned to avoid issues with esbuild and rolldown
91
+ * when multiple versions of the same target engine are specified.
92
+ *
93
+ * @see https://esbuild.github.io/api/#target
94
+ * @see https://github.com/evanw/esbuild/issues/4509
95
+ * @see https://github.com/rolldown/rolldown/issues/10633
96
+ */
97
+ function getSupportedNodeTargets() {
98
+ if (SUPPORTED_NODE_VERSIONS.charAt(0) === '0') {
99
+ // Unlike `pkg_npm`, `ts_library` which is used to run unit tests does not support substitutions.
100
+ return [];
101
+ }
102
+ const parsed = (0, semver_1.minVersion)(SUPPORTED_NODE_VERSIONS);
103
+ return parsed ? ['node' + parsed.version] : [];
104
+ }
105
+ //# sourceMappingURL=target.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target.js","sourceRoot":"","sources":["target.ts"],"names":[],"mappings":"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"}
@@ -24,16 +24,6 @@ export declare function withNoProgress<T>(text: string, action: () => T | Promis
24
24
  */
25
25
  export declare function getFeatureSupport(nativeAsyncAwait: boolean): BuildOptions['supported'];
26
26
  export declare function emitFilesToDisk<T = BuildOutputAsset | BuildOutputFile>(files: T[], writeFileCallback: (file: T) => Promise<void>): Promise<void>;
27
- /**
28
- * Transform browserlists result to esbuild target.
29
- * @see https://esbuild.github.io/api/#target
30
- */
31
- export declare function transformSupportedBrowsersToTargets(supportedBrowsers: string[]): string[];
32
- /**
33
- * Transform supported Node.js versions to esbuild target.
34
- * @see https://esbuild.github.io/api/#target
35
- */
36
- export declare function getSupportedNodeTargets(): string[];
37
27
  export declare function createJsonBuildManifest(result: ExecutionResult, normalizedOptions: NormalizedApplicationBuildOptions): Promise<string>;
38
28
  export declare function logMessages(logger: BuilderContext['logger'], executionResult: ExecutionResult, color?: boolean, jsonLogs?: boolean): Promise<void>;
39
29
  /**