@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
@@ -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
- const watchpack_1 = __importDefault(require("watchpack"));
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
- function createWatcher(options) {
34
- const watcher = new watchpack_1.default({
35
- poll: options?.polling ? (options?.interval ?? true) : false,
36
- ignored: options?.ignored,
37
- followSymlinks: options?.followSymlinks,
38
- aggregateTimeout: 250,
39
- });
40
- const watchedFiles = new Set();
41
- const nextQueue = [];
42
- let currentChangedFiles;
43
- watcher.on('aggregated', (changes, removals) => {
44
- const changedFiles = currentChangedFiles ?? new ChangedFiles();
45
- for (const file of changes) {
46
- changedFiles.modified.add(file);
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
- for (const file of removals) {
49
- changedFiles.removed.add(file);
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 next = nextQueue.shift();
52
- if (next) {
53
- currentChangedFiles = undefined;
54
- next(changedFiles);
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
- else {
57
- currentChangedFiles = changedFiles;
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
- return {
404
+ const externalManager = new ParcelExternalManager(parcelWatcher, options, rootDirLookupKey, handleEvents);
405
+ const buildWatcher = {
61
406
  [Symbol.asyncIterator]() {
62
407
  return this;
63
408
  },
64
- async next() {
65
- if (currentChangedFiles && nextQueue.length === 0) {
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 previousSize = watchedFiles.size;
76
- if (typeof paths === 'string') {
77
- watchedFiles.add(paths);
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
- else {
80
- for (const file of paths) {
81
- watchedFiles.add(file);
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
- if (previousSize !== watchedFiles.size) {
85
- watcher.watch({
86
- files: watchedFiles,
87
- });
440
+ finally {
441
+ queue.close();
88
442
  }
89
443
  },
90
- remove(paths) {
91
- const previousSize = watchedFiles.size;
92
- if (typeof paths === 'string') {
93
- watchedFiles.delete(paths);
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
- else {
96
- for (const file of paths) {
97
- watchedFiles.delete(file);
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 (previousSize !== watchedFiles.size) {
101
- watcher.watch({
102
- files: watchedFiles,
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
- let next;
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: string | undefined;
27
+ map: DecodedSourceMap | undefined;
28
28
  };