@typescript-deploys/pr-build 5.3.0-pr-55696-3 → 5.3.0-pr-55727-2

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
@@ -18,7 +18,7 @@ and limitations under the License.
18
18
 
19
19
  // src/compiler/corePublic.ts
20
20
  var versionMajorMinor = "5.3";
21
- var version = `${versionMajorMinor}.0-insiders.20230911`;
21
+ var version = `${versionMajorMinor}.0-insiders.20230913`;
22
22
 
23
23
  // src/compiler/core.ts
24
24
  var emptyArray = [];
@@ -36691,7 +36691,7 @@ function hasFileWithHigherPriorityExtension(file, literalFiles, wildcardFiles, e
36691
36691
  return false;
36692
36692
  }
36693
36693
  for (const ext of extensionGroup) {
36694
- if (fileExtensionIs(file, ext)) {
36694
+ if (fileExtensionIs(file, ext) && (ext !== ".ts" /* Ts */ || !fileExtensionIs(file, ".d.ts" /* Dts */))) {
36695
36695
  return false;
36696
36696
  }
36697
36697
  const higherPriorityPath = keyMapper(changeExtension(file, ext));
@@ -56266,8 +56266,7 @@ function createTypeChecker(host) {
56266
56266
  if (elementFlags.length === 1 && elementFlags[0] & 4 /* Rest */) {
56267
56267
  return readonly ? globalReadonlyArrayType : globalArrayType;
56268
56268
  }
56269
- const memberIds = mapDefined(namedMemberDeclarations, (node) => node ? getNodeId(node) : void 0);
56270
- const key = map(elementFlags, (f) => f & 1 /* Required */ ? "#" : f & 2 /* Optional */ ? "?" : f & 4 /* Rest */ ? "." : "*").join() + (readonly ? "R" : "") + (memberIds.length ? "," + memberIds.join(",") : "");
56269
+ const key = map(elementFlags, (f) => f & 1 /* Required */ ? "#" : f & 2 /* Optional */ ? "?" : f & 4 /* Rest */ ? "." : "*").join() + (readonly ? "R" : "") + (some(namedMemberDeclarations, (node) => !!node) ? "," + map(namedMemberDeclarations, (node) => node ? getNodeId(node) : "_").join(",") : "");
56271
56270
  let type = tupleTypes.get(key);
56272
56271
  if (!type) {
56273
56272
  tupleTypes.set(key, type = createTupleTargetType(elementFlags, readonly, namedMemberDeclarations));
@@ -79199,19 +79198,14 @@ function createTypeChecker(host) {
79199
79198
  function computeConstantValue(member) {
79200
79199
  const isConstEnum = isEnumConst(member.parent);
79201
79200
  const initializer = member.initializer;
79202
- const evaluated = evaluate(initializer, member);
79203
- if (evaluated) {
79204
- const { value } = evaluated;
79201
+ const value = evaluate(initializer, member);
79202
+ if (value !== void 0) {
79205
79203
  if (isConstEnum && typeof value === "number" && !isFinite(value)) {
79206
79204
  error(
79207
79205
  initializer,
79208
79206
  isNaN(value) ? Diagnostics.const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN : Diagnostics.const_enum_member_initializer_was_evaluated_to_a_non_finite_value
79209
79207
  );
79210
- } else if (typeof value !== "string" && typeof value !== "number") {
79211
- checkTypeAssignableTo(checkExpression(initializer), numberType, initializer, Diagnostics.Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values);
79212
- return void 0;
79213
79208
  }
79214
- return value;
79215
79209
  } else if (isConstEnum) {
79216
79210
  error(initializer, Diagnostics.const_enum_member_initializers_must_be_constant_expressions);
79217
79211
  } else if (member.parent.flags & 33554432 /* Ambient */) {
@@ -79219,113 +79213,65 @@ function createTypeChecker(host) {
79219
79213
  } else {
79220
79214
  checkTypeAssignableTo(checkExpression(initializer), numberType, initializer, Diagnostics.Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values);
79221
79215
  }
79222
- return void 0;
79216
+ return value;
79223
79217
  }
79224
79218
  function evaluate(expr, location) {
79225
79219
  switch (expr.kind) {
79226
- case 224 /* PrefixUnaryExpression */: {
79227
- const evaluated = evaluate(expr.operand, location);
79228
- if (!evaluated) {
79229
- break;
79230
- }
79231
- const { value } = evaluated;
79220
+ case 224 /* PrefixUnaryExpression */:
79221
+ const value = evaluate(expr.operand, location);
79232
79222
  if (typeof value === "number") {
79233
79223
  switch (expr.operator) {
79234
79224
  case 40 /* PlusToken */:
79235
- return { value };
79225
+ return value;
79236
79226
  case 41 /* MinusToken */:
79237
- return { value: -value };
79227
+ return -value;
79238
79228
  case 55 /* TildeToken */:
79239
- return { value: ~value };
79229
+ return ~value;
79240
79230
  }
79241
79231
  }
79242
- if (typeof value === "boolean" && expr.operator === 54 /* ExclamationToken */) {
79243
- return { value: !value };
79244
- }
79245
79232
  break;
79246
- }
79247
- case 226 /* BinaryExpression */: {
79248
- const evaluatedLeft = evaluate(expr.left, location);
79249
- if (!evaluatedLeft) {
79250
- break;
79251
- }
79252
- const evaluatedRight = evaluate(expr.right, location);
79253
- if (!evaluatedRight) {
79254
- break;
79255
- }
79256
- const left = evaluatedLeft.value;
79257
- const right = evaluatedRight.value;
79233
+ case 226 /* BinaryExpression */:
79234
+ const left = evaluate(expr.left, location);
79235
+ const right = evaluate(expr.right, location);
79258
79236
  if (typeof left === "number" && typeof right === "number") {
79259
79237
  switch (expr.operatorToken.kind) {
79260
79238
  case 52 /* BarToken */:
79261
- return { value: left | right };
79239
+ return left | right;
79262
79240
  case 51 /* AmpersandToken */:
79263
- return { value: left & right };
79241
+ return left & right;
79264
79242
  case 49 /* GreaterThanGreaterThanToken */:
79265
- return { value: left >> right };
79243
+ return left >> right;
79266
79244
  case 50 /* GreaterThanGreaterThanGreaterThanToken */:
79267
- return { value: left >>> right };
79268
- case 48 /* LessThanLessThanToken */:
79269
- return { value: left << right };
79270
- case 53 /* CaretToken */:
79271
- return { value: left ^ right };
79272
- case 42 /* AsteriskToken */:
79273
- return { value: left * right };
79274
- case 44 /* SlashToken */:
79275
- return { value: left / right };
79276
- case 40 /* PlusToken */:
79277
- return { value: left + right };
79278
- case 41 /* MinusToken */:
79279
- return { value: left - right };
79280
- case 45 /* PercentToken */:
79281
- return { value: left % right };
79282
- case 43 /* AsteriskAsteriskToken */:
79283
- return { value: left ** right };
79284
- }
79285
- } else if (typeof left === "bigint" && typeof right === "bigint") {
79286
- switch (expr.operatorToken.kind) {
79287
- case 52 /* BarToken */:
79288
- return { value: left | right };
79289
- case 51 /* AmpersandToken */:
79290
- return { value: left & right };
79291
- case 49 /* GreaterThanGreaterThanToken */:
79292
- return { value: left >> right };
79245
+ return left >>> right;
79293
79246
  case 48 /* LessThanLessThanToken */:
79294
- return { value: left << right };
79247
+ return left << right;
79295
79248
  case 53 /* CaretToken */:
79296
- return { value: left ^ right };
79249
+ return left ^ right;
79297
79250
  case 42 /* AsteriskToken */:
79298
- return { value: left * right };
79251
+ return left * right;
79299
79252
  case 44 /* SlashToken */:
79300
- return { value: left / right };
79253
+ return left / right;
79301
79254
  case 40 /* PlusToken */:
79302
- return { value: left + right };
79255
+ return left + right;
79303
79256
  case 41 /* MinusToken */:
79304
- return { value: left - right };
79257
+ return left - right;
79305
79258
  case 45 /* PercentToken */:
79306
- return { value: left % right };
79259
+ return left % right;
79307
79260
  case 43 /* AsteriskAsteriskToken */:
79308
- return { value: left ** right };
79261
+ return left ** right;
79309
79262
  }
79310
- } else if ((typeof left === "string" || typeof right === "string") && expr.operatorToken.kind === 40 /* PlusToken */) {
79311
- return { value: "" + left + right };
79263
+ } else if ((typeof left === "string" || typeof left === "number") && (typeof right === "string" || typeof right === "number") && expr.operatorToken.kind === 40 /* PlusToken */) {
79264
+ return "" + left + right;
79312
79265
  }
79313
79266
  break;
79314
- }
79315
79267
  case 11 /* StringLiteral */:
79316
79268
  case 15 /* NoSubstitutionTemplateLiteral */:
79317
- return { value: expr.text };
79318
- case 228 /* TemplateExpression */: {
79319
- const value = evaluateTemplateExpression(expr, location);
79320
- if (typeof value === "undefined") {
79321
- break;
79322
- }
79323
- return { value };
79324
- }
79269
+ return expr.text;
79270
+ case 228 /* TemplateExpression */:
79271
+ return evaluateTemplateExpression(expr, location);
79325
79272
  case 9 /* NumericLiteral */:
79326
- return { value: +expr.text };
79327
- case 10 /* BigIntLiteral */:
79328
- return { value: BigInt(expr.text) };
79273
+ checkGrammarNumericLiteral(expr);
79274
+ return +expr.text;
79329
79275
  case 217 /* ParenthesizedExpression */:
79330
79276
  return evaluate(expr.expression, location);
79331
79277
  case 80 /* Identifier */: {
@@ -79341,7 +79287,7 @@ function createTypeChecker(host) {
79341
79287
  /*diagnostic*/
79342
79288
  void 0
79343
79289
  )) {
79344
- return { value: +identifier.escapedText };
79290
+ return +identifier.escapedText;
79345
79291
  }
79346
79292
  }
79347
79293
  case 211 /* PropertyAccessExpression */:
@@ -79354,11 +79300,7 @@ function createTypeChecker(host) {
79354
79300
  );
79355
79301
  if (symbol) {
79356
79302
  if (symbol.flags & 8 /* EnumMember */) {
79357
- const value = location ? evaluateEnumMember(expr, symbol, location) : getEnumMemberValue(symbol.valueDeclaration);
79358
- if (typeof value === "undefined") {
79359
- break;
79360
- }
79361
- return { value };
79303
+ return location ? evaluateEnumMember(expr, symbol, location) : getEnumMemberValue(symbol.valueDeclaration);
79362
79304
  }
79363
79305
  if (isConstantVariable(symbol)) {
79364
79306
  const declaration = symbol.valueDeclaration;
@@ -79382,23 +79324,11 @@ function createTypeChecker(host) {
79382
79324
  const name = escapeLeadingUnderscores(expr.argumentExpression.text);
79383
79325
  const member = rootSymbol.exports.get(name);
79384
79326
  if (member) {
79385
- const value = location ? evaluateEnumMember(expr, member, location) : getEnumMemberValue(member.valueDeclaration);
79386
- if (typeof value === "undefined") {
79387
- break;
79388
- }
79389
- return { value };
79327
+ return location ? evaluateEnumMember(expr, member, location) : getEnumMemberValue(member.valueDeclaration);
79390
79328
  }
79391
79329
  }
79392
79330
  }
79393
79331
  break;
79394
- case 112 /* TrueKeyword */:
79395
- return { value: true };
79396
- case 97 /* FalseKeyword */:
79397
- return { value: false };
79398
- case 106 /* NullKeyword */:
79399
- return { value: null };
79400
- case 157 /* UndefinedKeyword */:
79401
- return { value: void 0 };
79402
79332
  }
79403
79333
  return void 0;
79404
79334
  }
@@ -79417,11 +79347,11 @@ function createTypeChecker(host) {
79417
79347
  function evaluateTemplateExpression(expr, location) {
79418
79348
  let result = expr.head.text;
79419
79349
  for (const span of expr.templateSpans) {
79420
- const evaluated = evaluate(span.expression, location);
79421
- if (!evaluated) {
79350
+ const value = evaluate(span.expression, location);
79351
+ if (value === void 0) {
79422
79352
  return void 0;
79423
79353
  }
79424
- result += evaluated.value;
79354
+ result += value;
79425
79355
  result += span.literal.text;
79426
79356
  }
79427
79357
  return result;
@@ -82024,11 +81954,11 @@ function createTypeChecker(host) {
82024
81954
  if (fileToDirective.has(file.path))
82025
81955
  return;
82026
81956
  fileToDirective.set(file.path, [key, mode]);
82027
- for (const { fileName, resolutionMode } of file.referencedFiles) {
81957
+ for (const { fileName } of file.referencedFiles) {
82028
81958
  const resolvedFile = resolveTripleslashReference(fileName, file.fileName);
82029
81959
  const referencedFile = host.getSourceFile(resolvedFile);
82030
81960
  if (referencedFile) {
82031
- addReferencedFilesToTypeDirective(referencedFile, key, resolutionMode || file.impliedNodeFormat);
81961
+ addReferencedFilesToTypeDirective(referencedFile, key, mode || file.impliedNodeFormat);
82032
81962
  }
82033
81963
  }
82034
81964
  }
@@ -114538,7 +114468,8 @@ function isIgnoredFileFromWildCardWatching({
114538
114468
  currentDirectory,
114539
114469
  useCaseSensitiveFileNames: useCaseSensitiveFileNames2,
114540
114470
  writeLog,
114541
- toPath: toPath3
114471
+ toPath: toPath3,
114472
+ getScriptKind
114542
114473
  }) {
114543
114474
  const newPath = removeIgnoredPath(fileOrDirectoryPath);
114544
114475
  if (!newPath) {
@@ -114548,7 +114479,7 @@ function isIgnoredFileFromWildCardWatching({
114548
114479
  fileOrDirectoryPath = newPath;
114549
114480
  if (fileOrDirectoryPath === watchedDirPath)
114550
114481
  return false;
114551
- if (hasExtension(fileOrDirectoryPath) && !isSupportedSourceFileName(fileOrDirectory, options, extraFileExtensions)) {
114482
+ if (hasExtension(fileOrDirectoryPath) && !(isSupportedSourceFileName(fileOrDirectory, options, extraFileExtensions) || isSupportedScriptKind())) {
114552
114483
  writeLog(`Project: ${configFileName} Detected file add/remove of non supported extension: ${fileOrDirectory}`);
114553
114484
  return true;
114554
114485
  }
@@ -114577,6 +114508,25 @@ function isIgnoredFileFromWildCardWatching({
114577
114508
  function hasSourceFile(file) {
114578
114509
  return realProgram ? !!realProgram.getSourceFileByPath(file) : builderProgram ? builderProgram.getState().fileInfos.has(file) : !!find(program, (rootFile) => toPath3(rootFile) === file);
114579
114510
  }
114511
+ function isSupportedScriptKind() {
114512
+ if (!getScriptKind)
114513
+ return false;
114514
+ const scriptKind = getScriptKind(fileOrDirectory);
114515
+ switch (scriptKind) {
114516
+ case 3 /* TS */:
114517
+ case 4 /* TSX */:
114518
+ case 7 /* Deferred */:
114519
+ case 5 /* External */:
114520
+ return true;
114521
+ case 1 /* JS */:
114522
+ case 2 /* JSX */:
114523
+ return getAllowJSCompilerOption(options);
114524
+ case 6 /* JSON */:
114525
+ return getResolveJsonModule(options);
114526
+ case 0 /* Unknown */:
114527
+ return false;
114528
+ }
114529
+ }
114580
114530
  }
114581
114531
  function isBuilderProgram(program) {
114582
114532
  return !!program.getState;
package/lib/tsserver.js CHANGED
@@ -2327,7 +2327,7 @@ module.exports = __toCommonJS(server_exports);
2327
2327
 
2328
2328
  // src/compiler/corePublic.ts
2329
2329
  var versionMajorMinor = "5.3";
2330
- var version = `${versionMajorMinor}.0-insiders.20230911`;
2330
+ var version = `${versionMajorMinor}.0-insiders.20230913`;
2331
2331
  var Comparison = /* @__PURE__ */ ((Comparison3) => {
2332
2332
  Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
2333
2333
  Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -41122,7 +41122,7 @@ function hasFileWithHigherPriorityExtension(file, literalFiles, wildcardFiles, e
41122
41122
  return false;
41123
41123
  }
41124
41124
  for (const ext of extensionGroup) {
41125
- if (fileExtensionIs(file, ext)) {
41125
+ if (fileExtensionIs(file, ext) && (ext !== ".ts" /* Ts */ || !fileExtensionIs(file, ".d.ts" /* Dts */))) {
41126
41126
  return false;
41127
41127
  }
41128
41128
  const higherPriorityPath = keyMapper(changeExtension(file, ext));
@@ -60968,8 +60968,7 @@ function createTypeChecker(host) {
60968
60968
  if (elementFlags.length === 1 && elementFlags[0] & 4 /* Rest */) {
60969
60969
  return readonly ? globalReadonlyArrayType : globalArrayType;
60970
60970
  }
60971
- const memberIds = mapDefined(namedMemberDeclarations, (node) => node ? getNodeId(node) : void 0);
60972
- const key = map(elementFlags, (f) => f & 1 /* Required */ ? "#" : f & 2 /* Optional */ ? "?" : f & 4 /* Rest */ ? "." : "*").join() + (readonly ? "R" : "") + (memberIds.length ? "," + memberIds.join(",") : "");
60971
+ const key = map(elementFlags, (f) => f & 1 /* Required */ ? "#" : f & 2 /* Optional */ ? "?" : f & 4 /* Rest */ ? "." : "*").join() + (readonly ? "R" : "") + (some(namedMemberDeclarations, (node) => !!node) ? "," + map(namedMemberDeclarations, (node) => node ? getNodeId(node) : "_").join(",") : "");
60973
60972
  let type = tupleTypes.get(key);
60974
60973
  if (!type) {
60975
60974
  tupleTypes.set(key, type = createTupleTargetType(elementFlags, readonly, namedMemberDeclarations));
@@ -83901,19 +83900,14 @@ function createTypeChecker(host) {
83901
83900
  function computeConstantValue(member) {
83902
83901
  const isConstEnum = isEnumConst(member.parent);
83903
83902
  const initializer = member.initializer;
83904
- const evaluated = evaluate(initializer, member);
83905
- if (evaluated) {
83906
- const { value } = evaluated;
83903
+ const value = evaluate(initializer, member);
83904
+ if (value !== void 0) {
83907
83905
  if (isConstEnum && typeof value === "number" && !isFinite(value)) {
83908
83906
  error2(
83909
83907
  initializer,
83910
83908
  isNaN(value) ? Diagnostics.const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN : Diagnostics.const_enum_member_initializer_was_evaluated_to_a_non_finite_value
83911
83909
  );
83912
- } else if (typeof value !== "string" && typeof value !== "number") {
83913
- checkTypeAssignableTo(checkExpression(initializer), numberType, initializer, Diagnostics.Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values);
83914
- return void 0;
83915
83910
  }
83916
- return value;
83917
83911
  } else if (isConstEnum) {
83918
83912
  error2(initializer, Diagnostics.const_enum_member_initializers_must_be_constant_expressions);
83919
83913
  } else if (member.parent.flags & 33554432 /* Ambient */) {
@@ -83921,113 +83915,65 @@ function createTypeChecker(host) {
83921
83915
  } else {
83922
83916
  checkTypeAssignableTo(checkExpression(initializer), numberType, initializer, Diagnostics.Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values);
83923
83917
  }
83924
- return void 0;
83918
+ return value;
83925
83919
  }
83926
83920
  function evaluate(expr, location) {
83927
83921
  switch (expr.kind) {
83928
- case 224 /* PrefixUnaryExpression */: {
83929
- const evaluated = evaluate(expr.operand, location);
83930
- if (!evaluated) {
83931
- break;
83932
- }
83933
- const { value } = evaluated;
83922
+ case 224 /* PrefixUnaryExpression */:
83923
+ const value = evaluate(expr.operand, location);
83934
83924
  if (typeof value === "number") {
83935
83925
  switch (expr.operator) {
83936
83926
  case 40 /* PlusToken */:
83937
- return { value };
83927
+ return value;
83938
83928
  case 41 /* MinusToken */:
83939
- return { value: -value };
83929
+ return -value;
83940
83930
  case 55 /* TildeToken */:
83941
- return { value: ~value };
83931
+ return ~value;
83942
83932
  }
83943
83933
  }
83944
- if (typeof value === "boolean" && expr.operator === 54 /* ExclamationToken */) {
83945
- return { value: !value };
83946
- }
83947
83934
  break;
83948
- }
83949
- case 226 /* BinaryExpression */: {
83950
- const evaluatedLeft = evaluate(expr.left, location);
83951
- if (!evaluatedLeft) {
83952
- break;
83953
- }
83954
- const evaluatedRight = evaluate(expr.right, location);
83955
- if (!evaluatedRight) {
83956
- break;
83957
- }
83958
- const left = evaluatedLeft.value;
83959
- const right = evaluatedRight.value;
83935
+ case 226 /* BinaryExpression */:
83936
+ const left = evaluate(expr.left, location);
83937
+ const right = evaluate(expr.right, location);
83960
83938
  if (typeof left === "number" && typeof right === "number") {
83961
83939
  switch (expr.operatorToken.kind) {
83962
83940
  case 52 /* BarToken */:
83963
- return { value: left | right };
83941
+ return left | right;
83964
83942
  case 51 /* AmpersandToken */:
83965
- return { value: left & right };
83943
+ return left & right;
83966
83944
  case 49 /* GreaterThanGreaterThanToken */:
83967
- return { value: left >> right };
83945
+ return left >> right;
83968
83946
  case 50 /* GreaterThanGreaterThanGreaterThanToken */:
83969
- return { value: left >>> right };
83970
- case 48 /* LessThanLessThanToken */:
83971
- return { value: left << right };
83972
- case 53 /* CaretToken */:
83973
- return { value: left ^ right };
83974
- case 42 /* AsteriskToken */:
83975
- return { value: left * right };
83976
- case 44 /* SlashToken */:
83977
- return { value: left / right };
83978
- case 40 /* PlusToken */:
83979
- return { value: left + right };
83980
- case 41 /* MinusToken */:
83981
- return { value: left - right };
83982
- case 45 /* PercentToken */:
83983
- return { value: left % right };
83984
- case 43 /* AsteriskAsteriskToken */:
83985
- return { value: left ** right };
83986
- }
83987
- } else if (typeof left === "bigint" && typeof right === "bigint") {
83988
- switch (expr.operatorToken.kind) {
83989
- case 52 /* BarToken */:
83990
- return { value: left | right };
83991
- case 51 /* AmpersandToken */:
83992
- return { value: left & right };
83993
- case 49 /* GreaterThanGreaterThanToken */:
83994
- return { value: left >> right };
83947
+ return left >>> right;
83995
83948
  case 48 /* LessThanLessThanToken */:
83996
- return { value: left << right };
83949
+ return left << right;
83997
83950
  case 53 /* CaretToken */:
83998
- return { value: left ^ right };
83951
+ return left ^ right;
83999
83952
  case 42 /* AsteriskToken */:
84000
- return { value: left * right };
83953
+ return left * right;
84001
83954
  case 44 /* SlashToken */:
84002
- return { value: left / right };
83955
+ return left / right;
84003
83956
  case 40 /* PlusToken */:
84004
- return { value: left + right };
83957
+ return left + right;
84005
83958
  case 41 /* MinusToken */:
84006
- return { value: left - right };
83959
+ return left - right;
84007
83960
  case 45 /* PercentToken */:
84008
- return { value: left % right };
83961
+ return left % right;
84009
83962
  case 43 /* AsteriskAsteriskToken */:
84010
- return { value: left ** right };
83963
+ return left ** right;
84011
83964
  }
84012
- } else if ((typeof left === "string" || typeof right === "string") && expr.operatorToken.kind === 40 /* PlusToken */) {
84013
- return { value: "" + left + right };
83965
+ } else if ((typeof left === "string" || typeof left === "number") && (typeof right === "string" || typeof right === "number") && expr.operatorToken.kind === 40 /* PlusToken */) {
83966
+ return "" + left + right;
84014
83967
  }
84015
83968
  break;
84016
- }
84017
83969
  case 11 /* StringLiteral */:
84018
83970
  case 15 /* NoSubstitutionTemplateLiteral */:
84019
- return { value: expr.text };
84020
- case 228 /* TemplateExpression */: {
84021
- const value = evaluateTemplateExpression(expr, location);
84022
- if (typeof value === "undefined") {
84023
- break;
84024
- }
84025
- return { value };
84026
- }
83971
+ return expr.text;
83972
+ case 228 /* TemplateExpression */:
83973
+ return evaluateTemplateExpression(expr, location);
84027
83974
  case 9 /* NumericLiteral */:
84028
- return { value: +expr.text };
84029
- case 10 /* BigIntLiteral */:
84030
- return { value: BigInt(expr.text) };
83975
+ checkGrammarNumericLiteral(expr);
83976
+ return +expr.text;
84031
83977
  case 217 /* ParenthesizedExpression */:
84032
83978
  return evaluate(expr.expression, location);
84033
83979
  case 80 /* Identifier */: {
@@ -84043,7 +83989,7 @@ function createTypeChecker(host) {
84043
83989
  /*diagnostic*/
84044
83990
  void 0
84045
83991
  )) {
84046
- return { value: +identifier.escapedText };
83992
+ return +identifier.escapedText;
84047
83993
  }
84048
83994
  }
84049
83995
  case 211 /* PropertyAccessExpression */:
@@ -84056,11 +84002,7 @@ function createTypeChecker(host) {
84056
84002
  );
84057
84003
  if (symbol) {
84058
84004
  if (symbol.flags & 8 /* EnumMember */) {
84059
- const value = location ? evaluateEnumMember(expr, symbol, location) : getEnumMemberValue(symbol.valueDeclaration);
84060
- if (typeof value === "undefined") {
84061
- break;
84062
- }
84063
- return { value };
84005
+ return location ? evaluateEnumMember(expr, symbol, location) : getEnumMemberValue(symbol.valueDeclaration);
84064
84006
  }
84065
84007
  if (isConstantVariable(symbol)) {
84066
84008
  const declaration = symbol.valueDeclaration;
@@ -84084,23 +84026,11 @@ function createTypeChecker(host) {
84084
84026
  const name = escapeLeadingUnderscores(expr.argumentExpression.text);
84085
84027
  const member = rootSymbol.exports.get(name);
84086
84028
  if (member) {
84087
- const value = location ? evaluateEnumMember(expr, member, location) : getEnumMemberValue(member.valueDeclaration);
84088
- if (typeof value === "undefined") {
84089
- break;
84090
- }
84091
- return { value };
84029
+ return location ? evaluateEnumMember(expr, member, location) : getEnumMemberValue(member.valueDeclaration);
84092
84030
  }
84093
84031
  }
84094
84032
  }
84095
84033
  break;
84096
- case 112 /* TrueKeyword */:
84097
- return { value: true };
84098
- case 97 /* FalseKeyword */:
84099
- return { value: false };
84100
- case 106 /* NullKeyword */:
84101
- return { value: null };
84102
- case 157 /* UndefinedKeyword */:
84103
- return { value: void 0 };
84104
84034
  }
84105
84035
  return void 0;
84106
84036
  }
@@ -84119,11 +84049,11 @@ function createTypeChecker(host) {
84119
84049
  function evaluateTemplateExpression(expr, location) {
84120
84050
  let result = expr.head.text;
84121
84051
  for (const span of expr.templateSpans) {
84122
- const evaluated = evaluate(span.expression, location);
84123
- if (!evaluated) {
84052
+ const value = evaluate(span.expression, location);
84053
+ if (value === void 0) {
84124
84054
  return void 0;
84125
84055
  }
84126
- result += evaluated.value;
84056
+ result += value;
84127
84057
  result += span.literal.text;
84128
84058
  }
84129
84059
  return result;
@@ -86726,11 +86656,11 @@ function createTypeChecker(host) {
86726
86656
  if (fileToDirective.has(file.path))
86727
86657
  return;
86728
86658
  fileToDirective.set(file.path, [key, mode]);
86729
- for (const { fileName, resolutionMode } of file.referencedFiles) {
86659
+ for (const { fileName } of file.referencedFiles) {
86730
86660
  const resolvedFile = resolveTripleslashReference(fileName, file.fileName);
86731
86661
  const referencedFile = host.getSourceFile(resolvedFile);
86732
86662
  if (referencedFile) {
86733
- addReferencedFilesToTypeDirective(referencedFile, key, resolutionMode || file.impliedNodeFormat);
86663
+ addReferencedFilesToTypeDirective(referencedFile, key, mode || file.impliedNodeFormat);
86734
86664
  }
86735
86665
  }
86736
86666
  }
@@ -119439,7 +119369,8 @@ function isIgnoredFileFromWildCardWatching({
119439
119369
  currentDirectory,
119440
119370
  useCaseSensitiveFileNames: useCaseSensitiveFileNames2,
119441
119371
  writeLog,
119442
- toPath: toPath3
119372
+ toPath: toPath3,
119373
+ getScriptKind: getScriptKind2
119443
119374
  }) {
119444
119375
  const newPath = removeIgnoredPath(fileOrDirectoryPath);
119445
119376
  if (!newPath) {
@@ -119449,7 +119380,7 @@ function isIgnoredFileFromWildCardWatching({
119449
119380
  fileOrDirectoryPath = newPath;
119450
119381
  if (fileOrDirectoryPath === watchedDirPath)
119451
119382
  return false;
119452
- if (hasExtension(fileOrDirectoryPath) && !isSupportedSourceFileName(fileOrDirectory, options, extraFileExtensions)) {
119383
+ if (hasExtension(fileOrDirectoryPath) && !(isSupportedSourceFileName(fileOrDirectory, options, extraFileExtensions) || isSupportedScriptKind())) {
119453
119384
  writeLog(`Project: ${configFileName} Detected file add/remove of non supported extension: ${fileOrDirectory}`);
119454
119385
  return true;
119455
119386
  }
@@ -119478,6 +119409,25 @@ function isIgnoredFileFromWildCardWatching({
119478
119409
  function hasSourceFile(file) {
119479
119410
  return realProgram ? !!realProgram.getSourceFileByPath(file) : builderProgram ? builderProgram.getState().fileInfos.has(file) : !!find(program, (rootFile) => toPath3(rootFile) === file);
119480
119411
  }
119412
+ function isSupportedScriptKind() {
119413
+ if (!getScriptKind2)
119414
+ return false;
119415
+ const scriptKind = getScriptKind2(fileOrDirectory);
119416
+ switch (scriptKind) {
119417
+ case 3 /* TS */:
119418
+ case 4 /* TSX */:
119419
+ case 7 /* Deferred */:
119420
+ case 5 /* External */:
119421
+ return true;
119422
+ case 1 /* JS */:
119423
+ case 2 /* JSX */:
119424
+ return getAllowJSCompilerOption(options);
119425
+ case 6 /* JSON */:
119426
+ return getResolveJsonModule(options);
119427
+ case 0 /* Unknown */:
119428
+ return false;
119429
+ }
119430
+ }
119481
119431
  }
119482
119432
  function isBuilderProgram(program) {
119483
119433
  return !!program.getState;
@@ -169764,7 +169714,7 @@ function getAllRules() {
169764
169714
  // insert space after '?' only when it is used in conditional operator
169765
169715
  rule("SpaceAfterQuestionMarkInConditionalOperator", 58 /* QuestionToken */, anyToken, [isNonJsxSameLineTokenContext, isConditionalOperatorContext], 4 /* InsertSpace */),
169766
169716
  // in other cases there should be no space between '?' and next token
169767
- rule("NoSpaceAfterQuestionMark", 58 /* QuestionToken */, anyToken, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),
169717
+ rule("NoSpaceAfterQuestionMark", 58 /* QuestionToken */, anyToken, [isNonJsxSameLineTokenContext, isNonOptionalPropertyContext], 16 /* DeleteSpace */),
169768
169718
  rule("NoSpaceBeforeDot", anyToken, [25 /* DotToken */, 29 /* QuestionDotToken */], [isNonJsxSameLineTokenContext, isNotPropertyAccessOnIntegerLiteral], 16 /* DeleteSpace */),
169769
169719
  rule("NoSpaceAfterDot", [25 /* DotToken */, 29 /* QuestionDotToken */], anyToken, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),
169770
169720
  rule("NoSpaceBetweenImportParenInImportType", 102 /* ImportKeyword */, 21 /* OpenParenToken */, [isNonJsxSameLineTokenContext, isImportTypeContext], 16 /* DeleteSpace */),
@@ -170109,6 +170059,12 @@ function isTypeAnnotationContext(context) {
170109
170059
  const contextKind = context.contextNode.kind;
170110
170060
  return contextKind === 172 /* PropertyDeclaration */ || contextKind === 171 /* PropertySignature */ || contextKind === 169 /* Parameter */ || contextKind === 260 /* VariableDeclaration */ || isFunctionLikeKind(contextKind);
170111
170061
  }
170062
+ function isOptionalPropertyContext(context) {
170063
+ return isPropertyDeclaration(context.contextNode) && context.contextNode.questionToken;
170064
+ }
170065
+ function isNonOptionalPropertyContext(context) {
170066
+ return !isOptionalPropertyContext(context);
170067
+ }
170112
170068
  function isConditionalOperatorContext(context) {
170113
170069
  return context.contextNode.kind === 227 /* ConditionalExpression */ || context.contextNode.kind === 194 /* ConditionalType */;
170114
170070
  }
@@ -176256,7 +176212,7 @@ var Project3 = class _Project {
176256
176212
  return scriptInfo;
176257
176213
  }
176258
176214
  getScriptKind(fileName) {
176259
- const info = this.getOrCreateScriptInfoAndAttachToProject(fileName);
176215
+ const info = this.projectService.getScriptInfoForPath(this.toPath(fileName));
176260
176216
  return info && info.scriptKind;
176261
176217
  }
176262
176218
  getScriptVersion(filename) {
@@ -179073,7 +179029,8 @@ var _ProjectService = class _ProjectService {
179073
179029
  program: (configuredProjectForConfig == null ? void 0 : configuredProjectForConfig.getCurrentProgram()) || config.parsedCommandLine.fileNames,
179074
179030
  useCaseSensitiveFileNames: this.host.useCaseSensitiveFileNames,
179075
179031
  writeLog: (s) => this.logger.info(s),
179076
- toPath: (s) => this.toPath(s)
179032
+ toPath: (s) => this.toPath(s),
179033
+ getScriptKind: configuredProjectForConfig ? (fileName) => configuredProjectForConfig.getScriptKind(fileName) : void 0
179077
179034
  }))
179078
179035
  return;
179079
179036
  if (config.reloadLevel !== 2 /* Full */)
package/lib/typescript.js CHANGED
@@ -35,7 +35,7 @@ var ts = (() => {
35
35
  "src/compiler/corePublic.ts"() {
36
36
  "use strict";
37
37
  versionMajorMinor = "5.3";
38
- version = `${versionMajorMinor}.0-insiders.20230911`;
38
+ version = `${versionMajorMinor}.0-insiders.20230913`;
39
39
  Comparison = /* @__PURE__ */ ((Comparison3) => {
40
40
  Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
41
41
  Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -37443,7 +37443,7 @@ ${lanes.join("\n")}
37443
37443
  return false;
37444
37444
  }
37445
37445
  for (const ext of extensionGroup) {
37446
- if (fileExtensionIs(file, ext)) {
37446
+ if (fileExtensionIs(file, ext) && (ext !== ".ts" /* Ts */ || !fileExtensionIs(file, ".d.ts" /* Dts */))) {
37447
37447
  return false;
37448
37448
  }
37449
37449
  const higherPriorityPath = keyMapper(changeExtension(file, ext));
@@ -58735,8 +58735,7 @@ ${lanes.join("\n")}
58735
58735
  if (elementFlags.length === 1 && elementFlags[0] & 4 /* Rest */) {
58736
58736
  return readonly ? globalReadonlyArrayType : globalArrayType;
58737
58737
  }
58738
- const memberIds = mapDefined(namedMemberDeclarations, (node) => node ? getNodeId(node) : void 0);
58739
- const key = map(elementFlags, (f) => f & 1 /* Required */ ? "#" : f & 2 /* Optional */ ? "?" : f & 4 /* Rest */ ? "." : "*").join() + (readonly ? "R" : "") + (memberIds.length ? "," + memberIds.join(",") : "");
58738
+ const key = map(elementFlags, (f) => f & 1 /* Required */ ? "#" : f & 2 /* Optional */ ? "?" : f & 4 /* Rest */ ? "." : "*").join() + (readonly ? "R" : "") + (some(namedMemberDeclarations, (node) => !!node) ? "," + map(namedMemberDeclarations, (node) => node ? getNodeId(node) : "_").join(",") : "");
58740
58739
  let type = tupleTypes.get(key);
58741
58740
  if (!type) {
58742
58741
  tupleTypes.set(key, type = createTupleTargetType(elementFlags, readonly, namedMemberDeclarations));
@@ -81668,19 +81667,14 @@ ${lanes.join("\n")}
81668
81667
  function computeConstantValue(member) {
81669
81668
  const isConstEnum = isEnumConst(member.parent);
81670
81669
  const initializer = member.initializer;
81671
- const evaluated = evaluate(initializer, member);
81672
- if (evaluated) {
81673
- const { value } = evaluated;
81670
+ const value = evaluate(initializer, member);
81671
+ if (value !== void 0) {
81674
81672
  if (isConstEnum && typeof value === "number" && !isFinite(value)) {
81675
81673
  error2(
81676
81674
  initializer,
81677
81675
  isNaN(value) ? Diagnostics.const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN : Diagnostics.const_enum_member_initializer_was_evaluated_to_a_non_finite_value
81678
81676
  );
81679
- } else if (typeof value !== "string" && typeof value !== "number") {
81680
- checkTypeAssignableTo(checkExpression(initializer), numberType, initializer, Diagnostics.Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values);
81681
- return void 0;
81682
81677
  }
81683
- return value;
81684
81678
  } else if (isConstEnum) {
81685
81679
  error2(initializer, Diagnostics.const_enum_member_initializers_must_be_constant_expressions);
81686
81680
  } else if (member.parent.flags & 33554432 /* Ambient */) {
@@ -81688,113 +81682,65 @@ ${lanes.join("\n")}
81688
81682
  } else {
81689
81683
  checkTypeAssignableTo(checkExpression(initializer), numberType, initializer, Diagnostics.Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values);
81690
81684
  }
81691
- return void 0;
81685
+ return value;
81692
81686
  }
81693
81687
  function evaluate(expr, location) {
81694
81688
  switch (expr.kind) {
81695
- case 224 /* PrefixUnaryExpression */: {
81696
- const evaluated = evaluate(expr.operand, location);
81697
- if (!evaluated) {
81698
- break;
81699
- }
81700
- const { value } = evaluated;
81689
+ case 224 /* PrefixUnaryExpression */:
81690
+ const value = evaluate(expr.operand, location);
81701
81691
  if (typeof value === "number") {
81702
81692
  switch (expr.operator) {
81703
81693
  case 40 /* PlusToken */:
81704
- return { value };
81694
+ return value;
81705
81695
  case 41 /* MinusToken */:
81706
- return { value: -value };
81696
+ return -value;
81707
81697
  case 55 /* TildeToken */:
81708
- return { value: ~value };
81698
+ return ~value;
81709
81699
  }
81710
81700
  }
81711
- if (typeof value === "boolean" && expr.operator === 54 /* ExclamationToken */) {
81712
- return { value: !value };
81713
- }
81714
81701
  break;
81715
- }
81716
- case 226 /* BinaryExpression */: {
81717
- const evaluatedLeft = evaluate(expr.left, location);
81718
- if (!evaluatedLeft) {
81719
- break;
81720
- }
81721
- const evaluatedRight = evaluate(expr.right, location);
81722
- if (!evaluatedRight) {
81723
- break;
81724
- }
81725
- const left = evaluatedLeft.value;
81726
- const right = evaluatedRight.value;
81702
+ case 226 /* BinaryExpression */:
81703
+ const left = evaluate(expr.left, location);
81704
+ const right = evaluate(expr.right, location);
81727
81705
  if (typeof left === "number" && typeof right === "number") {
81728
81706
  switch (expr.operatorToken.kind) {
81729
81707
  case 52 /* BarToken */:
81730
- return { value: left | right };
81708
+ return left | right;
81731
81709
  case 51 /* AmpersandToken */:
81732
- return { value: left & right };
81710
+ return left & right;
81733
81711
  case 49 /* GreaterThanGreaterThanToken */:
81734
- return { value: left >> right };
81712
+ return left >> right;
81735
81713
  case 50 /* GreaterThanGreaterThanGreaterThanToken */:
81736
- return { value: left >>> right };
81714
+ return left >>> right;
81737
81715
  case 48 /* LessThanLessThanToken */:
81738
- return { value: left << right };
81716
+ return left << right;
81739
81717
  case 53 /* CaretToken */:
81740
- return { value: left ^ right };
81718
+ return left ^ right;
81741
81719
  case 42 /* AsteriskToken */:
81742
- return { value: left * right };
81720
+ return left * right;
81743
81721
  case 44 /* SlashToken */:
81744
- return { value: left / right };
81722
+ return left / right;
81745
81723
  case 40 /* PlusToken */:
81746
- return { value: left + right };
81724
+ return left + right;
81747
81725
  case 41 /* MinusToken */:
81748
- return { value: left - right };
81726
+ return left - right;
81749
81727
  case 45 /* PercentToken */:
81750
- return { value: left % right };
81728
+ return left % right;
81751
81729
  case 43 /* AsteriskAsteriskToken */:
81752
- return { value: left ** right };
81730
+ return left ** right;
81753
81731
  }
81754
- } else if (typeof left === "bigint" && typeof right === "bigint") {
81755
- switch (expr.operatorToken.kind) {
81756
- case 52 /* BarToken */:
81757
- return { value: left | right };
81758
- case 51 /* AmpersandToken */:
81759
- return { value: left & right };
81760
- case 49 /* GreaterThanGreaterThanToken */:
81761
- return { value: left >> right };
81762
- case 48 /* LessThanLessThanToken */:
81763
- return { value: left << right };
81764
- case 53 /* CaretToken */:
81765
- return { value: left ^ right };
81766
- case 42 /* AsteriskToken */:
81767
- return { value: left * right };
81768
- case 44 /* SlashToken */:
81769
- return { value: left / right };
81770
- case 40 /* PlusToken */:
81771
- return { value: left + right };
81772
- case 41 /* MinusToken */:
81773
- return { value: left - right };
81774
- case 45 /* PercentToken */:
81775
- return { value: left % right };
81776
- case 43 /* AsteriskAsteriskToken */:
81777
- return { value: left ** right };
81778
- }
81779
- } else if ((typeof left === "string" || typeof right === "string") && expr.operatorToken.kind === 40 /* PlusToken */) {
81780
- return { value: "" + left + right };
81732
+ } else if ((typeof left === "string" || typeof left === "number") && (typeof right === "string" || typeof right === "number") && expr.operatorToken.kind === 40 /* PlusToken */) {
81733
+ return "" + left + right;
81781
81734
  }
81782
81735
  break;
81783
- }
81784
81736
  case 11 /* StringLiteral */:
81785
81737
  case 15 /* NoSubstitutionTemplateLiteral */:
81786
- return { value: expr.text };
81787
- case 228 /* TemplateExpression */: {
81788
- const value = evaluateTemplateExpression(expr, location);
81789
- if (typeof value === "undefined") {
81790
- break;
81791
- }
81792
- return { value };
81793
- }
81738
+ return expr.text;
81739
+ case 228 /* TemplateExpression */:
81740
+ return evaluateTemplateExpression(expr, location);
81794
81741
  case 9 /* NumericLiteral */:
81795
- return { value: +expr.text };
81796
- case 10 /* BigIntLiteral */:
81797
- return { value: BigInt(expr.text) };
81742
+ checkGrammarNumericLiteral(expr);
81743
+ return +expr.text;
81798
81744
  case 217 /* ParenthesizedExpression */:
81799
81745
  return evaluate(expr.expression, location);
81800
81746
  case 80 /* Identifier */: {
@@ -81810,7 +81756,7 @@ ${lanes.join("\n")}
81810
81756
  /*diagnostic*/
81811
81757
  void 0
81812
81758
  )) {
81813
- return { value: +identifier.escapedText };
81759
+ return +identifier.escapedText;
81814
81760
  }
81815
81761
  }
81816
81762
  case 211 /* PropertyAccessExpression */:
@@ -81823,11 +81769,7 @@ ${lanes.join("\n")}
81823
81769
  );
81824
81770
  if (symbol) {
81825
81771
  if (symbol.flags & 8 /* EnumMember */) {
81826
- const value = location ? evaluateEnumMember(expr, symbol, location) : getEnumMemberValue(symbol.valueDeclaration);
81827
- if (typeof value === "undefined") {
81828
- break;
81829
- }
81830
- return { value };
81772
+ return location ? evaluateEnumMember(expr, symbol, location) : getEnumMemberValue(symbol.valueDeclaration);
81831
81773
  }
81832
81774
  if (isConstantVariable(symbol)) {
81833
81775
  const declaration = symbol.valueDeclaration;
@@ -81851,23 +81793,11 @@ ${lanes.join("\n")}
81851
81793
  const name = escapeLeadingUnderscores(expr.argumentExpression.text);
81852
81794
  const member = rootSymbol.exports.get(name);
81853
81795
  if (member) {
81854
- const value = location ? evaluateEnumMember(expr, member, location) : getEnumMemberValue(member.valueDeclaration);
81855
- if (typeof value === "undefined") {
81856
- break;
81857
- }
81858
- return { value };
81796
+ return location ? evaluateEnumMember(expr, member, location) : getEnumMemberValue(member.valueDeclaration);
81859
81797
  }
81860
81798
  }
81861
81799
  }
81862
81800
  break;
81863
- case 112 /* TrueKeyword */:
81864
- return { value: true };
81865
- case 97 /* FalseKeyword */:
81866
- return { value: false };
81867
- case 106 /* NullKeyword */:
81868
- return { value: null };
81869
- case 157 /* UndefinedKeyword */:
81870
- return { value: void 0 };
81871
81801
  }
81872
81802
  return void 0;
81873
81803
  }
@@ -81886,11 +81816,11 @@ ${lanes.join("\n")}
81886
81816
  function evaluateTemplateExpression(expr, location) {
81887
81817
  let result = expr.head.text;
81888
81818
  for (const span of expr.templateSpans) {
81889
- const evaluated = evaluate(span.expression, location);
81890
- if (!evaluated) {
81819
+ const value = evaluate(span.expression, location);
81820
+ if (value === void 0) {
81891
81821
  return void 0;
81892
81822
  }
81893
- result += evaluated.value;
81823
+ result += value;
81894
81824
  result += span.literal.text;
81895
81825
  }
81896
81826
  return result;
@@ -84493,11 +84423,11 @@ ${lanes.join("\n")}
84493
84423
  if (fileToDirective.has(file.path))
84494
84424
  return;
84495
84425
  fileToDirective.set(file.path, [key, mode]);
84496
- for (const { fileName, resolutionMode } of file.referencedFiles) {
84426
+ for (const { fileName } of file.referencedFiles) {
84497
84427
  const resolvedFile = resolveTripleslashReference(fileName, file.fileName);
84498
84428
  const referencedFile = host.getSourceFile(resolvedFile);
84499
84429
  if (referencedFile) {
84500
- addReferencedFilesToTypeDirective(referencedFile, key, resolutionMode || file.impliedNodeFormat);
84430
+ addReferencedFilesToTypeDirective(referencedFile, key, mode || file.impliedNodeFormat);
84501
84431
  }
84502
84432
  }
84503
84433
  }
@@ -117536,7 +117466,8 @@ ${lanes.join("\n")}
117536
117466
  currentDirectory,
117537
117467
  useCaseSensitiveFileNames: useCaseSensitiveFileNames2,
117538
117468
  writeLog,
117539
- toPath: toPath3
117469
+ toPath: toPath3,
117470
+ getScriptKind: getScriptKind2
117540
117471
  }) {
117541
117472
  const newPath = removeIgnoredPath(fileOrDirectoryPath);
117542
117473
  if (!newPath) {
@@ -117546,7 +117477,7 @@ ${lanes.join("\n")}
117546
117477
  fileOrDirectoryPath = newPath;
117547
117478
  if (fileOrDirectoryPath === watchedDirPath)
117548
117479
  return false;
117549
- if (hasExtension(fileOrDirectoryPath) && !isSupportedSourceFileName(fileOrDirectory, options, extraFileExtensions)) {
117480
+ if (hasExtension(fileOrDirectoryPath) && !(isSupportedSourceFileName(fileOrDirectory, options, extraFileExtensions) || isSupportedScriptKind())) {
117550
117481
  writeLog(`Project: ${configFileName} Detected file add/remove of non supported extension: ${fileOrDirectory}`);
117551
117482
  return true;
117552
117483
  }
@@ -117575,6 +117506,25 @@ ${lanes.join("\n")}
117575
117506
  function hasSourceFile(file) {
117576
117507
  return realProgram ? !!realProgram.getSourceFileByPath(file) : builderProgram ? builderProgram.getState().fileInfos.has(file) : !!find(program, (rootFile) => toPath3(rootFile) === file);
117577
117508
  }
117509
+ function isSupportedScriptKind() {
117510
+ if (!getScriptKind2)
117511
+ return false;
117512
+ const scriptKind = getScriptKind2(fileOrDirectory);
117513
+ switch (scriptKind) {
117514
+ case 3 /* TS */:
117515
+ case 4 /* TSX */:
117516
+ case 7 /* Deferred */:
117517
+ case 5 /* External */:
117518
+ return true;
117519
+ case 1 /* JS */:
117520
+ case 2 /* JSX */:
117521
+ return getAllowJSCompilerOption(options);
117522
+ case 6 /* JSON */:
117523
+ return getResolveJsonModule(options);
117524
+ case 0 /* Unknown */:
117525
+ return false;
117526
+ }
117527
+ }
117578
117528
  }
117579
117529
  function isBuilderProgram(program) {
117580
117530
  return !!program.getState;
@@ -169236,7 +169186,7 @@ ${options.prefix}` : "\n" : options.prefix
169236
169186
  // insert space after '?' only when it is used in conditional operator
169237
169187
  rule("SpaceAfterQuestionMarkInConditionalOperator", 58 /* QuestionToken */, anyToken, [isNonJsxSameLineTokenContext, isConditionalOperatorContext], 4 /* InsertSpace */),
169238
169188
  // in other cases there should be no space between '?' and next token
169239
- rule("NoSpaceAfterQuestionMark", 58 /* QuestionToken */, anyToken, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),
169189
+ rule("NoSpaceAfterQuestionMark", 58 /* QuestionToken */, anyToken, [isNonJsxSameLineTokenContext, isNonOptionalPropertyContext], 16 /* DeleteSpace */),
169240
169190
  rule("NoSpaceBeforeDot", anyToken, [25 /* DotToken */, 29 /* QuestionDotToken */], [isNonJsxSameLineTokenContext, isNotPropertyAccessOnIntegerLiteral], 16 /* DeleteSpace */),
169241
169191
  rule("NoSpaceAfterDot", [25 /* DotToken */, 29 /* QuestionDotToken */], anyToken, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),
169242
169192
  rule("NoSpaceBetweenImportParenInImportType", 102 /* ImportKeyword */, 21 /* OpenParenToken */, [isNonJsxSameLineTokenContext, isImportTypeContext], 16 /* DeleteSpace */),
@@ -169581,6 +169531,12 @@ ${options.prefix}` : "\n" : options.prefix
169581
169531
  const contextKind = context.contextNode.kind;
169582
169532
  return contextKind === 172 /* PropertyDeclaration */ || contextKind === 171 /* PropertySignature */ || contextKind === 169 /* Parameter */ || contextKind === 260 /* VariableDeclaration */ || isFunctionLikeKind(contextKind);
169583
169533
  }
169534
+ function isOptionalPropertyContext(context) {
169535
+ return isPropertyDeclaration(context.contextNode) && context.contextNode.questionToken;
169536
+ }
169537
+ function isNonOptionalPropertyContext(context) {
169538
+ return !isOptionalPropertyContext(context);
169539
+ }
169584
169540
  function isConditionalOperatorContext(context) {
169585
169541
  return context.contextNode.kind === 227 /* ConditionalExpression */ || context.contextNode.kind === 194 /* ConditionalType */;
169586
169542
  }
@@ -173598,7 +173554,7 @@ ${options.prefix}` : "\n" : options.prefix
173598
173554
  return scriptInfo;
173599
173555
  }
173600
173556
  getScriptKind(fileName) {
173601
- const info = this.getOrCreateScriptInfoAndAttachToProject(fileName);
173557
+ const info = this.projectService.getScriptInfoForPath(this.toPath(fileName));
173602
173558
  return info && info.scriptKind;
173603
173559
  }
173604
173560
  getScriptVersion(filename) {
@@ -176419,7 +176375,8 @@ ${options.prefix}` : "\n" : options.prefix
176419
176375
  program: (configuredProjectForConfig == null ? void 0 : configuredProjectForConfig.getCurrentProgram()) || config.parsedCommandLine.fileNames,
176420
176376
  useCaseSensitiveFileNames: this.host.useCaseSensitiveFileNames,
176421
176377
  writeLog: (s) => this.logger.info(s),
176422
- toPath: (s) => this.toPath(s)
176378
+ toPath: (s) => this.toPath(s),
176379
+ getScriptKind: configuredProjectForConfig ? (fileName) => configuredProjectForConfig.getScriptKind(fileName) : void 0
176423
176380
  }))
176424
176381
  return;
176425
176382
  if (config.reloadLevel !== 2 /* Full */)
@@ -54,7 +54,7 @@ var path = __toESM(require("path"));
54
54
 
55
55
  // src/compiler/corePublic.ts
56
56
  var versionMajorMinor = "5.3";
57
- var version = `${versionMajorMinor}.0-insiders.20230911`;
57
+ var version = `${versionMajorMinor}.0-insiders.20230913`;
58
58
 
59
59
  // src/compiler/core.ts
60
60
  var emptyArray = [];
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@typescript-deploys/pr-build",
3
3
  "author": "Microsoft Corp.",
4
4
  "homepage": "https://www.typescriptlang.org/",
5
- "version": "5.3.0-pr-55696-3",
5
+ "version": "5.3.0-pr-55727-2",
6
6
  "license": "Apache-2.0",
7
7
  "description": "TypeScript is a language for application scale JavaScript development",
8
8
  "keywords": [
@@ -59,7 +59,7 @@
59
59
  "chalk": "^4.1.2",
60
60
  "chokidar": "^3.5.3",
61
61
  "diff": "^5.1.0",
62
- "dprint": "^0.40.2",
62
+ "dprint": "^0.41.0",
63
63
  "esbuild": "^0.19.0",
64
64
  "eslint": "^8.22.0",
65
65
  "eslint-formatter-autolinkable-stylish": "^1.2.0",
@@ -113,5 +113,5 @@
113
113
  "node": "20.1.0",
114
114
  "npm": "8.19.4"
115
115
  },
116
- "gitHead": "d855889d5e0e370ff7cf13b358a7dbbae5ad92ce"
116
+ "gitHead": "93ec2799df89a9621eb6cc3c4bf2367d6b6c0436"
117
117
  }