@angular/compiler-cli 14.1.0-next.2 → 14.1.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/bundles/{chunk-KGCKQ2PH.js → chunk-24DFPZCS.js} +10 -2
  2. package/bundles/chunk-24DFPZCS.js.map +6 -0
  3. package/bundles/{chunk-W6KM7BUM.js → chunk-4JF5LVDW.js} +5 -8
  4. package/bundles/chunk-4JF5LVDW.js.map +6 -0
  5. package/bundles/{chunk-R4NY3TJC.js → chunk-ACXPVP2W.js} +1 -1
  6. package/bundles/chunk-ACXPVP2W.js.map +6 -0
  7. package/bundles/{chunk-SO3HP2WO.js → chunk-ATB3HJXN.js} +8 -11
  8. package/bundles/chunk-ATB3HJXN.js.map +6 -0
  9. package/bundles/{chunk-WGBFSDVQ.js → chunk-CYVTLM4Z.js} +2 -6
  10. package/bundles/chunk-CYVTLM4Z.js.map +6 -0
  11. package/bundles/{chunk-LX5Q27EF.js → chunk-E7NQQTT7.js} +1 -1
  12. package/bundles/{chunk-LX5Q27EF.js.map → chunk-E7NQQTT7.js.map} +1 -1
  13. package/bundles/{chunk-QGR2YCRK.js → chunk-F2UCYAES.js} +19 -23
  14. package/bundles/chunk-F2UCYAES.js.map +6 -0
  15. package/bundles/{chunk-OLGEBPBY.js → chunk-FM6NPN5V.js} +3 -3
  16. package/bundles/{chunk-OLGEBPBY.js.map → chunk-FM6NPN5V.js.map} +0 -0
  17. package/bundles/{chunk-U2GR6UX6.js → chunk-GDAOEMFN.js} +11 -12
  18. package/bundles/chunk-GDAOEMFN.js.map +6 -0
  19. package/bundles/{chunk-5OLIDMUF.js → chunk-J6ZMRNVQ.js} +5 -9
  20. package/bundles/chunk-J6ZMRNVQ.js.map +6 -0
  21. package/bundles/{chunk-32MQTE7C.js → chunk-LPUQQ2CH.js} +56 -49
  22. package/bundles/chunk-LPUQQ2CH.js.map +6 -0
  23. package/bundles/{chunk-2IMT6JFI.js → chunk-NFCN3OZI.js} +1 -1
  24. package/bundles/chunk-NFCN3OZI.js.map +6 -0
  25. package/bundles/{chunk-T7MYRXIE.js → chunk-TOKOIIBI.js} +2 -2
  26. package/bundles/chunk-TOKOIIBI.js.map +6 -0
  27. package/bundles/{chunk-DSIJ6FBS.js → chunk-WAXJ3P3Y.js} +251 -91
  28. package/bundles/chunk-WAXJ3P3Y.js.map +6 -0
  29. package/bundles/{chunk-GMSUYBZP.js → chunk-XYNRD7NE.js} +1 -33
  30. package/bundles/{chunk-GMSUYBZP.js.map → chunk-XYNRD7NE.js.map} +0 -0
  31. package/bundles/index.js +11 -13
  32. package/bundles/index.js.map +1 -1
  33. package/bundles/linker/babel/index.js +13 -17
  34. package/bundles/linker/babel/index.js.map +1 -1
  35. package/bundles/linker/index.js +5 -5
  36. package/bundles/ngcc/index.js +11 -11
  37. package/bundles/ngcc/main-ngcc.js +12 -12
  38. package/bundles/ngcc/src/execution/cluster/ngcc_cluster_worker.js +11 -11
  39. package/bundles/ngcc/src/execution/cluster/ngcc_cluster_worker.js.map +1 -1
  40. package/bundles/ngcc/src/locking/lock_file_with_child_process/ngcc_lock_unlocker.js +3 -3
  41. package/bundles/private/bazel.js +2 -2
  42. package/bundles/private/localize.js +4 -4
  43. package/bundles/private/migrations.js +6 -6
  44. package/bundles/private/tooling.js +3 -3
  45. package/bundles/src/bin/ng_xi18n.js +9 -12
  46. package/bundles/src/bin/ng_xi18n.js.map +1 -1
  47. package/bundles/src/bin/ngc.js +8 -8
  48. package/bundles_metadata.json +1 -1
  49. package/linker/src/linker_import_generator.d.ts +1 -1
  50. package/ngcc/src/host/commonjs_umd_utils.d.ts +2 -2
  51. package/ngcc/src/host/esm5_host.d.ts +1 -1
  52. package/ngcc/src/packages/build_marker.d.ts +1 -1
  53. package/package.json +2 -2
  54. package/src/ngtsc/core/api/src/public_options.d.ts +1 -1
  55. package/src/ngtsc/core/src/compiler.d.ts +2 -2
  56. package/src/ngtsc/diagnostics/src/error_code.d.ts +49 -1
  57. package/src/ngtsc/diagnostics/src/extended_template_diagnostic_name.d.ts +5 -1
  58. package/src/ngtsc/incremental/src/state.d.ts +1 -1
  59. package/src/ngtsc/indexer/src/context.d.ts +1 -1
  60. package/src/ngtsc/metadata/src/registry.d.ts +2 -1
  61. package/src/ngtsc/perf/src/recorder.d.ts +1 -1
  62. package/src/ngtsc/reflection/src/host.d.ts +1 -1
  63. package/src/ngtsc/scope/src/dependency.d.ts +1 -1
  64. package/src/ngtsc/translator/src/api/ast_factory.d.ts +2 -2
  65. package/src/ngtsc/translator/src/import_manager.d.ts +1 -1
  66. package/src/ngtsc/typecheck/extended/api/extended_template_checker.d.ts +1 -1
  67. package/src/ngtsc/typecheck/extended/checks/missing_ngforof_let/index.d.ts +11 -0
  68. package/src/ngtsc/typecheck/extended/checks/optional_chain_not_nullable/index.d.ts +11 -0
  69. package/src/ngtsc/typecheck/extended/checks/suffix_not_supported/index.d.ts +11 -0
  70. package/src/ngtsc/typecheck/extended/checks/text_attribute_not_binding/index.d.ts +11 -0
  71. package/src/ngtsc/typecheck/src/tcb_util.d.ts +1 -1
  72. package/src/transformers/api.d.ts +2 -2
  73. package/bundles/chunk-2IMT6JFI.js.map +0 -6
  74. package/bundles/chunk-32MQTE7C.js.map +0 -6
  75. package/bundles/chunk-5OLIDMUF.js.map +0 -6
  76. package/bundles/chunk-DSIJ6FBS.js.map +0 -6
  77. package/bundles/chunk-KGCKQ2PH.js.map +0 -6
  78. package/bundles/chunk-QGR2YCRK.js.map +0 -6
  79. package/bundles/chunk-R4NY3TJC.js.map +0 -6
  80. package/bundles/chunk-SO3HP2WO.js.map +0 -6
  81. package/bundles/chunk-T7MYRXIE.js.map +0 -6
  82. package/bundles/chunk-U2GR6UX6.js.map +0 -6
  83. package/bundles/chunk-W6KM7BUM.js.map +0 -6
  84. package/bundles/chunk-WGBFSDVQ.js.map +0 -6
