typescript 4.5.0-dev.20211028 → 4.5.0-dev.20211101

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.
@@ -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.20211028";
92
+ ts.version = ts.versionMajorMinor + ".0-dev.20211101";
93
93
  /* @internal */
94
94
  var Comparison;
95
95
  (function (Comparison) {
@@ -2540,6 +2540,10 @@ var ts;
2540
2540
  return formatEnum(kind, ts.SyntaxKind, /*isFlags*/ false);
2541
2541
  }
2542
2542
  Debug.formatSyntaxKind = formatSyntaxKind;
2543
+ function formatSnippetKind(kind) {
2544
+ return formatEnum(kind, ts.SnippetKind, /*isFlags*/ false);
2545
+ }
2546
+ Debug.formatSnippetKind = formatSnippetKind;
2543
2547
  function formatNodeFlags(flags) {
2544
2548
  return formatEnum(flags, ts.NodeFlags, /*isFlags*/ true);
2545
2549
  }
@@ -4456,6 +4460,13 @@ var ts;
4456
4460
  ExitStatus[ExitStatus["ProjectReferenceCycle_OutputsSkupped"] = 4] = "ProjectReferenceCycle_OutputsSkupped";
4457
4461
  })(ExitStatus = ts.ExitStatus || (ts.ExitStatus = {}));
4458
4462
  /* @internal */
4463
+ var MemberOverrideStatus;
4464
+ (function (MemberOverrideStatus) {
4465
+ MemberOverrideStatus[MemberOverrideStatus["Ok"] = 0] = "Ok";
4466
+ MemberOverrideStatus[MemberOverrideStatus["NeedsOverride"] = 1] = "NeedsOverride";
4467
+ MemberOverrideStatus[MemberOverrideStatus["HasInvalidOverride"] = 2] = "HasInvalidOverride";
4468
+ })(MemberOverrideStatus = ts.MemberOverrideStatus || (ts.MemberOverrideStatus = {}));
4469
+ /* @internal */
4459
4470
  var UnionReduction;
