typescript 4.5.0-dev.20211008 → 4.5.0-dev.20211009

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.5";
72
- ts.version = ts.versionMajorMinor + ".0-dev.20211008";
72
+ ts.version = ts.versionMajorMinor + ".0-dev.20211009";
73
73
  var NativeCollections;
74
74
  (function (NativeCollections) {
75
75
  function tryGetNativeMap() {
package/lib/tsserver.js CHANGED
@@ -100,7 +100,7 @@ var ts;
100
100
  // The following is baselined as a literal template type without intervention
101
101
  /** The version of the TypeScript compiler release */
102
102
  // eslint-disable-next-line @typescript-eslint/no-inferrable-types
103
- ts.version = ts.versionMajorMinor + ".0-dev.20211008";
103
+ ts.version = ts.versionMajorMinor + ".0-dev.20211009";
104
104
  /* @internal */
105
105
  var Comparison;
106
106
  (function (Comparison) {
@@ -125581,11 +125581,12 @@ var ts;
125581
125581
  : ts.getNameForExportedSymbol(namedSymbol, scriptTarget);
125582
125582
  var moduleName = ts.stripQuotes(moduleSymbol.name);
125583
125583
  var id = exportInfoId++;
125584
+ var target = ts.skipAlias(symbol, checker);
125584
125585
  var storedSymbol = symbol.flags & 33554432 /* Transient */ ? undefined : symbol;
125585
125586
  var storedModuleSymbol = moduleSymbol.flags & 33554432 /* Transient */ ? undefined : moduleSymbol;
125586
125587
  if (!storedSymbol || !storedModuleSymbol)
125587
125588
  symbols.set(id, [symbol, moduleSymbol]);
125588
- exportInfo.add(key(importedName, symbol, moduleName, checker), {
125589
+ exportInfo.add(key(importedName, symbol, ts.isExternalModuleNameRelative(moduleName) ? undefined : moduleName, checker), {
125589
125590
  id: id,
125590
125591
  symbolTableKey: symbolTableKey,
125591
125592
  symbolName: importedName,
@@ -125593,16 +125594,16 @@ var ts;
125593
125594
  moduleFile: moduleFile,
125594
125595
  moduleFileName: moduleFile === null || moduleFile === void 0 ? void 0 : moduleFile.fileName,
125595
125596
  exportKind: exportKind,
125596
- targetFlags: ts.skipAlias(symbol, checker).flags,
125597
+ targetFlags: target.flags,
125597
125598
  isFromPackageJson: isFromPackageJson,
125598
125599
  symbol: storedSymbol,
125599
125600
  moduleSymbol: storedModuleSymbol,
125600
125601
  });
125601
125602
  },
125602
- get: function (importingFile, importedName, symbol, moduleName, checker) {
125603
+ get: function (importingFile, key) {
125603
125604
  if (importingFile !== usableByFileName)
125604
125605
  return;
125605
- var result = exportInfo.get(key(importedName, symbol, moduleName, checker));
125606
+ var result = exportInfo.get(key);
125606
125607
  return result === null || result === void 0 ? void 0 : result.map(rehydrateCachedInfo);
125607
125608
  },
125608
125609
  forEach: function (importingFile, action) {
@@ -125610,7 +125611,7 @@ var ts;
125610
125611
  return;
125611
125612
  exportInfo.forEach(function (info, key) {
125612
125613
  var _a = parseKey(key), symbolName = _a.symbolName, ambientModuleName = _a.ambientModuleName;
125613
- action(info.map(rehydrateCachedInfo), symbolName, !!ambientModuleName);
125614
+ action(info.map(rehydrateCachedInfo), symbolName, !!ambientModuleName, key);
125614
125615
  });
125615
125616
  },
125616
125617
  releaseSymbols: function () {
@@ -125675,26 +125676,16 @@ var ts;
125675
125676
  isFromPackageJson: isFromPackageJson,
125676
125677
  };
125677
125678
  }
125678
- function key(importedName, symbol, moduleName, checker) {
125679
- var unquoted = ts.stripQuotes(moduleName);
125680
- var moduleKey = ts.isExternalModuleNameRelative(unquoted) ? "/" : unquoted;
125681
- var target = ts.skipAlias(symbol, checker);
125682
- return importedName + "|" + createSymbolKey(target) + "|" + moduleKey;
125679
+ function key(importedName, symbol, ambientModuleName, checker) {
125680
+ var moduleKey = ambientModuleName || "";
125681
+ return importedName + "|" + ts.getSymbolId(ts.skipAlias(symbol, checker)) + "|" + moduleKey;
125683
125682
  }
125684
125683
  function parseKey(key) {
125685
125684
  var symbolName = key.substring(0, key.indexOf("|"));
125686
125685
  var moduleKey = key.substring(key.lastIndexOf("|") + 1);
125687
- var ambientModuleName = moduleKey === "/" ? undefined : moduleKey;
125686
+ var ambientModuleName = moduleKey === "" ? undefined : moduleKey;
125688
125687
  return { symbolName: symbolName, ambientModuleName: ambientModuleName };
125689
125688
  }
125690
- function createSymbolKey(symbol) {
125691
- var key = symbol.name;
125692
- while (symbol.parent) {
125693
- key += "," + symbol.parent.name;
125694
- symbol = symbol.parent;
125695
- }
125696
- return key;
125697
- }
125698
125689
  function fileIsGlobalOnly(file) {
125699
125690
  return !file.commonJsModuleIndicator && !file.externalModuleIndicator && !file.moduleAugmentations && !file.ambientModuleNames;
125700
125691
  }
@@ -128039,20 +128030,19 @@ var ts;
128039
128030
  }
128040
128031
  }
128041
128032
  Completions.getCompletionsAtPosition = getCompletionsAtPosition;
128033
+ function completionEntryDataIsResolved(data) {
128034
+ return !!(data === null || data === void 0 ? void 0 : data.moduleSpecifier);
128035
+ }
128042
128036
  function continuePreviousIncompleteResponse(cache, file, location, program, host, preferences, cancellationToken) {
128043
- var _a;
128044
128037
  var previousResponse = cache.get();
128045
128038
  if (!previousResponse)
128046
128039
  return undefined;
128047
128040
  var lowerCaseTokenText = location.text.toLowerCase();
128048
128041
  var exportMap = ts.getExportInfoMap(file, host, program, cancellationToken);
128049
- var checker = program.getTypeChecker();
128050
- var autoImportProvider = (_a = host.getPackageJsonAutoImportProvider) === null || _a === void 0 ? void 0 : _a.call(host);
128051
- var autoImportProviderChecker = autoImportProvider === null || autoImportProvider === void 0 ? void 0 : autoImportProvider.getTypeChecker();
128052
128042
  var newEntries = resolvingModuleSpecifiers("continuePreviousIncompleteResponse", host, program, file, preferences,
128053
128043
  /*isForImportStatementCompletion*/ false, function (context) {
128054
128044
  var entries = ts.mapDefined(previousResponse.entries, function (entry) {
128055
- if (!entry.hasAction || !entry.source || !entry.data || entry.data.moduleSpecifier) {
128045
+ if (!entry.hasAction || !entry.source || !entry.data || completionEntryDataIsResolved(entry.data)) {
128056
128046
  // Not an auto import or already resolved; keep as is
128057
128047
  return entry;
128058
128048
  }
@@ -128060,8 +128050,8 @@ var ts;
128060
128050
  // No longer matches typed characters; filter out
128061
128051
  return undefined;
128062
128052
  }
128063
- var _a = ts.Debug.checkDefined(getAutoImportSymbolFromCompletionEntryData(entry.name, entry.data, program, host)), symbol = _a.symbol, origin = _a.origin;
128064
- var info = exportMap.get(file.path, entry.name, symbol, origin.moduleSymbol.name, origin.isFromPackageJson ? autoImportProviderChecker : checker);
128053
+ var origin = ts.Debug.checkDefined(getAutoImportSymbolFromCompletionEntryData(entry.name, entry.data, program, host)).origin;
128054
+ var info = exportMap.get(file.path, entry.data.exportMapKey);
128065
128055
  var result = info && context.tryResolve(info, !ts.isExternalModuleNameRelative(ts.stripQuotes(origin.moduleSymbol.name)));
128066
128056
  if (!result)
128067
128057
  return entry;
@@ -128362,13 +128352,54 @@ var ts;
128362
128352
  return text.replace(/\$/gm, "\\$");
128363
128353
  }
128364
128354
  function originToCompletionEntryData(origin) {
128365
- return {
128355
+ var ambientModuleName = origin.fileName ? undefined : ts.stripQuotes(origin.moduleSymbol.name);
128356
+ var isPackageJsonImport = origin.isFromPackageJson ? true : undefined;
128357
+ if (originIsResolvedExport(origin)) {
128358
+ var resolvedData = {
128359
+ exportName: origin.exportName,
128360
+ moduleSpecifier: origin.moduleSpecifier,
128361
+ ambientModuleName: ambientModuleName,
128362
+ fileName: origin.fileName,
128363
+ isPackageJsonImport: isPackageJsonImport,
128364
+ };
128365
+ return resolvedData;
128366
+ }
128367
+ var unresolvedData = {
128366
128368
  exportName: origin.exportName,
128369
+ exportMapKey: origin.exportMapKey,
128367
128370
  fileName: origin.fileName,
128368
128371
  ambientModuleName: origin.fileName ? undefined : ts.stripQuotes(origin.moduleSymbol.name),
128369
128372
  isPackageJsonImport: origin.isFromPackageJson ? true : undefined,
128370
- moduleSpecifier: originIsResolvedExport(origin) ? origin.moduleSpecifier : undefined,
128371
128373
  };
128374
+ return unresolvedData;
128375
+ }
128376
+ function completionEntryDataToSymbolOriginInfo(data, completionName, moduleSymbol) {
128377
+ var isDefaultExport = data.exportName === "default" /* Default */;
128378
+ var isFromPackageJson = !!data.isPackageJsonImport;
128379
+ if (completionEntryDataIsResolved(data)) {
128380
+ var resolvedOrigin = {
128381
+ kind: 32 /* ResolvedExport */,
128382
+ exportName: data.exportName,
128383
+ moduleSpecifier: data.moduleSpecifier,
128384
+ symbolName: completionName,
128385
+ fileName: data.fileName,
128386
+ moduleSymbol: moduleSymbol,
128387
+ isDefaultExport: isDefaultExport,
128388
+ isFromPackageJson: isFromPackageJson,
128389
+ };
128390
+ return resolvedOrigin;
128391
+ }
128392
+ var unresolvedOrigin = {
128393
+ kind: 4 /* Export */,
128394
+ exportName: data.exportName,
128395
+ exportMapKey: data.exportMapKey,
128396
+ symbolName: completionName,
128397
+ fileName: data.fileName,
128398
+ moduleSymbol: moduleSymbol,
128399
+ isDefaultExport: isDefaultExport,
128400
+ isFromPackageJson: isFromPackageJson,
128401
+ };
128402
+ return unresolvedOrigin;
128372
128403
  }
128373
128404
  function getInsertTextAndReplacementSpanForImportCompletion(name, importCompletionNode, contextToken, origin, useSemicolons, options, preferences) {
128374
128405
  var _a, _b, _c;
@@ -129144,6 +129175,7 @@ var ts;
129144
129175
  }
129145
129176
  }
129146
129177
  function addPropertySymbol(symbol, insertAwait, insertQuestionDot) {
129178
+ var _a;
129147
129179
  // For a computed property with an accessible name like `Symbol.iterator`,
129148
129180
  // we'll add a completion for the *name* `Symbol` instead of for the property.
129149
129181
  // If this is e.g. [Symbol.iterator], add a completion for `Symbol`.
@@ -129157,19 +129189,33 @@ var ts;
129157
129189
  var index = symbols.length;
129158
129190
  symbols.push(firstAccessibleSymbol);
129159
129191
  var moduleSymbol = firstAccessibleSymbol.parent;
129160
- if (!moduleSymbol || !ts.isExternalModuleSymbol(moduleSymbol)) {
129192
+ if (!moduleSymbol ||
129193
+ !ts.isExternalModuleSymbol(moduleSymbol) ||
129194
+ typeChecker.tryGetMemberInModuleExportsAndProperties(firstAccessibleSymbol.name, moduleSymbol) !== firstAccessibleSymbol) {
129161
129195
  symbolToOriginInfoMap[index] = { kind: getNullableSymbolOriginInfoKind(2 /* SymbolMemberNoExport */) };
129162
129196
  }
129163
129197
  else {
129164
- var origin = {
129165
- kind: getNullableSymbolOriginInfoKind(6 /* SymbolMemberExport */),
129166
- moduleSymbol: moduleSymbol,
129167
- isDefaultExport: false,
129168
- symbolName: firstAccessibleSymbol.name,
129169
- exportName: firstAccessibleSymbol.name,
129170
- fileName: ts.isExternalModuleNameRelative(ts.stripQuotes(moduleSymbol.name)) ? ts.cast(moduleSymbol.valueDeclaration, ts.isSourceFile).fileName : undefined,
129171
- };
129172
- symbolToOriginInfoMap[index] = origin;
129198
+ var fileName = ts.isExternalModuleNameRelative(ts.stripQuotes(moduleSymbol.name)) ? (_a = ts.getSourceFileOfModule(moduleSymbol)) === null || _a === void 0 ? void 0 : _a.fileName : undefined;
129199
+ var moduleSpecifier = (ts.codefix.getModuleSpecifierForBestExportInfo([{
129200
+ exportKind: 0 /* Named */,
129201
+ moduleFileName: fileName,
129202
+ isFromPackageJson: false,
129203
+ moduleSymbol: moduleSymbol,
129204
+ symbol: firstAccessibleSymbol,
129205
+ targetFlags: ts.skipAlias(firstAccessibleSymbol, typeChecker).flags,
129206
+ }], sourceFile, program, host, preferences) || {}).moduleSpecifier;
129207
+ if (moduleSpecifier) {
129208
+ var origin = {
129209
+ kind: getNullableSymbolOriginInfoKind(6 /* SymbolMemberExport */),
129210
+ moduleSymbol: moduleSymbol,
129211
+ isDefaultExport: false,
129212
+ symbolName: firstAccessibleSymbol.name,
129213
+ exportName: firstAccessibleSymbol.name,
129214
+ fileName: fileName,
129215
+ moduleSpecifier: moduleSpecifier,
129216
+ };
129217
+ symbolToOriginInfoMap[index] = origin;
129218
+ }
129173
129219
  }
129174
129220
  }
129175
129221
  else if (preferences.includeCompletionsWithInsertText) {
@@ -129405,7 +129451,7 @@ var ts;
129405
129451
  var packageJsonAutoImportProvider = (_b = host.getPackageJsonAutoImportProvider) === null || _b === void 0 ? void 0 : _b.call(host);
129406
129452
  var packageJsonFilter = detailsEntryId ? undefined : ts.createPackageJsonImportFilter(sourceFile, preferences, host);
129407
129453
  resolvingModuleSpecifiers("collectAutoImports", host, program, sourceFile, preferences, !!importCompletionNode, function (context) {
129408
- exportInfo.forEach(sourceFile.path, function (info, symbolName, isFromAmbientModule) {
129454
+ exportInfo.forEach(sourceFile.path, function (info, symbolName, isFromAmbientModule, exportMapKey) {
129409
129455
  if (!ts.isIdentifierText(symbolName, ts.getEmitScriptTarget(host.getCompilationSettings())))
129410
129456
  return;
129411
129457
  if (!detailsEntryId && ts.isStringANonContextualKeyword(symbolName))
@@ -129430,6 +129476,7 @@ var ts;
129430
129476
  kind: moduleSpecifier ? 32 /* ResolvedExport */ : 4 /* Export */,
129431
129477
  moduleSpecifier: moduleSpecifier,
129432
129478
  symbolName: symbolName,
129479
+ exportMapKey: exportMapKey,
129433
129480
  exportName: exportInfo_1.exportKind === 2 /* ExportEquals */ ? "export=" /* ExportEquals */ : exportInfo_1.symbol.name,
129434
129481
  fileName: exportInfo_1.moduleFileName,
129435
129482
  isDefaultExport: isDefaultExport,
@@ -130253,18 +130300,7 @@ var ts;
130253
130300
  return undefined;
130254
130301
  var isDefaultExport = data.exportName === "default" /* Default */;
130255
130302
  symbol = isDefaultExport && ts.getLocalSymbolForExportDefault(symbol) || symbol;
130256
- return {
130257
- symbol: symbol,
130258
- origin: {
130259
- kind: data.moduleSpecifier ? 32 /* ResolvedExport */ : 4 /* Export */,
130260
- moduleSymbol: moduleSymbol,
130261
- symbolName: name,
130262
- isDefaultExport: isDefaultExport,
130263
- exportName: data.exportName,
130264
- fileName: data.fileName,
130265
- isFromPackageJson: !!data.isPackageJsonImport,
130266
- }
130267
- };
130303
+ return { symbol: symbol, origin: completionEntryDataToSymbolOriginInfo(data, name, moduleSymbol) };
130268
130304
  }
130269
130305
  function getCompletionEntryDisplayNameForSymbol(symbol, target, origin, kind, jsxIdentifierExpected) {
130270
130306
  var name = originIncludesSymbolName(origin) ? origin.symbolName : symbol.name;
@@ -6367,23 +6367,28 @@ declare namespace ts {
6367
6367
  isIncomplete?: true;
6368
6368
  entries: CompletionEntry[];
6369
6369
  }
6370
- interface CompletionEntryData {
6371
- /** The file name declaring the export's module symbol, if it was an external module */
6372
- fileName?: string;
6373
- /** The module name (with quotes stripped) of the export's module symbol, if it was an ambient module */
6374
- ambientModuleName?: string;
6375
- /** True if the export was found in the package.json AutoImportProvider */
6376
- isPackageJsonImport?: true;
6370
+ interface CompletionEntryDataAutoImport {
6377
6371
  /**
6378
6372
  * The name of the property or export in the module's symbol table. Differs from the completion name
6379
6373
  * in the case of InternalSymbolName.ExportEquals and InternalSymbolName.Default.
6380
6374
  */
6381
6375
  exportName: string;
6382
- /**
6383
- * Set for auto imports with eagerly resolved module specifiers.
6384
- */
6385
6376
  moduleSpecifier?: string;
6377
+ /** The file name declaring the export's module symbol, if it was an external module */
6378
+ fileName?: string;
6379
+ /** The module name (with quotes stripped) of the export's module symbol, if it was an ambient module */
6380
+ ambientModuleName?: string;
6381
+ /** True if the export was found in the package.json AutoImportProvider */
6382
+ isPackageJsonImport?: true;
6383
+ }
6384
+ interface CompletionEntryDataUnresolved extends CompletionEntryDataAutoImport {
6385
+ /** The key in the `ExportMapCache` where the completion entry's `SymbolExportInfo[]` is found */
6386
+ exportMapKey: string;
6387
+ }
6388
+ interface CompletionEntryDataResolved extends CompletionEntryDataAutoImport {
6389
+ moduleSpecifier: string;
6386
6390
  }
6391
+ type CompletionEntryData = CompletionEntryDataUnresolved | CompletionEntryDataResolved;
6387
6392
  interface CompletionEntry {
6388
6393
  name: string;
6389
6394
  kind: ScriptElementKind;
@@ -294,7 +294,7 @@ var ts;
294
294
  // The following is baselined as a literal template type without intervention
295
295
  /** The version of the TypeScript compiler release */
296
296
  // eslint-disable-next-line @typescript-eslint/no-inferrable-types
297
- ts.version = ts.versionMajorMinor + ".0-dev.20211008";
297
+ ts.version = ts.versionMajorMinor + ".0-dev.20211009";
298
298
  /* @internal */
299
299
  var Comparison;
300
300
  (function (Comparison) {
@@ -126163,11 +126163,12 @@ var ts;
126163
126163
  : ts.getNameForExportedSymbol(namedSymbol, scriptTarget);
126164
126164
  var moduleName = ts.stripQuotes(moduleSymbol.name);
126165
126165
  var id = exportInfoId++;
126166
+ var target = ts.skipAlias(symbol, checker);
126166
126167
  var storedSymbol = symbol.flags & 33554432 /* Transient */ ? undefined : symbol;
126167
126168
  var storedModuleSymbol = moduleSymbol.flags & 33554432 /* Transient */ ? undefined : moduleSymbol;
126168
126169
  if (!storedSymbol || !storedModuleSymbol)
126169
126170
  symbols.set(id, [symbol, moduleSymbol]);
126170
- exportInfo.add(key(importedName, symbol, moduleName, checker), {
126171
+ exportInfo.add(key(importedName, symbol, ts.isExternalModuleNameRelative(moduleName) ? undefined : moduleName, checker), {
126171
126172
  id: id,
126172
126173
  symbolTableKey: symbolTableKey,
126173
126174
  symbolName: importedName,
@@ -126175,16 +126176,16 @@ var ts;
126175
126176
  moduleFile: moduleFile,
126176
126177
  moduleFileName: moduleFile === null || moduleFile === void 0 ? void 0 : moduleFile.fileName,
126177
126178
  exportKind: exportKind,
126178
- targetFlags: ts.skipAlias(symbol, checker).flags,
126179
+ targetFlags: target.flags,
126179
126180
  isFromPackageJson: isFromPackageJson,
126180
126181
  symbol: storedSymbol,
126181
126182
  moduleSymbol: storedModuleSymbol,
126182
126183
  });
126183
126184
  },
126184
- get: function (importingFile, importedName, symbol, moduleName, checker) {
126185
+ get: function (importingFile, key) {
126185
126186
  if (importingFile !== usableByFileName)
126186
126187
  return;
126187
- var result = exportInfo.get(key(importedName, symbol, moduleName, checker));
126188
+ var result = exportInfo.get(key);
126188
126189
  return result === null || result === void 0 ? void 0 : result.map(rehydrateCachedInfo);
126189
126190
  },
126190
126191
  forEach: function (importingFile, action) {
@@ -126192,7 +126193,7 @@ var ts;
126192
126193
  return;
126193
126194
  exportInfo.forEach(function (info, key) {
126194
126195
  var _a = parseKey(key), symbolName = _a.symbolName, ambientModuleName = _a.ambientModuleName;
126195
- action(info.map(rehydrateCachedInfo), symbolName, !!ambientModuleName);
126196
+ action(info.map(rehydrateCachedInfo), symbolName, !!ambientModuleName, key);
126196
126197
  });
126197
126198
  },
126198
126199
  releaseSymbols: function () {
@@ -126257,26 +126258,16 @@ var ts;
126257
126258
  isFromPackageJson: isFromPackageJson,
126258
126259
  };
126259
126260
  }
126260
- function key(importedName, symbol, moduleName, checker) {
126261
- var unquoted = ts.stripQuotes(moduleName);
126262
- var moduleKey = ts.isExternalModuleNameRelative(unquoted) ? "/" : unquoted;
126263
- var target = ts.skipAlias(symbol, checker);
126264
- return importedName + "|" + createSymbolKey(target) + "|" + moduleKey;
126261
+ function key(importedName, symbol, ambientModuleName, checker) {
126262
+ var moduleKey = ambientModuleName || "";
126263
+ return importedName + "|" + ts.getSymbolId(ts.skipAlias(symbol, checker)) + "|" + moduleKey;
126265
126264
  }
126266
126265
  function parseKey(key) {
126267
126266
  var symbolName = key.substring(0, key.indexOf("|"));
126268
126267
  var moduleKey = key.substring(key.lastIndexOf("|") + 1);
126269
- var ambientModuleName = moduleKey === "/" ? undefined : moduleKey;
126268
+ var ambientModuleName = moduleKey === "" ? undefined : moduleKey;
126270
126269
  return { symbolName: symbolName, ambientModuleName: ambientModuleName };
126271
126270
  }
126272
- function createSymbolKey(symbol) {
126273
- var key = symbol.name;
126274
- while (symbol.parent) {
126275
- key += "," + symbol.parent.name;
126276
- symbol = symbol.parent;
126277
- }
126278
- return key;
126279
- }
126280
126271
  function fileIsGlobalOnly(file) {
126281
126272
  return !file.commonJsModuleIndicator && !file.externalModuleIndicator && !file.moduleAugmentations && !file.ambientModuleNames;
126282
126273
  }
@@ -128621,20 +128612,19 @@ var ts;
128621
128612
  }
128622
128613
  }
128623
128614
  Completions.getCompletionsAtPosition = getCompletionsAtPosition;
128615
+ function completionEntryDataIsResolved(data) {
128616
+ return !!(data === null || data === void 0 ? void 0 : data.moduleSpecifier);
128617
+ }
128624
128618
  function continuePreviousIncompleteResponse(cache, file, location, program, host, preferences, cancellationToken) {
128625
- var _a;
128626
128619
  var previousResponse = cache.get();
128627
128620
  if (!previousResponse)
128628
128621
  return undefined;
128629
128622
  var lowerCaseTokenText = location.text.toLowerCase();
128630
128623
  var exportMap = ts.getExportInfoMap(file, host, program, cancellationToken);
128631
- var checker = program.getTypeChecker();
128632
- var autoImportProvider = (_a = host.getPackageJsonAutoImportProvider) === null || _a === void 0 ? void 0 : _a.call(host);
128633
- var autoImportProviderChecker = autoImportProvider === null || autoImportProvider === void 0 ? void 0 : autoImportProvider.getTypeChecker();
128634
128624
  var newEntries = resolvingModuleSpecifiers("continuePreviousIncompleteResponse", host, program, file, preferences,
128635
128625
  /*isForImportStatementCompletion*/ false, function (context) {
128636
128626
  var entries = ts.mapDefined(previousResponse.entries, function (entry) {
128637
- if (!entry.hasAction || !entry.source || !entry.data || entry.data.moduleSpecifier) {
128627
+ if (!entry.hasAction || !entry.source || !entry.data || completionEntryDataIsResolved(entry.data)) {
128638
128628
  // Not an auto import or already resolved; keep as is
128639
128629
  return entry;
128640
128630
  }
@@ -128642,8 +128632,8 @@ var ts;
128642
128632
  // No longer matches typed characters; filter out
128643
128633
  return undefined;
128644
128634
  }
128645
- var _a = ts.Debug.checkDefined(getAutoImportSymbolFromCompletionEntryData(entry.name, entry.data, program, host)), symbol = _a.symbol, origin = _a.origin;
128646
- var info = exportMap.get(file.path, entry.name, symbol, origin.moduleSymbol.name, origin.isFromPackageJson ? autoImportProviderChecker : checker);
128635
+ var origin = ts.Debug.checkDefined(getAutoImportSymbolFromCompletionEntryData(entry.name, entry.data, program, host)).origin;
128636
+ var info = exportMap.get(file.path, entry.data.exportMapKey);
128647
128637
  var result = info && context.tryResolve(info, !ts.isExternalModuleNameRelative(ts.stripQuotes(origin.moduleSymbol.name)));
128648
128638
  if (!result)
128649
128639
  return entry;
@@ -128944,13 +128934,54 @@ var ts;
128944
128934
  return text.replace(/\$/gm, "\\$");
128945
128935
  }
128946
128936
  function originToCompletionEntryData(origin) {
128947
- return {
128937
+ var ambientModuleName = origin.fileName ? undefined : ts.stripQuotes(origin.moduleSymbol.name);
128938
+ var isPackageJsonImport = origin.isFromPackageJson ? true : undefined;
128939
+ if (originIsResolvedExport(origin)) {
128940
+ var resolvedData = {
128941
+ exportName: origin.exportName,
128942
+ moduleSpecifier: origin.moduleSpecifier,
128943
+ ambientModuleName: ambientModuleName,
128944
+ fileName: origin.fileName,
128945
+ isPackageJsonImport: isPackageJsonImport,
128946
+ };
128947
+ return resolvedData;
128948
+ }
128949
+ var unresolvedData = {
128948
128950
  exportName: origin.exportName,
128951
+ exportMapKey: origin.exportMapKey,
128949
128952
  fileName: origin.fileName,
128950
128953
  ambientModuleName: origin.fileName ? undefined : ts.stripQuotes(origin.moduleSymbol.name),
128951
128954
  isPackageJsonImport: origin.isFromPackageJson ? true : undefined,
128952
- moduleSpecifier: originIsResolvedExport(origin) ? origin.moduleSpecifier : undefined,
128953
128955
  };
128956
+ return unresolvedData;
128957
+ }
128958
+ function completionEntryDataToSymbolOriginInfo(data, completionName, moduleSymbol) {
128959
+ var isDefaultExport = data.exportName === "default" /* Default */;
128960
+ var isFromPackageJson = !!data.isPackageJsonImport;
128961
+ if (completionEntryDataIsResolved(data)) {
128962
+ var resolvedOrigin = {
128963
+ kind: 32 /* ResolvedExport */,
128964
+ exportName: data.exportName,
128965
+ moduleSpecifier: data.moduleSpecifier,
128966
+ symbolName: completionName,
128967
+ fileName: data.fileName,
128968
+ moduleSymbol: moduleSymbol,
128969
+ isDefaultExport: isDefaultExport,
128970
+ isFromPackageJson: isFromPackageJson,
128971
+ };
128972
+ return resolvedOrigin;
128973
+ }
128974
+ var unresolvedOrigin = {
128975
+ kind: 4 /* Export */,
128976
+ exportName: data.exportName,
128977
+ exportMapKey: data.exportMapKey,
128978
+ symbolName: completionName,
128979
+ fileName: data.fileName,
128980
+ moduleSymbol: moduleSymbol,
128981
+ isDefaultExport: isDefaultExport,
128982
+ isFromPackageJson: isFromPackageJson,
128983
+ };
128984
+ return unresolvedOrigin;
128954
128985
  }
128955
128986
  function getInsertTextAndReplacementSpanForImportCompletion(name, importCompletionNode, contextToken, origin, useSemicolons, options, preferences) {
128956
128987
  var _a, _b, _c;
@@ -129726,6 +129757,7 @@ var ts;
129726
129757
  }
129727
129758
  }
129728
129759
  function addPropertySymbol(symbol, insertAwait, insertQuestionDot) {
129760
+ var _a;
129729
129761
  // For a computed property with an accessible name like `Symbol.iterator`,
129730
129762
  // we'll add a completion for the *name* `Symbol` instead of for the property.
129731
129763
  // If this is e.g. [Symbol.iterator], add a completion for `Symbol`.
@@ -129739,19 +129771,33 @@ var ts;
129739
129771
  var index = symbols.length;
129740
129772
  symbols.push(firstAccessibleSymbol);
129741
129773
  var moduleSymbol = firstAccessibleSymbol.parent;
129742
- if (!moduleSymbol || !ts.isExternalModuleSymbol(moduleSymbol)) {
129774
+ if (!moduleSymbol ||
129775
+ !ts.isExternalModuleSymbol(moduleSymbol) ||
129776
+ typeChecker.tryGetMemberInModuleExportsAndProperties(firstAccessibleSymbol.name, moduleSymbol) !== firstAccessibleSymbol) {
129743
129777
  symbolToOriginInfoMap[index] = { kind: getNullableSymbolOriginInfoKind(2 /* SymbolMemberNoExport */) };
129744
129778
  }
129745
129779
  else {
129746
- var origin = {
129747
- kind: getNullableSymbolOriginInfoKind(6 /* SymbolMemberExport */),
129748
- moduleSymbol: moduleSymbol,
129749
- isDefaultExport: false,
129750
- symbolName: firstAccessibleSymbol.name,
129751
- exportName: firstAccessibleSymbol.name,
129752
- fileName: ts.isExternalModuleNameRelative(ts.stripQuotes(moduleSymbol.name)) ? ts.cast(moduleSymbol.valueDeclaration, ts.isSourceFile).fileName : undefined,
129753
- };
129754
- symbolToOriginInfoMap[index] = origin;
129780
+ var fileName = ts.isExternalModuleNameRelative(ts.stripQuotes(moduleSymbol.name)) ? (_a = ts.getSourceFileOfModule(moduleSymbol)) === null || _a === void 0 ? void 0 : _a.fileName : undefined;
129781
+ var moduleSpecifier = (ts.codefix.getModuleSpecifierForBestExportInfo([{
129782
+ exportKind: 0 /* Named */,
129783
+ moduleFileName: fileName,
129784
+ isFromPackageJson: false,
129785
+ moduleSymbol: moduleSymbol,
129786
+ symbol: firstAccessibleSymbol,
129787
+ targetFlags: ts.skipAlias(firstAccessibleSymbol, typeChecker).flags,
129788
+ }], sourceFile, program, host, preferences) || {}).moduleSpecifier;
129789
+ if (moduleSpecifier) {
129790
+ var origin = {
129791
+ kind: getNullableSymbolOriginInfoKind(6 /* SymbolMemberExport */),
129792
+ moduleSymbol: moduleSymbol,
129793
+ isDefaultExport: false,
129794
+ symbolName: firstAccessibleSymbol.name,
129795
+ exportName: firstAccessibleSymbol.name,
129796
+ fileName: fileName,
129797
+ moduleSpecifier: moduleSpecifier,
129798
+ };
129799
+ symbolToOriginInfoMap[index] = origin;
129800
+ }
129755
129801
  }
129756
129802
  }
129757
129803
  else if (preferences.includeCompletionsWithInsertText) {
@@ -129987,7 +130033,7 @@ var ts;
129987
130033
  var packageJsonAutoImportProvider = (_b = host.getPackageJsonAutoImportProvider) === null || _b === void 0 ? void 0 : _b.call(host);
129988
130034
  var packageJsonFilter = detailsEntryId ? undefined : ts.createPackageJsonImportFilter(sourceFile, preferences, host);
129989
130035
  resolvingModuleSpecifiers("collectAutoImports", host, program, sourceFile, preferences, !!importCompletionNode, function (context) {
129990
- exportInfo.forEach(sourceFile.path, function (info, symbolName, isFromAmbientModule) {
130036
+ exportInfo.forEach(sourceFile.path, function (info, symbolName, isFromAmbientModule, exportMapKey) {
129991
130037
  if (!ts.isIdentifierText(symbolName, ts.getEmitScriptTarget(host.getCompilationSettings())))
129992
130038
  return;
129993
130039
  if (!detailsEntryId && ts.isStringANonContextualKeyword(symbolName))
@@ -130012,6 +130058,7 @@ var ts;
130012
130058
  kind: moduleSpecifier ? 32 /* ResolvedExport */ : 4 /* Export */,
130013
130059
  moduleSpecifier: moduleSpecifier,
130014
130060
  symbolName: symbolName,
130061
+ exportMapKey: exportMapKey,
130015
130062
  exportName: exportInfo_1.exportKind === 2 /* ExportEquals */ ? "export=" /* ExportEquals */ : exportInfo_1.symbol.name,
130016
130063
  fileName: exportInfo_1.moduleFileName,
130017
130064
  isDefaultExport: isDefaultExport,
@@ -130835,18 +130882,7 @@ var ts;
130835
130882
  return undefined;
130836
130883
  var isDefaultExport = data.exportName === "default" /* Default */;
130837
130884
  symbol = isDefaultExport && ts.getLocalSymbolForExportDefault(symbol) || symbol;
130838
- return {
130839
- symbol: symbol,
130840
- origin: {
130841
- kind: data.moduleSpecifier ? 32 /* ResolvedExport */ : 4 /* Export */,
130842
- moduleSymbol: moduleSymbol,
130843
- symbolName: name,
130844
- isDefaultExport: isDefaultExport,
130845
- exportName: data.exportName,
130846
- fileName: data.fileName,
130847
- isFromPackageJson: !!data.isPackageJsonImport,
130848
- }
130849
- };
130885
+ return { symbol: symbol, origin: completionEntryDataToSymbolOriginInfo(data, name, moduleSymbol) };
130850
130886
  }
130851
130887
  function getCompletionEntryDisplayNameForSymbol(symbol, target, origin, kind, jsxIdentifierExpected) {
130852
130888
  var name = originIncludesSymbolName(origin) ? origin.symbolName : symbol.name;
@@ -6367,23 +6367,28 @@ declare namespace ts {
6367
6367
  isIncomplete?: true;
6368
6368
  entries: CompletionEntry[];
6369
6369
  }
6370
- interface CompletionEntryData {
6371
- /** The file name declaring the export's module symbol, if it was an external module */
6372
- fileName?: string;
6373
- /** The module name (with quotes stripped) of the export's module symbol, if it was an ambient module */
6374
- ambientModuleName?: string;
6375
- /** True if the export was found in the package.json AutoImportProvider */
6376
- isPackageJsonImport?: true;
6370
+ interface CompletionEntryDataAutoImport {
6377
6371
  /**
6378
6372
  * The name of the property or export in the module's symbol table. Differs from the completion name
6379
6373
  * in the case of InternalSymbolName.ExportEquals and InternalSymbolName.Default.
6380
6374
  */
6381
6375
  exportName: string;
6382
- /**
6383
- * Set for auto imports with eagerly resolved module specifiers.
6384
- */
6385
6376
  moduleSpecifier?: string;
6377
+ /** The file name declaring the export's module symbol, if it was an external module */
6378
+ fileName?: string;
6379
+ /** The module name (with quotes stripped) of the export's module symbol, if it was an ambient module */
6380
+ ambientModuleName?: string;
6381
+ /** True if the export was found in the package.json AutoImportProvider */
6382
+ isPackageJsonImport?: true;
6383
+ }
6384
+ interface CompletionEntryDataUnresolved extends CompletionEntryDataAutoImport {
6385
+ /** The key in the `ExportMapCache` where the completion entry's `SymbolExportInfo[]` is found */
6386
+ exportMapKey: string;
6387
+ }
6388
+ interface CompletionEntryDataResolved extends CompletionEntryDataAutoImport {
6389
+ moduleSpecifier: string;
6386
6390
  }
6391
+ type CompletionEntryData = CompletionEntryDataUnresolved | CompletionEntryDataResolved;
6387
6392
  interface CompletionEntry {
6388
6393
  name: string;
6389
6394
  kind: ScriptElementKind;
package/lib/typescript.js CHANGED
@@ -294,7 +294,7 @@ var ts;
294
294
  // The following is baselined as a literal template type without intervention
295
295
  /** The version of the TypeScript compiler release */
296
296
  // eslint-disable-next-line @typescript-eslint/no-inferrable-types
297
- ts.version = ts.versionMajorMinor + ".0-dev.20211008";
297
+ ts.version = ts.versionMajorMinor + ".0-dev.20211009";
298
298
  /* @internal */
299
299
  var Comparison;
300
300
  (function (Comparison) {
@@ -126163,11 +126163,12 @@ var ts;
126163
126163
  : ts.getNameForExportedSymbol(namedSymbol, scriptTarget);
126164
126164
  var moduleName = ts.stripQuotes(moduleSymbol.name);
126165
126165
  var id = exportInfoId++;
126166
+ var target = ts.skipAlias(symbol, checker);
126166
126167
  var storedSymbol = symbol.flags & 33554432 /* Transient */ ? undefined : symbol;
126167
126168
  var storedModuleSymbol = moduleSymbol.flags & 33554432 /* Transient */ ? undefined : moduleSymbol;
126168
126169
  if (!storedSymbol || !storedModuleSymbol)
126169
126170
  symbols.set(id, [symbol, moduleSymbol]);
126170
- exportInfo.add(key(importedName, symbol, moduleName, checker), {
126171
+ exportInfo.add(key(importedName, symbol, ts.isExternalModuleNameRelative(moduleName) ? undefined : moduleName, checker), {
126171
126172
  id: id,
126172
126173
  symbolTableKey: symbolTableKey,
126173
126174
  symbolName: importedName,
@@ -126175,16 +126176,16 @@ var ts;
126175
126176
  moduleFile: moduleFile,
126176
126177
  moduleFileName: moduleFile === null || moduleFile === void 0 ? void 0 : moduleFile.fileName,
126177
126178
  exportKind: exportKind,
126178
- targetFlags: ts.skipAlias(symbol, checker).flags,
126179
+ targetFlags: target.flags,
126179
126180
  isFromPackageJson: isFromPackageJson,
126180
126181
  symbol: storedSymbol,
126181
126182
  moduleSymbol: storedModuleSymbol,
126182
126183
  });
126183
126184
  },
126184
- get: function (importingFile, importedName, symbol, moduleName, checker) {
126185
+ get: function (importingFile, key) {
126185
126186
  if (importingFile !== usableByFileName)
126186
126187
  return;
126187
- var result = exportInfo.get(key(importedName, symbol, moduleName, checker));
126188
+ var result = exportInfo.get(key);
126188
126189
  return result === null || result === void 0 ? void 0 : result.map(rehydrateCachedInfo);
126189
126190
  },
126190
126191
  forEach: function (importingFile, action) {
@@ -126192,7 +126193,7 @@ var ts;
126192
126193
  return;
126193
126194
  exportInfo.forEach(function (info, key) {
126194
126195
  var _a = parseKey(key), symbolName = _a.symbolName, ambientModuleName = _a.ambientModuleName;
126195
- action(info.map(rehydrateCachedInfo), symbolName, !!ambientModuleName);
126196
+ action(info.map(rehydrateCachedInfo), symbolName, !!ambientModuleName, key);
126196
126197
  });
126197
126198
  },
126198
126199
  releaseSymbols: function () {
@@ -126257,26 +126258,16 @@ var ts;
126257
126258
  isFromPackageJson: isFromPackageJson,
126258
126259
  };
126259
126260
  }
126260
- function key(importedName, symbol, moduleName, checker) {
126261
- var unquoted = ts.stripQuotes(moduleName);
126262
- var moduleKey = ts.isExternalModuleNameRelative(unquoted) ? "/" : unquoted;
126263
- var target = ts.skipAlias(symbol, checker);
126264
- return importedName + "|" + createSymbolKey(target) + "|" + moduleKey;
126261
+ function key(importedName, symbol, ambientModuleName, checker) {
126262
+ var moduleKey = ambientModuleName || "";
126263
+ return importedName + "|" + ts.getSymbolId(ts.skipAlias(symbol, checker)) + "|" + moduleKey;
126265
126264
  }
126266
126265
  function parseKey(key) {
126267
126266
  var symbolName = key.substring(0, key.indexOf("|"));
126268
126267
  var moduleKey = key.substring(key.lastIndexOf("|") + 1);
126269
- var ambientModuleName = moduleKey === "/" ? undefined : moduleKey;
126268
+ var ambientModuleName = moduleKey === "" ? undefined : moduleKey;
126270
126269
  return { symbolName: symbolName, ambientModuleName: ambientModuleName };
126271
126270
  }
126272
- function createSymbolKey(symbol) {
126273
- var key = symbol.name;
126274
- while (symbol.parent) {
126275
- key += "," + symbol.parent.name;
126276
- symbol = symbol.parent;
126277
- }
126278
- return key;
126279
- }
126280
126271
  function fileIsGlobalOnly(file) {
126281
126272
  return !file.commonJsModuleIndicator && !file.externalModuleIndicator && !file.moduleAugmentations && !file.ambientModuleNames;
126282
126273
  }
@@ -128621,20 +128612,19 @@ var ts;
128621
128612
  }
128622
128613
  }
128623
128614
  Completions.getCompletionsAtPosition = getCompletionsAtPosition;
128615
+ function completionEntryDataIsResolved(data) {
128616
+ return !!(data === null || data === void 0 ? void 0 : data.moduleSpecifier);
128617
+ }
128624
128618
  function continuePreviousIncompleteResponse(cache, file, location, program, host, preferences, cancellationToken) {
128625
- var _a;
128626
128619
  var previousResponse = cache.get();
128627
128620
  if (!previousResponse)
128628
128621
  return undefined;
128629
128622
  var lowerCaseTokenText = location.text.toLowerCase();
128630
128623
  var exportMap = ts.getExportInfoMap(file, host, program, cancellationToken);
128631
- var checker = program.getTypeChecker();
128632
- var autoImportProvider = (_a = host.getPackageJsonAutoImportProvider) === null || _a === void 0 ? void 0 : _a.call(host);
128633
- var autoImportProviderChecker = autoImportProvider === null || autoImportProvider === void 0 ? void 0 : autoImportProvider.getTypeChecker();
128634
128624
  var newEntries = resolvingModuleSpecifiers("continuePreviousIncompleteResponse", host, program, file, preferences,
128635
128625
  /*isForImportStatementCompletion*/ false, function (context) {
128636
128626
  var entries = ts.mapDefined(previousResponse.entries, function (entry) {
128637
- if (!entry.hasAction || !entry.source || !entry.data || entry.data.moduleSpecifier) {
128627
+ if (!entry.hasAction || !entry.source || !entry.data || completionEntryDataIsResolved(entry.data)) {
128638
128628
  // Not an auto import or already resolved; keep as is
128639
128629
  return entry;
128640
128630
  }
@@ -128642,8 +128632,8 @@ var ts;
128642
128632
  // No longer matches typed characters; filter out
128643
128633
  return undefined;
128644
128634
  }
128645
- var _a = ts.Debug.checkDefined(getAutoImportSymbolFromCompletionEntryData(entry.name, entry.data, program, host)), symbol = _a.symbol, origin = _a.origin;
128646
- var info = exportMap.get(file.path, entry.name, symbol, origin.moduleSymbol.name, origin.isFromPackageJson ? autoImportProviderChecker : checker);
128635
+ var origin = ts.Debug.checkDefined(getAutoImportSymbolFromCompletionEntryData(entry.name, entry.data, program, host)).origin;
128636
+ var info = exportMap.get(file.path, entry.data.exportMapKey);
128647
128637
  var result = info && context.tryResolve(info, !ts.isExternalModuleNameRelative(ts.stripQuotes(origin.moduleSymbol.name)));
128648
128638
  if (!result)
128649
128639
  return entry;
@@ -128944,13 +128934,54 @@ var ts;
128944
128934
  return text.replace(/\$/gm, "\\$");
128945
128935
  }
128946
128936
  function originToCompletionEntryData(origin) {
128947
- return {
128937
+ var ambientModuleName = origin.fileName ? undefined : ts.stripQuotes(origin.moduleSymbol.name);
128938
+ var isPackageJsonImport = origin.isFromPackageJson ? true : undefined;
128939
+ if (originIsResolvedExport(origin)) {
128940
+ var resolvedData = {
128941
+ exportName: origin.exportName,
128942
+ moduleSpecifier: origin.moduleSpecifier,
128943
+ ambientModuleName: ambientModuleName,
128944
+ fileName: origin.fileName,
128945
+ isPackageJsonImport: isPackageJsonImport,
128946
+ };
128947
+ return resolvedData;
128948
+ }
128949
+ var unresolvedData = {
128948
128950
  exportName: origin.exportName,
128951
+ exportMapKey: origin.exportMapKey,
128949
128952
  fileName: origin.fileName,
128950
128953
  ambientModuleName: origin.fileName ? undefined : ts.stripQuotes(origin.moduleSymbol.name),
128951
128954
  isPackageJsonImport: origin.isFromPackageJson ? true : undefined,
128952
- moduleSpecifier: originIsResolvedExport(origin) ? origin.moduleSpecifier : undefined,
128953
128955
  };
128956
+ return unresolvedData;
128957
+ }
128958
+ function completionEntryDataToSymbolOriginInfo(data, completionName, moduleSymbol) {
128959
+ var isDefaultExport = data.exportName === "default" /* Default */;
128960
+ var isFromPackageJson = !!data.isPackageJsonImport;
128961
+ if (completionEntryDataIsResolved(data)) {
128962
+ var resolvedOrigin = {
128963
+ kind: 32 /* ResolvedExport */,
128964
+ exportName: data.exportName,
128965
+ moduleSpecifier: data.moduleSpecifier,
128966
+ symbolName: completionName,
128967
+ fileName: data.fileName,
128968
+ moduleSymbol: moduleSymbol,
128969
+ isDefaultExport: isDefaultExport,
128970
+ isFromPackageJson: isFromPackageJson,
128971
+ };
128972
+ return resolvedOrigin;
128973
+ }
128974
+ var unresolvedOrigin = {
128975
+ kind: 4 /* Export */,
128976
+ exportName: data.exportName,
128977
+ exportMapKey: data.exportMapKey,
128978
+ symbolName: completionName,
128979
+ fileName: data.fileName,
128980
+ moduleSymbol: moduleSymbol,
128981
+ isDefaultExport: isDefaultExport,
128982
+ isFromPackageJson: isFromPackageJson,
128983
+ };
128984
+ return unresolvedOrigin;
128954
128985
  }
128955
128986
  function getInsertTextAndReplacementSpanForImportCompletion(name, importCompletionNode, contextToken, origin, useSemicolons, options, preferences) {
128956
128987
  var _a, _b, _c;
@@ -129726,6 +129757,7 @@ var ts;
129726
129757
  }
129727
129758
  }
129728
129759
  function addPropertySymbol(symbol, insertAwait, insertQuestionDot) {
129760
+ var _a;
129729
129761
  // For a computed property with an accessible name like `Symbol.iterator`,
129730
129762
  // we'll add a completion for the *name* `Symbol` instead of for the property.
129731
129763
  // If this is e.g. [Symbol.iterator], add a completion for `Symbol`.
@@ -129739,19 +129771,33 @@ var ts;
129739
129771
  var index = symbols.length;
129740
129772
  symbols.push(firstAccessibleSymbol);
129741
129773
  var moduleSymbol = firstAccessibleSymbol.parent;
129742
- if (!moduleSymbol || !ts.isExternalModuleSymbol(moduleSymbol)) {
129774
+ if (!moduleSymbol ||
129775
+ !ts.isExternalModuleSymbol(moduleSymbol) ||
129776
+ typeChecker.tryGetMemberInModuleExportsAndProperties(firstAccessibleSymbol.name, moduleSymbol) !== firstAccessibleSymbol) {
129743
129777
  symbolToOriginInfoMap[index] = { kind: getNullableSymbolOriginInfoKind(2 /* SymbolMemberNoExport */) };
129744
129778
  }
129745
129779
  else {
129746
- var origin = {
129747
- kind: getNullableSymbolOriginInfoKind(6 /* SymbolMemberExport */),
129748
- moduleSymbol: moduleSymbol,
129749
- isDefaultExport: false,
129750
- symbolName: firstAccessibleSymbol.name,
129751
- exportName: firstAccessibleSymbol.name,
129752
- fileName: ts.isExternalModuleNameRelative(ts.stripQuotes(moduleSymbol.name)) ? ts.cast(moduleSymbol.valueDeclaration, ts.isSourceFile).fileName : undefined,
129753
- };
129754
- symbolToOriginInfoMap[index] = origin;
129780
+ var fileName = ts.isExternalModuleNameRelative(ts.stripQuotes(moduleSymbol.name)) ? (_a = ts.getSourceFileOfModule(moduleSymbol)) === null || _a === void 0 ? void 0 : _a.fileName : undefined;
129781
+ var moduleSpecifier = (ts.codefix.getModuleSpecifierForBestExportInfo([{
129782
+ exportKind: 0 /* Named */,
129783
+ moduleFileName: fileName,
129784
+ isFromPackageJson: false,
129785
+ moduleSymbol: moduleSymbol,
129786
+ symbol: firstAccessibleSymbol,
129787
+ targetFlags: ts.skipAlias(firstAccessibleSymbol, typeChecker).flags,
129788
+ }], sourceFile, program, host, preferences) || {}).moduleSpecifier;
129789
+ if (moduleSpecifier) {
129790
+ var origin = {
129791
+ kind: getNullableSymbolOriginInfoKind(6 /* SymbolMemberExport */),
129792
+ moduleSymbol: moduleSymbol,
129793
+ isDefaultExport: false,
129794
+ symbolName: firstAccessibleSymbol.name,
129795
+ exportName: firstAccessibleSymbol.name,
129796
+ fileName: fileName,
129797
+ moduleSpecifier: moduleSpecifier,
129798
+ };
129799
+ symbolToOriginInfoMap[index] = origin;
129800
+ }
129755
129801
  }
129756
129802
  }
129757
129803
  else if (preferences.includeCompletionsWithInsertText) {
@@ -129987,7 +130033,7 @@ var ts;
129987
130033
  var packageJsonAutoImportProvider = (_b = host.getPackageJsonAutoImportProvider) === null || _b === void 0 ? void 0 : _b.call(host);
129988
130034
  var packageJsonFilter = detailsEntryId ? undefined : ts.createPackageJsonImportFilter(sourceFile, preferences, host);
129989
130035
  resolvingModuleSpecifiers("collectAutoImports", host, program, sourceFile, preferences, !!importCompletionNode, function (context) {
129990
- exportInfo.forEach(sourceFile.path, function (info, symbolName, isFromAmbientModule) {
130036
+ exportInfo.forEach(sourceFile.path, function (info, symbolName, isFromAmbientModule, exportMapKey) {
129991
130037
  if (!ts.isIdentifierText(symbolName, ts.getEmitScriptTarget(host.getCompilationSettings())))
129992
130038
  return;
129993
130039
  if (!detailsEntryId && ts.isStringANonContextualKeyword(symbolName))
@@ -130012,6 +130058,7 @@ var ts;
130012
130058
  kind: moduleSpecifier ? 32 /* ResolvedExport */ : 4 /* Export */,
130013
130059
  moduleSpecifier: moduleSpecifier,
130014
130060
  symbolName: symbolName,
130061
+ exportMapKey: exportMapKey,
130015
130062
  exportName: exportInfo_1.exportKind === 2 /* ExportEquals */ ? "export=" /* ExportEquals */ : exportInfo_1.symbol.name,
130016
130063
  fileName: exportInfo_1.moduleFileName,
130017
130064
  isDefaultExport: isDefaultExport,
@@ -130835,18 +130882,7 @@ var ts;
130835
130882
  return undefined;
130836
130883
  var isDefaultExport = data.exportName === "default" /* Default */;
130837
130884
  symbol = isDefaultExport && ts.getLocalSymbolForExportDefault(symbol) || symbol;
130838
- return {
130839
- symbol: symbol,
130840
- origin: {
130841
- kind: data.moduleSpecifier ? 32 /* ResolvedExport */ : 4 /* Export */,
130842
- moduleSymbol: moduleSymbol,
130843
- symbolName: name,
130844
- isDefaultExport: isDefaultExport,
130845
- exportName: data.exportName,
130846
- fileName: data.fileName,
130847
- isFromPackageJson: !!data.isPackageJsonImport,
130848
- }
130849
- };
130885
+ return { symbol: symbol, origin: completionEntryDataToSymbolOriginInfo(data, name, moduleSymbol) };
130850
130886
  }
130851
130887
  function getCompletionEntryDisplayNameForSymbol(symbol, target, origin, kind, jsxIdentifierExpected) {
130852
130888
  var name = originIncludesSymbolName(origin) ? origin.symbolName : symbol.name;
@@ -6367,23 +6367,28 @@ declare namespace ts {
6367
6367
  isIncomplete?: true;
6368
6368
  entries: CompletionEntry[];
6369
6369
  }
6370
- interface CompletionEntryData {
6371
- /** The file name declaring the export's module symbol, if it was an external module */
6372
- fileName?: string;
6373
- /** The module name (with quotes stripped) of the export's module symbol, if it was an ambient module */
6374
- ambientModuleName?: string;
6375
- /** True if the export was found in the package.json AutoImportProvider */
6376
- isPackageJsonImport?: true;
6370
+ interface CompletionEntryDataAutoImport {
6377
6371
  /**
6378
6372
  * The name of the property or export in the module's symbol table. Differs from the completion name
6379
6373
  * in the case of InternalSymbolName.ExportEquals and InternalSymbolName.Default.
6380
6374
  */
6381
6375
  exportName: string;
6382
- /**
6383
- * Set for auto imports with eagerly resolved module specifiers.
6384
- */
6385
6376
  moduleSpecifier?: string;
6377
+ /** The file name declaring the export's module symbol, if it was an external module */
6378
+ fileName?: string;
6379
+ /** The module name (with quotes stripped) of the export's module symbol, if it was an ambient module */
6380
+ ambientModuleName?: string;
6381
+ /** True if the export was found in the package.json AutoImportProvider */
6382
+ isPackageJsonImport?: true;
6383
+ }
6384
+ interface CompletionEntryDataUnresolved extends CompletionEntryDataAutoImport {
6385
+ /** The key in the `ExportMapCache` where the completion entry's `SymbolExportInfo[]` is found */
6386
+ exportMapKey: string;
6387
+ }
6388
+ interface CompletionEntryDataResolved extends CompletionEntryDataAutoImport {
6389
+ moduleSpecifier: string;
6386
6390
  }
6391
+ type CompletionEntryData = CompletionEntryDataUnresolved | CompletionEntryDataResolved;
6387
6392
  interface CompletionEntry {
6388
6393
  name: string;
6389
6394
  kind: ScriptElementKind;
@@ -294,7 +294,7 @@ var ts;
294
294
  // The following is baselined as a literal template type without intervention
295
295
  /** The version of the TypeScript compiler release */
296
296
  // eslint-disable-next-line @typescript-eslint/no-inferrable-types
297
- ts.version = ts.versionMajorMinor + ".0-dev.20211008";
297
+ ts.version = ts.versionMajorMinor + ".0-dev.20211009";
298
298
  /* @internal */
299
299
  var Comparison;
300
300
  (function (Comparison) {
@@ -126163,11 +126163,12 @@ var ts;
126163
126163
  : ts.getNameForExportedSymbol(namedSymbol, scriptTarget);
126164
126164
  var moduleName = ts.stripQuotes(moduleSymbol.name);
126165
126165
  var id = exportInfoId++;
126166
+ var target = ts.skipAlias(symbol, checker);
126166
126167
  var storedSymbol = symbol.flags & 33554432 /* Transient */ ? undefined : symbol;
126167
126168
  var storedModuleSymbol = moduleSymbol.flags & 33554432 /* Transient */ ? undefined : moduleSymbol;
126168
126169
  if (!storedSymbol || !storedModuleSymbol)
126169
126170
  symbols.set(id, [symbol, moduleSymbol]);
126170
- exportInfo.add(key(importedName, symbol, moduleName, checker), {
126171
+ exportInfo.add(key(importedName, symbol, ts.isExternalModuleNameRelative(moduleName) ? undefined : moduleName, checker), {
126171
126172
  id: id,
126172
126173
  symbolTableKey: symbolTableKey,
126173
126174
  symbolName: importedName,
@@ -126175,16 +126176,16 @@ var ts;
126175
126176
  moduleFile: moduleFile,
126176
126177
  moduleFileName: moduleFile === null || moduleFile === void 0 ? void 0 : moduleFile.fileName,
126177
126178
  exportKind: exportKind,
126178
- targetFlags: ts.skipAlias(symbol, checker).flags,
126179
+ targetFlags: target.flags,
126179
126180
  isFromPackageJson: isFromPackageJson,
126180
126181
  symbol: storedSymbol,
126181
126182
  moduleSymbol: storedModuleSymbol,
126182
126183
  });
126183
126184
  },
126184
- get: function (importingFile, importedName, symbol, moduleName, checker) {
126185
+ get: function (importingFile, key) {
126185
126186
  if (importingFile !== usableByFileName)
126186
126187
  return;
126187
- var result = exportInfo.get(key(importedName, symbol, moduleName, checker));
126188
+ var result = exportInfo.get(key);
126188
126189
  return result === null || result === void 0 ? void 0 : result.map(rehydrateCachedInfo);
126189
126190
  },
126190
126191
  forEach: function (importingFile, action) {
@@ -126192,7 +126193,7 @@ var ts;
126192
126193
  return;
126193
126194
  exportInfo.forEach(function (info, key) {
126194
126195
  var _a = parseKey(key), symbolName = _a.symbolName, ambientModuleName = _a.ambientModuleName;
126195
- action(info.map(rehydrateCachedInfo), symbolName, !!ambientModuleName);
126196
+ action(info.map(rehydrateCachedInfo), symbolName, !!ambientModuleName, key);
126196
126197
  });
126197
126198
  },
126198
126199
  releaseSymbols: function () {
@@ -126257,26 +126258,16 @@ var ts;
126257
126258
  isFromPackageJson: isFromPackageJson,
126258
126259
  };
126259
126260
  }
126260
- function key(importedName, symbol, moduleName, checker) {
126261
- var unquoted = ts.stripQuotes(moduleName);
126262
- var moduleKey = ts.isExternalModuleNameRelative(unquoted) ? "/" : unquoted;
126263
- var target = ts.skipAlias(symbol, checker);
126264
- return importedName + "|" + createSymbolKey(target) + "|" + moduleKey;
126261
+ function key(importedName, symbol, ambientModuleName, checker) {
126262
+ var moduleKey = ambientModuleName || "";
126263
+ return importedName + "|" + ts.getSymbolId(ts.skipAlias(symbol, checker)) + "|" + moduleKey;
126265
126264
  }
126266
126265
  function parseKey(key) {
126267
126266
  var symbolName = key.substring(0, key.indexOf("|"));
126268
126267
  var moduleKey = key.substring(key.lastIndexOf("|") + 1);
126269
- var ambientModuleName = moduleKey === "/" ? undefined : moduleKey;
126268
+ var ambientModuleName = moduleKey === "" ? undefined : moduleKey;
126270
126269
  return { symbolName: symbolName, ambientModuleName: ambientModuleName };
126271
126270
  }
126272
- function createSymbolKey(symbol) {
126273
- var key = symbol.name;
126274
- while (symbol.parent) {
126275
- key += "," + symbol.parent.name;
126276
- symbol = symbol.parent;
126277
- }
126278
- return key;
126279
- }
126280
126271
  function fileIsGlobalOnly(file) {
126281
126272
  return !file.commonJsModuleIndicator && !file.externalModuleIndicator && !file.moduleAugmentations && !file.ambientModuleNames;
126282
126273
  }
@@ -128621,20 +128612,19 @@ var ts;
128621
128612
  }
128622
128613
  }
128623
128614
  Completions.getCompletionsAtPosition = getCompletionsAtPosition;
128615
+ function completionEntryDataIsResolved(data) {
128616
+ return !!(data === null || data === void 0 ? void 0 : data.moduleSpecifier);
128617
+ }
128624
128618
  function continuePreviousIncompleteResponse(cache, file, location, program, host, preferences, cancellationToken) {
128625
- var _a;
128626
128619
  var previousResponse = cache.get();
128627
128620
  if (!previousResponse)
128628
128621
  return undefined;
128629
128622
  var lowerCaseTokenText = location.text.toLowerCase();
128630
128623
  var exportMap = ts.getExportInfoMap(file, host, program, cancellationToken);
128631
- var checker = program.getTypeChecker();
128632
- var autoImportProvider = (_a = host.getPackageJsonAutoImportProvider) === null || _a === void 0 ? void 0 : _a.call(host);
128633
- var autoImportProviderChecker = autoImportProvider === null || autoImportProvider === void 0 ? void 0 : autoImportProvider.getTypeChecker();
128634
128624
  var newEntries = resolvingModuleSpecifiers("continuePreviousIncompleteResponse", host, program, file, preferences,
128635
128625
  /*isForImportStatementCompletion*/ false, function (context) {
128636
128626
  var entries = ts.mapDefined(previousResponse.entries, function (entry) {
128637
- if (!entry.hasAction || !entry.source || !entry.data || entry.data.moduleSpecifier) {
128627
+ if (!entry.hasAction || !entry.source || !entry.data || completionEntryDataIsResolved(entry.data)) {
128638
128628
  // Not an auto import or already resolved; keep as is
128639
128629
  return entry;
128640
128630
  }
@@ -128642,8 +128632,8 @@ var ts;
128642
128632
  // No longer matches typed characters; filter out
128643
128633
  return undefined;
128644
128634
  }
128645
- var _a = ts.Debug.checkDefined(getAutoImportSymbolFromCompletionEntryData(entry.name, entry.data, program, host)), symbol = _a.symbol, origin = _a.origin;
128646
- var info = exportMap.get(file.path, entry.name, symbol, origin.moduleSymbol.name, origin.isFromPackageJson ? autoImportProviderChecker : checker);
128635
+ var origin = ts.Debug.checkDefined(getAutoImportSymbolFromCompletionEntryData(entry.name, entry.data, program, host)).origin;
128636
+ var info = exportMap.get(file.path, entry.data.exportMapKey);
128647
128637
  var result = info && context.tryResolve(info, !ts.isExternalModuleNameRelative(ts.stripQuotes(origin.moduleSymbol.name)));
128648
128638
  if (!result)
128649
128639
  return entry;
@@ -128944,13 +128934,54 @@ var ts;
128944
128934
  return text.replace(/\$/gm, "\\$");
128945
128935
  }
128946
128936
  function originToCompletionEntryData(origin) {
128947
- return {
128937
+ var ambientModuleName = origin.fileName ? undefined : ts.stripQuotes(origin.moduleSymbol.name);
128938
+ var isPackageJsonImport = origin.isFromPackageJson ? true : undefined;
128939
+ if (originIsResolvedExport(origin)) {
128940
+ var resolvedData = {
128941
+ exportName: origin.exportName,
128942
+ moduleSpecifier: origin.moduleSpecifier,
128943
+ ambientModuleName: ambientModuleName,
128944
+ fileName: origin.fileName,
128945
+ isPackageJsonImport: isPackageJsonImport,
128946
+ };
128947
+ return resolvedData;
128948
+ }
128949
+ var unresolvedData = {
128948
128950
  exportName: origin.exportName,
128951
+ exportMapKey: origin.exportMapKey,
128949
128952
  fileName: origin.fileName,
128950
128953
  ambientModuleName: origin.fileName ? undefined : ts.stripQuotes(origin.moduleSymbol.name),
128951
128954
  isPackageJsonImport: origin.isFromPackageJson ? true : undefined,
128952
- moduleSpecifier: originIsResolvedExport(origin) ? origin.moduleSpecifier : undefined,
128953
128955
  };
128956
+ return unresolvedData;
128957
+ }
128958
+ function completionEntryDataToSymbolOriginInfo(data, completionName, moduleSymbol) {
128959
+ var isDefaultExport = data.exportName === "default" /* Default */;
128960
+ var isFromPackageJson = !!data.isPackageJsonImport;
128961
+ if (completionEntryDataIsResolved(data)) {
128962
+ var resolvedOrigin = {
128963
+ kind: 32 /* ResolvedExport */,
128964
+ exportName: data.exportName,
128965
+ moduleSpecifier: data.moduleSpecifier,
128966
+ symbolName: completionName,
128967
+ fileName: data.fileName,
128968
+ moduleSymbol: moduleSymbol,
128969
+ isDefaultExport: isDefaultExport,
128970
+ isFromPackageJson: isFromPackageJson,
128971
+ };
128972
+ return resolvedOrigin;
128973
+ }
128974
+ var unresolvedOrigin = {
128975
+ kind: 4 /* Export */,
128976
+ exportName: data.exportName,
128977
+ exportMapKey: data.exportMapKey,
128978
+ symbolName: completionName,
128979
+ fileName: data.fileName,
128980
+ moduleSymbol: moduleSymbol,
128981
+ isDefaultExport: isDefaultExport,
128982
+ isFromPackageJson: isFromPackageJson,
128983
+ };
128984
+ return unresolvedOrigin;
128954
128985
  }
128955
128986
  function getInsertTextAndReplacementSpanForImportCompletion(name, importCompletionNode, contextToken, origin, useSemicolons, options, preferences) {
128956
128987
  var _a, _b, _c;
@@ -129726,6 +129757,7 @@ var ts;
129726
129757
  }
129727
129758
  }
129728
129759
  function addPropertySymbol(symbol, insertAwait, insertQuestionDot) {
129760
+ var _a;
129729
129761
  // For a computed property with an accessible name like `Symbol.iterator`,
129730
129762
  // we'll add a completion for the *name* `Symbol` instead of for the property.
129731
129763
  // If this is e.g. [Symbol.iterator], add a completion for `Symbol`.
@@ -129739,19 +129771,33 @@ var ts;
129739
129771
  var index = symbols.length;
129740
129772
  symbols.push(firstAccessibleSymbol);
129741
129773
  var moduleSymbol = firstAccessibleSymbol.parent;
129742
- if (!moduleSymbol || !ts.isExternalModuleSymbol(moduleSymbol)) {
129774
+ if (!moduleSymbol ||
129775
+ !ts.isExternalModuleSymbol(moduleSymbol) ||
129776
+ typeChecker.tryGetMemberInModuleExportsAndProperties(firstAccessibleSymbol.name, moduleSymbol) !== firstAccessibleSymbol) {
129743
129777
  symbolToOriginInfoMap[index] = { kind: getNullableSymbolOriginInfoKind(2 /* SymbolMemberNoExport */) };
129744
129778
  }
129745
129779
  else {
129746
- var origin = {
129747
- kind: getNullableSymbolOriginInfoKind(6 /* SymbolMemberExport */),
129748
- moduleSymbol: moduleSymbol,
129749
- isDefaultExport: false,
129750
- symbolName: firstAccessibleSymbol.name,
129751
- exportName: firstAccessibleSymbol.name,
129752
- fileName: ts.isExternalModuleNameRelative(ts.stripQuotes(moduleSymbol.name)) ? ts.cast(moduleSymbol.valueDeclaration, ts.isSourceFile).fileName : undefined,
129753
- };
129754
- symbolToOriginInfoMap[index] = origin;
129780
+ var fileName = ts.isExternalModuleNameRelative(ts.stripQuotes(moduleSymbol.name)) ? (_a = ts.getSourceFileOfModule(moduleSymbol)) === null || _a === void 0 ? void 0 : _a.fileName : undefined;
129781
+ var moduleSpecifier = (ts.codefix.getModuleSpecifierForBestExportInfo([{
129782
+ exportKind: 0 /* Named */,
129783
+ moduleFileName: fileName,
129784
+ isFromPackageJson: false,
129785
+ moduleSymbol: moduleSymbol,
129786
+ symbol: firstAccessibleSymbol,
129787
+ targetFlags: ts.skipAlias(firstAccessibleSymbol, typeChecker).flags,
129788
+ }], sourceFile, program, host, preferences) || {}).moduleSpecifier;
129789
+ if (moduleSpecifier) {
129790
+ var origin = {
129791
+ kind: getNullableSymbolOriginInfoKind(6 /* SymbolMemberExport */),
129792
+ moduleSymbol: moduleSymbol,
129793
+ isDefaultExport: false,
129794
+ symbolName: firstAccessibleSymbol.name,
129795
+ exportName: firstAccessibleSymbol.name,
129796
+ fileName: fileName,
129797
+ moduleSpecifier: moduleSpecifier,
129798
+ };
129799
+ symbolToOriginInfoMap[index] = origin;
129800
+ }
129755
129801
  }
129756
129802
  }
129757
129803
  else if (preferences.includeCompletionsWithInsertText) {
@@ -129987,7 +130033,7 @@ var ts;
129987
130033
  var packageJsonAutoImportProvider = (_b = host.getPackageJsonAutoImportProvider) === null || _b === void 0 ? void 0 : _b.call(host);
129988
130034
  var packageJsonFilter = detailsEntryId ? undefined : ts.createPackageJsonImportFilter(sourceFile, preferences, host);
129989
130035
  resolvingModuleSpecifiers("collectAutoImports", host, program, sourceFile, preferences, !!importCompletionNode, function (context) {
129990
- exportInfo.forEach(sourceFile.path, function (info, symbolName, isFromAmbientModule) {
130036
+ exportInfo.forEach(sourceFile.path, function (info, symbolName, isFromAmbientModule, exportMapKey) {
129991
130037
  if (!ts.isIdentifierText(symbolName, ts.getEmitScriptTarget(host.getCompilationSettings())))
129992
130038
  return;
129993
130039
  if (!detailsEntryId && ts.isStringANonContextualKeyword(symbolName))
@@ -130012,6 +130058,7 @@ var ts;
130012
130058
  kind: moduleSpecifier ? 32 /* ResolvedExport */ : 4 /* Export */,
130013
130059
  moduleSpecifier: moduleSpecifier,
130014
130060
  symbolName: symbolName,
130061
+ exportMapKey: exportMapKey,
130015
130062
  exportName: exportInfo_1.exportKind === 2 /* ExportEquals */ ? "export=" /* ExportEquals */ : exportInfo_1.symbol.name,
130016
130063
  fileName: exportInfo_1.moduleFileName,
130017
130064
  isDefaultExport: isDefaultExport,
@@ -130835,18 +130882,7 @@ var ts;
130835
130882
  return undefined;
130836
130883
  var isDefaultExport = data.exportName === "default" /* Default */;
130837
130884
  symbol = isDefaultExport && ts.getLocalSymbolForExportDefault(symbol) || symbol;
130838
- return {
130839
- symbol: symbol,
130840
- origin: {
130841
- kind: data.moduleSpecifier ? 32 /* ResolvedExport */ : 4 /* Export */,
130842
- moduleSymbol: moduleSymbol,
130843
- symbolName: name,
130844
- isDefaultExport: isDefaultExport,
130845
- exportName: data.exportName,
130846
- fileName: data.fileName,
130847
- isFromPackageJson: !!data.isPackageJsonImport,
130848
- }
130849
- };
130885
+ return { symbol: symbol, origin: completionEntryDataToSymbolOriginInfo(data, name, moduleSymbol) };
130850
130886
  }
130851
130887
  function getCompletionEntryDisplayNameForSymbol(symbol, target, origin, kind, jsxIdentifierExpected) {
130852
130888
  var name = originIncludesSymbolName(origin) ? origin.symbolName : symbol.name;
@@ -89,7 +89,7 @@ var ts;
89
89
  // The following is baselined as a literal template type without intervention
90
90
  /** The version of the TypeScript compiler release */
91
91
  // eslint-disable-next-line @typescript-eslint/no-inferrable-types
92
- ts.version = ts.versionMajorMinor + ".0-dev.20211008";
92
+ ts.version = ts.versionMajorMinor + ".0-dev.20211009";
93
93
  /* @internal */
94
94
  var Comparison;
95
95
  (function (Comparison) {
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "typescript",
3
3
  "author": "Microsoft Corp.",
4
4
  "homepage": "https://www.typescriptlang.org/",
5
- "version": "4.5.0-dev.20211008",
5
+ "version": "4.5.0-dev.20211009",
6
6
  "license": "Apache-2.0",
7
7
  "description": "TypeScript is a language for application scale JavaScript development",
8
8
  "keywords": [