@opensumi/ide-file-service 3.7.1-next-1739439717.0 → 3.7.1-next-1739448958.0

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 (44) hide show
  1. package/lib/browser/file-service-client.js +4 -4
  2. package/lib/browser/file-service-client.js.map +1 -1
  3. package/lib/browser/file-service-provider-client.d.ts +2 -2
  4. package/lib/browser/file-service-provider-client.d.ts.map +1 -1
  5. package/lib/browser/file-service-provider-client.js +2 -2
  6. package/lib/browser/file-service-provider-client.js.map +1 -1
  7. package/lib/common/files.d.ts +2 -2
  8. package/lib/common/files.d.ts.map +1 -1
  9. package/lib/common/watcher.d.ts +3 -2
  10. package/lib/common/watcher.d.ts.map +1 -1
  11. package/lib/common/watcher.js.map +1 -1
  12. package/lib/node/disk-file-system.provider.d.ts +3 -2
  13. package/lib/node/disk-file-system.provider.d.ts.map +1 -1
  14. package/lib/node/disk-file-system.provider.js +3 -2
  15. package/lib/node/disk-file-system.provider.js.map +1 -1
  16. package/lib/node/hosted/recursive/file-service-watcher.d.ts +14 -13
  17. package/lib/node/hosted/recursive/file-service-watcher.d.ts.map +1 -1
  18. package/lib/node/hosted/recursive/file-service-watcher.js +158 -97
  19. package/lib/node/hosted/recursive/file-service-watcher.js.map +1 -1
  20. package/lib/node/hosted/un-recursive/file-service-watcher.d.ts +5 -11
  21. package/lib/node/hosted/un-recursive/file-service-watcher.d.ts.map +1 -1
  22. package/lib/node/hosted/un-recursive/file-service-watcher.js +15 -31
  23. package/lib/node/hosted/un-recursive/file-service-watcher.js.map +1 -1
  24. package/lib/node/hosted/watcher.host.service.d.ts +7 -2
  25. package/lib/node/hosted/watcher.host.service.d.ts.map +1 -1
  26. package/lib/node/hosted/watcher.host.service.js +60 -28
  27. package/lib/node/hosted/watcher.host.service.js.map +1 -1
  28. package/lib/node/hosted/watcher.process.js +1 -1
  29. package/lib/node/hosted/watcher.process.js.map +1 -1
  30. package/lib/node/watcher-process-manager.d.ts +3 -2
  31. package/lib/node/watcher-process-manager.d.ts.map +1 -1
  32. package/lib/node/watcher-process-manager.js +4 -3
  33. package/lib/node/watcher-process-manager.js.map +1 -1
  34. package/package.json +9 -9
  35. package/src/browser/file-service-client.ts +4 -4
  36. package/src/browser/file-service-provider-client.ts +3 -2
  37. package/src/common/files.ts +2 -2
  38. package/src/common/watcher.ts +10 -3
  39. package/src/node/disk-file-system.provider.ts +8 -3
  40. package/src/node/hosted/recursive/file-service-watcher.ts +190 -108
  41. package/src/node/hosted/un-recursive/file-service-watcher.ts +22 -46
  42. package/src/node/hosted/watcher.host.service.ts +100 -33
  43. package/src/node/hosted/watcher.process.ts +1 -1
  44. package/src/node/watcher-process-manager.ts +13 -5
@@ -1,27 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FileSystemWatcherServer = void 0;
3
+ exports.RecursiveFileSystemWatcher = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const path_1 = tslib_1.__importDefault(require("path"));
5
+ const os_1 = require("os");
6
+ const path_1 = tslib_1.__importStar(require("path"));
6
7
  const watcher_1 = tslib_1.__importDefault(require("@parcel/watcher"));
7
8
  const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
8
9
  const debounce_1 = tslib_1.__importDefault(require("lodash/debounce"));
9
10
  const uniqBy_1 = tslib_1.__importDefault(require("lodash/uniqBy"));
11
+ const ide_core_common_1 = require("@opensumi/ide-core-common");
10
12
  const utils_1 = require("@opensumi/ide-core-common/lib/utils");
11
- const common_1 = require("../../../common");
13
+ const watcher_2 = require("../../../common/watcher");
12
14
  const file_change_collection_1 = require("../../file-change-collection");
13
15
  const shared_1 = require("../shared");