@@ -30,11 +30,11 @@ import {
30
30
  aliasTransformFactory,
31
31
  declarationTransformFactory,
32
32
  ivyTransformFactory
33
- } from "./chunk-32MQTE7C.js";
33
+ } from "./chunk-LPUQQ2CH.js";
34
34
  import {
35
35
  TypeScriptReflectionHost,
36
36
  isNamedClassDeclaration
37
- } from "./chunk-2IMT6JFI.js";
37
+ } from "./chunk-NFCN3OZI.js";
38
38
  import {
39
39
  AbsoluteModuleStrategy,
40
40
  AliasStrategy,
@@ -73,7 +73,7 @@ import {
73
73
  toUnredirectedSourceFile,
74
74
  translateExpression,
75
75
  translateType
76
- } from "./chunk-KGCKQ2PH.js";
76
+ } from "./chunk-24DFPZCS.js";
77
77
  import {
78
78
  LogicalFileSystem,
79
79
  absoluteFrom,
@@ -84,18 +84,14 @@ import {
84
84
  getSourceFileOrError,
85
85
  join,
86
86
  resolve
87
- } from "./chunk-T7MYRXIE.js";
87
+ } from "./chunk-TOKOIIBI.js";
88
88
  import {
89
89
  ActivePerfRecorder,
90
90
  DelegatingPerfRecorder,
91
91
  PerfCheckpoint,
92
92
  PerfEvent,
93
93
  PerfPhase
94
- } from "./chunk-R4NY3TJC.js";
95
- import {
96
- __spreadProps,
97
- __spreadValues
98
- } from "./chunk-GMSUYBZP.js";
94
+ } from "./chunk-ACXPVP2W.js";
99
95
 
100
96
  // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/transformers/api.mjs
101
97
  var DEFAULT_ERROR_CODE = 100;
@@ -157,7 +153,7 @@ var SymbolKind;
157
153
 
158
154
  // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/program.mjs
159
155
  import { HtmlParser, MessageBundle } from "@angular/compiler";
160
- import ts33 from "typescript";
156
+ import ts34 from "typescript";
161
157
 
162
158
  // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/transformers/i18n.mjs
163
159
  import { Xliff, Xliff2, Xmb } from "@angular/compiler";
@@ -262,7 +258,7 @@ function verifySupportedTypeScriptVersion() {
262
258
  }
263
259
 
264
260
  // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/core/src/compiler.mjs
265
- import ts31 from "typescript";
261
+ import ts32 from "typescript";
266
262
 
267
263
  // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/cycles/src/analyzer.mjs
268
264
  var CycleAnalyzer = class {
@@ -502,13 +498,13 @@ function checkForPrivateExports(entryPoint, checker, refGraph) {
502
498
  if (transitivePath !== null) {
503
499
  visibleVia = transitivePath.map((seg) => getNameOfDeclaration(seg)).join(" -> ");
504
500
  }
505
- const diagnostic = __spreadProps(__spreadValues({
501
+ const diagnostic = {
506
502
  category: ts5.DiagnosticCategory.Error,
507
503
  code: ngErrorCode(ErrorCode.SYMBOL_NOT_EXPORTED),
508
- file: transitiveReference.getSourceFile()
509
- }, getPosOfDeclaration(transitiveReference)), {
504
+ file: transitiveReference.getSourceFile(),
505
+ ...getPosOfDeclaration(transitiveReference),
510
506
  messageText: `Unsupported private ${descriptor} ${name}. This ${descriptor} is visible to consumers via ${visibleVia}, but is not exported from the top-level library entrypoint.`
511
- });
507
+ };
512
508
  diagnostics.push(diagnostic);
513
509
  }
514
510
  });
@@ -1567,11 +1563,11 @@ var TemplateVisitor = class extends TmplAstRecursiveVisitor {
1567
1563
  this.visitExpression(text.value);
1568
1564
  }
