@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
|
@@ -6,19 +6,58 @@
|
|
|
6
6
|
* Use of this source code is governed by an MIT-style license that can be
|
|
7
7
|
* found in the LICENSE file at https://angular.dev/license
|
|
8
8
|
*/
|
|
9
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
12
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
+
}
|
|
15
|
+
Object.defineProperty(o, k2, desc);
|
|
16
|
+
}) : (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
o[k2] = m[k];
|
|
19
|
+
}));
|
|
20
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
+
}) : function(o, v) {
|
|
23
|
+
o["default"] = v;
|
|
24
|
+
});
|
|
25
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
26
|
+
var ownKeys = function(o) {
|
|
27
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
28
|
+
var ar = [];
|
|
29
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
30
|
+
return ar;
|
|
31
|
+
};
|
|
32
|
+
return ownKeys(o);
|
|
33
|
+
};
|
|
34
|
+
return function (mod) {
|
|
35
|
+
if (mod && mod.__esModule) return mod;
|
|
36
|
+
var result = {};
|
|
37
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
38
|
+
__setModuleDefault(result, mod);
|
|
39
|
+
return result;
|
|
40
|
+
};
|
|
41
|
+
})();
|
|
9
42
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
10
43
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
11
44
|
};
|
|
12
45
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
46
|
exports.ChangedFiles = void 0;
|
|
47
|
+
exports.toPosixPathNormalized = toPosixPathNormalized;
|
|
48
|
+
exports.getDirectoryPath = getDirectoryPath;
|
|
14
49
|
exports.createWatcher = createWatcher;
|
|
15
|
-
|
|
50
|
+
exports.isPathInside = isPathInside;
|
|
51
|
+
const fs = __importStar(require("node:fs"));
|
|
52
|
+
const path = __importStar(require("node:path"));
|
|
53
|
+
const picomatch_1 = __importDefault(require("picomatch"));
|
|
54
|
+
const path_1 = require("../../utils/path");
|
|
16
55
|
class ChangedFiles {
|
|
17
56
|
added = new Set();
|
|
18
57
|
modified = new Set();
|
|
19
58
|
removed = new Set();
|
|
20
59
|
get all() {
|
|
21
|
-
return [...this.added, ...this.modified, ...this.removed];
|
|
60
|
+
return Array.from(new Set([...this.added, ...this.modified, ...this.removed]));
|
|
22
61
|
}
|
|
23
62
|
toDebugString() {
|
|
24
63
|
const content = {
|
|
@@ -30,90 +69,474 @@ class ChangedFiles {
|
|
|
30
69
|
}
|
|
31
70
|
}
|
|
32
71
|
exports.ChangedFiles = ChangedFiles;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
72
|
+
/**
|
|
73
|
+
* Probes the filesystem at the specified target directory to determine whether it is case-sensitive.
|
|
74
|
+
*/
|
|
75
|
+
function isFileSystemCaseSensitive(targetDir = process.cwd()) {
|
|
76
|
+
try {
|
|
77
|
+
const resolved = path.resolve(targetDir);
|
|
78
|
+
if (!fs.existsSync(resolved)) {
|
|
79
|
+
return process.platform !== 'win32' && process.platform !== 'darwin';
|
|
80
|
+
}
|
|
81
|
+
// Invert the casing of the target directory path.
|
|
82
|
+
const altCase = resolved === resolved.toLowerCase() ? resolved.toUpperCase() : resolved.toLowerCase();
|
|
83
|
+
// If the path contains no alphabetic characters (e.g. root '/'), invert-casing
|
|
84
|
+
// produces the exact same string. Fall back to platform-specific defaults in this case.
|
|
85
|
+
if (resolved === altCase) {
|
|
86
|
+
return process.platform !== 'win32' && process.platform !== 'darwin';
|
|
87
|
+
}
|
|
88
|
+
// If both the original path and the inverted-casing path exist on disk,
|
|
89
|
+
// the filesystem is case-insensitive (returns false).
|
|
90
|
+
return !fs.existsSync(altCase);
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
// If an error occurs (e.g., permission denied), default to the platform-specific
|
|
94
|
+
// behavior (case-insensitive on Windows/macOS, sensitive on Linux/Unix).
|
|
95
|
+
return process.platform !== 'win32' && process.platform !== 'darwin';
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Normalizes a file system path string to POSIX format (forward slashes '/')
|
|
100
|
+
* and strips trailing slashes (except root '/' or Windows drive root 'C:/').
|
|
101
|
+
*/
|
|
102
|
+
function toPosixPathNormalized(pathString) {
|
|
103
|
+
let posixPath = (0, path_1.toPosixPath)(pathString);
|
|
104
|
+
if (posixPath.length > 1 && posixPath.endsWith('/') && !/^[a-zA-Z]:\/$/.test(posixPath)) {
|
|
105
|
+
posixPath = posixPath.slice(0, -1);
|
|
106
|
+
}
|
|
107
|
+
return posixPath;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Returns a lookup key for set lookups and matching, lowercasing on case-insensitive file systems.
|
|
111
|
+
*/
|
|
112
|
+
function toLookupKey(posixPath, isCaseSensitive) {
|
|
113
|
+
return isCaseSensitive ? posixPath : posixPath.toLowerCase();
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Returns the parent directory of a normalized POSIX path, correctly handling Windows drive roots.
|
|
117
|
+
*/
|
|
118
|
+
function getDirectoryPath(posixPath) {
|
|
119
|
+
const lastSlash = posixPath.lastIndexOf('/');
|
|
120
|
+
if (lastSlash === -1) {
|
|
121
|
+
return '.';
|
|
122
|
+
}
|
|
123
|
+
const dir = posixPath.slice(0, lastSlash);
|
|
124
|
+
if (dir === '' || dir.endsWith(':')) {
|
|
125
|
+
return dir + '/';
|
|
126
|
+
}
|
|
127
|
+
return dir;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Determines whether a file path lookup key or any of its parent directories are present in watchedFiles.
|
|
131
|
+
*/
|
|
132
|
+
function isPathWatched(fileLookupKey, watchedFiles) {
|
|
133
|
+
if (watchedFiles.has(fileLookupKey)) {
|
|
134
|
+
return true;
|
|
135
|
+
}
|
|
136
|
+
let current = fileLookupKey;
|
|
137
|
+
while (true) {
|
|
138
|
+
const parent = getDirectoryPath(current);
|
|
139
|
+
if (parent === current) {
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
if (watchedFiles.has(parent)) {
|
|
143
|
+
return true;
|
|
144
|
+
}
|
|
145
|
+
current = parent;
|
|
146
|
+
}
|
|
147
|
+
return false;
|
|
148
|
+
}
|
|
149
|
+
class WatcherQueue {
|
|
150
|
+
nextQueue = [];
|
|
151
|
+
currentChangedFiles;
|
|
152
|
+
isClosed = false;
|
|
153
|
+
timeoutId;
|
|
154
|
+
addChange(type, file) {
|
|
155
|
+
if (this.isClosed) {
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
const changedFiles = (this.currentChangedFiles ??= new ChangedFiles());
|
|
159
|
+
changedFiles[type].add(file);
|
|
160
|
+
this.scheduleFlush();
|
|
161
|
+
}
|
|
162
|
+
addChanges(changes) {
|
|
163
|
+
if (this.isClosed || changes.length === 0) {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
const changedFiles = (this.currentChangedFiles ??= new ChangedFiles());
|
|
167
|
+
for (const { type, file } of changes) {
|
|
168
|
+
changedFiles[type].add(file);
|
|
169
|
+
}
|
|
170
|
+
this.scheduleFlush();
|
|
171
|
+
}
|
|
172
|
+
scheduleFlush() {
|
|
173
|
+
if (this.timeoutId) {
|
|
174
|
+
clearTimeout(this.timeoutId);
|
|
175
|
+
}
|
|
176
|
+
this.timeoutId = setTimeout(() => {
|
|
177
|
+
this.timeoutId = undefined;
|
|
178
|
+
this.flush();
|
|
179
|
+
}, 250);
|
|
180
|
+
}
|
|
181
|
+
flush() {
|
|
182
|
+
if (this.currentChangedFiles &&
|
|
183
|
+
this.currentChangedFiles.all.length > 0 &&
|
|
184
|
+
this.nextQueue.length > 0) {
|
|
185
|
+
const next = this.nextQueue.shift();
|
|
186
|
+
if (next) {
|
|
187
|
+
const result = this.currentChangedFiles;
|
|
188
|
+
this.currentChangedFiles = undefined;
|
|
189
|
+
next(result);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
async next() {
|
|
194
|
+
if (this.currentChangedFiles &&
|
|
195
|
+
this.currentChangedFiles.all.length > 0 &&
|
|
196
|
+
this.nextQueue.length === 0 &&
|
|
197
|
+
!this.timeoutId) {
|
|
198
|
+
const result = { value: this.currentChangedFiles };
|
|
199
|
+
this.currentChangedFiles = undefined;
|
|
200
|
+
return result;
|
|
201
|
+
}
|
|
202
|
+
if (this.isClosed) {
|
|
203
|
+
return { done: true, value: undefined };
|
|
204
|
+
}
|
|
205
|
+
return new Promise((resolve) => {
|
|
206
|
+
this.nextQueue.push((value) => resolve(value ? { value } : { done: true, value: undefined }));
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
close() {
|
|
210
|
+
if (this.isClosed) {
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
if (this.timeoutId) {
|
|
214
|
+
clearTimeout(this.timeoutId);
|
|
215
|
+
this.timeoutId = undefined;
|
|
216
|
+
}
|
|
217
|
+
this.isClosed = true;
|
|
218
|
+
this.currentChangedFiles = undefined;
|
|
219
|
+
let next;
|
|
220
|
+
while ((next = this.nextQueue.shift()) !== undefined) {
|
|
221
|
+
next();
|
|
47
222
|
}
|
|
48
|
-
|
|
49
|
-
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
async function createWatcher(options) {
|
|
226
|
+
if (options?.polling) {
|
|
227
|
+
return createChokidarWatcher(options);
|
|
228
|
+
}
|
|
229
|
+
try {
|
|
230
|
+
const parcelWatcher = await Promise.resolve().then(() => __importStar(require('@parcel/watcher')));
|
|
231
|
+
return await createParcelWatcher(options, parcelWatcher);
|
|
232
|
+
}
|
|
233
|
+
catch {
|
|
234
|
+
return createChokidarWatcher(options);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Checks whether a file path is located inside a parent directory.
|
|
239
|
+
*
|
|
240
|
+
* Input Expectations:
|
|
241
|
+
* - Both `file` and `dir` must be normalized POSIX-style paths (using forward slashes '/').
|
|
242
|
+
* - Both paths must share the same casing normalization (e.g., lowercased on case-insensitive file systems).
|
|
243
|
+
*/
|
|
244
|
+
function isPathInside(file, dir) {
|
|
245
|
+
if (file === dir) {
|
|
246
|
+
return false;
|
|
247
|
+
}
|
|
248
|
+
const dirWithSlash = dir.endsWith('/') ? dir : dir + '/';
|
|
249
|
+
return file.startsWith(dirWithSlash);
|
|
250
|
+
}
|
|
251
|
+
class ParcelExternalManager {
|
|
252
|
+
parcelWatcher;
|
|
253
|
+
options;
|
|
254
|
+
rootDirLookupKey;
|
|
255
|
+
handleEvents;
|
|
256
|
+
extraSubscriptions = new Map();
|
|
257
|
+
pendingSubscriptions = new Map();
|
|
258
|
+
externalDirFiles = new Map();
|
|
259
|
+
constructor(parcelWatcher, options, rootDirLookupKey, handleEvents) {
|
|
260
|
+
this.parcelWatcher = parcelWatcher;
|
|
261
|
+
this.options = options;
|
|
262
|
+
this.rootDirLookupKey = rootDirLookupKey;
|
|
263
|
+
this.handleEvents = handleEvents;
|
|
264
|
+
}
|
|
265
|
+
async ensureWatched(posixPath, lookupKey) {
|
|
266
|
+
if (isPathInside(lookupKey, this.rootDirLookupKey) || lookupKey === this.rootDirLookupKey) {
|
|
267
|
+
return;
|
|
50
268
|
}
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
269
|
+
const dirPath = getDirectoryPath(posixPath);
|
|
270
|
+
const dirKey = getDirectoryPath(lookupKey);
|
|
271
|
+
let dirEntry = this.externalDirFiles.get(dirKey);
|
|
272
|
+
if (!dirEntry) {
|
|
273
|
+
dirEntry = { dirPath, files: new Set() };
|
|
274
|
+
this.externalDirFiles.set(dirKey, dirEntry);
|
|
55
275
|
}
|
|
56
|
-
|
|
57
|
-
|
|
276
|
+
dirEntry.files.add(lookupKey);
|
|
277
|
+
await this.ensureDirWatched(dirPath, dirKey);
|
|
278
|
+
}
|
|
279
|
+
removeFile(lookupKey) {
|
|
280
|
+
if (isPathInside(lookupKey, this.rootDirLookupKey) || lookupKey === this.rootDirLookupKey) {
|
|
281
|
+
return;
|
|
282
|
+
}
|
|
283
|
+
const dirKey = getDirectoryPath(lookupKey);
|
|
284
|
+
const dirEntry = this.externalDirFiles.get(dirKey);
|
|
285
|
+
if (dirEntry) {
|
|
286
|
+
dirEntry.files.delete(lookupKey);
|
|
287
|
+
if (dirEntry.files.size === 0) {
|
|
288
|
+
this.externalDirFiles.delete(dirKey);
|
|
289
|
+
const sub = this.extraSubscriptions.get(dirKey);
|
|
290
|
+
if (sub) {
|
|
291
|
+
this.extraSubscriptions.delete(dirKey);
|
|
292
|
+
sub.unsubscribe().catch(() => { });
|
|
293
|
+
for (const [remainingDirKey, remainingDirEntry] of this.externalDirFiles.entries()) {
|
|
294
|
+
if (!this.isCoveredByExistingExternal(remainingDirKey)) {
|
|
295
|
+
this.ensureDirWatched(remainingDirEntry.dirPath, remainingDirKey).catch(() => { });
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
}
|
|
58
300
|
}
|
|
301
|
+
}
|
|
302
|
+
async close() {
|
|
303
|
+
try {
|
|
304
|
+
if (this.pendingSubscriptions.size > 0) {
|
|
305
|
+
await Promise.allSettled(Array.from(this.pendingSubscriptions.values()));
|
|
306
|
+
}
|
|
307
|
+
if (this.extraSubscriptions.size > 0) {
|
|
308
|
+
await Promise.allSettled(Array.from(this.extraSubscriptions.values()).map((sub) => sub.unsubscribe()));
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
finally {
|
|
312
|
+
this.extraSubscriptions.clear();
|
|
313
|
+
this.pendingSubscriptions.clear();
|
|
314
|
+
this.externalDirFiles.clear();
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
isCoveredByExistingExternal(dirLookupKey) {
|
|
318
|
+
for (const existingDir of this.extraSubscriptions.keys()) {
|
|
319
|
+
if (dirLookupKey === existingDir || isPathInside(dirLookupKey, existingDir)) {
|
|
320
|
+
return true;
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
for (const pendingDir of this.pendingSubscriptions.keys()) {
|
|
324
|
+
if (dirLookupKey === pendingDir || isPathInside(dirLookupKey, pendingDir)) {
|
|
325
|
+
return true;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
return false;
|
|
329
|
+
}
|
|
330
|
+
async ensureDirWatched(dirPath, dirKey) {
|
|
331
|
+
if (this.isCoveredByExistingExternal(dirKey)) {
|
|
332
|
+
return;
|
|
333
|
+
}
|
|
334
|
+
const subPromise = this.parcelWatcher.subscribe(dirPath, (err, events) => {
|
|
335
|
+
if (!err) {
|
|
336
|
+
this.handleEvents(events);
|
|
337
|
+
}
|
|
338
|
+
}, {
|
|
339
|
+
ignore: this.options?.ignored,
|
|
340
|
+
});
|
|
341
|
+
this.pendingSubscriptions.set(dirKey, subPromise);
|
|
342
|
+
try {
|
|
343
|
+
const sub = await subPromise;
|
|
344
|
+
if (this.externalDirFiles.has(dirKey) && !this.isCoveredByExistingExternal(dirKey)) {
|
|
345
|
+
this.extraSubscriptions.set(dirKey, sub);
|
|
346
|
+
// Subsume any nested child subscriptions that are now covered by this parent subscription
|
|
347
|
+
for (const [childDir, childSub] of this.extraSubscriptions.entries()) {
|
|
348
|
+
if (childDir !== dirKey && isPathInside(childDir, dirKey)) {
|
|
349
|
+
this.extraSubscriptions.delete(childDir);
|
|
350
|
+
childSub.unsubscribe().catch(() => { });
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
else {
|
|
355
|
+
sub.unsubscribe().catch(() => { });
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
catch {
|
|
359
|
+
// Ignore subscription errors for missing or restricted external directories
|
|
360
|
+
}
|
|
361
|
+
finally {
|
|
362
|
+
this.pendingSubscriptions.delete(dirKey);
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
async function createParcelWatcher(options, parcelWatcher) {
|
|
367
|
+
const watchedFiles = new Set();
|
|
368
|
+
const queue = new WatcherQueue();
|
|
369
|
+
const isCaseSensitive = isFileSystemCaseSensitive(options?.cwd);
|
|
370
|
+
const rootDirPosix = toPosixPathNormalized(options?.cwd ?? process.cwd());
|
|
371
|
+
const rootDirLookupKey = toLookupKey(rootDirPosix, isCaseSensitive);
|
|
372
|
+
const initTime = Date.now();
|
|
373
|
+
const handleEvents = (events) => {
|
|
374
|
+
const changes = [];
|
|
375
|
+
for (const event of events) {
|
|
376
|
+
const posixPath = toPosixPathNormalized(event.path);
|
|
377
|
+
const lookupKey = toLookupKey(posixPath, isCaseSensitive);
|
|
378
|
+
if (!isPathWatched(lookupKey, watchedFiles)) {
|
|
379
|
+
continue;
|
|
380
|
+
}
|
|
381
|
+
if (event.type !== 'delete') {
|
|
382
|
+
const stat = fs.statSync(event.path, { throwIfNoEntry: false });
|
|
383
|
+
// Ignore historical events from before watcher initialization, but allow a 1000 ms window
|
|
384
|
+
// to account for coarse filesystem timestamp resolution (e.g., ext4/overlayfs integer second
|
|
385
|
+
// mtime truncation on Linux) where files modified during startup may have truncated .000 ms mtimes.
|
|
386
|
+
if (stat && stat.mtimeMs < initTime - 1000) {
|
|
387
|
+
continue;
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
const type = event.type === 'create' ? 'added' : event.type === 'delete' ? 'removed' : 'modified';
|
|
391
|
+
changes.push({ type, file: event.path });
|
|
392
|
+
}
|
|
393
|
+
if (changes.length > 0) {
|
|
394
|
+
queue.addChanges(changes);
|
|
395
|
+
}
|
|
396
|
+
};
|
|
397
|
+
const subscription = await parcelWatcher.subscribe(rootDirPosix, (err, events) => {
|
|
398
|
+
if (!err) {
|
|
399
|
+
handleEvents(events);
|
|
400
|
+
}
|
|
401
|
+
}, {
|
|
402
|
+
ignore: options?.ignored,
|
|
59
403
|
});
|
|
60
|
-
|
|
404
|
+
const externalManager = new ParcelExternalManager(parcelWatcher, options, rootDirLookupKey, handleEvents);
|
|
405
|
+
const buildWatcher = {
|
|
61
406
|
[Symbol.asyncIterator]() {
|
|
62
407
|
return this;
|
|
63
408
|
},
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
const result = { value: currentChangedFiles };
|
|
67
|
-
currentChangedFiles = undefined;
|
|
68
|
-
return result;
|
|
69
|
-
}
|
|
70
|
-
return new Promise((resolve) => {
|
|
71
|
-
nextQueue.push((value) => resolve(value ? { value } : { done: true, value }));
|
|
72
|
-
});
|
|
409
|
+
next() {
|
|
410
|
+
return queue.next();
|
|
73
411
|
},
|
|
74
412
|
add(paths) {
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
|
|
413
|
+
const targets = typeof paths === 'string' ? [paths] : paths;
|
|
414
|
+
for (const file of targets) {
|
|
415
|
+
const posixPath = toPosixPathNormalized(file);
|
|
416
|
+
const lookupKey = toLookupKey(posixPath, isCaseSensitive);
|
|
417
|
+
if (!watchedFiles.has(lookupKey)) {
|
|
418
|
+
watchedFiles.add(lookupKey);
|
|
419
|
+
void externalManager.ensureWatched(posixPath, lookupKey);
|
|
420
|
+
}
|
|
78
421
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
422
|
+
},
|
|
423
|
+
remove(paths) {
|
|
424
|
+
const targets = typeof paths === 'string' ? [paths] : paths;
|
|
425
|
+
for (const file of targets) {
|
|
426
|
+
const posixPath = toPosixPathNormalized(file);
|
|
427
|
+
const lookupKey = toLookupKey(posixPath, isCaseSensitive);
|
|
428
|
+
if (watchedFiles.delete(lookupKey)) {
|
|
429
|
+
externalManager.removeFile(lookupKey);
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
},
|
|
433
|
+
async close() {
|
|
434
|
+
try {
|
|
435
|
+
if (subscription) {
|
|
436
|
+
await subscription.unsubscribe();
|
|
82
437
|
}
|
|
438
|
+
await externalManager.close();
|
|
83
439
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
files: watchedFiles,
|
|
87
|
-
});
|
|
440
|
+
finally {
|
|
441
|
+
queue.close();
|
|
88
442
|
}
|
|
89
443
|
},
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
444
|
+
};
|
|
445
|
+
return buildWatcher;
|
|
446
|
+
}
|
|
447
|
+
async function createChokidarWatcher(options, chokidarModule) {
|
|
448
|
+
const chokidar = chokidarModule ?? (await Promise.resolve().then(() => __importStar(require('chokidar'))));
|
|
449
|
+
const watchedFiles = new Set();
|
|
450
|
+
const queue = new WatcherQueue();
|
|
451
|
+
const rootDir = options?.cwd ?? process.cwd();
|
|
452
|
+
const isCaseSensitive = isFileSystemCaseSensitive(rootDir);
|
|
453
|
+
const rootDirPosix = toPosixPathNormalized(rootDir);
|
|
454
|
+
const rootDirLookupKey = toLookupKey(rootDirPosix, isCaseSensitive);
|
|
455
|
+
const ignored = options?.ignored?.map((pattern) => {
|
|
456
|
+
if (/[*?[\]{}()]/.test(pattern)) {
|
|
457
|
+
const isMatch = (0, picomatch_1.default)(pattern, { dot: true });
|
|
458
|
+
return (filePath) => isMatch(toPosixPathNormalized(filePath));
|
|
459
|
+
}
|
|
460
|
+
return { path: toPosixPathNormalized(pattern), recursive: true };
|
|
461
|
+
});
|
|
462
|
+
const watcher = chokidar.watch(rootDir, {
|
|
463
|
+
ignoreInitial: true,
|
|
464
|
+
ignored,
|
|
465
|
+
followSymlinks: options?.followSymlinks,
|
|
466
|
+
usePolling: !!options?.polling,
|
|
467
|
+
interval: options?.interval,
|
|
468
|
+
});
|
|
469
|
+
const initTime = Date.now();
|
|
470
|
+
const handleEvent = (type, rawPath) => {
|
|
471
|
+
const posixPath = toPosixPathNormalized(rawPath);
|
|
472
|
+
const lookupKey = toLookupKey(posixPath, isCaseSensitive);
|
|
473
|
+
if (!isPathWatched(lookupKey, watchedFiles)) {
|
|
474
|
+
return;
|
|
475
|
+
}
|
|
476
|
+
if (type !== 'removed') {
|
|
477
|
+
const stat = fs.statSync(rawPath, { throwIfNoEntry: false });
|
|
478
|
+
// Ignore historical events from before watcher initialization, but allow a 1000 ms window
|
|
479
|
+
// to account for coarse filesystem timestamp resolution (e.g., ext4/overlayfs integer second
|
|
480
|
+
// mtime truncation on Linux) where files modified during startup may have truncated .000 ms mtimes.
|
|
481
|
+
if (stat && stat.mtimeMs < initTime - 1000) {
|
|
482
|
+
return;
|
|
94
483
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
484
|
+
}
|
|
485
|
+
queue.addChange(type, rawPath);
|
|
486
|
+
};
|
|
487
|
+
watcher.on('add', (path) => handleEvent('added', path));
|
|
488
|
+
watcher.on('change', (path) => handleEvent('modified', path));
|
|
489
|
+
watcher.on('unlink', (path) => handleEvent('removed', path));
|
|
490
|
+
const buildWatcher = {
|
|
491
|
+
[Symbol.asyncIterator]() {
|
|
492
|
+
return this;
|
|
493
|
+
},
|
|
494
|
+
next() {
|
|
495
|
+
return queue.next();
|
|
496
|
+
},
|
|
497
|
+
add(paths) {
|
|
498
|
+
const targets = typeof paths === 'string' ? [paths] : paths;
|
|
499
|
+
const newPaths = [];
|
|
500
|
+
for (const p of targets) {
|
|
501
|
+
const posixPath = toPosixPathNormalized(p);
|
|
502
|
+
const lookupKey = toLookupKey(posixPath, isCaseSensitive);
|
|
503
|
+
if (!watchedFiles.has(lookupKey)) {
|
|
504
|
+
watchedFiles.add(lookupKey);
|
|
505
|
+
if (!isPathInside(lookupKey, rootDirLookupKey) && lookupKey !== rootDirLookupKey) {
|
|
506
|
+
newPaths.push(posixPath);
|
|
507
|
+
}
|
|
98
508
|
}
|
|
99
509
|
}
|
|
100
|
-
if (
|
|
101
|
-
watcher.
|
|
102
|
-
|
|
103
|
-
|
|
510
|
+
if (newPaths.length > 0) {
|
|
511
|
+
watcher.add(newPaths);
|
|
512
|
+
}
|
|
513
|
+
},
|
|
514
|
+
remove(paths) {
|
|
515
|
+
const targets = typeof paths === 'string' ? [paths] : paths;
|
|
516
|
+
const removePaths = [];
|
|
517
|
+
for (const p of targets) {
|
|
518
|
+
const posixPath = toPosixPathNormalized(p);
|
|
519
|
+
const lookupKey = toLookupKey(posixPath, isCaseSensitive);
|
|
520
|
+
if (watchedFiles.has(lookupKey)) {
|
|
521
|
+
watchedFiles.delete(lookupKey);
|
|
522
|
+
if (!isPathInside(lookupKey, rootDirLookupKey) && lookupKey !== rootDirLookupKey) {
|
|
523
|
+
removePaths.push(posixPath);
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
if (removePaths.length > 0) {
|
|
528
|
+
watcher.unwatch(removePaths);
|
|
104
529
|
}
|
|
105
530
|
},
|
|
106
531
|
async close() {
|
|
107
532
|
try {
|
|
108
|
-
watcher.close();
|
|
533
|
+
await watcher.close();
|
|
109
534
|
}
|
|
110
535
|
finally {
|
|
111
|
-
|
|
112
|
-
while ((next = nextQueue.shift()) !== undefined) {
|
|
113
|
-
next();
|
|
114
|
-
}
|
|
536
|
+
queue.close();
|
|
115
537
|
}
|
|
116
538
|
},
|
|
117
539
|
};
|
|
540
|
+
return buildWatcher;
|
|
118
541
|
}
|
|
119
542
|
//# sourceMappingURL=watcher.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watcher.js","sourceRoot":"","sources":["watcher.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"watcher.js","sourceRoot":"","sources":["watcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,9 +5,9 @@
|
|
|
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 { DecodedSourceMap } from '@ampproject/remapping';
|
|
8
9
|
export interface OxcTransformOptions {
|
|
9
10
|
sourcemap?: boolean;
|
|
10
|
-
jit?: boolean;
|
|
11
11
|
sideEffects?: boolean;
|
|
12
12
|
topLevelSafeMode?: boolean;
|
|
13
13
|
pureAnnotate?: boolean;
|
|
@@ -24,5 +24,5 @@ export interface OxcTransformOptions {
|
|
|
24
24
|
*/
|
|
25
25
|
export declare function transform(filename: string, code: string, options: OxcTransformOptions): {
|
|
26
26
|
code: string;
|
|
27
|
-
map:
|
|
27
|
+
map: DecodedSourceMap | undefined;
|
|
28
28
|
};
|