14
- const watcherPlaceHolder = {
15
- disposable: {
16
- dispose: () => { },
17
- },
18
- handlers: [],
19
- };
20
- class FileSystemWatcherServer extends utils_1.Disposable {
21
- constructor(excludes = [], logger) {
16
+ class RecursiveFileSystemWatcher extends utils_1.Disposable {
17
+ constructor(excludes = [], logger, backend = ide_core_common_1.RecursiveWatcherBackend.NSFW) {
22
18
  super();
23
19
  this.excludes = excludes;
24
20
  this.logger = logger;
21
+ this.backend = backend;
25
22
  this.WATCHER_HANDLERS = new Map();
26
23
  this.watcherOptions = new Map();
27
24
  this.changes = new file_change_collection_1.FileChangeCollection();
@@ -34,17 +31,6 @@ class FileSystemWatcherServer extends utils_1.Disposable {
34
31
  this.WATCHER_HANDLERS.clear();
35
32
  }));
36
33
  }
37
- /**
38
- * 查找某个路径是否已被监听
39
- * @param watcherPath
40
- */
41
- checkIsAlreadyWatched(watcherPath) {
42
- for (const [watcherId, watcher] of this.WATCHER_HANDLERS) {
43
- if (watcherPath.indexOf(watcher.path) === 0) {
44
- return watcherId;
45
- }
46
- }
47
- }
48
34
  /**
49
35
  * 如果监听路径不存在,则会监听父目录
50
36
  * @param uri 要监听的路径
@@ -52,16 +38,30 @@ class FileSystemWatcherServer extends utils_1.Disposable {
52
38
  * @returns
53
39
  */
54
40
  async watchFileChanges(uri, options) {
55
- const basePath = utils_1.FileUri.fsPath(uri);
56
- let watcherId = this.checkIsAlreadyWatched(basePath);
57
- if (watcherId) {
58
- return watcherId;
59
- }
60
- watcherId = FileSystemWatcherServer.WATCHER_SEQUENCE++;
61
- this.WATCHER_HANDLERS.set(watcherId, {
62
- ...watcherPlaceHolder,
63
- path: basePath,
41
+ return new Promise((resolve, rej) => {
42
+ const timer = setTimeout(() => {
43
+ rej(`Watch ${uri} Timeout`);
44
+ // FIXME:暂时写死3秒
45
+ }, 3000);
46
+ if (options === null || options === void 0 ? void 0 : options.excludes) {
47
+ this.updateWatcherFileExcludes(options.excludes);
48
+ }
49
+ this.doWatchFileChange(uri, options).then(() => {
50
+ resolve(void 0);
51
+ if (timer) {
52
+ clearTimeout(timer);
53
+ }
54
+ });
64
55
  });
56
+ }
57
+ async doWatchFileChange(uri, options) {
58
+ if (this.WATCHER_HANDLERS.has(uri)) {
59
+ const handler = this.WATCHER_HANDLERS.get(uri);
60
+ handler === null || handler === void 0 ? void 0 : handler.disposable.dispose();
61
+ this.WATCHER_HANDLERS.delete(uri);
62
+ }
63
+ const basePath = utils_1.FileUri.fsPath(uri);
64
+ this.logger.log('[Recursive] watch file changes: ', uri);
65
65
  const toDisposeWatcher = new utils_1.DisposableCollection();
66
66
  let watchPath;
67
67
  const exist = await fs_extra_1.default.pathExists(basePath);
@@ -77,10 +77,9 @@ class FileSystemWatcherServer extends utils_1.Disposable {
77
77
  else {
78
78
  watchPath = await this.lookup(basePath);
79
79
  }
80
- this.logger.log('Starting watching:', watchPath, options);
81
80
  const handler = (err, events) => {
82
81
  if (err) {
83
- this.logger.error(`Watching ${watchPath} error: `, err);
82
+ this.logger.error(`[Recursive] Watching ${watchPath} error: `, err);
84
83
  return;
85
84
  }
86
85
  events = this.trimChangeEvent(events);
@@ -98,15 +97,14 @@ class FileSystemWatcherServer extends utils_1.Disposable {
98
97
  }
99
98
  }
100
99
  };
101
- this.WATCHER_HANDLERS.set(watcherId, {
100
+ this.WATCHER_HANDLERS.set(watchPath, {
102
101
  path: watchPath,
103
102
  disposable: toDisposeWatcher,
104
103
  handlers: [handler],
105
104
  });
106
- toDisposeWatcher.push(utils_1.Disposable.create(() => this.WATCHER_HANDLERS.delete(watcherId)));
107
- toDisposeWatcher.push(await this.start(watcherId, watchPath, options));
105
+ toDisposeWatcher.push(utils_1.Disposable.create(() => this.WATCHER_HANDLERS.delete(watchPath)));
106
+ toDisposeWatcher.push(await this.start(watchPath, options));
108
107
  this.addDispose(toDisposeWatcher);
109
- return watcherId;
110
108
  }
111
109
  /**
112
110
  * 向上查找存在的目录
@@ -140,12 +138,48 @@ class FileSystemWatcherServer extends utils_1.Disposable {
140
138
  async updateWatcherFileExcludes(excludes) {
141
139
  this.excludes = excludes;
142
140
  }
143
- async start(watcherId, basePath, rawOptions) {
144
- const disposables = new utils_1.DisposableCollection();
141
+ async start(basePath, rawOptions) {
142
+ this.logger.log('[Recursive] Start watching', basePath);
145
143
  if (!(await fs_extra_1.default.pathExists(basePath))) {
146
- return disposables;
144
+ return new utils_1.DisposableCollection();
147
145
  }
148
146
  const realPath = await fs_extra_1.default.realpath(basePath);
147
+ if (this.isEnableNSFW()) {
148
+ return this.watchWithNsfw(realPath, rawOptions);
149
+ }
150
+ else {
151
+ // polling
152
+ if (rawOptions === null || rawOptions === void 0 ? void 0 : rawOptions.pollingWatch) {
153
+ this.logger.log('[Recursive] Start polling watch:', realPath);
154
+ return this.pollingWatch(realPath, rawOptions);
155
+ }
156
+ return this.watchWithParcel(realPath, rawOptions);
157
+ }
158
+ }
159
+ async watchWithNsfw(realPath, rawOptions) {
160
+ const disposables = new utils_1.DisposableCollection();
161
+ const nsfw = await this.withNSFWModule();
162
+ const watcher = await nsfw(realPath, (events) => this.handleNSFWEvents(events, realPath), {
163
+ errorCallback: (err) => {
164
+ this.logger.error('[Recursive] NSFW watcher encountered an error and will stop watching.', err);
165
+ // see https://github.com/atom/github/issues/342
166
+ this.unwatchFileChanges(realPath);
167
+ },
168
+ });
169
+ await watcher.start();
170
+ disposables.push(utils_1.Disposable.create(async () => {
171
+ this.watcherOptions.delete(realPath);
172
+ await watcher.stop();
173
+ }));
174
+ const excludes = this.excludes.concat((rawOptions === null || rawOptions === void 0 ? void 0 : rawOptions.excludes) || []);
175
+ this.watcherOptions.set(realPath, {
176
+ excludesPattern: excludes.map((pattern) => (0, utils_1.parseGlob)(pattern)),
177
+ excludes,
178
+ });
179
+ return disposables;
180
+ }
181
+ async watchWithParcel(realPath, rawOptions) {
182
+ const disposables = new utils_1.DisposableCollection();
149
183
  const tryWatchDir = async (maxRetries = 3, retryDelay = 1000) => {
150
184
  var _a;
151
185
  for (let times = 0; times < maxRetries; times++) {
@@ -157,70 +191,96 @@ class FileSystemWatcherServer extends utils_1.Disposable {
157
191
  // FIXME: 研究此处屏蔽的影响,考虑下阈值应该设置多少,或者更加优雅的方式
158
192
  return;
159
193
  }
160
- const handlers = (_a = this.WATCHER_HANDLERS.get(watcherId)) === null || _a === void 0 ? void 0 : _a.handlers;
194
+ const handlers = (_a = this.WATCHER_HANDLERS.get(realPath)) === null || _a === void 0 ? void 0 : _a.handlers;
161
195
  if (!handlers) {
196
+ this.logger.log('[Recursive] No handler found for watcher', realPath);
197
+ return;
198
+ }
199
+ this.logger.log('[Recursive] Received events:', events);
200
+ if (events.length === 0) {
162
201
  return;
163
202
  }
164
203
  for (const handler of handlers) {
165
204
  handler(err, events);
166
205
  }
167
206
  }, {
168
- backend: FileSystemWatcherServer.PARCEL_WATCHER_BACKEND,
207
+ backend: RecursiveFileSystemWatcher.PARCEL_WATCHER_BACKEND,
169
208
  ignore: this.excludes.concat((_a = rawOptions === null || rawOptions === void 0 ? void 0 : rawOptions.excludes) !== null && _a !== void 0 ? _a : []),
170
209
  });
171
210
  }
172
211
  catch (e) {
173
212
  // Watcher 启动失败,尝试重试
174
- this.logger.error('watcher subscribe failed ', e, ' try times ', times);
213
+ this.logger.error('[Recursive] watcher subscribe failed ', e, ' try times ', times);
175
214
  await new Promise((resolve) => {
176
215
  setTimeout(resolve, retryDelay);
177
216
  });
178
217
  }
179
218
  }
180
219
  // 经过若干次的尝试后,Parcel Watcher 依然启动失败,此时就不再尝试重试
181
- this.logger.error(`watcher subscribe finally failed after ${maxRetries} times`);
220
+ this.logger.error(`[Recursive] watcher subscribe finally failed after ${maxRetries} times`);
182
221
  return undefined; // watch 失败则返回 undefined
183
222
  };
184
- if (this.isEnableNSFW()) {
185
- const nsfw = await this.withNSFWModule();
186
- const watcher = await nsfw(realPath, (events) => this.handleNSFWEvents(events, watcherId), {
187
- errorCallback: (err) => {
188
- this.logger.error('NSFW watcher encountered an error and will stop watching.', err);
189
- // see https://github.com/atom/github/issues/342
190
- this.unwatchFileChanges(watcherId);
191
- },
192
- });
193
- await watcher.start();
223
+ const hanlder = await tryWatchDir();
224
+ if (hanlder) {
225
+ // watch 成功才加入 disposables,否则也就无需 dispose
194
226
  disposables.push(utils_1.Disposable.create(async () => {
195
- this.watcherOptions.delete(watcherId);
196
- await watcher.stop();
227
+ if (hanlder) {
228
+ await hanlder.unsubscribe();
229
+ }
197
230
  }));
198
- const excludes = this.excludes.concat((rawOptions === null || rawOptions === void 0 ? void 0 : rawOptions.excludes) || []);
199
- this.watcherOptions.set(watcherId, {
200
- excludesPattern: excludes.map((pattern) => (0, utils_1.parseGlob)(pattern)),
201
- excludes,
202
- });
203
231
  }
204
- else {
205
- const hanlder = await tryWatchDir();
206
- if (hanlder) {
207
- // watch 成功才加入 disposables,否则也就无需 dispose
208
- disposables.push(utils_1.Disposable.create(async () => {
209
- if (hanlder) {
210
- await hanlder.unsubscribe();
211
- }
212
- }));
232
+ return disposables;
233
+ }
234
+ async pollingWatch(realPath, rawOptions) {
235
+ const disposables = new utils_1.DisposableCollection();
236
+ const snapshotFile = (0, path_1.join)((0, os_1.tmpdir)(), `watcher-snapshot-${realPath}`);
237
+ let counter = 0;
238
+ const pollingWatcher = new utils_1.RunOnceScheduler(async () => {
239
+ var _a;
240
+ counter++;
241
+ if (counter > 1) {
242
+ const parcelEvents = await watcher_1.default.getEventsSince(realPath, snapshotFile, {
243
+ ignore: rawOptions === null || rawOptions === void 0 ? void 0 : rawOptions.excludes,
244
+ backend: RecursiveFileSystemWatcher.PARCEL_WATCHER_BACKEND,
245
+ });
246
+ const handlers = (_a = this.WATCHER_HANDLERS.get(realPath)) === null || _a === void 0 ? void 0 : _a.handlers;
247
+ if (!handlers) {
248
+ this.logger.log('[Recursive] No handler found for watcher', realPath);
249
+ return;
250
+ }
251
+ this.logger.log('[Recursive] Received events:', parcelEvents);
252
+ for (const handler of handlers) {
253
+ handler(null, parcelEvents);
254
+ }
213
255
  }
214
- }
256
+ await watcher_1.default.writeSnapshot(realPath, snapshotFile, {
257
+ ignore: rawOptions === null || rawOptions === void 0 ? void 0 : rawOptions.excludes,
258
+ backend: RecursiveFileSystemWatcher.PARCEL_WATCHER_BACKEND,
259
+ });
260
+ pollingWatcher.schedule();
261
+ }, RecursiveFileSystemWatcher.DEFAULT_POLLING_INTERVAL);
262
+ pollingWatcher.schedule(0);
263
+ disposables.push(pollingWatcher);
215
264
  return disposables;
216
265
  }
217
- unwatchFileChanges(watcherId) {
218
- const watcher = this.WATCHER_HANDLERS.get(watcherId);
266
+ disposeWatcher(path) {
267
+ const watcher = this.WATCHER_HANDLERS.get(path);
219
268
  if (watcher) {
220
- this.WATCHER_HANDLERS.delete(watcherId);
221
- watcher.disposable.dispose();
269
+ try {
270
+ watcher.disposable.dispose();
271
+ }
272
+ catch (err) {
273
+ this.logger.error(`Dispose watcher failed for ${path}`, err);
274
+ }
275
+ finally {
276
+ this.WATCHER_HANDLERS.delete(path);
277
+ }
222
278
  }
223
- return Promise.resolve();
279
+ }
280
+ unwatchFileChanges(uri) {
281
+ this.logger.log('[Recursive] Un watch: ', uri);
282
+ const basePath = utils_1.FileUri.fsPath(uri);
283
+ this.disposeWatcher(basePath);
224
284
  }
225
285
  setClient(client) {
226
286
  if (this.client && this.disposed) {
@@ -233,28 +293,29 @@ class FileSystemWatcherServer extends utils_1.Disposable {
233
293
  * 社区相关 issue: https://github.com/parcel-bundler/watcher/issues/49
234
294
  */
235
295
  isEnableNSFW() {
236
- return utils_1.isLinux;
296
+ return this.backend === ide_core_common_1.RecursiveWatcherBackend.NSFW || utils_1.isLinux;
237
297
  }
238
- async handleNSFWEvents(events, watcherId) {
298
+ async handleNSFWEvents(events, realPath) {
239
299
  if (events.length > 5000) {
240
300
  return;
241
301
  }
242
- const isIgnored = (watcherId, path) => {
243
- const options = this.watcherOptions.get(watcherId);
302
+ const isIgnored = (realPath, path) => {
303
+ const options = this.watcherOptions.get(realPath);
244
304
  if (!options || !options.excludes || options.excludes.length < 1) {
245
305
  return false;
246
306
  }
247
- return options.excludesPattern.some((match) => match(path));
307
+ const excludesPattern = [...this.excludes.map((pattern) => (0, utils_1.parseGlob)(pattern)), ...options.excludesPattern];
308
+ return excludesPattern.some((match) => match(path));
248
309
  };
249
310
  const filterEvents = events.filter((event) => {
250
311
  // 如果是 RENAME,不会产生临时文件
251
- if (event.action === common_1.INsfw.actions.RENAMED) {
312
+ if (event.action === watcher_2.INsfw.actions.RENAMED) {
252
313
  return true;
253
314
  }
254
315
  return !(0, shared_1.shouldIgnorePath)(event.file);
255
316
  });
256
317
  const mergedEvents = (0, uniqBy_1.default)(filterEvents, (event) => {
257
- if (event.action === common_1.INsfw.actions.RENAMED) {
318
+ if (event.action === watcher_2.INsfw.actions.RENAMED) {
258
319
  const deletedPath = path_1.default.join(event.directory, event.oldFile);
259
320
  const newPath = path_1.default.join(event.newDirectory || event.directory, event.newFile);
260
321
  return deletedPath + newPath;
@@ -263,23 +324,23 @@ class FileSystemWatcherServer extends utils_1.Disposable {
263
324
  });
264
325
  await Promise.all(mergedEvents.map(async (event) => {
265
326
  switch (event.action) {
266
- case common_1.INsfw.actions.RENAMED:
327
+ case watcher_2.INsfw.actions.RENAMED:
267
328
  {
268
329
  const deletedPath = await this.resolvePath(event.directory, event.oldFile);
269
- if (isIgnored(watcherId, deletedPath)) {
330
+ if (isIgnored(realPath, deletedPath)) {
270
331
  return;
271
332
  }
272
333
  this.pushDeleted(deletedPath);
273
334
  if (event.newDirectory) {
274
335
  const path = await this.resolvePath(event.newDirectory, event.newFile);
275
- if (isIgnored(watcherId, path)) {
336
+ if (isIgnored(realPath, path)) {
276
337
  return;
277
338
  }
278
339
  this.pushAdded(path);
279
340
  }
280
341
  else {
281
342
  const path = await this.resolvePath(event.directory, event.newFile);
282
- if (isIgnored(watcherId, path)) {
343
+ if (isIgnored(realPath, path)) {
283
344
  return;
284
345
  }
285
346
  this.pushAdded(path);
@@ -289,17 +350,17 @@ class FileSystemWatcherServer extends utils_1.Disposable {
289
350
  default:
290
351
  {
291
352
  const path = await this.resolvePath(event.directory, event.file);
292
- if (isIgnored(watcherId, path)) {
353
+ if (isIgnored(realPath, path)) {
293
354
  return;
294
355
  }
295
356
  switch (event.action) {
296
- case common_1.INsfw.actions.CREATED:
357
+ case watcher_2.INsfw.actions.CREATED:
297
358
  this.pushAdded(path);
298
359
  break;
299
- case common_1.INsfw.actions.DELETED:
360
+ case watcher_2.INsfw.actions.DELETED:
300
361
  this.pushDeleted(path);
301
362
  break;
302
- case common_1.INsfw.actions.MODIFIED:
363
+ case watcher_2.INsfw.actions.MODIFIED:
303
364
  this.pushUpdated(path);
304
365
  break;
305
366
  }
@@ -312,13 +373,13 @@ class FileSystemWatcherServer extends utils_1.Disposable {
312
373
  return require('nsfw');
313
374
  }
314
375
  pushAdded(path) {
315
- this.pushFileChange(path, common_1.FileChangeType.ADDED);
376
+ this.pushFileChange(path, ide_core_common_1.FileChangeType.ADDED);
316
377
  }
317
378
  pushUpdated(path) {
318
- this.pushFileChange(path, common_1.FileChangeType.UPDATED);
379
+ this.pushFileChange(path, ide_core_common_1.FileChangeType.UPDATED);
319
380
  }
320
381
  pushDeleted(path) {
321
- this.pushFileChange(path, common_1.FileChangeType.DELETED);
382
+ this.pushFileChange(path, ide_core_common_1.FileChangeType.DELETED);
322
383
  }
323
384
  pushFileChange(path, type) {
324
385
  const uri = utils_1.FileUri.create(path).toString();
@@ -354,7 +415,7 @@ class FileSystemWatcherServer extends utils_1.Disposable {
354
415
  }
355
416
  }
356
417
  }
357
- exports.FileSystemWatcherServer = FileSystemWatcherServer;
358
- FileSystemWatcherServer.PARCEL_WATCHER_BACKEND = utils_1.isWindows ? 'windows' : utils_1.isLinux ? 'inotify' : 'fs-events';
359
- FileSystemWatcherServer.WATCHER_SEQUENCE = 1;
418
+ exports.RecursiveFileSystemWatcher = RecursiveFileSystemWatcher;
419
+ RecursiveFileSystemWatcher.PARCEL_WATCHER_BACKEND = utils_1.isWindows ? 'windows' : utils_1.isLinux ? 'inotify' : 'fs-events';
420
+ RecursiveFileSystemWatcher.DEFAULT_POLLING_INTERVAL = 100;
360
421
  //# sourceMappingURL=file-service-watcher.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-service-watcher.js","sourceRoot":"","sources":["../../../../src/node/hosted/recursive/file-service-watcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-service-watcher.js","sourceRoot":"","sources":["../../../../src/node/hosted/recursive/file-service-watcher.ts"],"names":[],"mappings":";;;;AAAA,2BAA4B;AAC5B,qDAAmC;AAEnC,sEAA4C;AAC5C,gEAA0B;AAC1B,uEAAuC;AACvC,mEAAmC;AAEnC,+DAMmC;AAEnC,+DAU6C;AAE7C,qDAAgD;AAChD,yEAAoE;AACpE,sCAA6C;AAgB7C,MAAa,0BAA2B,SAAQ,kBAAU;IAgBxD,YACU,WAAqB,EAAE,EACd,MAAmB,EAC5B,UAAmC,yCAAuB,CAAC,IAAI;QAEvE,KAAK,EAAE,CAAC;QAJA,aAAQ,GAAR,QAAQ,CAAe;QACd,WAAM,GAAN,MAAM,CAAa;QAC5B,YAAO,GAAP,OAAO,CAAwD;QAdjE,qBAAgB,GAAG,IAAI,GAAG,EAG/B,CAAC;QAEM,mBAAc,GAAG,IAAI,GAAG,EAA0B,CAAC;QAInD,YAAO,GAAG,IAAI,6CAAoB,EAAE,CAAC;QAwc/C;;;WAGG;QACgB,wBAAmB,GAAe,IAAA,kBAAQ,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,GAAG,CAAC,CAAC;QApcrG,IAAI,CAAC,UAAU,CACb,kBAAU,CAAC,MAAM,CAAC,GAAG,EAAE;YACrB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,gBAAgB,CAAC,GAAW,EAAE,OAAsB;QACxD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;YACxC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC;gBAC5B,eAAe;YACjB,CAAC,EAAE,IAAI,CAAC,CAAC;YAET,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,EAAE,CAAC;gBACtB,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACnD,CAAC;YAED,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC7C,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;gBAChB,IAAI,KAAK,EAAE,CAAC;oBACV,YAAY,CAAC,KAAK,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,GAAW,EAAE,OAAsB;QACjE,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC/C,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,CAAC,OAAO,EAAE,CAAC;YAC9B,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,QAAQ,GAAG,eAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAC;QAEzD,MAAM,gBAAgB,GAAG,IAAI,4BAAoB,EAAE,CAAC;QACpD,IAAI,SAAiB,CAAC;QAEtB,MAAM,KAAK,GAAG,MAAM,kBAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,GAAG,MAAM,kBAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC/B,SAAS,GAAG,QAAQ,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,MAA6B,EAAE,EAAE;YACrD,IAAI,GAAG,EAAE,CAAC;gBACR,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,SAAS,UAAU,EAAE,GAAG,CAAC,CAAC;gBACpE,OAAO;YACT,CAAC;YACD,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACtC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;oBACnB,KAAK,QAAQ;wBACX,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAC3B,MAAM;oBACR,KAAK,QAAQ;wBACX,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAC7B,MAAM;oBACR,KAAK,QAAQ;wBACX,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAC7B,MAAM;gBACV,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,EAAE;YACnC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE,gBAAgB;YAC5B,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB,CAAC,CAAC;QAEH,gBAAgB,CAAC,IAAI,CAAC,kBAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACxF,gBAAgB,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IACpC,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,KAAK,GAAG,CAAC;QAC5C,IAAI,GAAG,GAAG,cAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,CAAC,CAAC,MAAM,kBAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,KAAK,EAAE,CAAC;YACpD,GAAG,GAAG,cAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACzB,KAAK,EAAE,CAAC;QACV,CAAC;QACD,IAAI,MAAM,kBAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,GAAG,CAAC;QACb,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;OAGG;IACO,eAAe,CAAC,MAA6B;QACrD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAA0B,EAAE,EAAE,CAAC,CAAC,IAAA,yBAAgB,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACtF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,QAAkB;QAChD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAES,KAAK,CAAC,KAAK,CAAC,QAAgB,EAAE,UAAoC;QAC1E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,EAAE,QAAQ,CAAC,CAAC;QAExD,IAAI,CAAC,CAAC,MAAM,kBAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACrC,OAAO,IAAI,4BAAoB,EAAE,CAAC;QACpC,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAE7C,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,UAAU;YACV,IAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,YAAY,EAAE,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kCAAkC,EAAE,QAAQ,CAAC,CAAC;gBAC9D,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACjD,CAAC;YAED,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,UAAqC;QACjF,MAAM,WAAW,GAAG,IAAI,4BAAoB,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QACzC,MAAM,OAAO,GAAe,MAAM,IAAI,CACpC,QAAQ,EACR,CAAC,MAA2B,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,EACxE;YACE,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE;gBACrB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uEAAuE,EAAE,GAAG,CAAC,CAAC;gBAChG,gDAAgD;gBAChD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YACpC,CAAC;SACF,CACF,CAAC;QAEF,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QAEtB,WAAW,CAAC,IAAI,CACd,kBAAU,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;YAC3B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACrC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QACvB,CAAC,CAAC,CACH,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,KAAI,EAAE,CAAC,CAAC;QAElE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE;YAChC,eAAe,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAA,iBAAS,EAAC,OAAO,CAAC,CAAC;YAC9D,QAAQ;SACT,CAAC,CAAC;QACH,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,QAAgB,EAAE,UAAqC;QACnF,MAAM,WAAW,GAAG,IAAI,4BAAoB,EAAE,CAAC;QAC/C,MAAM,WAAW,GAAG,KAAK,EAAE,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,EAAE,EAAE;;YAC9D,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC;gBAChD,IAAI,CAAC;oBACH,OAAO,MAAM,iBAAa,CAAC,SAAS,CAClC,QAAQ,EACR,CAAC,GAAG,EAAE,MAA6B,EAAE,EAAE;;wBACrC,uCAAuC;wBACvC,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;4BACzB,yCAAyC;4BACzC,OAAO;wBACT,CAAC;wBACD,MAAM,QAAQ,GAAG,MAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,0CAAE,QAAQ,CAAC;wBAE/D,IAAI,CAAC,QAAQ,EAAE,CAAC;4BACd,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,0CAA0C,EAAE,QAAQ,CAAC,CAAC;4BACtE,OAAO;wBACT,CAAC;wBAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,8BAA8B,EAAE,MAAM,CAAC,CAAC;wBACxD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;4BACxB,OAAO;wBACT,CAAC;wBAED,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;4BAC9B,OAA2C,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;wBAC5D,CAAC;oBACH,CAAC,EACD;wBACE,OAAO,EAAE,0BAA0B,CAAC,sBAAsB;wBAC1D,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,mCAAI,EAAE,CAAC;qBACzD,CACF,CAAC;gBACJ,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,oBAAoB;oBACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;oBACpF,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;wBAC5B,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;oBAClC,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,4CAA4C;YAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sDAAsD,UAAU,QAAQ,CAAC,CAAC;YAC5F,OAAO,SAAS,CAAC,CAAC,wBAAwB;QAC5C,CAAC,CAAC;QAEF,MAAM,OAAO,GAAgD,MAAM,WAAW,EAAE,CAAC;QAEjF,IAAI,OAAO,EAAE,CAAC;YACZ,yCAAyC;YACzC,WAAW,CAAC,IAAI,CACd,kBAAU,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;gBAC3B,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;gBAC9B,CAAC;YACH,CAAC,CAAC,CACH,CAAC;QACJ,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,QAAgB,EAAE,UAAqC;QAChF,MAAM,WAAW,GAAG,IAAI,4BAAoB,EAAE,CAAC;QAC/C,MAAM,YAAY,GAAG,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,oBAAoB,QAAQ,EAAE,CAAC,CAAC;QACpE,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,MAAM,cAAc,GAAG,IAAI,wBAAgB,CAAC,KAAK,IAAI,EAAE;;YACrD,OAAO,EAAE,CAAC;YACV,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChB,MAAM,YAAY,GAAG,MAAM,iBAAa,CAAC,cAAc,CAAC,QAAQ,EAAE,YAAY,EAAE;oBAC9E,MAAM,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ;oBAC5B,OAAO,EAAE,0BAA0B,CAAC,sBAAsB;iBAC3D,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,0CAAE,QAAQ,CAAC;gBAE/D,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,0CAA0C,EAAE,QAAQ,CAAC,CAAC;oBACtE,OAAO;gBACT,CAAC;gBAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,8BAA8B,EAAE,YAAY,CAAC,CAAC;gBAC9D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;oBAC9B,OAA2C,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;gBACnE,CAAC;YACH,CAAC;YAED,MAAM,iBAAa,CAAC,aAAa,CAAC,QAAQ,EAAE,YAAY,EAAE;gBACxD,MAAM,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ;gBAC5B,OAAO,EAAE,0BAA0B,CAAC,sBAAsB;aAC3D,CAAC,CAAC;YAEH,cAAc,CAAC,QAAQ,EAAE,CAAC;QAC5B,CAAC,EAAE,0BAA0B,CAAC,wBAAwB,CAAC,CAAC;QAExD,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE3B,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEjC,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,cAAc,CAAC,IAAY;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC/B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;YAC/D,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAED,kBAAkB,CAAC,GAAW;QAC5B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,eAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,SAAS,CAAC,MAA2C;QACnD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;OAGG;IACK,YAAY;QAClB,OAAO,IAAI,CAAC,OAAO,KAAK,yCAAuB,CAAC,IAAI,IAAI,eAAO,CAAC;IAClE,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,MAA2B,EAAE,QAAgB;QAC1E,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAE,IAAY,EAAW,EAAE;YAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAClD,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjE,OAAO,KAAK,CAAC;YACf,CAAC;YAED,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAA,iBAAS,EAAC,OAAO,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;YAC5G,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC;QAEF,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3C,sBAAsB;YACtB,IAAI,KAAK,CAAC,MAAM,KAAK,eAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC3C,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,CAAC,IAAA,yBAAgB,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,IAAA,gBAAM,EAAC,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE;YAClD,IAAI,KAAK,CAAC,MAAM,KAAK,eAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC3C,MAAM,WAAW,GAAG,cAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAQ,CAAC,CAAC;gBAChE,MAAM,OAAO,GAAG,cAAK,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAQ,CAAC,CAAC;gBAClF,OAAO,WAAW,GAAG,OAAO,CAAC;YAC/B,CAAC;YAED,OAAO,KAAK,CAAC,MAAM,GAAG,cAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,IAAK,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,GAAG,CACf,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC/B,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;gBACrB,KAAK,eAAK,CAAC,OAAO,CAAC,OAAO;oBACxB,CAAC;wBACC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAQ,CAAC,CAAC;wBAC5E,IAAI,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,CAAC;4BACrC,OAAO;wBACT,CAAC;wBAED,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;wBAE9B,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;4BACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,OAAQ,CAAC,CAAC;4BACxE,IAAI,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;gCAC9B,OAAO;4BACT,CAAC;4BAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;wBACvB,CAAC;6BAAM,CAAC;4BACN,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAQ,CAAC,CAAC;4BACrE,IAAI,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;gCAC9B,OAAO;4BACT,CAAC;4BAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;wBACvB,CAAC;oBACH,CAAC;oBACD,MAAM;gBACR;oBACE,CAAC;wBACC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,IAAK,CAAC,CAAC;wBAClE,IAAI,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;4BAC9B,OAAO;wBACT,CAAC;wBAED,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;4BACrB,KAAK,eAAK,CAAC,OAAO,CAAC,OAAO;gCACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gCACrB,MAAM;4BACR,KAAK,eAAK,CAAC,OAAO,CAAC,OAAO;gCACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gCACvB,MAAM;4BACR,KAAK,eAAK,CAAC,OAAO,CAAC,QAAQ;gCACzB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gCACvB,MAAM;wBACV,CAAC;oBACH,CAAC;oBACD,MAAM;YACV,CAAC;QACH,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;IAES,SAAS,CAAC,IAAY;QAC9B,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,gCAAc,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IAES,WAAW,CAAC,IAAY;QAChC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,gCAAc,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAES,WAAW,CAAC,IAAY;QAChC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,gCAAc,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAES,cAAc,CAAC,IAAY,EAAE,IAAoB;QACzD,MAAM,GAAG,GAAG,eAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC5C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QAEjC,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAES,KAAK,CAAC,WAAW,CAAC,SAAiB,EAAE,IAAY;QACzD,MAAM,IAAI,GAAG,cAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACzC,uCAAuC;QACvC,IAAI,eAAO,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,OAAO,MAAM,kBAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC;YAAC,OAAO,EAAE,EAAE,CAAC;gBACZ,IAAI,CAAC;oBACH,+CAA+C;oBAC/C,OAAO,cAAK,CAAC,IAAI,CAAC,MAAM,kBAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;gBAC/D,CAAC;gBAAC,OAAO,EAAE,EAAE,CAAC;oBACZ,gDAAgD;oBAChD,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAOS,qBAAqB;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,IAAI,6CAAoB,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,EAAE,OAAO,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;;AAleH,gEAmeC;AAleyB,iDAAsB,GAAG,iBAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,AAA5D,CAA6D;AAE5F,mDAAwB,GAAG,GAAG,AAAN,CAAO"}
@@ -1,26 +1,20 @@
1
1
  import { ILogService } from '@opensumi/ide-core-common/lib/log';
2
2
  import { DisposableCollection } from '@opensumi/ide-utils/lib';
3
- import { FileChangeType, FileSystemWatcherClient, IFileSystemWatcherServer } from '../../../common/index';
3
+ import { FileChangeType, FileSystemWatcherClient, IWatcher } from '../../../common/index';
4
4
  import { FileChangeCollection } from '../../file-change-collection';
5
- export declare class UnRecursiveFileSystemWatcher implements IFileSystemWatcherServer {
5
+ export declare class UnRecursiveFileSystemWatcher implements IWatcher {
6
6
  private readonly logger;
7
- private WATCHER_HANDLERS;
8
- private static WATCHER_SEQUENCE;
7
+ private watcherCollections;
9
8
  private static readonly FILE_DELETE_HANDLER_DELAY;
10
9
  protected changes: FileChangeCollection;
11
10
  protected readonly toDispose: DisposableCollection;
12
11
  protected client: FileSystemWatcherClient | undefined;
13
12
  constructor(logger: ILogService);
14
13
  dispose(): void;
15
- /**
16
- * 查找某个路径是否已被监听
17
- * @param watcherPath
18
- */
19
- checkIsAlreadyWatched(watcherPath: string): number | undefined;
20
14
  private doWatch;
21
- watchFileChanges(uri: string): Promise<number>;
15
+ watchFileChanges(uri: string): Promise<void>;
22
16
  protected start(basePath: string): Promise<DisposableCollection>;
23
- unwatchFileChanges(watcherId: number): Promise<void>;
17
+ unwatchFileChanges(uri: string): void;
24
18
  protected pushAdded(path: string): void;
25
19
  protected pushUpdated(path: string): void;
26
20
  protected pushDeleted(path: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"file-service-watcher.d.ts","sourceRoot":"","sources":["../../../../src/node/hosted/un-recursive/file-service-watcher.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAc,oBAAoB,EAA2C,MAAM,yBAAyB,CAAC;AAEpH,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAC1G,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAIpE,qBAAa,4BAA6B,YAAW,wBAAwB;IAqB/D,OAAO,CAAC,QAAQ,CAAC,MAAM;IApBnC,OAAO,CAAC,gBAAgB,CAOpB;IAEJ,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAK;IAEpC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAO;IAGxD,SAAS,CAAC,OAAO,uBAA8B;IAE/C,SAAS,CAAC,QAAQ,CAAC,SAAS,uBAAgF;IAE5G,SAAS,CAAC,MAAM,EAAE,uBAAuB,GAAG,SAAS,CAAC;gBAEzB,MAAM,EAAE,WAAW;IAEhD,OAAO,IAAI,IAAI;IAKf;;;OAGG;IACH,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;YAQhD,OAAO;IAqFf,gBAAgB,CAAC,GAAG,EAAE,MAAM;cA6BlB,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAoBtE,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASpD,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIvC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIzC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIzC,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI;IAMlE;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,IAAI,CAAqD;IAEvG,SAAS,CAAC,qBAAqB,IAAI,IAAI;IASvC,SAAS,CAAC,MAAM,EAAE,uBAAuB,GAAG,SAAS;CAMtD"}
1
+ {"version":3,"file":"file-service-watcher.d.ts","sourceRoot":"","sources":["../../../../src/node/hosted/un-recursive/file-service-watcher.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAc,oBAAoB,EAA8B,MAAM,yBAAyB,CAAC;AAEvG,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAIpE,qBAAa,4BAA6B,YAAW,QAAQ;IAY/C,OAAO,CAAC,QAAQ,CAAC,MAAM;IAXnC,OAAO,CAAC,kBAAkB,CAAwC;IAElE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAO;IAGxD,SAAS,CAAC,OAAO,uBAA8B;IAE/C,SAAS,CAAC,QAAQ,CAAC,SAAS,uBAAgF;IAE5G,SAAS,CAAC,MAAM,EAAE,uBAAuB,GAAG,SAAS,CAAC;gBAEzB,MAAM,EAAE,WAAW;IAEhD,OAAO,IAAI,IAAI;YAID,OAAO;IAuFf,gBAAgB,CAAC,GAAG,EAAE,MAAM;cAoBlB,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAyBtE,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IASrC,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIvC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIzC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIzC,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI;IAMlE;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,IAAI,CAAqD;IAEvG,SAAS,CAAC,qBAAqB,IAAI,IAAI;IASvC,SAAS,CAAC,MAAM,EAAE,uBAAuB,GAAG,SAAS;CAMtD"}
@@ -12,7 +12,7 @@ const { join, basename, normalize } = lib_1.path;
12
12
  class UnRecursiveFileSystemWatcher {
13
13
  constructor(logger) {
14
14
  this.logger = logger;
15
- this.WATCHER_HANDLERS = new Map();
15
+ this.watcherCollections = new Map();
16
16
  // 收集发生改变的文件
17
17
  this.changes = new file_change_collection_1.FileChangeCollection();
18
18
  this.toDispose = new lib_1.DisposableCollection(lib_1.Disposable.create(() => this.setClient(undefined)));
@@ -24,23 +24,11 @@ class UnRecursiveFileSystemWatcher {
24
24
  }
25
25
  dispose() {
26
26
  this.toDispose.dispose();
27
- this.WATCHER_HANDLERS.clear();
28
- }
29
- /**
30
- * 查找某个路径是否已被监听
31
- * @param watcherPath
32
- */
33
- checkIsAlreadyWatched(watcherPath) {
34
- for (const [watcherId, watcher] of this.WATCHER_HANDLERS) {
35
- if (watcherPath.indexOf(watcher.path) === 0) {
36
- return watcherId;
37
- }
38
- }
39
27
  }
40
28
  async doWatch(basePath) {
41
29
  try {
42
30
  const watcher = (0, fs_extra_1.watch)(basePath);
43
- this.logger.log('start watching', basePath);
31
+ this.logger.log('[Un-Recursive] start watching', basePath);
44
32
  const isDirectory = fs_extra_1.default.lstatSync(basePath).isDirectory();
45
33
  const docChildren = new Set();
46
34
  let signalDoc = '';
@@ -62,7 +50,7 @@ class UnRecursiveFileSystemWatcher {
62
50
  }
63
51
  // 开始走监听流程
64
52
  watcher.on('error', (code, signal) => {
65
- this.logger.error(`Failed to watch ${basePath} for changes using fs.watch() (${code}, ${signal})`);
53
+ this.logger.error(`[Un-Recursive] Failed to watch ${basePath} for changes using fs.watch() (${code}, ${signal})`);
66
54
  watcher.close();
67
55
  });
68
56
  watcher.on('change', (type, filename) => {
@@ -120,31 +108,25 @@ class UnRecursiveFileSystemWatcher {
120
108
  });
121
109
  }
122
110
  catch (error) {
123
- this.logger.error(`Failed to watch ${basePath} for change using fs.watch() (${error.toString()})`);
111
+ this.logger.error(`[Un-Recursive] Failed to watch ${basePath} for change using fs.watch() (${error.toString()})`);
124
112
  }
125
113
  }
126
114
  async watchFileChanges(uri) {
127
115
  const basePath = lib_1.FileUri.fsPath(uri);
128
116
  const exist = await fs_extra_1.default.pathExists(basePath);
129
- let watcherId = this.checkIsAlreadyWatched(basePath);
130
- if (watcherId) {
131
- return watcherId;
132
- }
133
- watcherId = UnRecursiveFileSystemWatcher.WATCHER_SEQUENCE++;
134
117
  const disposables = new lib_1.DisposableCollection(); // 管理可释放的资源
135
118
  let watchPath = '';
136
119
  if (exist) {
137
- const stat = await fs_extra_1.default.lstatSync(basePath);
120
+ const stat = await fs_extra_1.default.lstat(basePath);
138
121
  if (stat) {
139
122
  watchPath = basePath;
140
123
  }
141
124
  }
142
125
  else {
143
- this.logger.warn('This path does not exist. Please try again');
126
+ this.logger.warn('[Un-Recursive] This path does not exist. Please try again');
144
127
  }
145
128
  disposables.push(await this.start(watchPath));
146
129
  this.toDispose.push(disposables);
147
- return watcherId;
148
130
  }
149
131
  async start(basePath) {
150
132
  const disposables = new lib_1.DisposableCollection();
@@ -152,6 +134,9 @@ class UnRecursiveFileSystemWatcher {
152
134
  return disposables;
153
135
  }
154
136
  const realPath = await fs_extra_1.default.realpath(basePath);
137
+ if (this.watcherCollections.has(realPath)) {
138
+ return disposables;
139
+ }
155
140
  const tryWatchDir = async (retryDelay = 1000) => {
156
141
  try {
157
142
  this.doWatch(realPath);
@@ -166,13 +151,13 @@ class UnRecursiveFileSystemWatcher {
166
151
  await tryWatchDir();
167
152
  return disposables;
168
153
  }
169
- unwatchFileChanges(watcherId) {
170
- const watcher = this.WATCHER_HANDLERS.get(watcherId);
171
- if (watcher) {
172
- this.WATCHER_HANDLERS.delete(watcherId);
173
- watcher.disposable.dispose();
154
+ unwatchFileChanges(uri) {
155
+ const basePath = lib_1.FileUri.fsPath(uri);
156
+ if (this.watcherCollections.has(basePath)) {
157
+ const watcher = this.watcherCollections.get(basePath);
158
+ watcher === null || watcher === void 0 ? void 0 : watcher.close();
159
+ this.watcherCollections.delete(basePath);
174
160
  }
175
- return Promise.resolve();
176
161
  }
177
162
  pushAdded(path) {
178
163
  this.pushFileChange(path, index_1.FileChangeType.ADDED);
@@ -204,6 +189,5 @@ class UnRecursiveFileSystemWatcher {
204
189
  }
205
190
  }
206
191
  exports.UnRecursiveFileSystemWatcher = UnRecursiveFileSystemWatcher;
207
- UnRecursiveFileSystemWatcher.WATCHER_SEQUENCE = 1;
208
192
  UnRecursiveFileSystemWatcher.FILE_DELETE_HANDLER_DELAY = 500;
209
193
  //# sourceMappingURL=file-service-watcher.js.map