@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.
- package/package.json +10 -8
- package/src/builders/application/build-action.js +14 -3
- package/src/builders/application/build-action.js.map +1 -1
- package/src/builders/application/chunk-optimizer.js +1 -0
- package/src/builders/application/chunk-optimizer.js.map +1 -1
- package/src/builders/application/execute-build.js +2 -1
- package/src/builders/application/execute-build.js.map +1 -1
- package/src/builders/application/setup-bundling.js +2 -2
- package/src/builders/application/setup-bundling.js.map +1 -1
- package/src/builders/dev-server/internal.d.ts +1 -1
- package/src/builders/dev-server/internal.js +2 -2
- package/src/builders/dev-server/internal.js.map +1 -1
- package/src/builders/dev-server/vite/server.js +6 -2
- package/src/builders/dev-server/vite/server.js.map +1 -1
- package/src/builders/unit-test/options.js +1 -1
- package/src/builders/unit-test/options.js.map +1 -1
- package/src/builders/unit-test/test-discovery.js +3 -2
- package/src/builders/unit-test/test-discovery.js.map +1 -1
- package/src/private.d.ts +1 -1
- package/src/private.js +2 -2
- package/src/private.js.map +1 -1
- package/src/tools/angular/angular-host.js +3 -3
- package/src/tools/angular/angular-host.js.map +1 -1
- package/src/tools/angular/compilation/parallel-worker.js +2 -0
- package/src/tools/angular/compilation/parallel-worker.js.map +1 -1
- package/src/tools/angular/linker/oxc-linker.d.ts +2 -1
- package/src/tools/angular/linker/oxc-linker.js +3 -11
- package/src/tools/angular/linker/oxc-linker.js.map +1 -1
- package/src/tools/angular/linker/string-ast-factory.js +17 -6
- package/src/tools/angular/linker/string-ast-factory.js.map +1 -1
- package/src/tools/esbuild/angular/compiler-plugin.js +4 -7
- package/src/tools/esbuild/angular/compiler-plugin.js.map +1 -1
- package/src/tools/esbuild/angular/component-stylesheets.js +5 -6
- package/src/tools/esbuild/angular/component-stylesheets.js.map +1 -1
- package/src/tools/esbuild/application-code-bundle.js +2 -2
- package/src/tools/esbuild/application-code-bundle.js.map +1 -1
- package/src/tools/esbuild/bundler-files.js +3 -5
- package/src/tools/esbuild/bundler-files.js.map +1 -1
- package/src/tools/esbuild/i18n-inliner-worker.d.ts +8 -4
- package/src/tools/esbuild/i18n-inliner-worker.js +40 -7
- package/src/tools/esbuild/i18n-inliner-worker.js.map +1 -1
- package/src/tools/esbuild/i18n-inliner.js +37 -10
- package/src/tools/esbuild/i18n-inliner.js.map +1 -1
- package/src/tools/esbuild/javascript-transformer-worker.d.ts +0 -4
- package/src/tools/esbuild/javascript-transformer-worker.js +105 -55
- package/src/tools/esbuild/javascript-transformer-worker.js.map +1 -1
- package/src/tools/esbuild/javascript-transformer.d.ts +1 -1
- package/src/tools/esbuild/javascript-transformer.js +63 -37
- package/src/tools/esbuild/javascript-transformer.js.map +1 -1
- package/src/tools/esbuild/persistent-load-result-cache.js +11 -13
- package/src/tools/esbuild/persistent-load-result-cache.js.map +1 -1
- package/src/tools/esbuild/sqlite-cache-store.js +51 -1
- package/src/tools/esbuild/sqlite-cache-store.js.map +1 -1
- package/src/tools/esbuild/stylesheets/stylesheet-cache-key.js +4 -8
- package/src/tools/esbuild/stylesheets/stylesheet-cache-key.js.map +1 -1
- package/src/tools/esbuild/target.d.ts +29 -0
- package/src/tools/esbuild/target.js +105 -0
- package/src/tools/esbuild/target.js.map +1 -0
- package/src/tools/esbuild/utils.d.ts +0 -10
- package/src/tools/esbuild/utils.js +0 -58
- package/src/tools/esbuild/utils.js.map +1 -1
- package/src/tools/esbuild/watcher.d.ts +21 -2
- package/src/tools/esbuild/watcher.js +483 -60
- package/src/tools/esbuild/watcher.js.map +1 -1
- package/src/tools/{babel/plugins → oxc}/oxc-transform.d.ts +2 -2
- package/src/tools/{babel/plugins → oxc}/oxc-transform.js +10 -18
- package/src/tools/oxc/oxc-transform.js.map +1 -0
- package/src/tools/sass/rebasing-importer.d.ts +5 -5
- package/src/tools/sass/rebasing-importer.js +5 -2
- package/src/tools/sass/rebasing-importer.js.map +1 -1
- package/src/tools/sass/worker.d.ts +1 -1
- package/src/tools/sass/worker.js.map +1 -1
- package/src/tools/vite/middlewares/assets-middleware.js +3 -3
- package/src/tools/vite/middlewares/assets-middleware.js.map +1 -1
- package/src/tools/vite/utils.d.ts +2 -1
- package/src/tools/vite/utils.js +2 -1
- package/src/tools/vite/utils.js.map +1 -1
- package/src/utils/bundle-calculator.js +12 -3
- package/src/utils/bundle-calculator.js.map +1 -1
- package/src/utils/hash.d.ts +24 -0
- package/src/utils/hash.js +94 -0
- package/src/utils/hash.js.map +1 -0
- package/src/utils/index-file/inline-critical-css.js +153 -109
- package/src/utils/index-file/inline-critical-css.js.map +1 -1
- package/src/utils/normalize-cache.js +1 -1
- package/src/utils/server-rendering/manifest.js +9 -4
- package/src/utils/server-rendering/manifest.js.map +1 -1
- package/src/utils/source-map.d.ts +26 -2
- package/src/utils/source-map.js +172 -85
- package/src/utils/source-map.js.map +1 -1
- package/src/tools/babel/plugins/oxc-transform.js.map +0 -1
- /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
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
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
|
-
|
|
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
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
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 (
|
|
175
|
+
if (!shouldLink && !this.#commonOptions.advancedOptimizations && !instrumentForCoverage) {
|
|
163
176
|
const keepSourcemap = this.#commonOptions.sourcemap &&
|
|
164
177
|
(!!this.#commonOptions.thirdPartySourcemaps || !/[\\/]node_modules[\\/]/.test(filename));
|
|
165
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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 =
|
|
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
|
|
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":";AAAA;;;;;;GAMG;;;
|
|
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.#
|
|
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":";AAAA;;;;;;GAMG;;;AAEH,6CAA0D;AAC1D,mCAAsD;AAEtD,MAAa,gBAAgB;
|
|
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
|
|
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,
|
|
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,
|
|
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
|
/**
|