typescript 4.9.0-dev.20220904 → 4.9.0-dev.20220908

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/lib/tsc.js CHANGED
@@ -69,7 +69,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
69
69
  var ts;
70
70
  (function (ts) {
71
71
  ts.versionMajorMinor = "4.9";
72
- ts.version = "".concat(ts.versionMajorMinor, ".0-dev.20220904");
72
+ ts.version = "".concat(ts.versionMajorMinor, ".0-dev.20220908");
73
73
  var NativeCollections;
74
74
  (function (NativeCollections) {
75
75
  var globals = typeof globalThis !== "undefined" ? globalThis :
@@ -3733,7 +3733,6 @@ var ts;
3733
3733
  createPollingIntervalBasedLevels(customLevels ? __assign(__assign({}, defaultLevels), customLevels) : defaultLevels);
3734
3734
  }
3735
3735
  }
3736
- ts.setCustomPollingValues = setCustomPollingValues;
3737
3736
  function pollWatchedFileQueue(host, queue, pollIndex, chunkSize, callbackOnWatchFileStat) {
3738
3737
  var definedValueCopyToIndex = pollIndex;
3739
3738
  for (var canVisit = queue.length; chunkSize && canVisit; nextPollIndex(), canVisit--) {
@@ -3871,7 +3870,6 @@ var ts;
3871
3870
  pollingIntervalQueue(pollingInterval).pollScheduled = host.setTimeout(pollingInterval === PollingInterval.Low ? pollLowPollingIntervalQueue : pollPollingIntervalQueue, pollingInterval, pollingIntervalQueue(pollingInterval));
3872
3871
  }
3873
3872
  }
3874
- ts.createDynamicPriorityPollingWatchFile = createDynamicPriorityPollingWatchFile;
3875
3873
  function createUseFsEventsOnParentDirectoryWatchFile(fsWatch, useCaseSensitiveFileNames) {
3876
3874
  var fileWatcherCallbacks = ts.createMultiMap();
3877
3875
  var dirWatchers = new ts.Map();
@@ -3946,37 +3944,31 @@ var ts;
3946
3944
  pollScheduled = host.setTimeout(pollQueue, PollingInterval.High);
3947
3945
  }
3948
3946
  }
3949
- function createSingleFileWatcherPerName(watchFile, useCaseSensitiveFileNames) {
3950
- var cache = new ts.Map();
3951
- var callbacksCache = ts.createMultiMap();
3947
+ function createSingleWatcherPerName(cache, useCaseSensitiveFileNames, name, callback, createWatcher) {
3952
3948
  var toCanonicalFileName = ts.createGetCanonicalFileName(useCaseSensitiveFileNames);
3953
- return function (fileName, callback, pollingInterval, options) {
3954
- var path = toCanonicalFileName(fileName);
3955
- var existing = cache.get(path);
3956
- if (existing) {
3957
- existing.refCount++;
3958
- }
3959
- else {
3960
- cache.set(path, {
3961
- watcher: watchFile(fileName, function (fileName, eventKind, modifiedTime) { return ts.forEach(callbacksCache.get(path), function (cb) { return cb(fileName, eventKind, modifiedTime); }); }, pollingInterval, options),
3962
- refCount: 1
3963
- });
3949
+ var path = toCanonicalFileName(name);
3950
+ var existing = cache.get(path);
3951
+ if (existing) {
3952
+ existing.callbacks.push(callback);
3953
+ }
3954
+ else {
3955
+ cache.set(path, {
3956
+ watcher: createWatcher((function (param1, param2, param3) { var _a; return (_a = cache.get(path)) === null || _a === void 0 ? void 0 : _a.callbacks.slice().forEach(function (cb) { return cb(param1, param2, param3); }); })),
3957
+ callbacks: [callback]
3958
+ });
3959
+ }
3960
+ return {
3961
+ close: function () {
3962
+ var watcher = cache.get(path);
3963
+ if (!watcher)
3964
+ return;
3965
+ if (!ts.orderedRemoveItem(watcher.callbacks, callback) || watcher.callbacks.length)
3966
+ return;
3967
+ cache.delete(path);
3968
+ ts.closeFileWatcherOf(watcher);
3964
3969
  }
3965
- callbacksCache.add(path, callback);
3966
- return {
3967
- close: function () {
3968
- var watcher = ts.Debug.checkDefined(cache.get(path));
3969
- callbacksCache.remove(path, callback);
3970
- watcher.refCount--;
3971
- if (watcher.refCount)
3972
- return;
3973
- cache.delete(path);
3974
- ts.closeFileWatcherOf(watcher);
3975
- }
3976
- };
3977
3970
  };
3978
3971
  }
3979
- ts.createSingleFileWatcherPerName = createSingleFileWatcherPerName;
3980
3972
  function onWatchedFileStat(watchedFile, modifiedTime) {
3981
3973
  var oldTime = watchedFile.mtime.getTime();
3982
3974
  var newTime = modifiedTime.getTime();
@@ -3987,7 +3979,6 @@ var ts;
3987
3979
  }
3988
3980
  return false;
3989
3981
  }
3990
- ts.onWatchedFileStat = onWatchedFileStat;
3991
3982
  function getFileWatcherEventKind(oldTime, newTime) {
3992
3983
  return oldTime === 0
3993
3984
  ? FileWatcherEventKind.Created
@@ -4194,11 +4185,9 @@ var ts;
4194
4185
  return ts.stringContains(toCanonicalFilePath(path), searchPath);
4195
4186
  }
4196
4187
  }
4197
- ts.createDirectoryWatcherSupportingRecursive = createDirectoryWatcherSupportingRecursive;
4198
4188
  function createFileWatcherCallback(callback) {
4199
4189
  return function (_fileName, eventKind, modifiedTime) { return callback(eventKind === FileWatcherEventKind.Changed ? "change" : "rename", "", modifiedTime); };
4200
4190
  }
4201
- ts.createFileWatcherCallback = createFileWatcherCallback;
4202
4191
  function createFsWatchCallbackForFileWatcherCallback(fileName, callback, getModifiedTime) {
4203
4192
  return function (eventName, _relativeFileName, modifiedTime) {
4204
4193
  if (eventName === "rename") {
@@ -4225,7 +4214,10 @@ var ts;
4225
4214
  };
4226
4215
  }
4227
4216
  function createSystemWatchFunctions(_a) {
4228
- var pollingWatchFile = _a.pollingWatchFile, getModifiedTime = _a.getModifiedTime, setTimeout = _a.setTimeout, clearTimeout = _a.clearTimeout, fsWatchWorker = _a.fsWatchWorker, fileSystemEntryExists = _a.fileSystemEntryExists, useCaseSensitiveFileNames = _a.useCaseSensitiveFileNames, getCurrentDirectory = _a.getCurrentDirectory, fsSupportsRecursiveFsWatch = _a.fsSupportsRecursiveFsWatch, getAccessibleSortedChildDirectories = _a.getAccessibleSortedChildDirectories, realpath = _a.realpath, tscWatchFile = _a.tscWatchFile, useNonPollingWatchers = _a.useNonPollingWatchers, tscWatchDirectory = _a.tscWatchDirectory, defaultWatchFileKind = _a.defaultWatchFileKind, inodeWatching = _a.inodeWatching, sysLog = _a.sysLog;
4217
+ var pollingWatchFileWorker = _a.pollingWatchFileWorker, getModifiedTime = _a.getModifiedTime, setTimeout = _a.setTimeout, clearTimeout = _a.clearTimeout, fsWatchWorker = _a.fsWatchWorker, fileSystemEntryExists = _a.fileSystemEntryExists, useCaseSensitiveFileNames = _a.useCaseSensitiveFileNames, getCurrentDirectory = _a.getCurrentDirectory, fsSupportsRecursiveFsWatch = _a.fsSupportsRecursiveFsWatch, getAccessibleSortedChildDirectories = _a.getAccessibleSortedChildDirectories, realpath = _a.realpath, tscWatchFile = _a.tscWatchFile, useNonPollingWatchers = _a.useNonPollingWatchers, tscWatchDirectory = _a.tscWatchDirectory, defaultWatchFileKind = _a.defaultWatchFileKind, inodeWatching = _a.inodeWatching, sysLog = _a.sysLog;
4218
+ var pollingWatches = new ts.Map();
4219
+ var fsWatches = new ts.Map();
4220
+ var fsWatchesRecursive = new ts.Map();
4229
4221
  var dynamicPollingWatchFile;
4230
4222
  var fixedChunkSizePollingWatchFile;
4231
4223
  var nonPollingWatchFile;
@@ -4281,7 +4273,7 @@ var ts;
4281
4273
  default:
4282
4274
  return useNonPollingWatchers ?
4283
4275
  generateWatchFileOptions(ts.WatchFileKind.UseFsEventsOnParentDirectory, ts.PollingWatchKind.PriorityInterval, options) :
4284
- { watchFile: (defaultWatchFileKind === null || defaultWatchFileKind === void 0 ? void 0 : defaultWatchFileKind()) || ts.WatchFileKind.FixedPollingInterval };
4276
+ { watchFile: (defaultWatchFileKind === null || defaultWatchFileKind === void 0 ? void 0 : defaultWatchFileKind()) || ts.WatchFileKind.UseFsEvents };
4285
4277
  }
4286
4278
  }
4287
4279
  function generateWatchFileOptions(watchFile, fallbackPolling, options) {
@@ -4346,7 +4338,13 @@ var ts;
4346
4338
  };
4347
4339
  }
4348
4340
  }