4460
4471
  (function (UnionReduction) {
4461
4472
  UnionReduction[UnionReduction["None"] = 0] = "None";
@@ -5104,7 +5115,7 @@ var ts;
5104
5115
  (function (ModuleResolutionKind) {
5105
5116
  ModuleResolutionKind[ModuleResolutionKind["Classic"] = 1] = "Classic";
5106
5117
  ModuleResolutionKind[ModuleResolutionKind["NodeJs"] = 2] = "NodeJs";
5107
- // Starting with node12, node's module resolver has significant departures from tranditional cjs resolution
5118
+ // Starting with node12, node's module resolver has significant departures from traditional cjs resolution
5108
5119
  // to better support ecmascript modules and their use within node - more features are still being added, so
5109
5120
  // we can expect it to change over time, and as such, offer both a `NodeNext` moving resolution target, and a `Node12`
5110
5121
  // version-anchored resolution target
@@ -5437,6 +5448,15 @@ var ts;
5437
5448
  // Masks
5438
5449
  // - Additional bitmasks
5439
5450
  })(TransformFlags = ts.TransformFlags || (ts.TransformFlags = {}));
5451
+ // Reference: https://code.visualstudio.com/docs/editor/userdefinedsnippets#_snippet-syntax
5452
+ /* @internal */
5453
+ var SnippetKind;
5454
+ (function (SnippetKind) {
5455
+ SnippetKind[SnippetKind["TabStop"] = 0] = "TabStop";
5456
+ SnippetKind[SnippetKind["Placeholder"] = 1] = "Placeholder";
5457
+ SnippetKind[SnippetKind["Choice"] = 2] = "Choice";
5458
+ SnippetKind[SnippetKind["Variable"] = 3] = "Variable";
5459
+ })(SnippetKind = ts.SnippetKind || (ts.SnippetKind = {}));
5440
5460
  var EmitFlags;
5441
5461
  (function (EmitFlags) {
5442
5462
  EmitFlags[EmitFlags["None"] = 0] = "None";
@@ -8673,6 +8693,8 @@ var ts;
8673
8693
  Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext: diag(2821, ts.DiagnosticCategory.Error, "Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_2821", "Import assertions are only supported when the '--module' option is set to 'esnext'."),
8674
8694
  Import_assertions_cannot_be_used_with_type_only_imports_or_exports: diag(2822, ts.DiagnosticCategory.Error, "Import_assertions_cannot_be_used_with_type_only_imports_or_exports_2822", "Import assertions cannot be used with type-only imports or exports."),
8675
8695
  Cannot_find_namespace_0_Did_you_mean_1: diag(2833, ts.DiagnosticCategory.Error, "Cannot_find_namespace_0_Did_you_mean_1_2833", "Cannot find namespace '{0}'. Did you mean '{1}'?"),
8696
+ Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_node12_or_nodenext_Consider_adding_an_extension_to_the_import_path: diag(2834, ts.DiagnosticCategory.Error, "Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_n_2834", "Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path."),
8697
+ Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_node12_or_nodenext_Did_you_mean_0: diag(2835, ts.DiagnosticCategory.Error, "Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_n_2835", "Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean '{0}'?"),
8676
8698
  Import_declaration_0_is_using_private_name_1: diag(4000, ts.DiagnosticCategory.Error, "Import_declaration_0_is_using_private_name_1_4000", "Import declaration '{0}' is using private name '{1}'."),
8677
8699
  Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: diag(4002, ts.DiagnosticCategory.Error, "Type_parameter_0_of_exported_class_has_or_is_using_private_name_1_4002", "Type parameter '{0}' of exported class has or is using private name '{1}'."),
8678
8700
  Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: diag(4004, ts.DiagnosticCategory.Error, "Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1_4004", "Type parameter '{0}' of exported interface has or is using private name '{1}'."),
@@ -8779,6 +8801,7 @@ var ts;
8779
8801
  This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class: diag(4121, ts.DiagnosticCategory.Error, "This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_4121", "This member cannot have a JSDoc comment with an '@override' tag because its containing class '{0}' does not extend another class."),
8780
8802
  This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0: diag(4122, ts.DiagnosticCategory.Error, "This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base__4122", "This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class '{0}'."),
8781
8803
  This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1: diag(4123, ts.DiagnosticCategory.Error, "This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base__4123", "This member cannot have a JSDoc comment with an 'override' tag because it is not declared in the base class '{0}'. Did you mean '{1}'?"),
8804
+ Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next: diag(4124, ts.DiagnosticCategory.Error, "Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_w_4124", "Compiler option '{0}' of value '{1}' is unstable. Use nightly TypeScript to silence this error. Try updating with 'npm install -D typescript@next'."),
8782
8805
  The_current_host_does_not_support_the_0_option: diag(5001, ts.DiagnosticCategory.Error, "The_current_host_does_not_support_the_0_option_5001", "The current host does not support the '{0}' option."),
8783
8806
  Cannot_find_the_common_subdirectory_path_for_the_input_files: diag(5009, ts.DiagnosticCategory.Error, "Cannot_find_the_common_subdirectory_path_for_the_input_files_5009", "Cannot find the common subdirectory path for the input files."),
8784
8807
  File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0: diag(5010, ts.DiagnosticCategory.Error, "File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0_5010", "File specification cannot end in a recursive directory wildcard ('**'): '{0}'."),
@@ -9436,6 +9459,7 @@ var ts;
9436
9459
  Remove_unused_destructuring_declaration: diag(90039, ts.DiagnosticCategory.Message, "Remove_unused_destructuring_declaration_90039", "Remove unused destructuring declaration"),
9437
9460
  Remove_unused_declarations_for_Colon_0: diag(90041, ts.DiagnosticCategory.Message, "Remove_unused_declarations_for_Colon_0_90041", "Remove unused declarations for: '{0}'"),
9438
9461
  Declare_a_private_field_named_0: diag(90053, ts.DiagnosticCategory.Message, "Declare_a_private_field_named_0_90053", "Declare a private field named '{0}'."),
9462
+ Includes_imports_of_types_referenced_by_0: diag(90054, ts.DiagnosticCategory.Message, "Includes_imports_of_types_referenced_by_0_90054", "Includes imports of types referenced by '{0}'"),
9439
9463
  Convert_function_to_an_ES2015_class: diag(95001, ts.DiagnosticCategory.Message, "Convert_function_to_an_ES2015_class_95001", "Convert function to an ES2015 class"),
9440
9464
  Convert_0_to_1_in_0: diag(95003, ts.DiagnosticCategory.Message, "Convert_0_to_1_in_0_95003", "Convert '{0}' to '{1} in {0}'"),
9441
9465
  Extract_to_0_in_1: diag(95004, ts.DiagnosticCategory.Message, "Extract_to_0_in_1_95004", "Extract to {0} in {1}"),
@@ -20742,6 +20766,10 @@ var ts;
20742
20766
  return node.kind === 212 /* FunctionExpression */ || node.kind === 213 /* ArrowFunction */;
20743
20767
  }
20744
20768
  ts.isFunctionExpressionOrArrowFunction = isFunctionExpressionOrArrowFunction;
20769
+ function escapeSnippetText(text) {
20770
+ return text.replace(/\$/gm, "\\$");
20771
+ }
20772
+ ts.escapeSnippetText = escapeSnippetText;
20745
20773
  })(ts || (ts = {}));
20746
20774
  /* @internal */
20747
20775
  var ts;
@@ -26945,6 +26973,25 @@ var ts;
26945
26973
  }
26946
26974
  }
26947
26975
  ts.moveEmitHelpers = moveEmitHelpers;
26976
+ /**
26977
+ * Gets the SnippetElement of a node.
26978
+ */
26979
+ /* @internal */
26980
+ function getSnippetElement(node) {
26981
+ var _a;
26982
+ return (_a = node.emitNode) === null || _a === void 0 ? void 0 : _a.snippetElement;
26983
+ }
26984
+ ts.getSnippetElement = getSnippetElement;
26985
+ /**
26986
+ * Sets the SnippetElement of a node.
26987
+ */
26988
+ /* @internal */
26989
+ function setSnippetElement(node, snippet) {
26990
+ var emitNode = getOrCreateEmitNode(node);
26991
+ emitNode.snippetElement = snippet;
26992
+ return node;
26993
+ }
26994
+ ts.setSnippetElement = setSnippetElement;
26948
26995
  /* @internal */
26949
26996
  function ignoreSourceNewlines(node) {
26950
26997
  getOrCreateEmitNode(node).flags |= 134217728 /* IgnoreSourceNewlines */;
@@ -47070,6 +47117,7 @@ var ts;
47070
47117
  isDeclarationVisible: isDeclarationVisible,
47071
47118
  isPropertyAccessible: isPropertyAccessible,
47072
47119
  getTypeOnlyAliasDeclaration: getTypeOnlyAliasDeclaration,
47120
+ getMemberOverrideModifierStatus: getMemberOverrideModifierStatus,
47073
47121
  };