1569
1565
  visitReference(reference) {
1570
- const referenceIdentifer = this.targetToIdentifier(reference);
1571
- if (referenceIdentifer === null) {
1566
+ const referenceIdentifier = this.targetToIdentifier(reference);
1567
+ if (referenceIdentifier === null) {
1572
1568
  return;
1573
1569
  }
1574
- this.identifiers.add(referenceIdentifer);
1570
+ this.identifiers.add(referenceIdentifier);
1575
1571
  }
1576
1572
  visitVariable(variable) {
1577
1573
  const variableIdentifier = this.targetToIdentifier(variable);
@@ -1909,19 +1905,19 @@ var StandaloneComponentScopeReader = class {
1909
1905
  seen.add(ref.node);
1910
1906
  const dirMeta = this.metaReader.getDirectiveMetadata(ref);
1911
1907
  if (dirMeta !== null) {
1912
- dependencies.add(__spreadProps(__spreadValues({}, dirMeta), { ref }));
1908
+ dependencies.add({ ...dirMeta, ref });
1913
1909
  isPoisoned = isPoisoned || dirMeta.isPoisoned || !dirMeta.isStandalone;
1914
1910
  continue;
1915
1911
  }
1916
1912
  const pipeMeta = this.metaReader.getPipeMetadata(ref);
1917
1913
  if (pipeMeta !== null) {
1918
- dependencies.add(__spreadProps(__spreadValues({}, pipeMeta), { ref }));
1914
+ dependencies.add({ ...pipeMeta, ref });
1919
1915
  isPoisoned = isPoisoned || !pipeMeta.isStandalone;
1920
1916
  continue;
1921
1917
  }
1922
1918
  const ngModuleMeta = this.metaReader.getNgModuleMetadata(ref);
1923
1919
  if (ngModuleMeta !== null) {
1924
- dependencies.add(__spreadProps(__spreadValues({}, ngModuleMeta), { ref }));
1920
+ dependencies.add({ ...ngModuleMeta, ref });
1925
1921
  let ngModuleScope;
1926
1922
  if (ref.node.getSourceFile().isDeclarationFile) {
1927
1923
  ngModuleScope = this.dtsModuleReader.resolve(ref);
@@ -2604,7 +2600,7 @@ function requiresInlineTypeCheckBlock(ref, env, usedPipes, reflector) {
2604
2600
  return TcbInliningRequirement.MustInline;
2605
2601
  } else if (!checkIfGenericTypeBoundsCanBeEmitted(ref.node, reflector, env)) {
2606
2602
  return TcbInliningRequirement.ShouldInlineForGenericBounds;
2607
- } else if (Array.from(usedPipes.values()).some((pipeRef) => !env.canReferenceType(pipeRef))) {
2603
+ } else if (usedPipes.some((pipeRef) => !env.canReferenceType(pipeRef))) {
2608
2604
  return TcbInliningRequirement.MustInline;
2609
2605
  } else {
2610
2606
  return TcbInliningRequirement.None;
@@ -2961,10 +2957,11 @@ Consider enabling the 'strictTemplates' option in your tsconfig.json for better
2961
2957
  }
2962
2958
  };
2963
2959
  function makeInlineDiagnostic(templateId, code, node, messageText, relatedInformation) {
2964
- return __spreadProps(__spreadValues({}, makeDiagnostic(code, node, messageText, relatedInformation)), {
2960
+ return {
2961
+ ...makeDiagnostic(code, node, messageText, relatedInformation),
2965
2962
  componentFile: node.getSourceFile(),
2966
2963
  templateId
2967
- });
2964
+ };
2968
2965
  }
2969
2966
 
2970
2967
  // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/shim.mjs
@@ -4534,7 +4531,14 @@ var TypeCheckContextImpl = class {
4534
4531
  boundTarget,
4535
4532
  templateDiagnostics
4536
4533
  });
4537
- const inliningRequirement = requiresInlineTypeCheckBlock(ref, shimData.file, pipes, this.reflector);
4534
+ const usedPipes = [];
4535
+ for (const name of boundTarget.getUsedPipes()) {
4536
+ if (!pipes.has(name)) {
4537
+ continue;
4538
+ }
4539
+ usedPipes.push(pipes.get(name));
4540
+ }
4541
+ const inliningRequirement = requiresInlineTypeCheckBlock(ref, shimData.file, usedPipes, this.reflector);
4538
4542
  if (this.inlining === InliningMode.Error && inliningRequirement === TcbInliningRequirement.MustInline) {
4539
4543
  shimData.oobRecorder.requiresInlineTcb(templateId, ref.node);
4540
4544
  this.perf.eventCount(PerfEvent.SkipGenerateTcbNoInline);
@@ -4857,11 +4861,12 @@ var SymbolBuilder = class {
4857
4861
  return null;
4858
4862
  }
4859
4863
  const directives = this.getDirectivesOfNode(element);
4860
- return __spreadProps(__spreadValues({}, symbolFromDeclaration), {
4864
+ return {
4865
+ ...symbolFromDeclaration,
4861
4866
  kind: SymbolKind.Element,
4862
4867
  directives,
4863
4868
  templateNode: element
4864
- });
4869
+ };
4865
4870
  }
4866
4871
  getDirectivesOfNode(element) {
4867
4872
  var _a;
@@ -4884,14 +4889,15 @@ var SymbolBuilder = class {
4884
4889
  return null;
4885
4890
  }
4886
4891
  const isComponent = (_a2 = meta.isComponent) != null ? _a2 : null;
4887
- const directiveSymbol = __spreadProps(__spreadValues({}, symbol), {
4892
+ const directiveSymbol = {
4893
+ ...symbol,
4888
4894
  tsSymbol: symbol.tsSymbol,
4889
4895
  selector: meta.selector,
4890
4896
  isComponent,
4891
4897
  ngModule,
4892
4898
  kind: SymbolKind.Directive,
4893
4899
  isStructural: meta.isStructural
4894
- });
4900
+ };
4895
4901
  return directiveSymbol;
4896
4902
  }).filter((d) => d !== null);
4897
4903
  }
@@ -5028,11 +5034,12 @@ var SymbolBuilder = class {
5028
5034
  if (target === null) {
5029
5035
  continue;
5030
5036
  }
5031
- bindings.push(__spreadProps(__spreadValues({}, symbolInfo), {
5037
+ bindings.push({
5038
+ ...symbolInfo,
5032
5039
  tsSymbol: symbolInfo.tsSymbol,
5033
5040
  kind: SymbolKind.Binding,
5034
5041
  target
5035
- }));
5042
+ });
5036
5043
  }
5037
5044
  if (bindings.length === 0) {
5038
5045
  return null;
@@ -5149,13 +5156,14 @@ var SymbolBuilder = class {
5149
5156
  if (symbolInfo === null) {
5150
5157
  return null;
5151
5158
  }
5152
- return __spreadProps(__spreadValues({
5153
- kind: SymbolKind.Pipe
5154
- }, symbolInfo), {
5155
- classSymbol: __spreadProps(__spreadValues({}, pipeInstance), {
5159
+ return {
5160
+ kind: SymbolKind.Pipe,
5161
+ ...symbolInfo,
5162
+ classSymbol: {
5163
+ ...pipeInstance,
5156
5164
  tsSymbol: pipeInstance.tsSymbol
5157
- })
5158
- });
5165
+ }
5166
+ };
5159
5167
  }
5160
5168
  getSymbolOfTemplateExpression(expression) {
5161
5169
  if (expression instanceof ASTWithSource3) {
@@ -5187,13 +5195,14 @@ var SymbolBuilder = class {
5187
5195
  if (whenTrueSymbol === null) {
5188
5196
  return null;
5189
5197
  }
5190
- return __spreadProps(__spreadValues({}, whenTrueSymbol), {
5198
+ return {
5199
+ ...whenTrueSymbol,
5191
5200
  kind: SymbolKind.Expression,
5192
5201
  tsType: this.getTypeChecker().getTypeAtLocation(node)
5193
- });
5202
+ };
5194
5203
  } else {
5195
5204
  const symbolInfo = this.getSymbolOfTsNode(node);
5196
- return symbolInfo === null ? null : __spreadProps(__spreadValues({}, symbolInfo), { kind: SymbolKind.Expression });
5205
+ return symbolInfo === null ? null : { ...symbolInfo, kind: SymbolKind.Expression };
5197
5206
  }
5198
5207
  }
5199
5208
  getSymbolOfTsNode(node) {
@@ -5442,9 +5451,10 @@ var TemplateTypeCheckerImpl = class {
5442
5451
  const fileRecord = this.state.get(sfPath);
5443
5452
  const templateId = fileRecord.sourceManager.getTemplateId(clazz);
5444
5453
  const mapping = fileRecord.sourceManager.getSourceMapping(templateId);
5445
- return __spreadProps(__spreadValues({}, makeTemplateDiagnostic(templateId, mapping, sourceSpan, category, ngErrorCode(errorCode), message, relatedInformation)), {
5454
+ return {
5455
+ ...makeTemplateDiagnostic(templateId, mapping, sourceSpan, category, ngErrorCode(errorCode), message, relatedInformation),
5446
5456
  __ngCode: errorCode
5447
- });
5457
+ };
5448
5458
  }
5449
5459
  getOrCreateCompletionEngine(component) {
5450
5460
  if (this.completionCache.has(component)) {
@@ -5922,6 +5932,39 @@ var factory2 = {
5922
5932
  }
5923
5933
  };
5924
5934
 
5935
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/missing_ngforof_let/index.mjs
5936
+ import { TmplAstTemplate as TmplAstTemplate5 } from "@angular/compiler";
5937
+ var MissingNgForOfLetCheck = class extends TemplateCheckWithVisitor {
5938
+ constructor() {
5939
+ super(...arguments);
5940
+ this.code = ErrorCode.MISSING_NGFOROF_LET;
5941
+ }
5942
+ visitNode(ctx, component, node) {
5943
+ const isTemplate = node instanceof TmplAstTemplate5;
5944
+ if (!(node instanceof TmplAstTemplate5)) {
5945
+ return [];
5946
+ }
5947
+ if (node.templateAttrs.length === 0) {
5948
+ return [];
5949
+ }
5950
+ const attr = node.templateAttrs.find((x) => x.name === "ngFor");
5951
+ if (attr === void 0) {
5952
+ return [];
5953
+ }
5954
+ if (node.variables.length > 0) {
5955
+ return [];
5956
+ }
5957
+ const errorString = "Your ngFor is missing a value. Did you forget to add the `let` keyword?";
5958
+ const diagnostic = ctx.makeTemplateDiagnostic(attr.sourceSpan, errorString);
5959
+ return [diagnostic];
5960
+ }
5961
+ };
5962
+ var factory3 = {
5963
+ code: ErrorCode.MISSING_NGFOROF_LET,
5964
+ name: ExtendedTemplateDiagnosticName.MISSING_NGFOROF_LET,
5965
+ create: () => new MissingNgForOfLetCheck()
5966
+ };
5967
+
5925
5968
  // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/nullish_coalescing_not_nullable/index.mjs
5926
5969
  import { Binary } from "@angular/compiler";
5927
5970
  import ts29 from "typescript";
@@ -5955,7 +5998,7 @@ var NullishCoalescingNotNullableCheck = class extends TemplateCheckWithVisitor {
5955
5998
  return [diagnostic];
5956
5999
  }
5957
6000
  };
5958
- var factory3 = {
6001
+ var factory4 = {
5959
6002
  code: ErrorCode.NULLISH_COALESCING_NOT_NULLABLE,
5960
6003
  name: ExtendedTemplateDiagnosticName.NULLISH_COALESCING_NOT_NULLABLE,
5961
6004
  create: (options) => {
@@ -5967,8 +6010,117 @@ var factory3 = {
5967
6010
  }
5968
6011
  };
5969
6012
 
5970
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/src/extended_template_checker.mjs
6013
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/optional_chain_not_nullable/index.mjs
6014
+ import { SafeCall as SafeCall2, SafeKeyedRead as SafeKeyedRead2, SafePropertyRead as SafePropertyRead5 } from "@angular/compiler";
5971
6015
  import ts30 from "typescript";
6016
+ var OptionalChainNotNullableCheck = class extends TemplateCheckWithVisitor {
6017
+ constructor() {
6018
+ super(...arguments);
6019
+ this.code = ErrorCode.OPTIONAL_CHAIN_NOT_NULLABLE;
6020
+ }
6021
+ visitNode(ctx, component, node) {
6022
+ if (!(node instanceof SafeCall2) && !(node instanceof SafePropertyRead5) && !(node instanceof SafeKeyedRead2))
6023
+ return [];
6024
+ const symbolLeft = ctx.templateTypeChecker.getSymbolOfNode(node.receiver, component);
6025
+ if (symbolLeft === null || symbolLeft.kind !== SymbolKind.Expression) {
6026
+ return [];
6027
+ }
6028
+ const typeLeft = symbolLeft.tsType;
6029
+ if (typeLeft.flags & (ts30.TypeFlags.Any | ts30.TypeFlags.Unknown)) {
6030
+ return [];
6031
+ }
6032
+ if (typeLeft.getNonNullableType() !== typeLeft)
6033
+ return [];
6034
+ const symbol = ctx.templateTypeChecker.getSymbolOfNode(node, component);
6035
+ if (symbol.kind !== SymbolKind.Expression) {
6036
+ return [];
6037
+ }
6038
+ const templateMapping = ctx.templateTypeChecker.getTemplateMappingAtTcbLocation(symbol.tcbLocation);
6039
+ if (templateMapping === null) {
6040
+ return [];
6041
+ }
6042
+ const advice = node instanceof SafePropertyRead5 ? `the '?.' operator can be replaced with the '.' operator` : `the '?.' operator can be safely removed`;
6043
+ const diagnostic = ctx.makeTemplateDiagnostic(templateMapping.span, `The left side of this optional chain operation does not include 'null' or 'undefined' in its type, therefore ${advice}.`);
6044
+ return [diagnostic];
6045
+ }
6046
+ };
6047
+ var factory5 = {
6048
+ code: ErrorCode.OPTIONAL_CHAIN_NOT_NULLABLE,
6049
+ name: ExtendedTemplateDiagnosticName.OPTIONAL_CHAIN_NOT_NULLABLE,
6050
+ create: (options) => {
6051
+ const strictNullChecks = options.strictNullChecks === void 0 ? !!options.strict : !!options.strictNullChecks;
6052
+ if (!strictNullChecks) {
6053
+ return null;
6054
+ }
6055
+ return new OptionalChainNotNullableCheck();
6056
+ }
6057
+ };
6058
+
6059
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/suffix_not_supported/index.mjs
6060
+ import { TmplAstBoundAttribute as TmplAstBoundAttribute3 } from "@angular/compiler";
6061
+ var STYLE_SUFFIXES = ["px", "%", "em"];
6062
+ var SuffixNotSupportedCheck = class extends TemplateCheckWithVisitor {
6063
+ constructor() {
6064
+ super(...arguments);
6065
+ this.code = ErrorCode.SUFFIX_NOT_SUPPORTED;
6066
+ }
6067
+ visitNode(ctx, component, node) {
6068
+ if (!(node instanceof TmplAstBoundAttribute3))
6069
+ return [];
6070
+ if (!node.keySpan.toString().startsWith("attr.") || !STYLE_SUFFIXES.some((suffix) => node.name.endsWith(`.${suffix}`))) {
6071
+ return [];
6072
+ }
6073
+ const diagnostic = ctx.makeTemplateDiagnostic(node.keySpan, `The ${STYLE_SUFFIXES.map((suffix) => `'.${suffix}'`).join(", ")} suffixes are only supported on style bindings.`);
6074
+ return [diagnostic];
6075
+ }
6076
+ };
6077
+ var factory6 = {
6078
+ code: ErrorCode.SUFFIX_NOT_SUPPORTED,
6079
+ name: ExtendedTemplateDiagnosticName.SUFFIX_NOT_SUPPORTED,
6080
+ create: () => new SuffixNotSupportedCheck()
6081
+ };
6082
+
6083
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/text_attribute_not_binding/index.mjs
6084
+ import { TmplAstTextAttribute as TmplAstTextAttribute4 } from "@angular/compiler";
6085
+ var TextAttributeNotBindingSpec = class extends TemplateCheckWithVisitor {
6086
+ constructor() {
6087
+ super(...arguments);
6088
+ this.code = ErrorCode.TEXT_ATTRIBUTE_NOT_BINDING;
6089
+ }
6090
+ visitNode(ctx, component, node) {
6091
+ if (!(node instanceof TmplAstTextAttribute4))
6092
+ return [];
6093
+ const name = node.name;
6094
+ if (!name.startsWith("attr.") && !name.startsWith("style.") && !name.startsWith("class.")) {
6095
+ return [];
6096
+ }
6097
+ let errorString;
6098
+ if (name.startsWith("attr.")) {
6099
+ const staticAttr = name.replace("attr.", "");
6100
+ errorString = `Static attributes should be written without the 'attr.' prefix.`;
6101
+ if (node.value) {
6102
+ errorString += ` For example, ${staticAttr}="${node.value}".`;
6103
+ }
6104
+ } else {
6105
+ const expectedKey = `[${name}]`;
6106
+ const expectedValue = node.value === "true" || node.value === "false" ? node.value : `'${node.value}'`;
6107
+ errorString = "Attribute, style, and class bindings should be enclosed with square braces.";
6108
+ if (node.value) {
6109
+ errorString += ` For example, '${expectedKey}="${expectedValue}"'.`;
6110
+ }
6111
+ }
6112
+ const diagnostic = ctx.makeTemplateDiagnostic(node.sourceSpan, errorString);
6113
+ return [diagnostic];
6114
+ }
6115
+ };
6116
+ var factory7 = {
6117
+ code: ErrorCode.TEXT_ATTRIBUTE_NOT_BINDING,
6118
+ name: ExtendedTemplateDiagnosticName.TEXT_ATTRIBUTE_NOT_BINDING,
6119
+ create: () => new TextAttributeNotBindingSpec()
6120
+ };
6121
+
6122
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/src/extended_template_checker.mjs
6123
+ import ts31 from "typescript";
5972
6124
 
5973
6125
  // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/core/api/src/public_options.mjs
5974
6126
  var DiagnosticCategoryLabel;
@@ -5984,12 +6136,12 @@ var ExtendedTemplateCheckerImpl = class {
5984
6136
  var _a, _b, _c, _d, _e;
5985
6137
  this.partialCtx = { templateTypeChecker, typeChecker };
5986
6138
  this.templateChecks = /* @__PURE__ */ new Map();
5987
- for (const factory4 of templateCheckFactories) {
5988
- const category = diagnosticLabelToCategory((_e = (_d = (_b = (_a = options == null ? void 0 : options.extendedDiagnostics) == null ? void 0 : _a.checks) == null ? void 0 : _b[factory4.name]) != null ? _d : (_c = options == null ? void 0 : options.extendedDiagnostics) == null ? void 0 : _c.defaultCategory) != null ? _e : DiagnosticCategoryLabel.Warning);
6139
+ for (const factory8 of templateCheckFactories) {
6140
+ const category = diagnosticLabelToCategory((_e = (_d = (_b = (_a = options == null ? void 0 : options.extendedDiagnostics) == null ? void 0 : _a.checks) == null ? void 0 : _b[factory8.name]) != null ? _d : (_c = options == null ? void 0 : options.extendedDiagnostics) == null ? void 0 : _c.defaultCategory) != null ? _e : DiagnosticCategoryLabel.Warning);
5989
6141
  if (category === null) {
5990
6142
  continue;
5991
6143
  }
5992
- const check = factory4.create(options);
6144
+ const check = factory8.create(options);
5993
6145
  if (check === null) {
5994
6146
  continue;
5995
6147
  }
@@ -6003,11 +6155,12 @@ var ExtendedTemplateCheckerImpl = class {
6003
6155
  }
6004
6156
  const diagnostics = [];
6005
6157
  for (const [check, category] of this.templateChecks.entries()) {
6006
- const ctx = __spreadProps(__spreadValues({}, this.partialCtx), {
6158
+ const ctx = {
6159
+ ...this.partialCtx,
6007
6160
  makeTemplateDiagnostic: (span, message, relatedInformation) => {
6008
6161
  return this.partialCtx.templateTypeChecker.makeTemplateDiagnostic(component, span, category, check.code, message, relatedInformation);
6009
6162
  }
6010
- });
6163
+ };
6011
6164
  diagnostics.push(...check.run(ctx, component, template));
6012
6165
  }
6013
6166
  return diagnostics;
@@ -6016,9 +6169,9 @@ var ExtendedTemplateCheckerImpl = class {
6016
6169
  function diagnosticLabelToCategory(label) {
6017
6170
  switch (label) {
6018
6171
  case DiagnosticCategoryLabel.Warning:
6019
- return ts30.DiagnosticCategory.Warning;
6172
+ return ts31.DiagnosticCategory.Warning;
6020
6173
  case DiagnosticCategoryLabel.Error:
6021
- return ts30.DiagnosticCategory.Error;
6174
+ return ts31.DiagnosticCategory.Error;
6022
6175
  case DiagnosticCategoryLabel.Suppress:
6023
6176
  return null;
6024
6177
  default:
@@ -6033,8 +6186,12 @@ ${value}`);
6033
6186
  // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/index.mjs
6034
6187
  var ALL_DIAGNOSTIC_FACTORIES = [
6035
6188
  factory,
6189
+ factory4,
6190
+ factory5,
6191
+ factory2,
6192
+ factory7,
6036
6193
  factory3,
6037
- factory2
6194
+ factory6
6038
6195
  ];
6039
6196
 
6040
6197
  // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/core/src/compiler.mjs
@@ -6114,7 +6271,7 @@ var NgCompiler = class {
6114
6271
  this.currentProgram = inputProgram;
6115
6272
  this.closureCompilerEnabled = !!this.options.annotateForClosureCompiler;
6116
6273
  this.entryPoint = adapter.entryPoint !== null ? getSourceFileOrNull(inputProgram, adapter.entryPoint) : null;
6117
- const moduleResolutionCache = ts31.createModuleResolutionCache(this.adapter.getCurrentDirectory(), this.adapter.getCanonicalFileName.bind(this.adapter));
6274
+ const moduleResolutionCache = ts32.createModuleResolutionCache(this.adapter.getCurrentDirectory(), this.adapter.getCanonicalFileName.bind(this.adapter));
6118
6275
  this.moduleResolver = new ModuleResolver(inputProgram, this.options, this.adapter, moduleResolutionCache);
6119
6276
  this.resourceManager = new AdapterResourceLoader(adapter, this.options);
6120
6277
  this.cycleAnalyzer = new CycleAnalyzer(new ImportGraph(inputProgram.getTypeChecker(), this.delegatingPerfRecorder));
@@ -6170,7 +6327,7 @@ var NgCompiler = class {
6170
6327
  }
6171
6328
  for (const clazz of classesToUpdate) {
6172
6329
  this.compilation.traitCompiler.updateResources(clazz);
6173
- if (!ts31.isClassDeclaration(clazz)) {
6330
+ if (!ts32.isClassDeclaration(clazz)) {
6174
6331
  continue;
6175
6332
  }
6176
6333
  this.compilation.templateTypeChecker.invalidateClass(clazz);
@@ -6211,9 +6368,10 @@ var NgCompiler = class {
6211
6368
  addMessageTextDetails(diagnostics) {
6212
6369
  return diagnostics.map((diag) => {
6213
6370
  if (diag.code && COMPILER_ERRORS_WITH_GUIDES.has(ngErrorCode(diag.code))) {
6214
- return __spreadProps(__spreadValues({}, diag), {
6371
+ return {
6372
+ ...diag,
6215
6373
  messageText: diag.messageText + `. Find more at ${ERROR_DETAILS_PAGE_BASE_URL}/NG${ngErrorCode(diag.code)}`
6216
- });
6374
+ };
6217
6375
  }
6218
6376
  return diag;
6219
6377
  });
@@ -6580,17 +6738,17 @@ function isAngularCorePackage(program) {
6580
6738
  return false;
6581
6739
  }
6582
6740
  return r3Symbols.statements.some((stmt) => {
6583
- if (!ts31.isVariableStatement(stmt)) {
6741
+ if (!ts32.isVariableStatement(stmt)) {
6584
6742
  return false;
6585
6743
  }
6586
- if (stmt.modifiers === void 0 || !stmt.modifiers.some((mod) => mod.kind === ts31.SyntaxKind.ExportKeyword)) {
6744
+ if (stmt.modifiers === void 0 || !stmt.modifiers.some((mod) => mod.kind === ts32.SyntaxKind.ExportKeyword)) {
6587
6745
  return false;
6588
6746
  }
6589
6747
  return stmt.declarationList.declarations.some((decl) => {
6590
- if (!ts31.isIdentifier(decl.name) || decl.name.text !== "ITS_JUST_ANGULAR") {
6748
+ if (!ts32.isIdentifier(decl.name) || decl.name.text !== "ITS_JUST_ANGULAR") {
6591
6749
  return false;
6592
6750
  }
6593
- if (decl.initializer === void 0 || decl.initializer.kind !== ts31.SyntaxKind.TrueKeyword) {
6751
+ if (decl.initializer === void 0 || decl.initializer.kind !== ts32.SyntaxKind.TrueKeyword) {
6594
6752
  return false;
6595
6753
  }
6596
6754
  return true;
@@ -6604,7 +6762,7 @@ function* verifyCompatibleTypeCheckOptions(options) {
6604
6762
  var _a, _b, _c;
6605
6763
  if (options.fullTemplateTypeCheck === false && options.strictTemplates === true) {
6606
6764
  yield makeConfigDiagnostic({
6607
- category: ts31.DiagnosticCategory.Error,
6765
+ category: ts32.DiagnosticCategory.Error,
6608
6766
  code: ErrorCode.CONFIG_STRICT_TEMPLATES_IMPLIES_FULL_TEMPLATE_TYPECHECK,
6609
6767
  messageText: `
6610
6768
  Angular compiler option "strictTemplates" is enabled, however "fullTemplateTypeCheck" is disabled.
@@ -6623,7 +6781,7 @@ https://angular.io/guide/template-typecheck
6623
6781
  }
6624
6782
  if (options.extendedDiagnostics && options.strictTemplates === false) {
6625
6783
  yield makeConfigDiagnostic({
6626
- category: ts31.DiagnosticCategory.Error,
6784
+ category: ts32.DiagnosticCategory.Error,
6627
6785
  code: ErrorCode.CONFIG_EXTENDED_DIAGNOSTICS_IMPLIES_STRICT_TEMPLATES,
6628
6786
  messageText: `
6629
6787
  Angular compiler option "extendedDiagnostics" is configured, however "strictTemplates" is disabled.
@@ -6640,7 +6798,7 @@ One of the following actions is required:
6640
6798
  const defaultCategory = (_a = options.extendedDiagnostics) == null ? void 0 : _a.defaultCategory;
6641
6799
  if (defaultCategory && !allowedCategoryLabels.includes(defaultCategory)) {
6642
6800
  yield makeConfigDiagnostic({
6643
- category: ts31.DiagnosticCategory.Error,
6801
+ category: ts32.DiagnosticCategory.Error,
6644
6802
  code: ErrorCode.CONFIG_EXTENDED_DIAGNOSTICS_UNKNOWN_CATEGORY_LABEL,
6645
6803
  messageText: `
6646
6804
  Angular compiler option "extendedDiagnostics.defaultCategory" has an unknown diagnostic category: "${defaultCategory}".
@@ -6650,11 +6808,11 @@ ${allowedCategoryLabels.join("\n")}
6650
6808
  `.trim()
6651
6809
  });
6652
6810
  }
6653
- const allExtendedDiagnosticNames = ALL_DIAGNOSTIC_FACTORIES.map((factory4) => factory4.name);
6811
+ const allExtendedDiagnosticNames = ALL_DIAGNOSTIC_FACTORIES.map((factory8) => factory8.name);
6654
6812
  for (const [checkName, category] of Object.entries((_c = (_b = options.extendedDiagnostics) == null ? void 0 : _b.checks) != null ? _c : {})) {
6655
6813
  if (!allExtendedDiagnosticNames.includes(checkName)) {
6656
6814
  yield makeConfigDiagnostic({
6657
- category: ts31.DiagnosticCategory.Error,
6815
+ category: ts32.DiagnosticCategory.Error,
6658
6816
  code: ErrorCode.CONFIG_EXTENDED_DIAGNOSTICS_UNKNOWN_CHECK,
6659
6817
  messageText: `
6660
6818
  Angular compiler option "extendedDiagnostics.checks" has an unknown check: "${checkName}".
@@ -6666,7 +6824,7 @@ ${allExtendedDiagnosticNames.join("\n")}
6666
6824
  }
6667
6825
  if (!allowedCategoryLabels.includes(category)) {
6668
6826
  yield makeConfigDiagnostic({
6669
- category: ts31.DiagnosticCategory.Error,
6827
+ category: ts32.DiagnosticCategory.Error,
6670
6828
  code: ErrorCode.CONFIG_EXTENDED_DIAGNOSTICS_UNKNOWN_CATEGORY_LABEL,
6671
6829
  messageText: `
6672
6830
  Angular compiler option "extendedDiagnostics.checks['${checkName}']" has an unknown diagnostic category: "${category}".
@@ -6696,7 +6854,7 @@ var ReferenceGraphAdapter = class {
6696
6854
  for (const { node } of references) {
6697
6855
  let sourceFile = node.getSourceFile();
6698
6856
  if (sourceFile === void 0) {
6699
- sourceFile = ts31.getOriginalNode(node).getSourceFile();
6857
+ sourceFile = ts32.getOriginalNode(node).getSourceFile();
6700
6858
  }
6701
6859
  if (sourceFile === void 0 || !isDtsPath(sourceFile.fileName)) {
6702
6860
  this.graph.add(source, node);
@@ -6735,7 +6893,7 @@ function versionMapFromProgram(program, driver) {
6735
6893
  }
6736
6894
 
6737
6895
  // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/core/src/host.mjs
6738
- import ts32 from "typescript";
6896
+ import ts33 from "typescript";
6739
6897
  var DelegatingCompilerHost2 = class {
6740
6898
  constructor(delegate) {
6741
6899
  this.delegate = delegate;
@@ -6825,7 +6983,7 @@ var NgCompilerHost = class extends DelegatingCompilerHost2 {
6825
6983
  entryPoint = findFlatIndexEntryPoint(normalizedTsInputFiles);
6826
6984
  if (entryPoint === null) {
6827
6985
  diagnostics.push({
6828
- category: ts32.DiagnosticCategory.Error,
6986
+ category: ts33.DiagnosticCategory.Error,
6829
6987
  code: ngErrorCode(ErrorCode.CONFIG_FLAT_MODULE_NO_INDEX),
6830
6988
  file: void 0,
6831
6989
  start: void 0,
@@ -6868,10 +7026,10 @@ var NgCompilerHost = class extends DelegatingCompilerHost2 {
6868
7026
  return this.fileNameToModuleName !== void 0 ? this : null;
6869
7027
  }
6870
7028
  createCachedResolveModuleNamesFunction() {
6871
- const moduleResolutionCache = ts32.createModuleResolutionCache(this.getCurrentDirectory(), this.getCanonicalFileName.bind(this));
7029
+ const moduleResolutionCache = ts33.createModuleResolutionCache(this.getCurrentDirectory(), this.getCanonicalFileName.bind(this));
6872
7030
  return (moduleNames, containingFile, reusedNames, redirectedReference, options) => {
6873
7031
  return moduleNames.map((moduleName) => {
6874
- const module = ts32.resolveModuleName(moduleName, containingFile, options, this, moduleResolutionCache, redirectedReference);
7032
+ const module = ts33.resolveModuleName(moduleName, containingFile, options, this, moduleResolutionCache, redirectedReference);
6875
7033
  return module.resolvedModule;
6876
7034
  });
6877
7035
  };
@@ -6892,7 +7050,7 @@ var NgtscProgram = class {
6892
7050
  if (reuseProgram !== void 0) {
6893
7051
  retagAllTsFiles(reuseProgram);
6894
7052
  }
6895
- this.tsProgram = perfRecorder.inPhase(PerfPhase.TypeScriptProgramCreate, () => ts33.createProgram(this.host.inputFiles, options, this.host, reuseProgram));
7053
+ this.tsProgram = perfRecorder.inPhase(PerfPhase.TypeScriptProgramCreate, () => ts34.createProgram(this.host.inputFiles, options, this.host, reuseProgram));
6896
7054
  perfRecorder.phase(PerfPhase.Unaccounted);
6897
7055
  perfRecorder.memory(PerfCheckpoint.TypeScriptProgramCreate);
6898
7056
  this.host.postProgramCreationCleanup();
@@ -7093,17 +7251,17 @@ function createProgram({ rootNames, options, host, oldProgram }) {
7093
7251
  }
7094
7252
 
7095
7253
  // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/perform_compile.mjs
7096
- import ts35 from "typescript";
7254
+ import ts36 from "typescript";
7097
7255
 
7098
7256
  // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/transformers/util.mjs
7099
- import ts34 from "typescript";
7257
+ import ts35 from "typescript";
7100
7258
  var GENERATED_FILES = /(.*?)\.(ngfactory|shim\.ngstyle|ngstyle|ngsummary)\.(js|d\.ts|ts)$/;
7101
7259
  function createMessageDiagnostic(messageText) {
7102
7260
  return {
7103
7261
  file: void 0,
7104
7262
  start: void 0,
7105
7263
  length: void 0,
7106
- category: ts34.DiagnosticCategory.Message,
7264
+ category: ts35.DiagnosticCategory.Message,
7107
7265
  messageText,
7108
7266
  code: DEFAULT_ERROR_CODE,
7109
7267
  source: SOURCE
@@ -7112,13 +7270,13 @@ function createMessageDiagnostic(messageText) {
7112
7270
 
7113
7271
  // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/perform_compile.mjs
7114
7272
  var defaultFormatHost = {
7115
- getCurrentDirectory: () => ts35.sys.getCurrentDirectory(),
7273
+ getCurrentDirectory: () => ts36.sys.getCurrentDirectory(),
7116
7274
  getCanonicalFileName: (fileName) => fileName,
7117
- getNewLine: () => ts35.sys.newLine
7275
+ getNewLine: () => ts36.sys.newLine
7118
7276
  };
7119
7277
  function formatDiagnostics(diags, host = defaultFormatHost) {
7120
7278
  if (diags && diags.length) {
7121
- return diags.map((diagnostic) => replaceTsWithNgInErrors(ts35.formatDiagnosticsWithColorAndContext([diagnostic], host))).join("");
7279
+ return diags.map((diagnostic) => replaceTsWithNgInErrors(ts36.formatDiagnosticsWithColorAndContext([diagnostic], host))).join("");
7122
7280
  } else {
7123
7281
  return "";
7124
7282
  }
@@ -7135,13 +7293,13 @@ function readConfiguration(project, existingOptions, host = getFileSystem()) {
7135
7293
  var _a, _b;
7136
7294
  try {
7137
7295
  const fs = getFileSystem();
7138
- const readConfigFile = (configFile) => ts35.readConfigFile(configFile, (file) => host.readFile(host.resolve(file)));
7296
+ const readConfigFile = (configFile) => ts36.readConfigFile(configFile, (file) => host.readFile(host.resolve(file)));
7139
7297
  const readAngularCompilerOptions = (configFile, parentOptions = {}) => {
7140
7298
  const { config: config2, error: error2 } = readConfigFile(configFile);
7141
7299
  if (error2) {
7142
7300
  return parentOptions;
7143
7301
  }
7144
- const existingNgCompilerOptions = __spreadValues(__spreadValues({}, config2.angularCompilerOptions), parentOptions);
7302
+ const existingNgCompilerOptions = { ...config2.angularCompilerOptions, ...parentOptions };
7145
7303
  if (config2.extends && typeof config2.extends === "string") {
7146
7304
  const extendedConfigPath = getExtendedConfigPath(configFile, config2.extends, host, fs);
7147
7305
  if (extendedConfigPath !== null) {
@@ -7162,12 +7320,14 @@ function readConfiguration(project, existingOptions, host = getFileSystem()) {
7162
7320
  emitFlags: EmitFlags.Default
7163
7321
  };
7164
7322
  }
7165
- const existingCompilerOptions = __spreadValues(__spreadValues({
7323
+ const existingCompilerOptions = {
7166
7324
  genDir: basePath,
7167
- basePath
7168
- }, readAngularCompilerOptions(configFileName)), existingOptions);
7325
+ basePath,
7326
+ ...readAngularCompilerOptions(configFileName),
7327
+ ...existingOptions
7328
+ };
7169
7329
  const parseConfigHost = createParseConfigHost(host, fs);
7170
- const { options, errors, fileNames: rootNames, projectReferences } = ts35.parseJsonConfigFileContent(config, parseConfigHost, basePath, existingCompilerOptions, configFileName);
7330
+ const { options, errors, fileNames: rootNames, projectReferences } = ts36.parseJsonConfigFileContent(config, parseConfigHost, basePath, existingCompilerOptions, configFileName);
7171
7331
  options.enableIvy = !!((_a = options.enableIvy) != null ? _a : true);
7172
7332
  let emitFlags = EmitFlags.Default;
7173
7333
  if (!(options.skipMetadataEmit || options.flatModuleOutFile)) {
@@ -7179,7 +7339,7 @@ function readConfiguration(project, existingOptions, host = getFileSystem()) {
7179
7339
  return { project: projectFile, rootNames, projectReferences, options, errors, emitFlags };
7180
7340
  } catch (e) {
7181
7341
  const errors = [{
7182
- category: ts35.DiagnosticCategory.Error,
7342
+ category: ts36.DiagnosticCategory.Error,
7183
7343
  messageText: (_b = e.stack) != null ? _b : e.message,
7184
7344
  file: void 0,
7185
7345
  start: void 0,
@@ -7193,7 +7353,7 @@ function readConfiguration(project, existingOptions, host = getFileSystem()) {
7193
7353
  function createParseConfigHost(host, fs = getFileSystem()) {
7194
7354
  return {
7195
7355
  fileExists: host.exists.bind(host),
7196
- readDirectory: ts35.sys.readDirectory,
7356
+ readDirectory: ts36.sys.readDirectory,
7197
7357
  readFile: host.readFile.bind(host),
7198
7358
  useCaseSensitiveFileNames: fs.isCaseSensitive()
7199
7359
  };
@@ -7213,7 +7373,7 @@ function getExtendedConfigPathWorker(configFile, extendsValue, host, fs) {
7213
7373
  }
7214
7374
  } else {
7215
7375
  const parseConfigHost = createParseConfigHost(host, fs);
7216
- const { resolvedModule } = ts35.nodeModuleNameResolver(extendsValue, configFile, { moduleResolution: ts35.ModuleResolutionKind.NodeJs, resolveJsonModule: true }, parseConfigHost);
7376
+ const { resolvedModule } = ts36.nodeModuleNameResolver(extendsValue, configFile, { moduleResolution: ts36.ModuleResolutionKind.NodeJs, resolveJsonModule: true }, parseConfigHost);
7217
7377
  if (resolvedModule) {
7218
7378
  return absoluteFrom(resolvedModule.resolvedFileName);
7219
7379
  }
@@ -7223,7 +7383,7 @@ function getExtendedConfigPathWorker(configFile, extendsValue, host, fs) {
7223
7383
  function exitCodeFromResult(diags) {
7224
7384
  if (!diags)
7225
7385
  return 0;
7226
- if (diags.every((diag) => diag.category !== ts35.DiagnosticCategory.Error)) {
7386
+ if (diags.every((diag) => diag.category !== ts36.DiagnosticCategory.Error)) {
7227
7387
  return 0;
7228
7388
  }
7229
7389
  return diags.some((d) => d.source === "angular" && d.code === UNKNOWN_ERROR_CODE) ? 2 : 1;
@@ -7256,7 +7416,7 @@ function performCompilation({ rootNames, options, host, oldProgram, emitCallback
7256
7416
  } catch (e) {
7257
7417
  program = void 0;
7258
7418
  allDiagnostics.push({
7259
- category: ts35.DiagnosticCategory.Error,
7419
+ category: ts36.DiagnosticCategory.Error,
7260
7420
  messageText: (_a = e.stack) != null ? _a : e.message,
7261
7421
  code: UNKNOWN_ERROR_CODE,
7262
7422
  file: void 0,
@@ -7283,7 +7443,7 @@ function defaultGatherDiagnostics(program) {
7283
7443
  return allDiagnostics;
7284
7444
  }
7285
7445
  function hasErrors(diags) {
7286
- return diags.some((d) => d.category === ts35.DiagnosticCategory.Error);
7446
+ return diags.some((d) => d.category === ts36.DiagnosticCategory.Error);
7287
7447
  }
7288
7448
 
7289
7449
  export {
@@ -7323,4 +7483,4 @@ export {
7323
7483
  * found in the LICENSE file at https://angular.io/license
7324
7484
  */
7325
7485
  // Closure Compiler ignores @suppress and similar if the comment contains @license.
7326
- //# sourceMappingURL=chunk-DSIJ6FBS.js.map
7486
+ //# sourceMappingURL=chunk-WAXJ3P3Y.js.map