4341
+ function pollingWatchFile(fileName, callback, pollingInterval, options) {
4342
+ return createSingleWatcherPerName(pollingWatches, useCaseSensitiveFileNames, fileName, callback, function (cb) { return pollingWatchFileWorker(fileName, cb, pollingInterval, options); });
4343
+ }
4349
4344
  function fsWatch(fileOrDirectory, entryKind, callback, recursive, fallbackPollingInterval, fallbackOptions) {
4345
+ return createSingleWatcherPerName(recursive ? fsWatchesRecursive : fsWatches, useCaseSensitiveFileNames, fileOrDirectory, callback, function (cb) { return fsWatchHandlingExistenceOnHost(fileOrDirectory, entryKind, cb, recursive, fallbackPollingInterval, fallbackOptions); });
4346
+ }
4347
+ function fsWatchHandlingExistenceOnHost(fileOrDirectory, entryKind, callback, recursive, fallbackPollingInterval, fallbackOptions) {
4350
4348
  var lastDirectoryPartWithDirectorySeparator;
4351
4349
  var lastDirectoryPart;
4352
4350
  if (inodeWatching) {
@@ -4484,7 +4482,7 @@ var ts;
4484
4482
  var fsSupportsRecursiveFsWatch = isNode4OrLater && (process.platform === "win32" || process.platform === "darwin");
4485
4483
  var getCurrentDirectory = ts.memoize(function () { return process.cwd(); });
4486
4484
  var _b = createSystemWatchFunctions({
4487
- pollingWatchFile: createSingleFileWatcherPerName(fsWatchFileWorker, useCaseSensitiveFileNames),
4485
+ pollingWatchFileWorker: fsWatchFileWorker,
4488
4486
  getModifiedTime: getModifiedTime,
4489
4487
  setTimeout: setTimeout,
4490
4488
  clearTimeout: clearTimeout,
@@ -32323,6 +32321,7 @@ var ts;
32323
32321
  shortName: "h",
32324
32322
  type: "boolean",
32325
32323
  showInSimplifiedHelpView: true,
32324
+ isCommandLineOnly: true,
32326
32325
  category: ts.Diagnostics.Command_line_Options,
32327
32326
  description: ts.Diagnostics.Print_this_message,
32328
32327
  defaultValueDescription: false,
@@ -32331,6 +32330,8 @@ var ts;
32331
32330
  name: "help",
32332
32331
  shortName: "?",
32333
32332
  type: "boolean",
32333
+ isCommandLineOnly: true,
32334
+ category: ts.Diagnostics.Command_line_Options,
32334
32335
  defaultValueDescription: false,
32335
32336
  },
32336
32337
  {
@@ -55814,8 +55815,8 @@ var ts;
55814
55815
  if (!c.root.inferTypeParameters && !isDistributionDependent(c.root)) {
55815
55816
  var skipTrue = !isTypeAssignableTo(getPermissiveInstantiation(c.checkType), getPermissiveInstantiation(c.extendsType));
55816
55817
  var skipFalse = !skipTrue && isTypeAssignableTo(getRestrictiveInstantiation(c.checkType), getRestrictiveInstantiation(c.extendsType));
55817
- if (result = skipTrue ? -1 : isRelatedTo(source, getTrueTypeFromConditionalType(c), 2, false)) {
55818
- result &= skipFalse ? -1 : isRelatedTo(source, getFalseTypeFromConditionalType(c), 2, false);
55818
+ if (result = skipTrue ? -1 : isRelatedTo(source, getTrueTypeFromConditionalType(c), 2, false, undefined, intersectionState)) {
55819
+ result &= skipFalse ? -1 : isRelatedTo(source, getFalseTypeFromConditionalType(c), 2, false, undefined, intersectionState);
55819
55820
  if (result) {
55820
55821
  return result;
55821
55822
  }
@@ -76361,7 +76362,7 @@ var ts;
76361
76362
  return grammarErrorOnNode(node, ts.Diagnostics.This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments);
76362
76363
  }
76363
76364
  var nodeArguments = node.arguments;
76364
- if (moduleKind !== ts.ModuleKind.ESNext && moduleKind !== ts.ModuleKind.NodeNext) {
76365
+ if (moduleKind !== ts.ModuleKind.ESNext && moduleKind !== ts.ModuleKind.NodeNext && moduleKind !== ts.ModuleKind.Node16) {
76365
76366
  checkGrammarForDisallowedTrailingComma(nodeArguments);
76366
76367
  if (nodeArguments.length > 1) {
76367
76368
  var assertionArgument = nodeArguments[1];
package/lib/tsserver.js CHANGED
@@ -109,7 +109,7 @@ var ts;
109
109
  // The following is baselined as a literal template type without intervention
110
110
  /** The version of the TypeScript compiler release */
111
111
  // eslint-disable-next-line @typescript-eslint/no-inferrable-types
112
- ts.version = "".concat(ts.versionMajorMinor, ".0-dev.20220904");
112
+ ts.version = "".concat(ts.versionMajorMinor, ".0-dev.20220908");
113
113
  /* @internal */
114
114
  var Comparison;
115
115
  (function (Comparison) {
@@ -6147,7 +6147,6 @@ var ts;
6147
6147
  var pollingChunkSize = createPollingIntervalBasedLevels(defaultChunkLevels);
6148
6148
  /* @internal */
6149
6149
  ts.unchangedPollThresholds = createPollingIntervalBasedLevels(defaultChunkLevels);
6150
- /* @internal */
6151
6150
  function setCustomPollingValues(system) {
6152
6151
  if (!system.getEnvironmentVariable) {
6153
6152
  return;
@@ -6190,7 +6189,6 @@ var ts;
6190
6189
  createPollingIntervalBasedLevels(customLevels ? __assign(__assign({}, defaultLevels), customLevels) : defaultLevels);
6191
6190
  }
6192
6191
  }
6193
- ts.setCustomPollingValues = setCustomPollingValues;
6194
6192
  function pollWatchedFileQueue(host, queue, pollIndex, chunkSize, callbackOnWatchFileStat) {
6195
6193
  var definedValueCopyToIndex = pollIndex;
6196
6194
  // Max visit would be all elements of the queue
@@ -6236,7 +6234,6 @@ var ts;
6236
6234
  }
6237
6235
  }
6238
6236
  }
6239
- /* @internal */
6240
6237
  function createDynamicPriorityPollingWatchFile(host) {
6241
6238
  var watchedFiles = [];
6242
6239
  var changedFilesInLastPoll = [];
@@ -6345,7 +6342,6 @@ var ts;
6345
6342
  pollingIntervalQueue(pollingInterval).pollScheduled = host.setTimeout(pollingInterval === PollingInterval.Low ? pollLowPollingIntervalQueue : pollPollingIntervalQueue, pollingInterval, pollingIntervalQueue(pollingInterval));
6346
6343
  }
6347
6344
  }
6348
- ts.createDynamicPriorityPollingWatchFile = createDynamicPriorityPollingWatchFile;
6349
6345
  function createUseFsEventsOnParentDirectoryWatchFile(fsWatch, useCaseSensitiveFileNames) {
6350
6346
  // One file can have multiple watchers
6351
6347
  var fileWatcherCallbacks = ts.createMultiMap();
@@ -6424,42 +6420,38 @@ var ts;
6424
6420
  pollScheduled = host.setTimeout(pollQueue, PollingInterval.High);
6425
6421
  }
6426
6422
  }
6427
- /* @internal */
6428
- function createSingleFileWatcherPerName(watchFile, useCaseSensitiveFileNames) {
6429
- var cache = new ts.Map();
6430
- var callbacksCache = ts.createMultiMap();
6423
+ function createSingleWatcherPerName(cache, useCaseSensitiveFileNames, name, callback, createWatcher) {
6431
6424
  var toCanonicalFileName = ts.createGetCanonicalFileName(useCaseSensitiveFileNames);
6432
- return function (fileName, callback, pollingInterval, options) {
6433
- var path = toCanonicalFileName(fileName);
6434
- var existing = cache.get(path);
6435
- if (existing) {
6436
- existing.refCount++;
6437
- }
6438
- else {
6439
- cache.set(path, {
6440
- watcher: watchFile(fileName, function (fileName, eventKind, modifiedTime) { return ts.forEach(callbacksCache.get(path), function (cb) { return cb(fileName, eventKind, modifiedTime); }); }, pollingInterval, options),
6441
- refCount: 1
6442
- });
6425
+ var path = toCanonicalFileName(name);
6426
+ var existing = cache.get(path);
6427
+ if (existing) {
6428
+ existing.callbacks.push(callback);
6429
+ }
6430
+ else {
6431
+ cache.set(path, {
6432
+ watcher: createWatcher((
6433
+ // Cant infer types correctly so lets satisfy checker
6434
+ function (param1, param2, param3) { var _a; return (_a = cache.get(path)) === null || _a === void 0 ? void 0 : _a.callbacks.slice().forEach(function (cb) { return cb(param1, param2, param3); }); })),
6435
+ callbacks: [callback]
6436
+ });
6437
+ }
6438
+ return {
6439
+ close: function () {
6440
+ var watcher = cache.get(path);
6441
+ // Watcher is not expected to be undefined, but if it is normally its because
6442
+ // exception was thrown somewhere else and watch state is not what it should be
6443
+ if (!watcher)
6444
+ return;
6445
+ if (!ts.orderedRemoveItem(watcher.callbacks, callback) || watcher.callbacks.length)
6446
+ return;
6447
+ cache.delete(path);
6448
+ ts.closeFileWatcherOf(watcher);
6443
6449
  }
6444
- callbacksCache.add(path, callback);
6445
- return {
6446
- close: function () {
6447
- var watcher = ts.Debug.checkDefined(cache.get(path));
6448
- callbacksCache.remove(path, callback);
6449
- watcher.refCount--;
6450
- if (watcher.refCount)
6451
- return;
6452
- cache.delete(path);
6453
- ts.closeFileWatcherOf(watcher);
6454
- }
6455
- };
6456
6450
  };
6457
6451
  }
6458
- ts.createSingleFileWatcherPerName = createSingleFileWatcherPerName;
6459
6452
  /**
6460
6453
  * Returns true if file status changed
6461
6454
  */
6462
- /*@internal*/
6463
6455
  function onWatchedFileStat(watchedFile, modifiedTime) {
6464
6456
  var oldTime = watchedFile.mtime.getTime();
6465
6457
  var newTime = modifiedTime.getTime();
@@ -6471,7 +6463,6 @@ var ts;
6471
6463
  }
6472
6464
  return false;
6473
6465
  }
6474
- ts.onWatchedFileStat = onWatchedFileStat;
6475
6466
  /*@internal*/
6476
6467
  function getFileWatcherEventKind(oldTime, newTime) {
6477
6468
  return oldTime === 0
@@ -6499,7 +6490,6 @@ var ts;
6499
6490
  * that means if this is recursive watcher, watch the children directories as well
6500
6491
  * (eg on OS that dont support recursive watch using fs.watch use fs.watchFile)
6501
6492
  */
6502
- /*@internal*/
6503
6493
  function createDirectoryWatcherSupportingRecursive(_a) {
6504
6494
  var watchDirectory = _a.watchDirectory, useCaseSensitiveFileNames = _a.useCaseSensitiveFileNames, getCurrentDirectory = _a.getCurrentDirectory, getAccessibleSortedChildDirectories = _a.getAccessibleSortedChildDirectories, fileSystemEntryExists = _a.fileSystemEntryExists, realpath = _a.realpath, setTimeout = _a.setTimeout, clearTimeout = _a.clearTimeout;
6505
6495
  var cache = new ts.Map();
@@ -6708,18 +6698,15 @@ var ts;
6708
6698
  return ts.stringContains(toCanonicalFilePath(path), searchPath);
6709
6699
  }
6710
6700
  }
6711
- ts.createDirectoryWatcherSupportingRecursive = createDirectoryWatcherSupportingRecursive;
6712
6701
  /*@internal*/
6713
6702
  var FileSystemEntryKind;
6714
6703
  (function (FileSystemEntryKind) {
6715
6704
  FileSystemEntryKind[FileSystemEntryKind["File"] = 0] = "File";
6716
6705
  FileSystemEntryKind[FileSystemEntryKind["Directory"] = 1] = "Directory";
6717
6706
  })(FileSystemEntryKind = ts.FileSystemEntryKind || (ts.FileSystemEntryKind = {}));
6718
- /*@internal*/
6719
6707
  function createFileWatcherCallback(callback) {
6720
6708
  return function (_fileName, eventKind, modifiedTime) { return callback(eventKind === FileWatcherEventKind.Changed ? "change" : "rename", "", modifiedTime); };
6721
6709
  }
6722
- ts.createFileWatcherCallback = createFileWatcherCallback;
6723
6710
  function createFsWatchCallbackForFileWatcherCallback(fileName, callback, getModifiedTime) {
6724
6711
  return function (eventName, _relativeFileName, modifiedTime) {
6725
6712
  if (eventName === "rename") {
@@ -6753,7 +6740,10 @@ var ts;
6753
6740
  }
6754
6741
  /*@internal*/
6755
6742
  function createSystemWatchFunctions(_a) {
6756
- var pollingWatchFile = _a.pollingWatchFile, getModifiedTime = _a.getModifiedTime, setTimeout = _a.setTimeout, clearTimeout = _a.clearTimeout, fsWatchWorker = _a.fsWatchWorker, fileSystemEntryExists = _a.fileSystemEntryExists, useCaseSensitiveFileNames = _a.useCaseSensitiveFileNames, getCurrentDirectory = _a.getCurrentDirectory, fsSupportsRecursiveFsWatch = _a.fsSupportsRecursiveFsWatch, getAccessibleSortedChildDirectories = _a.getAccessibleSortedChildDirectories, realpath = _a.realpath, tscWatchFile = _a.tscWatchFile, useNonPollingWatchers = _a.useNonPollingWatchers, tscWatchDirectory = _a.tscWatchDirectory, defaultWatchFileKind = _a.defaultWatchFileKind, inodeWatching = _a.inodeWatching, sysLog = _a.sysLog;
6743
+ var pollingWatchFileWorker = _a.pollingWatchFileWorker, getModifiedTime = _a.getModifiedTime, setTimeout = _a.setTimeout, clearTimeout = _a.clearTimeout, fsWatchWorker = _a.fsWatchWorker, fileSystemEntryExists = _a.fileSystemEntryExists, useCaseSensitiveFileNames = _a.useCaseSensitiveFileNames, getCurrentDirectory = _a.getCurrentDirectory, fsSupportsRecursiveFsWatch = _a.fsSupportsRecursiveFsWatch, getAccessibleSortedChildDirectories = _a.getAccessibleSortedChildDirectories, realpath = _a.realpath, tscWatchFile = _a.tscWatchFile, useNonPollingWatchers = _a.useNonPollingWatchers, tscWatchDirectory = _a.tscWatchDirectory, defaultWatchFileKind = _a.defaultWatchFileKind, inodeWatching = _a.inodeWatching, sysLog = _a.sysLog;
6744
+ var pollingWatches = new ts.Map();
6745
+ var fsWatches = new ts.Map();
6746
+ var fsWatchesRecursive = new ts.Map();
6757
6747
  var dynamicPollingWatchFile;
6758
6748
  var fixedChunkSizePollingWatchFile;
6759
6749
  var nonPollingWatchFile;
@@ -6817,7 +6807,7 @@ var ts;
6817
6807
  // Use notifications from FS to watch with falling back to fs.watchFile
6818
6808
  generateWatchFileOptions(ts.WatchFileKind.UseFsEventsOnParentDirectory, ts.PollingWatchKind.PriorityInterval, options) :
6819
6809
  // Default to do not use fixed polling interval
6820
- { watchFile: (defaultWatchFileKind === null || defaultWatchFileKind === void 0 ? void 0 : defaultWatchFileKind()) || ts.WatchFileKind.FixedPollingInterval };
6810
+ { watchFile: (defaultWatchFileKind === null || defaultWatchFileKind === void 0 ? void 0 : defaultWatchFileKind()) || ts.WatchFileKind.UseFsEvents };
6821
6811
  }
6822
6812
  }
6823
6813
  function generateWatchFileOptions(watchFile, fallbackPolling, options) {
@@ -6888,7 +6878,13 @@ var ts;
6888
6878
  };
6889
6879
  }
6890
6880
  }
6881
+ function pollingWatchFile(fileName, callback, pollingInterval, options) {
6882
+ return createSingleWatcherPerName(pollingWatches, useCaseSensitiveFileNames, fileName, callback, function (cb) { return pollingWatchFileWorker(fileName, cb, pollingInterval, options); });
6883
+ }
6891
6884
  function fsWatch(fileOrDirectory, entryKind, callback, recursive, fallbackPollingInterval, fallbackOptions) {
6885
+ return createSingleWatcherPerName(recursive ? fsWatchesRecursive : fsWatches, useCaseSensitiveFileNames, fileOrDirectory, callback, function (cb) { return fsWatchHandlingExistenceOnHost(fileOrDirectory, entryKind, cb, recursive, fallbackPollingInterval, fallbackOptions); });
6886
+ }
6887
+ function fsWatchHandlingExistenceOnHost(fileOrDirectory, entryKind, callback, recursive, fallbackPollingInterval, fallbackOptions) {
6892
6888
  var lastDirectoryPartWithDirectorySeparator;
6893
6889
  var lastDirectoryPart;
6894
6890
  if (inodeWatching) {
@@ -7067,7 +7063,7 @@ var ts;
7067
7063
  var fsSupportsRecursiveFsWatch = isNode4OrLater && (process.platform === "win32" || process.platform === "darwin");
7068
7064
  var getCurrentDirectory = ts.memoize(function () { return process.cwd(); });
7069
7065
  var _b = createSystemWatchFunctions({
7070
- pollingWatchFile: createSingleFileWatcherPerName(fsWatchFileWorker, useCaseSensitiveFileNames),
7066
+ pollingWatchFileWorker: fsWatchFileWorker,
7071
7067
  getModifiedTime: getModifiedTime,
7072
7068
  setTimeout: setTimeout,
7073
7069
  clearTimeout: clearTimeout,
@@ -39903,6 +39899,7 @@ var ts;
39903
39899
  shortName: "h",
39904
39900
  type: "boolean",
39905
39901
  showInSimplifiedHelpView: true,
39902
+ isCommandLineOnly: true,
39906
39903
  category: ts.Diagnostics.Command_line_Options,
39907
39904
  description: ts.Diagnostics.Print_this_message,
39908
39905
  defaultValueDescription: false,
@@ -39911,6 +39908,8 @@ var ts;
39911
39908
  name: "help",
39912
39909
  shortName: "?",
39913
39910
  type: "boolean",
39911
+ isCommandLineOnly: true,
39912
+ category: ts.Diagnostics.Command_line_Options,
39914
39913
  defaultValueDescription: false,
39915
39914
  },
39916
39915
  {
@@ -66889,8 +66888,8 @@ var ts;
66889
66888
  var skipTrue = !isTypeAssignableTo(getPermissiveInstantiation(c.checkType), getPermissiveInstantiation(c.extendsType));
66890
66889
  var skipFalse = !skipTrue && isTypeAssignableTo(getRestrictiveInstantiation(c.checkType), getRestrictiveInstantiation(c.extendsType));
66891
66890
  // TODO: Find a nice way to include potential conditional type breakdowns in error output, if they seem good (they usually don't)
66892
- if (result = skipTrue ? -1 /* Ternary.True */ : isRelatedTo(source, getTrueTypeFromConditionalType(c), 2 /* RecursionFlags.Target */, /*reportErrors*/ false)) {
66893
- result &= skipFalse ? -1 /* Ternary.True */ : isRelatedTo(source, getFalseTypeFromConditionalType(c), 2 /* RecursionFlags.Target */, /*reportErrors*/ false);
66891
+ if (result = skipTrue ? -1 /* Ternary.True */ : isRelatedTo(source, getTrueTypeFromConditionalType(c), 2 /* RecursionFlags.Target */, /*reportErrors*/ false, /*headMessage*/ undefined, intersectionState)) {
66892
+ result &= skipFalse ? -1 /* Ternary.True */ : isRelatedTo(source, getFalseTypeFromConditionalType(c), 2 /* RecursionFlags.Target */, /*reportErrors*/ false, /*headMessage*/ undefined, intersectionState);
66894
66893
  if (result) {
66895
66894
  return result;
66896
66895
  }
@@ -90606,7 +90605,7 @@ var ts;
90606
90605
  return grammarErrorOnNode(node, ts.Diagnostics.This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments);
90607
90606
  }
90608
90607
  var nodeArguments = node.arguments;
90609
- if (moduleKind !== ts.ModuleKind.ESNext && moduleKind !== ts.ModuleKind.NodeNext) {
90608
+ if (moduleKind !== ts.ModuleKind.ESNext && moduleKind !== ts.ModuleKind.NodeNext && moduleKind !== ts.ModuleKind.Node16) {
90610
90609
  // We are allowed trailing comma after proposal-import-assertions.
90611
90610
  checkGrammarForDisallowedTrailingComma(nodeArguments);
90612
90611
  if (nodeArguments.length > 1) {
@@ -184465,20 +184464,6 @@ var ts;
184465
184464
  }
184466
184465
  // Override sys.write because fs.writeSync is not reliable on Node 4
184467
184466
  sys.write = function (s) { return writeMessage(sys.bufferFrom(s, "utf8")); };
184468
- // REVIEW: for now this implementation uses polling.
184469
- // The advantage of polling is that it works reliably
184470
- // on all os and with network mounted files.
184471
- // For 90 referenced files, the average time to detect
184472
- // changes is 2*msInterval (by default 5 seconds).
184473
- // The overhead of this is .04 percent (1/2500) with
184474
- // average pause of < 1 millisecond (and max
184475
- // pause less than 1.5 milliseconds); question is
184476
- // do we anticipate reference sets in the 100s and
184477
- // do we care about waiting 10-20 seconds to detect
184478
- // changes for large reference sets? If so, do we want
184479
- // to increase the chunk size or decrease the interval
184480
- // time dynamically to match the large reference set?
184481
- sys.defaultWatchFileKind = function () { return ts.WatchFileKind.FixedChunkSizePolling; };
184482
184467
  /* eslint-disable no-restricted-globals */
184483
184468
  sys.setTimeout = setTimeout;
184484
184469
  sys.clearTimeout = clearTimeout;
@@ -108,7 +108,7 @@ var ts;
108
108
  // The following is baselined as a literal template type without intervention
109
109
  /** The version of the TypeScript compiler release */
110
110
  // eslint-disable-next-line @typescript-eslint/no-inferrable-types
111
- ts.version = "".concat(ts.versionMajorMinor, ".0-dev.20220904");
111
+ ts.version = "".concat(ts.versionMajorMinor, ".0-dev.20220908");
112
112
  /* @internal */
113
113
  var Comparison;
114
114
  (function (Comparison) {
@@ -6146,7 +6146,6 @@ var ts;
6146
6146
  var pollingChunkSize = createPollingIntervalBasedLevels(defaultChunkLevels);
6147
6147
  /* @internal */
6148
6148
  ts.unchangedPollThresholds = createPollingIntervalBasedLevels(defaultChunkLevels);
6149
- /* @internal */
6150
6149
  function setCustomPollingValues(system) {
6151
6150
  if (!system.getEnvironmentVariable) {
6152
6151
  return;
@@ -6189,7 +6188,6 @@ var ts;
6189
6188
  createPollingIntervalBasedLevels(customLevels ? __assign(__assign({}, defaultLevels), customLevels) : defaultLevels);
6190
6189
  }
6191
6190
  }
6192
- ts.setCustomPollingValues = setCustomPollingValues;
6193
6191
  function pollWatchedFileQueue(host, queue, pollIndex, chunkSize, callbackOnWatchFileStat) {
6194
6192
  var definedValueCopyToIndex = pollIndex;
6195
6193
  // Max visit would be all elements of the queue
@@ -6235,7 +6233,6 @@ var ts;
6235
6233
  }
6236
6234
  }
6237
6235
  }
6238
- /* @internal */
6239
6236
  function createDynamicPriorityPollingWatchFile(host) {
6240
6237
  var watchedFiles = [];
6241
6238
  var changedFilesInLastPoll = [];
@@ -6344,7 +6341,6 @@ var ts;
6344
6341
  pollingIntervalQueue(pollingInterval).pollScheduled = host.setTimeout(pollingInterval === PollingInterval.Low ? pollLowPollingIntervalQueue : pollPollingIntervalQueue, pollingInterval, pollingIntervalQueue(pollingInterval));
6345
6342
  }
6346
6343
  }
6347
- ts.createDynamicPriorityPollingWatchFile = createDynamicPriorityPollingWatchFile;
6348
6344
  function createUseFsEventsOnParentDirectoryWatchFile(fsWatch, useCaseSensitiveFileNames) {
6349
6345
  // One file can have multiple watchers
6350
6346
  var fileWatcherCallbacks = ts.createMultiMap();
@@ -6423,42 +6419,38 @@ var ts;
6423
6419
  pollScheduled = host.setTimeout(pollQueue, PollingInterval.High);
6424
6420
  }
6425
6421
  }
6426
- /* @internal */
6427
- function createSingleFileWatcherPerName(watchFile, useCaseSensitiveFileNames) {
6428
- var cache = new ts.Map();
6429
- var callbacksCache = ts.createMultiMap();
6422
+ function createSingleWatcherPerName(cache, useCaseSensitiveFileNames, name, callback, createWatcher) {
6430
6423
  var toCanonicalFileName = ts.createGetCanonicalFileName(useCaseSensitiveFileNames);
6431
- return function (fileName, callback, pollingInterval, options) {
6432
- var path = toCanonicalFileName(fileName);
6433
- var existing = cache.get(path);
6434
- if (existing) {
6435
- existing.refCount++;
6436
- }
6437
- else {
6438
- cache.set(path, {
6439
- watcher: watchFile(fileName, function (fileName, eventKind, modifiedTime) { return ts.forEach(callbacksCache.get(path), function (cb) { return cb(fileName, eventKind, modifiedTime); }); }, pollingInterval, options),
6440
- refCount: 1
6441
- });
6424
+ var path = toCanonicalFileName(name);
6425
+ var existing = cache.get(path);
6426
+ if (existing) {
6427
+ existing.callbacks.push(callback);
6428
+ }
6429
+ else {
6430
+ cache.set(path, {
6431
+ watcher: createWatcher((
6432
+ // Cant infer types correctly so lets satisfy checker
6433
+ function (param1, param2, param3) { var _a; return (_a = cache.get(path)) === null || _a === void 0 ? void 0 : _a.callbacks.slice().forEach(function (cb) { return cb(param1, param2, param3); }); })),
6434
+ callbacks: [callback]
6435
+ });
6436
+ }
6437
+ return {
6438
+ close: function () {
6439
+ var watcher = cache.get(path);
6440
+ // Watcher is not expected to be undefined, but if it is normally its because
6441
+ // exception was thrown somewhere else and watch state is not what it should be
6442
+ if (!watcher)
6443
+ return;
6444
+ if (!ts.orderedRemoveItem(watcher.callbacks, callback) || watcher.callbacks.length)
6445
+ return;
6446
+ cache.delete(path);
6447
+ ts.closeFileWatcherOf(watcher);
6442
6448
  }
6443
- callbacksCache.add(path, callback);
6444
- return {
6445
- close: function () {
6446
- var watcher = ts.Debug.checkDefined(cache.get(path));
6447
- callbacksCache.remove(path, callback);
6448
- watcher.refCount--;
6449
- if (watcher.refCount)
6450
- return;
6451
- cache.delete(path);
6452
- ts.closeFileWatcherOf(watcher);
6453
- }
6454
- };
6455
6449
  };
6456
6450
  }
6457
- ts.createSingleFileWatcherPerName = createSingleFileWatcherPerName;
6458
6451
  /**
6459
6452
  * Returns true if file status changed
6460
6453
  */
6461
- /*@internal*/
6462
6454
  function onWatchedFileStat(watchedFile, modifiedTime) {
6463
6455
  var oldTime = watchedFile.mtime.getTime();
6464
6456
  var newTime = modifiedTime.getTime();
@@ -6470,7 +6462,6 @@ var ts;
6470
6462
  }
6471
6463
  return false;
6472
6464
  }
6473
- ts.onWatchedFileStat = onWatchedFileStat;
6474
6465
  /*@internal*/
6475
6466
  function getFileWatcherEventKind(oldTime, newTime) {
6476
6467
  return oldTime === 0
@@ -6498,7 +6489,6 @@ var ts;
6498
6489
  * that means if this is recursive watcher, watch the children directories as well
6499
6490
  * (eg on OS that dont support recursive watch using fs.watch use fs.watchFile)
6500
6491
  */
6501
- /*@internal*/
6502
6492
  function createDirectoryWatcherSupportingRecursive(_a) {
6503
6493
  var watchDirectory = _a.watchDirectory, useCaseSensitiveFileNames = _a.useCaseSensitiveFileNames, getCurrentDirectory = _a.getCurrentDirectory, getAccessibleSortedChildDirectories = _a.getAccessibleSortedChildDirectories, fileSystemEntryExists = _a.fileSystemEntryExists, realpath = _a.realpath, setTimeout = _a.setTimeout, clearTimeout = _a.clearTimeout;
6504
6494
  var cache = new ts.Map();
@@ -6707,18 +6697,15 @@ var ts;
6707
6697
  return ts.stringContains(toCanonicalFilePath(path), searchPath);
6708
6698
  }
6709
6699
  }
6710
- ts.createDirectoryWatcherSupportingRecursive = createDirectoryWatcherSupportingRecursive;
6711
6700
  /*@internal*/
6712
6701
  var FileSystemEntryKind;
6713
6702
  (function (FileSystemEntryKind) {
6714
6703
  FileSystemEntryKind[FileSystemEntryKind["File"] = 0] = "File";
6715
6704
  FileSystemEntryKind[FileSystemEntryKind["Directory"] = 1] = "Directory";
6716
6705
  })(FileSystemEntryKind = ts.FileSystemEntryKind || (ts.FileSystemEntryKind = {}));
6717
- /*@internal*/
6718
6706
  function createFileWatcherCallback(callback) {
6719
6707
  return function (_fileName, eventKind, modifiedTime) { return callback(eventKind === FileWatcherEventKind.Changed ? "change" : "rename", "", modifiedTime); };
6720
6708
  }
6721
- ts.createFileWatcherCallback = createFileWatcherCallback;
6722
6709
  function createFsWatchCallbackForFileWatcherCallback(fileName, callback, getModifiedTime) {
6723
6710
  return function (eventName, _relativeFileName, modifiedTime) {
6724
6711
  if (eventName === "rename") {
@@ -6752,7 +6739,10 @@ var ts;
6752
6739
  }
6753
6740
  /*@internal*/
6754
6741
  function createSystemWatchFunctions(_a) {
6755
- var pollingWatchFile = _a.pollingWatchFile, getModifiedTime = _a.getModifiedTime, setTimeout = _a.setTimeout, clearTimeout = _a.clearTimeout, fsWatchWorker = _a.fsWatchWorker, fileSystemEntryExists = _a.fileSystemEntryExists, useCaseSensitiveFileNames = _a.useCaseSensitiveFileNames, getCurrentDirectory = _a.getCurrentDirectory, fsSupportsRecursiveFsWatch = _a.fsSupportsRecursiveFsWatch, getAccessibleSortedChildDirectories = _a.getAccessibleSortedChildDirectories, realpath = _a.realpath, tscWatchFile = _a.tscWatchFile, useNonPollingWatchers = _a.useNonPollingWatchers, tscWatchDirectory = _a.tscWatchDirectory, defaultWatchFileKind = _a.defaultWatchFileKind, inodeWatching = _a.inodeWatching, sysLog = _a.sysLog;
6742
+ var pollingWatchFileWorker = _a.pollingWatchFileWorker, getModifiedTime = _a.getModifiedTime, setTimeout = _a.setTimeout, clearTimeout = _a.clearTimeout, fsWatchWorker = _a.fsWatchWorker, fileSystemEntryExists = _a.fileSystemEntryExists, useCaseSensitiveFileNames = _a.useCaseSensitiveFileNames, getCurrentDirectory = _a.getCurrentDirectory, fsSupportsRecursiveFsWatch = _a.fsSupportsRecursiveFsWatch, getAccessibleSortedChildDirectories = _a.getAccessibleSortedChildDirectories, realpath = _a.realpath, tscWatchFile = _a.tscWatchFile, useNonPollingWatchers = _a.useNonPollingWatchers, tscWatchDirectory = _a.tscWatchDirectory, defaultWatchFileKind = _a.defaultWatchFileKind, inodeWatching = _a.inodeWatching, sysLog = _a.sysLog;
6743
+ var pollingWatches = new ts.Map();
6744
+ var fsWatches = new ts.Map();
6745
+ var fsWatchesRecursive = new ts.Map();
6756
6746
  var dynamicPollingWatchFile;
6757
6747
  var fixedChunkSizePollingWatchFile;
6758
6748
  var nonPollingWatchFile;
@@ -6816,7 +6806,7 @@ var ts;
6816
6806
  // Use notifications from FS to watch with falling back to fs.watchFile
6817
6807
  generateWatchFileOptions(ts.WatchFileKind.UseFsEventsOnParentDirectory, ts.PollingWatchKind.PriorityInterval, options) :
6818
6808
  // Default to do not use fixed polling interval
6819
- { watchFile: (defaultWatchFileKind === null || defaultWatchFileKind === void 0 ? void 0 : defaultWatchFileKind()) || ts.WatchFileKind.FixedPollingInterval };
6809
+ { watchFile: (defaultWatchFileKind === null || defaultWatchFileKind === void 0 ? void 0 : defaultWatchFileKind()) || ts.WatchFileKind.UseFsEvents };
6820
6810
  }
6821
6811
  }
6822
6812
  function generateWatchFileOptions(watchFile, fallbackPolling, options) {
@@ -6887,7 +6877,13 @@ var ts;
6887
6877
  };
6888
6878
  }
6889
6879
  }
6880
+ function pollingWatchFile(fileName, callback, pollingInterval, options) {
6881
+ return createSingleWatcherPerName(pollingWatches, useCaseSensitiveFileNames, fileName, callback, function (cb) { return pollingWatchFileWorker(fileName, cb, pollingInterval, options); });
6882
+ }
6890
6883
  function fsWatch(fileOrDirectory, entryKind, callback, recursive, fallbackPollingInterval, fallbackOptions) {
6884
+ return createSingleWatcherPerName(recursive ? fsWatchesRecursive : fsWatches, useCaseSensitiveFileNames, fileOrDirectory, callback, function (cb) { return fsWatchHandlingExistenceOnHost(fileOrDirectory, entryKind, cb, recursive, fallbackPollingInterval, fallbackOptions); });
6885
+ }
6886
+ function fsWatchHandlingExistenceOnHost(fileOrDirectory, entryKind, callback, recursive, fallbackPollingInterval, fallbackOptions) {
6891
6887
  var lastDirectoryPartWithDirectorySeparator;
6892
6888
  var lastDirectoryPart;
6893
6889
  if (inodeWatching) {
@@ -7066,7 +7062,7 @@ var ts;
7066
7062
  var fsSupportsRecursiveFsWatch = isNode4OrLater && (process.platform === "win32" || process.platform === "darwin");
7067
7063
  var getCurrentDirectory = ts.memoize(function () { return process.cwd(); });
7068
7064
  var _b = createSystemWatchFunctions({
7069
- pollingWatchFile: createSingleFileWatcherPerName(fsWatchFileWorker, useCaseSensitiveFileNames),
7065
+ pollingWatchFileWorker: fsWatchFileWorker,
7070
7066
  getModifiedTime: getModifiedTime,
7071
7067
  setTimeout: setTimeout,
7072
7068
  clearTimeout: clearTimeout,
@@ -39902,6 +39898,7 @@ var ts;
39902
39898
  shortName: "h",
39903
39899
  type: "boolean",
39904
39900
  showInSimplifiedHelpView: true,
39901
+ isCommandLineOnly: true,
39905
39902
  category: ts.Diagnostics.Command_line_Options,
39906
39903
  description: ts.Diagnostics.Print_this_message,
39907
39904
  defaultValueDescription: false,
@@ -39910,6 +39907,8 @@ var ts;
39910
39907
  name: "help",
39911
39908
  shortName: "?",
39912
39909
  type: "boolean",
39910
+ isCommandLineOnly: true,
39911
+ category: ts.Diagnostics.Command_line_Options,
39913
39912
  defaultValueDescription: false,
39914
39913
  },
39915
39914
  {
@@ -66888,8 +66887,8 @@ var ts;
66888
66887
  var skipTrue = !isTypeAssignableTo(getPermissiveInstantiation(c.checkType), getPermissiveInstantiation(c.extendsType));
66889
66888
  var skipFalse = !skipTrue && isTypeAssignableTo(getRestrictiveInstantiation(c.checkType), getRestrictiveInstantiation(c.extendsType));
66890
66889
  // TODO: Find a nice way to include potential conditional type breakdowns in error output, if they seem good (they usually don't)
66891
- if (result = skipTrue ? -1 /* Ternary.True */ : isRelatedTo(source, getTrueTypeFromConditionalType(c), 2 /* RecursionFlags.Target */, /*reportErrors*/ false)) {
66892
- result &= skipFalse ? -1 /* Ternary.True */ : isRelatedTo(source, getFalseTypeFromConditionalType(c), 2 /* RecursionFlags.Target */, /*reportErrors*/ false);
66890
+ if (result = skipTrue ? -1 /* Ternary.True */ : isRelatedTo(source, getTrueTypeFromConditionalType(c), 2 /* RecursionFlags.Target */, /*reportErrors*/ false, /*headMessage*/ undefined, intersectionState)) {
66891
+ result &= skipFalse ? -1 /* Ternary.True */ : isRelatedTo(source, getFalseTypeFromConditionalType(c), 2 /* RecursionFlags.Target */, /*reportErrors*/ false, /*headMessage*/ undefined, intersectionState);
66893
66892
  if (result) {
66894
66893
  return result;
66895
66894
  }
@@ -90605,7 +90604,7 @@ var ts;
90605
90604
  return grammarErrorOnNode(node, ts.Diagnostics.This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments);
90606
90605
  }
90607
90606
  var nodeArguments = node.arguments;
90608
- if (moduleKind !== ts.ModuleKind.ESNext && moduleKind !== ts.ModuleKind.NodeNext) {
90607
+ if (moduleKind !== ts.ModuleKind.ESNext && moduleKind !== ts.ModuleKind.NodeNext && moduleKind !== ts.ModuleKind.Node16) {
90609
90608
  // We are allowed trailing comma after proposal-import-assertions.
90610
90609
  checkGrammarForDisallowedTrailingComma(nodeArguments);
90611
90610
  if (nodeArguments.length > 1) {