47074
47122
  function getResolvedSignatureWorker(nodeIn, candidatesOutArray, argumentCount, checkMode) {
47075
47123
  var node = ts.getParseTreeNode(nodeIn, ts.isCallLikeExpression);
@@ -47313,6 +47361,21 @@ var ts;
47313
47361
  var enumRelation = new ts.Map();
47314
47362
  var builtinGlobals = ts.createSymbolTable();
47315
47363
  builtinGlobals.set(undefinedSymbol.escapedName, undefinedSymbol);
47364
+ // Extensions suggested for path imports when module resolution is node12 or higher.
47365
+ // The first element of each tuple is the extension a file has.
47366
+ // The second element of each tuple is the extension that should be used in a path import.
47367
+ // e.g. if we want to import file `foo.mts`, we should write `import {} from "./foo.mjs".
47368
+ var suggestedExtensions = [
47369
+ [".mts", ".mjs"],
47370
+ [".ts", ".js"],
47371
+ [".cts", ".cjs"],
47372
+ [".mjs", ".mjs"],
47373
+ [".js", ".js"],
47374
+ [".cjs", ".cjs"],
47375
+ [".tsx", compilerOptions.jsx === 1 /* Preserve */ ? ".jsx" : ".js"],
47376
+ [".jsx", ".jsx"],
47377
+ [".json", ".json"],
47378
+ ];
47316
47379
  initializeTypeChecker();
47317
47380
  return checker;
47318
47381
  function getJsxNamespace(location) {
@@ -49528,7 +49591,7 @@ var ts;
49528
49591
  : undefined;
49529
49592
  }
49530
49593
  function resolveExternalModule(location, moduleReference, moduleNotFoundError, errorNode, isForAugmentation) {
49531
- var _a, _b, _c, _d, _e, _f;
49594
+ var _a, _b, _c, _d, _e, _f, _g;
49532
49595
  if (isForAugmentation === void 0) { isForAugmentation = false; }
49533
49596
  if (ts.startsWith(moduleReference, "@types/")) {
49534
49597
  var diag = ts.Diagnostics.Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1;
@@ -49549,7 +49612,7 @@ var ts;
49549
49612
  ((_e = (ts.isModuleDeclaration(location) ? location : location.parent && ts.isModuleDeclaration(location.parent) && location.parent.name === location ? location.parent : undefined)) === null || _e === void 0 ? void 0 : _e.name) ||
49550
49613
  ((_f = (ts.isLiteralImportTypeNode(location) ? location : undefined)) === null || _f === void 0 ? void 0 : _f.argument.literal);
49551
49614
  var mode = contextSpecifier && ts.isStringLiteralLike(contextSpecifier) ? ts.getModeForUsageLocation(currentSourceFile, contextSpecifier) : currentSourceFile.impliedNodeFormat;
49552
- var resolvedModule = ts.getResolvedModule(currentSourceFile, moduleReference, mode); // TODO: GH#18217
49615
+ var resolvedModule = ts.getResolvedModule(currentSourceFile, moduleReference, mode);
49553
49616
  var resolutionDiagnostic = resolvedModule && ts.getResolutionDiagnostic(compilerOptions, resolvedModule);
49554
49617
  var sourceFile = resolvedModule && !resolutionDiagnostic && host.getSourceFile(resolvedModule.resolvedFileName);
49555
49618
  if (sourceFile) {
@@ -49615,6 +49678,10 @@ var ts;
49615
49678
  }
49616
49679
  else {
49617
49680
  var tsExtension = ts.tryExtractTSExtension(moduleReference);
49681
+ var isExtensionlessRelativePathImport = ts.pathIsRelative(moduleReference) && !ts.hasExtension(moduleReference);
49682
+ var moduleResolutionKind = ts.getEmitModuleResolutionKind(compilerOptions);
49683
+ var resolutionIsNode12OrNext = moduleResolutionKind === ts.ModuleResolutionKind.Node12 ||
49684
+ moduleResolutionKind === ts.ModuleResolutionKind.NodeNext;
49618
49685
  if (tsExtension) {
49619
49686
  var diag = ts.Diagnostics.An_import_path_cannot_end_with_a_0_extension_Consider_importing_1_instead;
49620
49687
  var importSourceWithoutExtension = ts.removeExtension(moduleReference, tsExtension);
@@ -49634,6 +49701,19 @@ var ts;
49634
49701
  ts.hasJsonModuleEmitEnabled(compilerOptions)) {
49635
49702
  error(errorNode, ts.Diagnostics.Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension, moduleReference);
49636
49703
  }
49704
+ else if (mode === ts.ModuleKind.ESNext && resolutionIsNode12OrNext && isExtensionlessRelativePathImport) {
49705
+ var absoluteRef_1 = ts.getNormalizedAbsolutePath(moduleReference, ts.getDirectoryPath(currentSourceFile.path));
49706
+ var suggestedExt = (_g = suggestedExtensions.find(function (_a) {
49707
+ var actualExt = _a[0], _importExt = _a[1];
49708
+ return host.fileExists(absoluteRef_1 + actualExt);
49709
+ })) === null || _g === void 0 ? void 0 : _g[1];
49710
+ if (suggestedExt) {
49711
+ error(errorNode, ts.Diagnostics.Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_node12_or_nodenext_Did_you_mean_0, moduleReference + suggestedExt);
49712
+ }
49713
+ else {
49714
+ error(errorNode, ts.Diagnostics.Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_node12_or_nodenext_Consider_adding_an_extension_to_the_import_path);
49715
+ }
49716
+ }
49637
49717
  else {
49638
49718
  error(errorNode, moduleNotFoundError, moduleReference);
49639
49719
  }
@@ -61546,7 +61626,8 @@ var ts;
61546
61626
  if (t.flags & (3 /* AnyOrUnknown */ | 58982400 /* InstantiableNonPrimitive */ | 524288 /* Object */ | 2097152 /* Intersection */) && t !== wildcardType && !isErrorType(t)) {
61547
61627
  if (!type.declaration.nameType) {
61548
61628
  var constraint = void 0;
61549
- if (isArrayType(t) || (t.flags & 1 /* Any */) && (constraint = getConstraintOfTypeParameter(typeVariable)) && everyType(constraint, ts.or(isArrayType, isTupleType))) {
61629
+ if (isArrayType(t) || t.flags & 1 /* Any */ && findResolutionCycleStartIndex(typeVariable, 4 /* ImmediateBaseConstraint */) < 0 &&
61630
+ (constraint = getConstraintOfTypeParameter(typeVariable)) && everyType(constraint, ts.or(isArrayType, isTupleType))) {
61550
61631
  return instantiateMappedArrayType(t, type, prependTypeMapping(typeVariable, t, mapper));
61551
61632
  }
61552
61633
  if (isGenericTupleType(t)) {
@@ -81645,7 +81726,7 @@ var ts;
81645
81726
  checkKindsOfPropertyMemberOverrides(type, baseType_1);
81646
81727
  }
81647
81728
  }
81648
- checkMembersForMissingOverrideModifier(node, type, typeWithThis, staticType);
81729
+ checkMembersForOverrideModifier(node, type, typeWithThis, staticType);
81649
81730
  var implementedTypeNodes = ts.getEffectiveImplementsTypeNodes(node);
81650
81731
  if (implementedTypeNodes) {
81651
81732
  for (var _b = 0, implementedTypeNodes_1 = implementedTypeNodes; _b < implementedTypeNodes_1.length; _b++) {
@@ -81680,8 +81761,7 @@ var ts;
81680
81761
  checkPropertyInitialization(node);
81681
81762
  }
81682
81763
  }
81683
- function checkMembersForMissingOverrideModifier(node, type, typeWithThis, staticType) {
81684
- var nodeInAmbientContext = !!(node.flags & 8388608 /* Ambient */);
81764
+ function checkMembersForOverrideModifier(node, type, typeWithThis, staticType) {
81685
81765
  var baseTypeNode = ts.getEffectiveBaseTypeNode(node);
81686
81766
  var baseTypes = baseTypeNode && getBaseTypes(type);
81687
81767
  var baseWithThis = (baseTypes === null || baseTypes === void 0 ? void 0 : baseTypes.length) ? getTypeWithThisArgument(ts.first(baseTypes), type.thisType) : undefined;
@@ -81693,46 +81773,71 @@ var ts;
81693
81773
  if (ts.isConstructorDeclaration(member)) {
81694
81774
  ts.forEach(member.parameters, function (param) {
81695
81775
  if (ts.isParameterPropertyDeclaration(param, member)) {
81696
- checkClassMember(param, /*memberIsParameterProperty*/ true);
81776
+ checkExistingMemberForOverrideModifier(node, staticType, baseStaticType, baseWithThis, type, typeWithThis, param,
81777
+ /* memberIsParameterProperty */ true);
81697
81778
  }
81698
81779
  });
81699
81780
  }
81700
- checkClassMember(member);
81781
+ checkExistingMemberForOverrideModifier(node, staticType, baseStaticType, baseWithThis, type, typeWithThis, member,
81782
+ /* memberIsParameterProperty */ false);
81701
81783
  };
81702
81784
  for (var _i = 0, _a = node.members; _i < _a.length; _i++) {
81703
81785
  var member = _a[_i];
81704
81786
  _loop_29(member);
81705
81787
  }
81706
- function checkClassMember(member, memberIsParameterProperty) {
81707
- var hasOverride = ts.hasOverrideModifier(member);
81708
- var hasStatic = ts.isStatic(member);
81709
- var isJs = ts.isInJSFile(member);
81710
- if (baseWithThis && (hasOverride || compilerOptions.noImplicitOverride)) {
81711
- var declaredProp = member.name && getSymbolAtLocation(member.name) || getSymbolAtLocation(member);
81712
- if (!declaredProp) {
81713
- return;
81714
- }
81715
- var thisType = hasStatic ? staticType : typeWithThis;
81716
- var baseType = hasStatic ? baseStaticType : baseWithThis;
81717
- var prop = getPropertyOfType(thisType, declaredProp.escapedName);
81718
- var baseProp = getPropertyOfType(baseType, declaredProp.escapedName);
81719
- var baseClassName = typeToString(baseWithThis);
81720
- if (prop && !baseProp && hasOverride) {
81721
- var suggestion = getSuggestedSymbolForNonexistentClassMember(ts.symbolName(declaredProp), baseType);
81788
+ }
81789
+ /**
81790
+ * @param member Existing member node to be checked.
81791
+ * Note: `member` cannot be a synthetic node.
81792
+ */
81793
+ function checkExistingMemberForOverrideModifier(node, staticType, baseStaticType, baseWithThis, type, typeWithThis, member, memberIsParameterProperty, reportErrors) {
81794
+ if (reportErrors === void 0) { reportErrors = true; }
81795
+ var declaredProp = member.name
81796
+ && getSymbolAtLocation(member.name)
81797
+ || getSymbolAtLocation(member);
81798
+ if (!declaredProp) {
81799
+ return 0 /* Ok */;
81800
+ }
81801
+ return checkMemberForOverrideModifier(node, staticType, baseStaticType, baseWithThis, type, typeWithThis, ts.hasOverrideModifier(member), ts.hasAbstractModifier(member), ts.isStatic(member), memberIsParameterProperty, ts.symbolName(declaredProp), reportErrors ? member : undefined);
81802
+ }
81803
+ /**
81804
+ * Checks a class member declaration for either a missing or an invalid `override` modifier.
81805
+ * Note: this function can be used for speculative checking,
81806
+ * i.e. checking a member that does not yet exist in the program.
81807
+ * An example of that would be to call this function in a completions scenario,
81808
+ * when offering a method declaration as completion.
81809
+ * @param errorNode The node where we should report an error, or undefined if we should not report errors.
81810
+ */
81811
+ function checkMemberForOverrideModifier(node, staticType, baseStaticType, baseWithThis, type, typeWithThis, memberHasOverrideModifier, memberHasAbstractModifier, memberIsStatic, memberIsParameterProperty, memberName, errorNode) {
81812
+ var isJs = ts.isInJSFile(node);
81813
+ var nodeInAmbientContext = !!(node.flags & 8388608 /* Ambient */);
81814
+ if (baseWithThis && (memberHasOverrideModifier || compilerOptions.noImplicitOverride)) {
81815
+ var memberEscapedName = ts.escapeLeadingUnderscores(memberName);
81816
+ var thisType = memberIsStatic ? staticType : typeWithThis;
81817
+ var baseType = memberIsStatic ? baseStaticType : baseWithThis;
81818
+ var prop = getPropertyOfType(thisType, memberEscapedName);
81819
+ var baseProp = getPropertyOfType(baseType, memberEscapedName);
81820
+ var baseClassName = typeToString(baseWithThis);
81821
+ if (prop && !baseProp && memberHasOverrideModifier) {
81822
+ if (errorNode) {
81823
+ var suggestion = getSuggestedSymbolForNonexistentClassMember(memberName, baseType); // Again, using symbol name: note that's different from `symbol.escapedName`
81722
81824
  suggestion ?
81723
- error(member, isJs ?
81825
+ error(errorNode, isJs ?
81724
81826
  ts.Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1 :
81725
81827
  ts.Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1, baseClassName, symbolToString(suggestion)) :
81726
- error(member, isJs ?
81828
+ error(errorNode, isJs ?
81727
81829
  ts.Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0 :
81728
81830
  ts.Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0, baseClassName);
81729
81831
  }
81730
- else if (prop && (baseProp === null || baseProp === void 0 ? void 0 : baseProp.declarations) && compilerOptions.noImplicitOverride && !nodeInAmbientContext) {
81731
- var baseHasAbstract = ts.some(baseProp.declarations, ts.hasAbstractModifier);
81732
- if (hasOverride) {
81733
- return;
81734
- }
81735
- if (!baseHasAbstract) {
81832
+ return 2 /* HasInvalidOverride */;
81833
+ }
81834
+ else if (prop && (baseProp === null || baseProp === void 0 ? void 0 : baseProp.declarations) && compilerOptions.noImplicitOverride && !nodeInAmbientContext) {
81835
+ var baseHasAbstract = ts.some(baseProp.declarations, ts.hasAbstractModifier);
81836
+ if (memberHasOverrideModifier) {
81837
+ return 0 /* Ok */;
81838
+ }
81839
+ if (!baseHasAbstract) {
81840
+ if (errorNode) {
81736
81841
  var diag = memberIsParameterProperty ?
81737
81842
  isJs ?
81738
81843
  ts.Diagnostics.This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0 :
@@ -81740,20 +81845,28 @@ var ts;
81740
81845
  isJs ?
81741
81846
  ts.Diagnostics.This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0 :
81742
81847
  ts.Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0;
81743
- error(member, diag, baseClassName);
81848
+ error(errorNode, diag, baseClassName);
81744
81849
  }
81745
- else if (ts.hasAbstractModifier(member) && baseHasAbstract) {
81746
- error(member, ts.Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0, baseClassName);
81850
+ return 1 /* NeedsOverride */;
81851
+ }
81852
+ else if (memberHasAbstractModifier && baseHasAbstract) {
81853
+ if (errorNode) {
81854
+ error(errorNode, ts.Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0, baseClassName);
81747
81855
  }
81856
+ return 1 /* NeedsOverride */;
81748
81857
  }
81749
81858
  }
81750
- else if (hasOverride) {
81859
+ }
81860
+ else if (memberHasOverrideModifier) {
81861
+ if (errorNode) {
81751
81862
  var className = typeToString(type);
81752
- error(member, isJs ?
81863
+ error(errorNode, isJs ?
81753
81864
  ts.Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class :
81754
81865
  ts.Diagnostics.This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class, className);
81755
81866
  }
81867
+ return 2 /* HasInvalidOverride */;
81756
81868
  }
81869
+ return 0 /* Ok */;
81757
81870
  }
81758
81871
  function issueMemberSpecificError(node, typeWithThis, baseWithThis, broadDiag) {
81759
81872
  // iterate over all implemented properties and issue errors on each one which isn't compatible, rather than the class as a whole, if possible
@@ -81796,6 +81909,31 @@ var ts;
81796
81909
  }
81797
81910
  }
81798
81911
  }
81912
+ /**
81913
+ * Checks a member declaration node to see if has a missing or invalid `override` modifier.
81914
+ * @param node Class-like node where the member is declared.
81915
+ * @param member Member declaration node.
81916
+ * Note: `member` can be a synthetic node without a parent.
81917
+ */
81918
+ function getMemberOverrideModifierStatus(node, member) {
81919
+ if (!member.name) {
81920
+ return 0 /* Ok */;
81921
+ }
81922
+ var symbol = getSymbolOfNode(node);
81923
+ var type = getDeclaredTypeOfSymbol(symbol);
81924
+ var typeWithThis = getTypeWithThisArgument(type);
81925
+ var staticType = getTypeOfSymbol(symbol);
81926
+ var baseTypeNode = ts.getEffectiveBaseTypeNode(node);
81927
+ var baseTypes = baseTypeNode && getBaseTypes(type);
81928
+ var baseWithThis = (baseTypes === null || baseTypes === void 0 ? void 0 : baseTypes.length) ? getTypeWithThisArgument(ts.first(baseTypes), type.thisType) : undefined;
81929
+ var baseStaticType = getBaseConstructorTypeOfClass(type);
81930
+ var memberHasOverrideModifier = member.parent
81931
+ ? ts.hasOverrideModifier(member)
81932
+ : ts.hasSyntacticModifier(member, 16384 /* Override */);
81933
+ var memberName = ts.unescapeLeadingUnderscores(ts.getTextOfPropertyName(member.name));
81934
+ return checkMemberForOverrideModifier(node, staticType, baseStaticType, baseWithThis, type, typeWithThis, memberHasOverrideModifier, ts.hasAbstractModifier(member), ts.isStatic(member),
81935
+ /* memberIsParameterProperty */ false, memberName);
81936
+ }
81799
81937
  function getTargetSymbol(s) {
81800
81938
  // if symbol is instantiated its flags are not copied from the 'target'
81801
81939
  // so we'll need to get back original 'target' symbol to work with correct set of flags
@@ -94792,11 +94930,11 @@ var ts;
94792
94930
  currentFileState.filenameDeclaration = declaration;
94793
94931
  return currentFileState.filenameDeclaration.name;
94794
94932
  }
94795
- function getJsxFactoryCalleePrimitive(childrenLength) {
94796
- return compilerOptions.jsx === 5 /* ReactJSXDev */ ? "jsxDEV" : childrenLength > 1 ? "jsxs" : "jsx";
94933
+ function getJsxFactoryCalleePrimitive(isStaticChildren) {
94934
+ return compilerOptions.jsx === 5 /* ReactJSXDev */ ? "jsxDEV" : isStaticChildren ? "jsxs" : "jsx";
94797
94935
  }
94798
- function getJsxFactoryCallee(childrenLength) {
94799
- var type = getJsxFactoryCalleePrimitive(childrenLength);
94936
+ function getJsxFactoryCallee(isStaticChildren) {
94937
+ var type = getJsxFactoryCalleePrimitive(isStaticChildren);
94800
94938
  return getImplicitImportForName(type);
94801
94939
  }
94802
94940
  function getImplicitJsxFragmentReference() {
@@ -94948,7 +95086,7 @@ var ts;
94948
95086
  }
94949
95087
  function convertJsxChildrenToChildrenPropAssignment(children) {
94950
95088
  var nonWhitespaceChildren = ts.getSemanticJsxChildren(children);
94951
- if (ts.length(nonWhitespaceChildren) === 1) {
95089
+ if (ts.length(nonWhitespaceChildren) === 1 && !nonWhitespaceChildren[0].dotDotDotToken) {
94952
95090
  var result_12 = transformJsxChildToExpression(nonWhitespaceChildren[0]);
94953
95091
  return result_12 && factory.createPropertyAssignment("children", result_12);
94954
95092
  }
@@ -94962,15 +95100,18 @@ var ts;
94962
95100
  var attrs = keyAttr ? ts.filter(node.attributes.properties, function (p) { return p !== keyAttr; }) : node.attributes.properties;
94963
95101
  var objectProperties = ts.length(attrs) ? transformJsxAttributesToObjectProps(attrs, childrenProp) :
94964
95102
  factory.createObjectLiteralExpression(childrenProp ? [childrenProp] : ts.emptyArray); // When there are no attributes, React wants {}
94965
- return visitJsxOpeningLikeElementOrFragmentJSX(tagName, objectProperties, keyAttr, ts.length(ts.getSemanticJsxChildren(children || ts.emptyArray)), isChild, location);
95103
+ return visitJsxOpeningLikeElementOrFragmentJSX(tagName, objectProperties, keyAttr, children || ts.emptyArray, isChild, location);
94966
95104
  }
94967
- function visitJsxOpeningLikeElementOrFragmentJSX(tagName, objectProperties, keyAttr, childrenLength, isChild, location) {
95105
+ function visitJsxOpeningLikeElementOrFragmentJSX(tagName, objectProperties, keyAttr, children, isChild, location) {
95106
+ var _a;
95107
+ var nonWhitespaceChildren = ts.getSemanticJsxChildren(children);
95108
+ var isStaticChildren = ts.length(nonWhitespaceChildren) > 1 || !!((_a = nonWhitespaceChildren[0]) === null || _a === void 0 ? void 0 : _a.dotDotDotToken);
94968
95109
  var args = [tagName, objectProperties, !keyAttr ? factory.createVoidZero() : transformJsxAttributeInitializer(keyAttr.initializer)];
94969
95110
  if (compilerOptions.jsx === 5 /* ReactJSXDev */) {
94970
95111
  var originalFile = ts.getOriginalNode(currentSourceFile);
94971
95112
  if (originalFile && ts.isSourceFile(originalFile)) {
94972
95113
  // isStaticChildren development flag
94973
- args.push(childrenLength > 1 ? factory.createTrue() : factory.createFalse());
95114
+ args.push(isStaticChildren ? factory.createTrue() : factory.createFalse());
94974
95115
  // __source development flag
94975
95116
  var lineCol = ts.getLineAndCharacterOfPosition(originalFile, location.pos);
94976
95117
  args.push(factory.createObjectLiteralExpression([
@@ -94982,7 +95123,7 @@ var ts;
94982
95123
  args.push(factory.createThis());
94983
95124
  }
94984
95125
  }
94985
- var element = ts.setTextRange(factory.createCallExpression(getJsxFactoryCallee(childrenLength), /*typeArguments*/ undefined, args), location);
95126
+ var element = ts.setTextRange(factory.createCallExpression(getJsxFactoryCallee(isStaticChildren), /*typeArguments*/ undefined, args), location);
94986
95127
  if (isChild) {
94987
95128
  ts.startOnNewLine(element);
94988
95129
  }
@@ -95012,7 +95153,7 @@ var ts;
95012
95153
  }
95013
95154
  }
95014
95155
  return visitJsxOpeningLikeElementOrFragmentJSX(getImplicitJsxFragmentReference(), childrenProps || factory.createObjectLiteralExpression([]),
95015
- /*keyAttr*/ undefined, ts.length(ts.getSemanticJsxChildren(children)), isChild, location);
95156
+ /*keyAttr*/ undefined, children, isChild, location);
95016
95157
  }
95017
95158
  function visitJsxOpeningFragmentCreateElement(node, children, isChild, location) {
95018
95159
  var element = ts.createExpressionForJsxFragment(factory, context.getEmitResolver().getJsxFactoryEntity(currentSourceFile), context.getEmitResolver().getJsxFragmentFactoryEntity(currentSourceFile), compilerOptions.reactNamespace, // TODO: GH#18217
@@ -108100,7 +108241,14 @@ var ts;
108100
108241
  // clear the parenthesizer rule as we ascend
108101
108242
  currentParenthesizerRule = undefined;
108102
108243
  }
108103
- function pipelineEmitWithHintWorker(hint, node) {
108244
+ function pipelineEmitWithHintWorker(hint, node, allowSnippets) {
108245
+ if (allowSnippets === void 0) { allowSnippets = true; }
108246
+ if (allowSnippets) {
108247
+ var snippet = ts.getSnippetElement(node);
108248
+ if (snippet) {
108249
+ return emitSnippetNode(hint, node, snippet);
108250
+ }
108251
+ }
108104
108252
  if (hint === 0 /* SourceFile */)
108105
108253
  return emitSourceFile(ts.cast(node, ts.isSourceFile));
108106
108254
  if (hint === 2 /* IdentifierName */)
@@ -108709,6 +108857,28 @@ var ts;
108709
108857
  }
108710
108858
  }
108711
108859
  //
108860
+ // Snippet Elements
108861
+ //
108862
+ function emitSnippetNode(hint, node, snippet) {
108863
+ switch (snippet.kind) {
108864
+ case 1 /* Placeholder */:
108865
+ emitPlaceholder(hint, node, snippet);
108866
+ break;
108867
+ case 0 /* TabStop */:
108868
+ emitTabStop(snippet);
108869
+ break;
108870
+ }
108871
+ }
108872
+ function emitPlaceholder(hint, node, snippet) {
108873
+ nonEscapingWrite("${" + snippet.order + ":"); // `${2:`
108874
+ pipelineEmitWithHintWorker(hint, node, /*allowSnippets*/ false); // `...`
108875
+ nonEscapingWrite("}"); // `}`
108876
+ // `${2:...}`
108877
+ }
108878
+ function emitTabStop(snippet) {
108879
+ nonEscapingWrite("$" + snippet.order);
108880
+ }
108881
+ //
108712
108882
  // Identifiers
108713
108883
  //
108714
108884
  function emitIdentifier(node) {
@@ -110947,6 +111117,15 @@ var ts;
110947
111117
  function writeProperty(s) {
110948
111118
  writer.writeProperty(s);
110949
111119
  }
111120
+ function nonEscapingWrite(s) {
111121
+ // This should be defined in a snippet-escaping text writer.
111122
+ if (writer.nonEscapingWrite) {
111123
+ writer.nonEscapingWrite(s);
111124
+ }
111125
+ else {
111126
+ writer.write(s);
111127
+ }
111128
+ }
110950
111129
  function writeLine(count) {
110951
111130
  if (count === void 0) { count = 1; }
110952
111131
  for (var i = 0; i < count; i++) {
@@ -114050,8 +114229,8 @@ var ts;
114050
114229
  var typesReferenceDirectives = ts.map(newSourceFile.typeReferenceDirectives, function (ref) { return ts.toFileNameLowerCase(ref.fileName); });
114051
114230
  var typeReferenceResolutions = resolveTypeReferenceDirectiveNamesWorker(typesReferenceDirectives, newSourceFile);
114052
114231
  // ensure that types resolutions are still correct
114053
- var typeReferenceEesolutionsChanged = ts.hasChangesInResolutions(typesReferenceDirectives, typeReferenceResolutions, oldSourceFile.resolvedTypeReferenceDirectiveNames, oldSourceFile, ts.typeDirectiveIsEqualTo);
114054
- if (typeReferenceEesolutionsChanged) {
114232
+ var typeReferenceResolutionsChanged = ts.hasChangesInResolutions(typesReferenceDirectives, typeReferenceResolutions, oldSourceFile.resolvedTypeReferenceDirectiveNames, oldSourceFile, ts.typeDirectiveIsEqualTo);
114233
+ if (typeReferenceResolutionsChanged) {
114055
114234
  structureIsReused = 1 /* SafeModules */;
114056
114235
  newSourceFile.resolvedTypeReferenceDirectiveNames = ts.zipToModeAwareCache(newSourceFile, typesReferenceDirectives, typeReferenceResolutions);
114057
114236
  }
@@ -115339,6 +115518,21 @@ var ts;
115339
115518
  return resolvedRef;
115340
115519
  }
115341
115520
  function verifyCompilerOptions() {
115521
+ var isNightly = ts.stringContains(ts.version, "-dev");
115522
+ if (!isNightly) {
115523
+ if (ts.getEmitModuleKind(options) === ts.ModuleKind.Node12) {
115524
+ createOptionValueDiagnostic("module", ts.Diagnostics.Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next, "module", "node12");
115525
+ }
115526
+ else if (ts.getEmitModuleKind(options) === ts.ModuleKind.NodeNext) {
115527
+ createOptionValueDiagnostic("module", ts.Diagnostics.Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next, "module", "nodenext");
115528
+ }
115529
+ else if (ts.getEmitModuleResolutionKind(options) === ts.ModuleResolutionKind.Node12) {
115530
+ createOptionValueDiagnostic("moduleResolution", ts.Diagnostics.Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next, "moduleResolution", "node12");
115531
+ }
115532
+ else if (ts.getEmitModuleResolutionKind(options) === ts.ModuleResolutionKind.NodeNext) {
115533
+ createOptionValueDiagnostic("moduleResolution", ts.Diagnostics.Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next, "moduleResolution", "nodenext");
115534
+ }
115535
+ }
115342
115536
  if (options.strictPropertyInitialization && !ts.getStrictOptionValue(options, "strictNullChecks")) {
115343
115537
  createDiagnosticForOptionName(ts.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "strictPropertyInitialization", "strictNullChecks");
115344
115538
  }
@@ -115817,8 +116011,8 @@ var ts;
115817
116011
  function createDiagnosticForOptionName(message, option1, option2, option3) {
115818
116012
  createDiagnosticForOption(/*onKey*/ true, option1, option2, message, option1, option2, option3);
115819
116013
  }
115820
- function createOptionValueDiagnostic(option1, message, arg0) {
115821
- createDiagnosticForOption(/*onKey*/ false, option1, /*option2*/ undefined, message, arg0);
116014
+ function createOptionValueDiagnostic(option1, message, arg0, arg1) {
116015
+ createDiagnosticForOption(/*onKey*/ false, option1, /*option2*/ undefined, message, arg0, arg1);
115822
116016
  }
115823
116017
  function createDiagnosticForReference(sourceFile, index, message, arg0, arg1) {
115824
116018
  var referencesSyntax = ts.firstDefined(ts.getTsConfigPropArray(sourceFile || options.configFile, "references"), function (property) { return ts.isArrayLiteralExpression(property.initializer) ? property.initializer : undefined; });
@@ -118062,6 +118256,9 @@ var ts;
118062
118256
  else {
118063
118257
  resolution = loader(name, containingFile, compilerOptions, ((_c = resolutionHost.getCompilerHost) === null || _c === void 0 ? void 0 : _c.call(resolutionHost)) || resolutionHost, redirectedReference, containingSourceFile);
118064
118258
  perDirectoryResolution.set(name, mode, resolution);
118259
+ if (resolutionHost.onDiscoveredSymlink && resolutionIsSymlink(resolution)) {
118260
+ resolutionHost.onDiscoveredSymlink();
118261
+ }
118065
118262
  }
118066
118263
  resolutionsInFile.set(name, mode, resolution);
118067
118264
  watchFailedLookupLocationsOfExternalModuleResolutions(name, resolution, path, getResolutionWithResolvedFileName);
@@ -118530,6 +118727,11 @@ var ts;
118530
118727
  }
118531
118728
  }
118532
118729
  ts.createResolutionCache = createResolutionCache;
118730
+ function resolutionIsSymlink(resolution) {
118731
+ var _a, _b;
118732
+ return !!(((_a = resolution.resolvedModule) === null || _a === void 0 ? void 0 : _a.originalPath) ||
118733
+ ((_b = resolution.resolvedTypeReferenceDirective) === null || _b === void 0 ? void 0 : _b.originalPath));
118734
+ }
118533
118735
  })(ts || (ts = {}));
118534
118736
  // Used by importFixes, getEditsForFileRename, and declaration emit to synthesize import module specifiers.
118535
118737
  /* @internal */
@@ -839,6 +839,7 @@
839
839
  "JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags_8021": "JSDoc \"@typedef\" 标记应具有类型注释,或其后跟有 \"@property\" 或 \"@member\" 标记。",
840
840
  "JSDoc_types_can_only_be_used_inside_documentation_comments_8020": "JSDoc 类型只能在文档注释内部使用。",
841
841
  "JSDoc_types_may_be_moved_to_TypeScript_types_80004": "JSDoc 类型可能会移到 TypeScript 类型。",
842
+ "JSON_imports_are_experimental_in_ES_module_mode_imports_7062": "JSON 导入在 ES 模块模式导入中是实验性的。",
842
843
  "JSX_attributes_must_only_be_assigned_a_non_empty_expression_17000": "只能为 JSX 属性分配非空“表达式”。",
843
844
  "JSX_element_0_has_no_corresponding_closing_tag_17008": "JSX 元素“{0}”没有相应的结束标记。",
844
845
  "JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property_2607": "JSX 元素类不支持特性,因为它不具有“{0}”属性。",
@@ -839,6 +839,7 @@
839
839
  "JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags_8021": "JSDoc '@typedef' 標記應具有類型註解,或者其後接著 '@property' 或 '@member' 標記。",
840
840
  "JSDoc_types_can_only_be_used_inside_documentation_comments_8020": "JSDoc 類型只能在文件註解中使用。",
841
841
  "JSDoc_types_may_be_moved_to_TypeScript_types_80004": "JSDoc 類型可移為 TypeScript 類型。",
842
+ "JSON_imports_are_experimental_in_ES_module_mode_imports_7062": "JSON 匯入在 ES 模組模式匯入中為實驗性。",
842
843
  "JSX_attributes_must_only_be_assigned_a_non_empty_expression_17000": "只能將非空白的 'expression' 指派給 JSX 屬性。",
843
844
  "JSX_element_0_has_no_corresponding_closing_tag_17008": "JSX 元素 '{0}' 沒有對應的結尾標記。",
844
845
  "JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property_2607": "因為 JSX 項目類別沒有 '{0}' 屬性 (property),所以不支援屬性 (attribute)。",
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.20211028",
5
+ "version": "4.5.0-dev.20211101",
6
6
  "license": "Apache-2.0",
7
7
  "description": "TypeScript is a language for application scale JavaScript development",
8
8
  "keywords": [