@angular/compiler-cli 18.0.1 → 18.0.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.
Files changed (50) hide show
  1. package/bundles/{chunk-XNL3EK5H.js → chunk-3W345P4E.js} +7 -7
  2. package/bundles/{chunk-27KMND5I.js → chunk-46XI27YO.js} +31 -31
  3. package/bundles/{chunk-6AZ42I2O.js → chunk-6X2NNIEJ.js} +7 -5
  4. package/bundles/{chunk-6AZ42I2O.js.map → chunk-6X2NNIEJ.js.map} +1 -1
  5. package/bundles/{chunk-ZLHOM56K.js → chunk-BOT54HZ5.js} +278 -148
  6. package/bundles/chunk-BOT54HZ5.js.map +6 -0
  7. package/bundles/{chunk-LDI6GWO5.js → chunk-EDA6DBVV.js} +5 -5
  8. package/bundles/{chunk-CDSIZK6E.js → chunk-HGUKV37D.js} +94 -93
  9. package/bundles/{chunk-CDSIZK6E.js.map → chunk-HGUKV37D.js.map} +1 -1
  10. package/bundles/{chunk-AQFTVE7F.js → chunk-JZQHA4E7.js} +5 -5
  11. package/bundles/{chunk-IFIN3A3P.js → chunk-LRVXZT7X.js} +13 -13
  12. package/bundles/{chunk-SBDNBITT.js → chunk-LYJKWJUC.js} +3 -3
  13. package/bundles/{chunk-WR7TUJ7M.js → chunk-QYV344EV.js} +7 -7
  14. package/bundles/{chunk-TPUY2KMQ.js → chunk-RZ7P6VD7.js} +46 -43
  15. package/bundles/chunk-RZ7P6VD7.js.map +6 -0
  16. package/bundles/index.js +12 -12
  17. package/bundles/linker/babel/index.js +12 -12
  18. package/bundles/linker/index.js +4 -4
  19. package/bundles/ngcc/index.js +1 -1
  20. package/bundles/private/bazel.js +1 -1
  21. package/bundles/private/localize.js +3 -3
  22. package/bundles/private/migrations.js +5 -5
  23. package/bundles/private/tooling.js +5 -5
  24. package/bundles/src/bin/ng_xi18n.js +10 -10
  25. package/bundles/src/bin/ngc.js +8 -8
  26. package/bundles_metadata.json +1 -1
  27. package/linker/src/file_linker/partial_linkers/util.d.ts +1 -1
  28. package/package.json +3 -3
  29. package/src/ngtsc/annotations/component/src/handler.d.ts +2 -1
  30. package/src/ngtsc/annotations/component/src/resources.d.ts +1 -0
  31. package/src/ngtsc/core/src/compiler.d.ts +1 -0
  32. package/src/ngtsc/diagnostics/src/error_code.d.ts +6 -0
  33. package/src/ngtsc/indexer/src/api.d.ts +8 -3
  34. package/src/ngtsc/typecheck/api/checker.d.ts +2 -2
  35. package/src/ngtsc/typecheck/api/completion.d.ts +15 -4
  36. package/src/ngtsc/typecheck/api/symbols.d.ts +28 -3
  37. package/src/ngtsc/typecheck/src/checker.d.ts +2 -2
  38. package/src/ngtsc/typecheck/src/oob.d.ts +16 -1
  39. package/src/ngtsc/typecheck/src/template_symbol_builder.d.ts +4 -3
  40. package/src/ngtsc/typecheck/src/ts_util.d.ts +1 -1
  41. package/src/ngtsc/typecheck/src/type_check_block.d.ts +13 -2
  42. package/bundles/chunk-TPUY2KMQ.js.map +0 -6
  43. package/bundles/chunk-ZLHOM56K.js.map +0 -6
  44. /package/bundles/{chunk-XNL3EK5H.js.map → chunk-3W345P4E.js.map} +0 -0
  45. /package/bundles/{chunk-27KMND5I.js.map → chunk-46XI27YO.js.map} +0 -0
  46. /package/bundles/{chunk-LDI6GWO5.js.map → chunk-EDA6DBVV.js.map} +0 -0
  47. /package/bundles/{chunk-AQFTVE7F.js.map → chunk-JZQHA4E7.js.map} +0 -0
  48. /package/bundles/{chunk-IFIN3A3P.js.map → chunk-LRVXZT7X.js.map} +0 -0
  49. /package/bundles/{chunk-SBDNBITT.js.map → chunk-LYJKWJUC.js.map} +0 -0
  50. /package/bundles/{chunk-WR7TUJ7M.js.map → chunk-QYV344EV.js.map} +0 -0
@@ -8,7 +8,7 @@ import {
8
8
  PotentialImportKind,
9
9
  PotentialImportMode,
10
10
  SymbolKind
11
- } from "./chunk-6AZ42I2O.js";
11
+ } from "./chunk-6X2NNIEJ.js";
12
12
  import {
13
13
  CompilationMode,
14
14
  ComponentDecoratorHandler,
@@ -44,7 +44,7 @@ import {
44
44
  isHostDirectiveMetaForGlobalMode,
45
45
  ivyTransformFactory,
46
46
  tryParseInitializerApi
47
- } from "./chunk-CDSIZK6E.js";
47
+ } from "./chunk-HGUKV37D.js";
48
48
  import {
49
49
  AbsoluteModuleStrategy,
50
50
  AliasStrategy,
@@ -94,14 +94,14 @@ import {
94
94
  toUnredirectedSourceFile,
95
95
  translateExpression,
96
96
  translateType
97
- } from "./chunk-TPUY2KMQ.js";
97
+ } from "./chunk-RZ7P6VD7.js";
98
98
  import {
99
99
  ActivePerfRecorder,
100
100
  DelegatingPerfRecorder,
101
101
  PerfCheckpoint,
102
102
  PerfEvent,
103
103
  PerfPhase
104
- } from "./chunk-AQFTVE7F.js";
104
+ } from "./chunk-JZQHA4E7.js";
105
105
  import {
106
106
  LogicalFileSystem,
107
107
  absoluteFrom,
@@ -111,9 +111,9 @@ import {
111
111
  getSourceFileOrError,
112
112
  join,
113
113
  resolve
114
- } from "./chunk-XNL3EK5H.js";
114
+ } from "./chunk-3W345P4E.js";
115
115
 
116
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/transformers/api.mjs
116
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/transformers/api.mjs
117
117
  var DEFAULT_ERROR_CODE = 100;
118
118
  var UNKNOWN_ERROR_CODE = 500;
119
119
  var SOURCE = "angular";
@@ -131,7 +131,7 @@ var EmitFlags;
131
131
  EmitFlags2[EmitFlags2["All"] = 31] = "All";
132
132
  })(EmitFlags || (EmitFlags = {}));
133
133
 
134
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/transformers/compiler_host.mjs
134
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/transformers/compiler_host.mjs
135
135
  import ts from "typescript";
136
136
  var wrapHostForTest = null;
137
137
  function createCompilerHost({ options, tsHost = ts.createCompilerHost(options, true) }) {
@@ -141,7 +141,7 @@ function createCompilerHost({ options, tsHost = ts.createCompilerHost(options, t
141
141
  return tsHost;
142
142
  }
143
143
 
144
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/entities.mjs
144
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/entities.mjs
145
145
  var EntryType;
146
146
  (function(EntryType2) {
147
147
  EntryType2["Block"] = "block";
@@ -188,23 +188,23 @@ function isDocEntryWithSourceInfo(entry) {
188
188
  return "source" in entry;
189
189
  }
190
190
 
191
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/extractor.mjs
191
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/extractor.mjs
192
192
  import ts10 from "typescript";
193
193
 
194
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/class_extractor.mjs
194
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/class_extractor.mjs
195
195
  import ts5 from "typescript";
196
196
 
197
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/filters.mjs
197
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/filters.mjs
198
198
  function isAngularPrivateName(name) {
199
199
  var _a;
200
200
  const firstChar = (_a = name[0]) != null ? _a : "";
201
201
  return firstChar === "\u0275" || firstChar === "_";
202
202
  }
203
203
 
204
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/function_extractor.mjs
204
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/function_extractor.mjs
205
205
  import ts3 from "typescript";
206
206
 
207
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/generics_extractor.mjs
207
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/generics_extractor.mjs
208
208
  function extractGenerics(declaration) {
209
209
  var _a, _b;
210
210
  return (_b = (_a = declaration.typeParameters) == null ? void 0 : _a.map((typeParam) => {
@@ -217,7 +217,7 @@ function extractGenerics(declaration) {
217
217
  })) != null ? _b : [];
218
218
  }
219
219
 
220
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/jsdoc_extractor.mjs
220
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/jsdoc_extractor.mjs
221
221
  import ts2 from "typescript";
222
222
  var decoratorExpression = /@(?=(Injectable|Component|Directive|Pipe|NgModule|Input|Output|HostBinding|HostListener|Inject|Optional|Self|Host|SkipSelf))/g;
223
223
  function extractJsDocTags(node) {
@@ -261,12 +261,12 @@ function unescapeAngularDecorators(comment) {
261
261
  return comment.replace(/_NG_AT_/g, "@");
262
262
  }
263
263
 
264
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/type_extractor.mjs
264
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/type_extractor.mjs
265
265
  function extractResolvedTypeString(node, checker) {
266
266
  return checker.typeToString(checker.getTypeAtLocation(node));
267
267
  }
268
268
 
269
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/function_extractor.mjs
269
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/function_extractor.mjs
270
270
  var FunctionExtractor = class {
271
271
  constructor(name, declaration, typeChecker) {
272
272
  this.name = name;
@@ -322,7 +322,7 @@ function extractAllParams(params, typeChecker) {
322
322
  }));
323
323
  }
324
324
 
325
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/internal.mjs
325
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/internal.mjs
326
326
  import ts4 from "typescript";
327
327
  function isInternal(member) {
328
328
  return extractJsDocTags(member).some((tag) => tag.name === "internal") || hasLeadingInternalComment(member);
@@ -341,7 +341,7 @@ function hasLeadingInternalComment(member) {
341
341
  )) != null ? _a : false;
342
342
  }
343
343
 
344
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/class_extractor.mjs
344
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/class_extractor.mjs
345
345
  var ClassExtractor = class {
346
346
  constructor(declaration, typeChecker) {
347
347
  this.declaration = declaration;
@@ -599,7 +599,7 @@ function extractInterface(declaration, typeChecker) {
599
599
  return extractor.extract();
600
600
  }
601
601
 
602
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/constant_extractor.mjs
602
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/constant_extractor.mjs
603
603
  import ts6 from "typescript";
604
604
  var LITERAL_AS_ENUM_TAG = "object-literal-as-enum";
605
605
  function extractConstant(declaration, typeChecker) {
@@ -657,7 +657,7 @@ function extractLiteralPropertiesAsEnumMembers(declaration) {
657
657
  });
658
658
  }
659
659
 
660
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/decorator_extractor.mjs
660
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/decorator_extractor.mjs
661
661
  import ts7 from "typescript";
662
662
  function extractorDecorator(declaration, typeChecker) {
663
663
  const documentedNode = getDecoratorJsDocNode(declaration);
@@ -730,7 +730,7 @@ function getDecoratorJsDocNode(declaration) {
730
730
  return callSignature;
731
731
  }
732
732
 
733
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/enum_extractor.mjs
733
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/enum_extractor.mjs
734
734
  import ts8 from "typescript";
735
735
  function extractEnum(declaration, typeChecker) {
736
736
  return {
@@ -761,7 +761,7 @@ function getEnumMemberValue(memberNode) {
761
761
  return (_a = literal == null ? void 0 : literal.getText()) != null ? _a : "";
762
762
  }
763
763
 
764
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/initializer_api_function_extractor.mjs
764
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/initializer_api_function_extractor.mjs
765
765
  import ts9 from "typescript";
766
766
  var initializerApiTag = "initializerApiFunction";
767
767
  function isInitializerApiFunction(node, typeChecker) {
@@ -898,7 +898,7 @@ function findImplementationOfFunction(node, typeChecker) {
898
898
  return (_a = symbol == null ? void 0 : symbol.declarations) == null ? void 0 : _a.find((s) => ts9.isFunctionDeclaration(s) && s.body !== void 0);
899
899
  }
900
900
 
901
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/type_alias_extractor.mjs
901
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/type_alias_extractor.mjs
902
902
  function extractTypeAlias(declaration) {
903
903
  return {
904
904
  name: declaration.name.getText(),
@@ -910,7 +910,7 @@ function extractTypeAlias(declaration) {
910
910
  };
911
911
  }
912
912
 
913
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/extractor.mjs
913
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/extractor.mjs
914
914
  var DocsExtractor = class {
915
915
  constructor(typeChecker, metadataReader) {
916
916
  this.typeChecker = typeChecker;
@@ -994,11 +994,11 @@ function getRelativeFilePath(sourceFile, rootDir) {
994
994
  return relativePath;
995
995
  }
996
996
 
997
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/program.mjs
997
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/program.mjs
998
998
  import { HtmlParser, MessageBundle } from "@angular/compiler";
999
999
  import ts43 from "typescript";
1000
1000
 
1001
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/transformers/i18n.mjs
1001
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/transformers/i18n.mjs
1002
1002
  import { Xliff, Xliff2, Xmb } from "@angular/compiler";
1003
1003
  import * as path from "path";
1004
1004
  function i18nGetExtension(formatName) {
@@ -1049,10 +1049,10 @@ function getPathNormalizer(basePath) {
1049
1049
  };
1050
1050
  }
1051
1051
 
1052
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/typescript_support.mjs
1052
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/typescript_support.mjs
1053
1053
  import ts11 from "typescript";
1054
1054
 
1055
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/version_helpers.mjs
1055
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/version_helpers.mjs
1056
1056
  function toNumbers(value) {
1057
1057
  const suffixIndex = value.lastIndexOf("-");
1058
1058
  return value.slice(0, suffixIndex === -1 ? value.length : suffixIndex).split(".").map((segment) => {
@@ -1087,7 +1087,7 @@ function compareVersions(v1, v2) {
1087
1087
  return compareNumbers(toNumbers(v1), toNumbers(v2));
1088
1088
  }
1089
1089
 
1090
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/typescript_support.mjs
1090
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/typescript_support.mjs
1091
1091
  var MIN_TS_VERSION = "5.4.0";
1092
1092
  var MAX_TS_VERSION = "5.5.0";
1093
1093
  var tsVersion = ts11.version;
@@ -1100,11 +1100,11 @@ function verifySupportedTypeScriptVersion() {
1100
1100
  checkVersion(tsVersion, MIN_TS_VERSION, MAX_TS_VERSION);
1101
1101
  }
1102
1102
 
1103
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/core/src/compiler.mjs
1103
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/core/src/compiler.mjs
1104
1104
  import { R3Identifiers as R3Identifiers5 } from "@angular/compiler";
1105
1105
  import ts41 from "typescript";
1106
1106
 
1107
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/cycles/src/analyzer.mjs
1107
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/cycles/src/analyzer.mjs
1108
1108
  var CycleAnalyzer = class {
1109
1109
  constructor(importGraph) {
1110
1110
  this.importGraph = importGraph;
@@ -1175,7 +1175,7 @@ var Cycle = class {
1175
1175
  }
1176
1176
  };
1177
1177
 
1178
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/cycles/src/imports.mjs
1178
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/cycles/src/imports.mjs
1179
1179
  import ts12 from "typescript";
1180
1180
  var ImportGraph = class {
1181
1181
  constructor(checker, perf) {
@@ -1267,7 +1267,7 @@ var Found = class {
1267
1267
  }
1268
1268
  };
1269
1269
 
1270
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/entry_point/src/generator.mjs
1270
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/entry_point/src/generator.mjs
1271
1271
  import ts13 from "typescript";
1272
1272
  var FlatIndexGenerator = class {
1273
1273
  constructor(entryPoint, relativeFlatIndexPath, moduleName) {
@@ -1292,7 +1292,7 @@ export * from '${relativeEntryPoint}';
1292
1292
  }
1293
1293
  };
1294
1294
 
1295
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/entry_point/src/logic.mjs
1295
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/entry_point/src/logic.mjs
1296
1296
  function findFlatIndexEntryPoint(rootFiles) {
1297
1297
  const tsFiles = rootFiles.filter((file) => isNonDeclarationTsPath(file));
1298
1298
  let resolvedEntryPoint = null;
@@ -1308,7 +1308,7 @@ function findFlatIndexEntryPoint(rootFiles) {
1308
1308
  return resolvedEntryPoint;
1309
1309
  }
1310
1310
 
1311
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/entry_point/src/private_export_checker.mjs
1311
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/entry_point/src/private_export_checker.mjs
1312
1312
  import ts14 from "typescript";
1313
1313
  function checkForPrivateExports(entryPoint, checker, refGraph) {
1314
1314
  const diagnostics = [];
@@ -1388,7 +1388,7 @@ function getDescriptorOfDeclaration(decl) {
1388
1388
  }
1389
1389
  }
1390
1390
 
1391
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/entry_point/src/reference_graph.mjs
1391
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/entry_point/src/reference_graph.mjs
1392
1392
  var ReferenceGraph = class {
1393
1393
  constructor() {
1394
1394
  this.references = /* @__PURE__ */ new Map();
@@ -1442,7 +1442,7 @@ var ReferenceGraph = class {
1442
1442
  }
1443
1443
  };
1444
1444
 
1445
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/program_driver/src/api.mjs
1445
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/program_driver/src/api.mjs
1446
1446
  var NgOriginalFile = Symbol("NgOriginalFile");
1447
1447
  var UpdateMode;
1448
1448
  (function(UpdateMode2) {
@@ -1450,13 +1450,13 @@ var UpdateMode;
1450
1450
  UpdateMode2[UpdateMode2["Incremental"] = 1] = "Incremental";
1451
1451
  })(UpdateMode || (UpdateMode = {}));
1452
1452
 
1453
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/program_driver/src/ts_create_program_driver.mjs
1453
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/program_driver/src/ts_create_program_driver.mjs
1454
1454
  import ts16 from "typescript";
1455
1455
 
1456
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/adapter.mjs
1456
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/adapter.mjs
1457
1457
  import ts15 from "typescript";
1458
1458
 
1459
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/expando.mjs
1459
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/expando.mjs
1460
1460
  var NgExtension = Symbol("NgExtension");
1461
1461
  function isExtended(sf) {
1462
1462
  return sf[NgExtension] !== void 0;
@@ -1516,13 +1516,13 @@ function retagTsFile(sf) {
1516
1516
  }
1517
1517
  }
1518
1518
 
1519
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/util.mjs
1519
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/util.mjs
1520
1520
  var TS_EXTENSIONS = /\.tsx?$/i;
1521
1521
  function makeShimFileName(fileName, suffix) {
1522
1522
  return absoluteFrom(fileName.replace(TS_EXTENSIONS, suffix));
1523
1523
  }
1524
1524
 
1525
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/adapter.mjs
1525
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/adapter.mjs
1526
1526
  var ShimAdapter = class {
1527
1527
  constructor(delegate, tsRootFiles, topLevelGenerators, perFileGenerators, oldProgram) {
1528
1528
  this.delegate = delegate;
@@ -1617,7 +1617,7 @@ var ShimAdapter = class {
1617
1617
  }
1618
1618
  };
1619
1619
 
1620
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/reference_tagger.mjs
1620
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/reference_tagger.mjs
1621
1621
  var ShimReferenceTagger = class {
1622
1622
  constructor(shimExtensions) {
1623
1623
  this.tagged = /* @__PURE__ */ new Set();
@@ -1651,7 +1651,7 @@ var ShimReferenceTagger = class {
1651
1651
  }
1652
1652
  };
1653
1653
 
1654
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/program_driver/src/ts_create_program_driver.mjs
1654
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/program_driver/src/ts_create_program_driver.mjs
1655
1655
  var DelegatingCompilerHost = class {
1656
1656
  get jsDocParsingMode() {
1657
1657
  return this.delegate.jsDocParsingMode;
@@ -1770,7 +1770,7 @@ var TsCreateProgramDriver = class {
1770
1770
  }
1771
1771
  };
1772
1772
 
1773
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/src/dependency_tracking.mjs
1773
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/src/dependency_tracking.mjs
1774
1774
  var FileDependencyGraph = class {
1775
1775
  constructor() {
1776
1776
  this.nodes = /* @__PURE__ */ new Map();
@@ -1837,7 +1837,7 @@ function isLogicallyChanged(sf, node, changedTsPaths, deletedTsPaths, changedRes
1837
1837
  return false;
1838
1838
  }
1839
1839
 
1840
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/src/state.mjs
1840
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/src/state.mjs
1841
1841
  var IncrementalStateKind;
1842
1842
  (function(IncrementalStateKind2) {
1843
1843
  IncrementalStateKind2[IncrementalStateKind2["Fresh"] = 0] = "Fresh";
@@ -1845,7 +1845,7 @@ var IncrementalStateKind;
1845
1845
  IncrementalStateKind2[IncrementalStateKind2["Analyzed"] = 2] = "Analyzed";
1846
1846
  })(IncrementalStateKind || (IncrementalStateKind = {}));
1847
1847
 
1848
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/src/incremental.mjs
1848
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/src/incremental.mjs
1849
1849
  var PhaseKind;
1850
1850
  (function(PhaseKind2) {
1851
1851
  PhaseKind2[PhaseKind2["Analysis"] = 0] = "Analysis";
@@ -2046,7 +2046,7 @@ function toOriginalSourceFile(sf) {
2046
2046
  }
2047
2047
  }
2048
2048
 
2049
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/src/strategy.mjs
2049
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/src/strategy.mjs
2050
2050
  var TrackedIncrementalBuildStrategy = class {
2051
2051
  constructor() {
2052
2052
  this.state = null;
@@ -2082,7 +2082,7 @@ var PatchedProgramIncrementalBuildStrategy = class {
2082
2082
  };
2083
2083
  var SYM_INCREMENTAL_STATE = Symbol("NgIncrementalState");
2084
2084
 
2085
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/indexer/src/api.mjs
2085
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/indexer/src/api.mjs
2086
2086
  var IdentifierKind;
2087
2087
  (function(IdentifierKind2) {
2088
2088
  IdentifierKind2[IdentifierKind2["Property"] = 0] = "Property";
@@ -2092,6 +2092,7 @@ var IdentifierKind;
2092
2092
  IdentifierKind2[IdentifierKind2["Attribute"] = 4] = "Attribute";
2093
2093
  IdentifierKind2[IdentifierKind2["Reference"] = 5] = "Reference";
2094
2094
  IdentifierKind2[IdentifierKind2["Variable"] = 6] = "Variable";
2095
+ IdentifierKind2[IdentifierKind2["LetDeclaration"] = 7] = "LetDeclaration";
2095
2096
  })(IdentifierKind || (IdentifierKind = {}));
2096
2097
  var AbsoluteSourceSpan = class {
2097
2098
  constructor(start, end) {
@@ -2100,7 +2101,7 @@ var AbsoluteSourceSpan = class {
2100
2101
  }
2101
2102
  };
2102
2103
 
2103
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/indexer/src/context.mjs
2104
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/indexer/src/context.mjs
2104
2105
  var IndexingContext = class {
2105
2106
  constructor() {
2106
2107
  this.components = /* @__PURE__ */ new Set();
@@ -2110,11 +2111,11 @@ var IndexingContext = class {
2110
2111
  }
2111
2112
  };
2112
2113
 
2113
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/indexer/src/transform.mjs
2114
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/indexer/src/transform.mjs
2114
2115
  import { ParseSourceFile } from "@angular/compiler";
2115
2116
 
2116
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/indexer/src/template.mjs
2117
- import { ASTWithSource, ImplicitReceiver, PropertyRead, PropertyWrite, RecursiveAstVisitor, TmplAstBoundDeferredTrigger, TmplAstElement, TmplAstRecursiveVisitor, TmplAstReference, TmplAstTemplate } from "@angular/compiler";
2117
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/indexer/src/template.mjs
2118
+ import { ASTWithSource, ImplicitReceiver, PropertyRead, PropertyWrite, RecursiveAstVisitor, TmplAstBoundDeferredTrigger, TmplAstElement, TmplAstRecursiveVisitor, TmplAstReference, TmplAstTemplate, TmplAstVariable } from "@angular/compiler";
2118
2119
  var ExpressionVisitor = class extends RecursiveAstVisitor {
2119
2120
  constructor(expressionStr, absoluteOffset, boundTemplate, targetToIdentifier) {
2120
2121
  super();
@@ -2276,6 +2277,13 @@ var TemplateVisitor = class extends TmplAstRecursiveVisitor {
2276
2277
  (_a = block.expressionAlias) == null ? void 0 : _a.visit(this);
2277
2278
  this.visitAll(block.children);
2278
2279
  }
2280
+ visitLetDeclaration(decl) {
2281
+ const identifier = this.targetToIdentifier(decl);
2282
+ if (identifier !== null) {
2283
+ this.identifiers.add(identifier);
2284
+ }
2285
+ this.visitExpression(decl.value);
2286
+ }
2279
2287
  elementOrTemplateToIdentifier(node) {
2280
2288
  var _a;
2281
2289
  if (this.elementAndTemplateIdentifierCache.has(node)) {
@@ -2359,12 +2367,18 @@ var TemplateVisitor = class extends TmplAstRecursiveVisitor {
2359
2367
  kind: IdentifierKind.Reference,
2360
2368
  target
2361
2369
  };
2362
- } else {
2370
+ } else if (node instanceof TmplAstVariable) {
2363
2371
  identifier = {
2364
2372
  name,
2365
2373
  span,
2366
2374
  kind: IdentifierKind.Variable
2367
2375
  };
2376
+ } else {
2377
+ identifier = {
2378
+ name,
2379
+ span,
2380
+ kind: IdentifierKind.LetDeclaration
2381
+ };
2368
2382
  }
2369
2383
  this.targetIdentifierCache.set(node, identifier);
2370
2384
  return identifier;
@@ -2395,7 +2409,7 @@ function getTemplateIdentifiers(boundTemplate) {
2395
2409
  return { identifiers: visitor.identifiers, errors: visitor.errors };
2396
2410
  }
2397
2411
 
2398
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/indexer/src/transform.mjs
2412
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/indexer/src/transform.mjs
2399
2413
  function generateAnalysis(context) {
2400
2414
  const analysis = /* @__PURE__ */ new Map();
2401
2415
  context.components.forEach(({ declaration, selector, boundTemplate, templateMeta }) => {
@@ -2431,7 +2445,7 @@ function generateAnalysis(context) {
2431
2445
  return analysis;
2432
2446
  }
2433
2447
 
2434
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/ng_module_index.mjs
2448
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/ng_module_index.mjs
2435
2449
  var NgModuleIndexImpl = class {
2436
2450
  constructor(metaReader, localReader) {
2437
2451
  this.metaReader = metaReader;
@@ -2520,7 +2534,7 @@ var NgModuleIndexImpl = class {
2520
2534
  }
2521
2535
  };
2522
2536
 
2523
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/resource/src/loader.mjs
2537
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/resource/src/loader.mjs
2524
2538
  import ts17 from "typescript";
2525
2539
  var CSS_PREPROCESSOR_EXT = /(\.scss|\.sass|\.less|\.styl)$/;
2526
2540
  var RESOURCE_MARKER = ".$ngresource$";
@@ -2670,7 +2684,7 @@ function createLookupResolutionHost(adapter) {
2670
2684
  };
2671
2685
  }
2672
2686
 
2673
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/scope/src/standalone.mjs
2687
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/scope/src/standalone.mjs
2674
2688
  var StandaloneComponentScopeReader = class {
2675
2689
  constructor(metaReader, localModuleReader, dtsModuleReader) {
2676
2690
  this.metaReader = metaReader;
@@ -2766,10 +2780,10 @@ var StandaloneComponentScopeReader = class {
2766
2780
  }
2767
2781
  };
2768
2782
 
2769
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/checker.mjs
2783
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/checker.mjs
2770
2784
  import { CssSelector as CssSelector2, DomElementSchemaRegistry as DomElementSchemaRegistry2, ExternalExpr as ExternalExpr2, WrappedNodeExpr as WrappedNodeExpr2 } from "@angular/compiler";
2771
2785
 
2772
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/diagnostics/src/diagnostic.mjs
2786
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/diagnostics/src/diagnostic.mjs
2773
2787
  import ts18 from "typescript";
2774
2788
  function makeTemplateDiagnostic(templateId, mapping, span, category, code, messageText, relatedMessages) {
2775
2789
  var _a;
@@ -2880,7 +2894,7 @@ function parseTemplateAsSourceFile(fileName, template) {
2880
2894
  );
2881
2895
  }
2882
2896
 
2883
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/diagnostics/src/id.mjs
2897
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/diagnostics/src/id.mjs
2884
2898
  var TEMPLATE_ID = Symbol("ngTemplateId");
2885
2899
  var NEXT_TEMPLATE_ID = Symbol("ngNextTemplateId");
2886
2900
  function getTemplateId(clazz) {
@@ -2897,11 +2911,11 @@ function allocateTemplateId(sf) {
2897
2911
  return `tcb${sf[NEXT_TEMPLATE_ID]++}`;
2898
2912
  }
2899
2913
 
2900
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/completion.mjs
2901
- import { EmptyExpr, ImplicitReceiver as ImplicitReceiver2, PropertyRead as PropertyRead2, PropertyWrite as PropertyWrite2, SafePropertyRead, TmplAstReference as TmplAstReference2, TmplAstTextAttribute } from "@angular/compiler";
2914
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/completion.mjs
2915
+ import { EmptyExpr, ImplicitReceiver as ImplicitReceiver2, PropertyRead as PropertyRead2, PropertyWrite as PropertyWrite2, SafePropertyRead, TmplAstLetDeclaration, TmplAstReference as TmplAstReference2, TmplAstTextAttribute } from "@angular/compiler";
2902
2916
  import ts20 from "typescript";
2903
2917
 
2904
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/comments.mjs
2918
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/comments.mjs
2905
2919
  import { AbsoluteSourceSpan as AbsoluteSourceSpan2 } from "@angular/compiler";
2906
2920
  import ts19 from "typescript";
2907
2921
  var parseSpanComment = /^(\d+),(\d+)$/;
@@ -3032,7 +3046,7 @@ function hasExpressionIdentifier(sourceFile, node, identifier) {
3032
3046
  }) || false;
3033
3047
  }
3034
3048
 
3035
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/completion.mjs
3049
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/completion.mjs
3036
3050
  var CompletionEngine = class {
3037
3051
  constructor(tcb, data, tcbPath, tcbIsShim) {
3038
3052
  this.tcb = tcb;
@@ -3177,6 +3191,11 @@ var CompletionEngine = class {
3177
3191
  kind: CompletionKind.Reference,
3178
3192
  node
3179
3193
  });
3194
+ } else if (node instanceof TmplAstLetDeclaration) {
3195
+ templateContext.set(node.name, {
3196
+ kind: CompletionKind.LetDeclaration,
3197
+ node
3198
+ });
3180
3199
  } else {
3181
3200
  templateContext.set(node.name, {
3182
3201
  kind: CompletionKind.Variable,
@@ -4209,10 +4228,10 @@ var MagicString = class {
4209
4228
  }
4210
4229
  };
4211
4230
 
4212
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/context.mjs
4231
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/context.mjs
4213
4232
  import ts33 from "typescript";
4214
4233
 
4215
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/dom.mjs
4234
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/dom.mjs
4216
4235
  import { DomElementSchemaRegistry } from "@angular/compiler";
4217
4236
  import ts21 from "typescript";
4218
4237
  var REGISTRY = new DomElementSchemaRegistry();
@@ -4265,10 +4284,10 @@ var RegistryDomSchemaChecker = class {
4265
4284
  }
4266
4285
  };
4267
4286
 
4268
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/environment.mjs
4287
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/environment.mjs
4269
4288
  import ts26 from "typescript";
4270
4289
 
4271
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/reference_emit_environment.mjs
4290
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/reference_emit_environment.mjs
4272
4291
  import { ExpressionType, ExternalExpr, TypeModifier } from "@angular/compiler";
4273
4292
  var ReferenceEmitEnvironment = class {
4274
4293
  constructor(importManager, refEmitter, reflector, contextFile) {
@@ -4299,7 +4318,7 @@ var ReferenceEmitEnvironment = class {
4299
4318
  }
4300
4319
  };
4301
4320
 
4302
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/ts_util.mjs
4321
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/ts_util.mjs
4303
4322
  import ts22 from "typescript";
4304
4323
  var SAFE_TO_CAST_WITHOUT_PARENS = /* @__PURE__ */ new Set([
4305
4324
  ts22.SyntaxKind.ParenthesizedExpression,
@@ -4351,7 +4370,7 @@ function tsDeclareVariable(id, type) {
4351
4370
  function tsCreateTypeQueryForCoercedInput(typeName, coercedInputName) {
4352
4371
  return ts22.factory.createTypeQueryNode(ts22.factory.createQualifiedName(typeName, `ngAcceptInputType_${coercedInputName}`));
4353
4372
  }
4354
- function tsCreateVariable(id, initializer) {
4373
+ function tsCreateVariable(id, initializer, flags = null) {
4355
4374
  const decl = ts22.factory.createVariableDeclaration(
4356
4375
  id,
4357
4376
  void 0,
@@ -4360,7 +4379,7 @@ function tsCreateVariable(id, initializer) {
4360
4379
  );
4361
4380
  return ts22.factory.createVariableStatement(
4362
4381
  void 0,
4363
- [decl]
4382
+ flags === null ? [decl] : ts22.factory.createVariableDeclarationList([decl], flags)
4364
4383
  );
4365
4384
  }
4366
4385
  function tsCallMethod(receiver, methodName, args = []) {
@@ -4382,15 +4401,15 @@ function tsNumericExpression(value) {
4382
4401
  return ts22.factory.createNumericLiteral(value);
4383
4402
  }
4384
4403
 
4385
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_constructor.mjs
4404
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_constructor.mjs
4386
4405
  import { ExpressionType as ExpressionType2, R3Identifiers as R3Identifiers2, WrappedNodeExpr } from "@angular/compiler";
4387
4406
  import ts25 from "typescript";
4388
4407
 
4389
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/tcb_util.mjs
4408
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/tcb_util.mjs
4390
4409
  import { R3Identifiers } from "@angular/compiler";
4391
4410
  import ts24 from "typescript";
4392
4411
 
4393
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_parameter_emitter.mjs
4412
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_parameter_emitter.mjs
4394
4413
  import ts23 from "typescript";
4395
4414
  var TypeParameterEmitter = class {
4396
4415
  constructor(typeParameters, reflector) {
@@ -4468,7 +4487,7 @@ var TypeParameterEmitter = class {
4468
4487
  }
4469
4488
  };
4470
4489
 
4471
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/tcb_util.mjs
4490
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/tcb_util.mjs
4472
4491
  var TCB_FILE_IMPORT_GRAPH_PREPARE_IDENTIFIERS = [
4473
4492
  R3Identifiers.InputSignalBrandWriteType
4474
4493
  ];
@@ -4560,7 +4579,7 @@ function checkIfGenericTypeBoundsCanBeEmitted(node, reflector, env) {
4560
4579
  return emitter.canEmit((ref) => env.canReferenceType(ref));
4561
4580
  }
4562
4581
 
4563
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_constructor.mjs
4582
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_constructor.mjs
4564
4583
  function generateTypeCtorDeclarationFn(env, meta, nodeTypeRef, typeParams) {
4565
4584
  const rawTypeArgs = typeParams !== void 0 ? generateGenericArgs(typeParams) : void 0;
4566
4585
  const rawType = ts25.factory.createTypeReferenceNode(nodeTypeRef, rawTypeArgs);
@@ -4683,7 +4702,7 @@ function typeParametersWithDefaultTypes(params) {
4683
4702
  });
4684
4703
  }
4685
4704
 
4686
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/environment.mjs
4705
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/environment.mjs
4687
4706
  var Environment = class extends ReferenceEmitEnvironment {
4688
4707
  constructor(config, importManager, refEmitter, reflector, contextFile) {
4689
4708
  super(importManager, refEmitter, reflector, contextFile);
@@ -4755,7 +4774,7 @@ var Environment = class extends ReferenceEmitEnvironment {
4755
4774
  }
4756
4775
  };
4757
4776
 
4758
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/oob.mjs
4777
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/oob.mjs
4759
4778
  import { AbsoluteSourceSpan as AbsoluteSourceSpan3, TmplAstElement as TmplAstElement2 } from "@angular/compiler";
4760
4779
  import ts27 from "typescript";
4761
4780
  var OutOfBandDiagnosticRecorderImpl = class {
@@ -4929,6 +4948,25 @@ Deferred blocks can only access triggers in same view, a parent embedded view or
4929
4948
  lines.push("", 'This check can be disabled using the `extendedDiagnostics.checks.controlFlowPreventingContentProjection = "suppress" compiler option.`');
4930
4949
  this._diagnostics.push(makeTemplateDiagnostic(templateId, this.resolver.getSourceMapping(templateId), projectionNode.startSourceSpan, category, ngErrorCode(ErrorCode.CONTROL_FLOW_PREVENTING_CONTENT_PROJECTION), lines.join("\n")));
4931
4950
  }
4951
+ illegalWriteToLetDeclaration(templateId, node, target) {
4952
+ const sourceSpan = this.resolver.toParseSourceSpan(templateId, node.sourceSpan);
4953
+ if (sourceSpan === null) {
4954
+ throw new Error(`Assertion failure: no SourceLocation found for property write.`);
4955
+ }
4956
+ this._diagnostics.push(makeTemplateDiagnostic(templateId, this.resolver.getSourceMapping(templateId), sourceSpan, ts27.DiagnosticCategory.Error, ngErrorCode(ErrorCode.ILLEGAL_LET_WRITE), `Cannot assign to @let declaration '${target.name}'.`));
4957
+ }
4958
+ letUsedBeforeDefinition(templateId, node, target) {
4959
+ const sourceSpan = this.resolver.toParseSourceSpan(templateId, node.sourceSpan);
4960
+ if (sourceSpan === null) {
4961
+ throw new Error(`Assertion failure: no SourceLocation found for property read.`);
4962
+ }
4963
+ this._diagnostics.push(makeTemplateDiagnostic(templateId, this.resolver.getSourceMapping(templateId), sourceSpan, ts27.DiagnosticCategory.Error, ngErrorCode(ErrorCode.LET_USED_BEFORE_DEFINITION), `Cannot read @let declaration '${target.name}' before it has been defined.`));
4964
+ }
4965
+ duplicateLetDeclaration(templateId, current) {
4966
+ const mapping = this.resolver.getSourceMapping(templateId);
4967
+ const errorMsg = `Cannot declare @let called '${current.name}' as there is another @let declaration with the same name.`;
4968
+ this._diagnostics.push(makeTemplateDiagnostic(templateId, mapping, current.sourceSpan, ts27.DiagnosticCategory.Error, ngErrorCode(ErrorCode.DUPLICATE_LET_DECLARATION), errorMsg));
4969
+ }
4932
4970
  };
4933
4971
  function makeInlineDiagnostic(templateId, code, node, messageText, relatedInformation) {
4934
4972
  return {
@@ -4938,7 +4976,7 @@ function makeInlineDiagnostic(templateId, code, node, messageText, relatedInform
4938
4976
  };
4939
4977
  }
4940
4978
 
4941
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/shim.mjs
4979
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/shim.mjs
4942
4980
  import ts28 from "typescript";
4943
4981
  var TypeCheckShimGenerator = class {
4944
4982
  constructor() {
@@ -4956,11 +4994,11 @@ var TypeCheckShimGenerator = class {
4956
4994
  }
4957
4995
  };
4958
4996
 
4959
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_check_block.mjs
4960
- import { BindingPipe, BindingType, Call as Call2, createCssSelectorFromNode, CssSelector, DYNAMIC_TYPE, ImplicitReceiver as ImplicitReceiver3, ParsedEventType, PropertyRead as PropertyRead4, PropertyWrite as PropertyWrite3, R3Identifiers as R3Identifiers3, SafeCall, SafePropertyRead as SafePropertyRead3, SelectorMatcher, ThisReceiver, TmplAstBoundAttribute, TmplAstBoundText, TmplAstContent, TmplAstDeferredBlock, TmplAstElement as TmplAstElement3, TmplAstForLoopBlock, TmplAstIcu, TmplAstIfBlock, TmplAstIfBlockBranch, TmplAstReference as TmplAstReference3, TmplAstSwitchBlock, TmplAstTemplate as TmplAstTemplate2, TmplAstText, TmplAstTextAttribute as TmplAstTextAttribute2, TmplAstVariable, TransplantedType } from "@angular/compiler";
4997
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_check_block.mjs
4998
+ import { BindingPipe, BindingType, Call as Call2, createCssSelectorFromNode, CssSelector, DYNAMIC_TYPE, ImplicitReceiver as ImplicitReceiver3, ParsedEventType, PropertyRead as PropertyRead4, PropertyWrite as PropertyWrite3, R3Identifiers as R3Identifiers3, SafeCall, SafePropertyRead as SafePropertyRead3, SelectorMatcher, ThisReceiver, TmplAstBoundAttribute, TmplAstBoundText, TmplAstContent, TmplAstDeferredBlock, TmplAstElement as TmplAstElement3, TmplAstForLoopBlock, TmplAstIcu, TmplAstIfBlock, TmplAstIfBlockBranch, TmplAstLetDeclaration as TmplAstLetDeclaration2, TmplAstReference as TmplAstReference3, TmplAstSwitchBlock, TmplAstTemplate as TmplAstTemplate2, TmplAstText, TmplAstTextAttribute as TmplAstTextAttribute2, TmplAstVariable as TmplAstVariable2, TransplantedType } from "@angular/compiler";
4961
4999
  import ts31 from "typescript";
4962
5000
 
4963
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/diagnostics.mjs
5001
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/diagnostics.mjs
4964
5002
  import { AbsoluteSourceSpan as AbsoluteSourceSpan4 } from "@angular/compiler";
4965
5003
  import ts29 from "typescript";
4966
5004
  function wrapForDiagnostics(expr) {
@@ -5016,7 +5054,7 @@ function translateDiagnostic(diagnostic, resolver) {
5016
5054
  return makeTemplateDiagnostic(sourceLocation.id, templateSourceMapping, span, diagnostic.category, diagnostic.code, diagnostic.messageText);
5017
5055
  }
5018
5056
 
5019
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/expression.mjs
5057
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/expression.mjs
5020
5058
  import { ASTWithSource as ASTWithSource2, Call, EmptyExpr as EmptyExpr2, PropertyRead as PropertyRead3, SafeKeyedRead, SafePropertyRead as SafePropertyRead2 } from "@angular/compiler";
5021
5059
  import ts30 from "typescript";
5022
5060
  var NULL_AS_ANY = ts30.factory.createAsExpression(ts30.factory.createNull(), ts30.factory.createKeywordTypeNode(ts30.SyntaxKind.AnyKeyword));
@@ -5349,7 +5387,7 @@ var VeSafeLhsInferenceBugDetector = _VeSafeLhsInferenceBugDetector;
5349
5387
  _VeSafeLhsInferenceBugDetector.SINGLETON = new _VeSafeLhsInferenceBugDetector();
5350
5388
  })();
5351
5389
 
5352
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_check_block.mjs
5390
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_check_block.mjs
5353
5391
  var TcbGenericContextBehavior;
5354
5392
  (function(TcbGenericContextBehavior2) {
5355
5393
  TcbGenericContextBehavior2[TcbGenericContextBehavior2["UseEmitter"] = 0] = "UseEmitter";
@@ -5469,6 +5507,24 @@ var TcbTemplateContextOp = class extends TcbOp {
5469
5507
  return ctx;
5470
5508
  }
5471
5509
  };
5510
+ var TcbLetDeclarationOp = class extends TcbOp {
5511
+ constructor(tcb, scope, node) {
5512
+ super();
5513
+ this.tcb = tcb;
5514
+ this.scope = scope;
5515
+ this.node = node;
5516
+ this.optional = false;
5517
+ }
5518
+ execute() {
5519
+ const id = this.tcb.allocateId();
5520
+ addParseSpanInfo(id, this.node.nameSpan);
5521
+ const value = tcbExpression(this.node.value, this.tcb, this.scope);
5522
+ const varStatement = tsCreateVariable(id, wrapForTypeChecker(value), ts31.NodeFlags.Const);
5523
+ addParseSpanInfo(varStatement.declarationList.declarations[0], this.node.sourceSpan);
5524
+ this.scope.addStatement(varStatement);
5525
+ return id;
5526
+ }
5527
+ };
5472
5528
  var TcbTemplateBodyOp = class extends TcbOp {
5473
5529
  constructor(tcb, scope, template) {
5474
5530
  super();
@@ -6272,6 +6328,7 @@ var _Scope = class {
6272
6328
  this.referenceOpMap = /* @__PURE__ */ new Map();
6273
6329
  this.templateCtxOpMap = /* @__PURE__ */ new Map();
6274
6330
  this.varMap = /* @__PURE__ */ new Map();
6331
+ this.letDeclOpMap = /* @__PURE__ */ new Map();
6275
6332
  this.statements = [];
6276
6333
  }
6277
6334
  static forNodes(tcb, parentScope, scopedNode, children, guard) {
@@ -6309,6 +6366,14 @@ var _Scope = class {
6309
6366
  }
6310
6367
  for (const node of children) {
6311
6368
  scope.appendNode(node);
6369
+ if (node instanceof TmplAstLetDeclaration2) {
6370
+ const opIndex = scope.opQueue.push(new TcbLetDeclarationOp(tcb, scope, node)) - 1;
6371
+ if (scope.letDeclOpMap.has(node.name)) {
6372
+ tcb.oobRecorder.duplicateLetDeclaration(tcb.id, node);
6373
+ } else {
6374
+ scope.letDeclOpMap.set(node.name, opIndex);
6375
+ }
6376
+ }
6312
6377
  }
6313
6378
  return scope;
6314
6379
  }
@@ -6359,10 +6424,21 @@ var _Scope = class {
6359
6424
  return ts31.factory.createBinaryExpression(parentGuards, ts31.SyntaxKind.AmpersandAmpersandToken, this.guard);
6360
6425
  }
6361
6426
  }
6427
+ isLocal(node) {
6428
+ if (node instanceof TmplAstVariable2) {
6429
+ return this.varMap.has(node);
6430
+ }
6431
+ if (node instanceof TmplAstLetDeclaration2) {
6432
+ return this.letDeclOpMap.has(node.name);
6433
+ }
6434
+ return this.referenceOpMap.has(node);
6435
+ }
6362
6436
  resolveLocal(ref, directive) {
6363
6437
  if (ref instanceof TmplAstReference3 && this.referenceOpMap.has(ref)) {
6364
6438
  return this.resolveOp(this.referenceOpMap.get(ref));
6365
- } else if (ref instanceof TmplAstVariable && this.varMap.has(ref)) {
6439
+ } else if (ref instanceof TmplAstLetDeclaration2 && this.letDeclOpMap.has(ref.name)) {
6440
+ return this.resolveOp(this.letDeclOpMap.get(ref.name));
6441
+ } else if (ref instanceof TmplAstVariable2 && this.varMap.has(ref)) {
6366
6442
  const opIndexOrNode = this.varMap.get(ref);
6367
6443
  return typeof opIndexOrNode === "number" ? this.resolveOp(opIndexOrNode) : opIndexOrNode;
6368
6444
  } else if (ref instanceof TmplAstTemplate2 && directive === void 0 && this.templateCtxOpMap.has(ref)) {
@@ -6638,15 +6714,24 @@ var TcbExpressionTranslator = class {
6638
6714
  }
6639
6715
  resolve(ast) {
6640
6716
  if (ast instanceof PropertyRead4 && ast.receiver instanceof ImplicitReceiver3) {
6641
- return this.resolveTarget(ast);
6717
+ const target = this.tcb.boundTarget.getExpressionTarget(ast);
6718
+ if (target instanceof TmplAstLetDeclaration2) {
6719
+ this.validateLetDeclarationAccess(target, ast);
6720
+ }
6721
+ return target === null ? null : this.getTargetNodeExpression(target, ast);
6642
6722
  } else if (ast instanceof PropertyWrite3 && ast.receiver instanceof ImplicitReceiver3) {
6643
- const target = this.resolveTarget(ast);
6723
+ const target = this.tcb.boundTarget.getExpressionTarget(ast);
6644
6724
  if (target === null) {
6645
6725
  return null;
6646
6726
  }
6727
+ const targetExpression = this.getTargetNodeExpression(target, ast);
6647
6728
  const expr = this.translate(ast.value);
6648
- const result = ts31.factory.createParenthesizedExpression(ts31.factory.createBinaryExpression(target, ts31.SyntaxKind.EqualsToken, expr));
6729
+ const result = ts31.factory.createParenthesizedExpression(ts31.factory.createBinaryExpression(targetExpression, ts31.SyntaxKind.EqualsToken, expr));
6649
6730
  addParseSpanInfo(result, ast.sourceSpan);
6731
+ if (target instanceof TmplAstLetDeclaration2) {
6732
+ markIgnoreDiagnostics(result);
6733
+ this.tcb.oobRecorder.illegalWriteToLetDeclaration(this.tcb.id, ast, target);
6734
+ }
6650
6735
  return result;
6651
6736
  } else if (ast instanceof ImplicitReceiver3) {
6652
6737
  return ts31.factory.createThis();
@@ -6684,10 +6769,11 @@ var TcbExpressionTranslator = class {
6684
6769
  addParseSpanInfo(result, ast.sourceSpan);
6685
6770
  return result;
6686
6771
  }
6687
- const receiver = this.resolveTarget(ast);
6688
- if (receiver === null) {
6772
+ const target = this.tcb.boundTarget.getExpressionTarget(ast);
6773
+ if (target === null) {
6689
6774
  return null;
6690
6775
  }
6776
+ const receiver = this.getTargetNodeExpression(target, ast);
6691
6777
  const method = wrapForDiagnostics(receiver);
6692
6778
  addParseSpanInfo(method, ast.receiver.nameSpan);
6693
6779
  const args = ast.args.map((arg) => this.translate(arg));
@@ -6698,15 +6784,19 @@ var TcbExpressionTranslator = class {
6698
6784
  return null;
6699
6785
  }
6700
6786
  }
6701
- resolveTarget(ast) {
6702
- const binding = this.tcb.boundTarget.getExpressionTarget(ast);
6703
- if (binding === null) {
6704
- return null;
6705
- }
6706
- const expr = this.scope.resolve(binding);
6707
- addParseSpanInfo(expr, ast.sourceSpan);
6787
+ getTargetNodeExpression(targetNode, expressionNode) {
6788
+ const expr = this.scope.resolve(targetNode);
6789
+ addParseSpanInfo(expr, expressionNode.sourceSpan);
6708
6790
  return expr;
6709
6791
  }
6792
+ validateLetDeclarationAccess(target, ast) {
6793
+ const targetStart = target.sourceSpan.start.offset;
6794
+ const targetEnd = target.sourceSpan.end.offset;
6795
+ const astStart = ast.sourceSpan.start;
6796
+ if ((targetStart > astStart || astStart >= targetStart && astStart <= targetEnd) && this.scope.isLocal(target)) {
6797
+ this.tcb.oobRecorder.letUsedBeforeDefinition(this.tcb.id, ast, target);
6798
+ }
6799
+ }
6710
6800
  };
6711
6801
  function tcbCallTypeCtor(dir, tcb, inputs) {
6712
6802
  const typeCtor = tcb.env.typeCtorFor(dir);
@@ -6849,6 +6939,8 @@ var TcbEventHandlerTranslator = class extends TcbExpressionTranslator {
6849
6939
  }
6850
6940
  return super.resolve(ast);
6851
6941
  }
6942
+ validateLetDeclarationAccess() {
6943
+ }
6852
6944
  };
6853
6945
  var TcbForLoopTrackTranslator = class extends TcbExpressionTranslator {
6854
6946
  constructor(tcb, scope, block) {
@@ -6864,7 +6956,7 @@ var TcbForLoopTrackTranslator = class extends TcbExpressionTranslator {
6864
6956
  resolve(ast) {
6865
6957
  if (ast instanceof PropertyRead4 && ast.receiver instanceof ImplicitReceiver3) {
6866
6958
  const target = this.tcb.boundTarget.getExpressionTarget(ast);
6867
- if (target !== null && !this.allowedVariables.has(target)) {
6959
+ if (target !== null && (!(target instanceof TmplAstVariable2) || !this.allowedVariables.has(target))) {
6868
6960
  this.tcb.oobRecorder.illegalForLoopTrackAccess(this.tcb.id, this.block, ast);
6869
6961
  }
6870
6962
  }
@@ -6872,7 +6964,7 @@ var TcbForLoopTrackTranslator = class extends TcbExpressionTranslator {
6872
6964
  }
6873
6965
  };
6874
6966
 
6875
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_check_file.mjs
6967
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_check_file.mjs
6876
6968
  import ts32 from "typescript";
6877
6969
  var TypeCheckFile = class extends Environment {
6878
6970
  constructor(fileName, config, refEmitter, reflector, compilerHost) {
@@ -6920,7 +7012,7 @@ var TypeCheckFile = class extends Environment {
6920
7012
  }
6921
7013
  };
6922
7014
 
6923
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/context.mjs
7015
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/context.mjs
6924
7016
  var InliningMode;
6925
7017
  (function(InliningMode2) {
6926
7018
  InliningMode2[InliningMode2["InlineOps"] = 0] = "InlineOps";
@@ -7172,10 +7264,10 @@ var TypeCtorOp = class {
7172
7264
  }
7173
7265
  };
7174
7266
 
7175
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/source.mjs
7267
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/source.mjs
7176
7268
  import { ParseLocation, ParseSourceSpan } from "@angular/compiler";
7177
7269
 
7178
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/line_mappings.mjs
7270
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/line_mappings.mjs
7179
7271
  var LF_CHAR = 10;
7180
7272
  var CR_CHAR = 13;
7181
7273
  var LINE_SEP_CHAR = 8232;
@@ -7216,7 +7308,7 @@ function findClosestLineStartPosition(linesMap, position, low = 0, high = linesM
7216
7308
  return low - 1;
7217
7309
  }
7218
7310
 
7219
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/source.mjs
7311
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/source.mjs
7220
7312
  var TemplateSource = class {
7221
7313
  constructor(mapping, file) {
7222
7314
  this.mapping = mapping;
@@ -7267,8 +7359,8 @@ var TemplateSourceManager = class {
7267
7359
  }
7268
7360
  };
7269
7361
 
7270
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/template_symbol_builder.mjs
7271
- import { AST, ASTWithSource as ASTWithSource3, BindingPipe as BindingPipe2, PropertyRead as PropertyRead5, PropertyWrite as PropertyWrite4, R3Identifiers as R3Identifiers4, SafePropertyRead as SafePropertyRead4, TmplAstBoundAttribute as TmplAstBoundAttribute2, TmplAstBoundEvent, TmplAstElement as TmplAstElement4, TmplAstReference as TmplAstReference4, TmplAstTemplate as TmplAstTemplate3, TmplAstTextAttribute as TmplAstTextAttribute3, TmplAstVariable as TmplAstVariable2 } from "@angular/compiler";
7362
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/template_symbol_builder.mjs
7363
+ import { AST, ASTWithSource as ASTWithSource3, BindingPipe as BindingPipe2, PropertyRead as PropertyRead5, PropertyWrite as PropertyWrite4, R3Identifiers as R3Identifiers4, SafePropertyRead as SafePropertyRead4, TmplAstBoundAttribute as TmplAstBoundAttribute2, TmplAstBoundEvent, TmplAstElement as TmplAstElement4, TmplAstLetDeclaration as TmplAstLetDeclaration3, TmplAstReference as TmplAstReference4, TmplAstTemplate as TmplAstTemplate3, TmplAstTextAttribute as TmplAstTextAttribute3, TmplAstVariable as TmplAstVariable3 } from "@angular/compiler";
7272
7364
  import ts34 from "typescript";
7273
7365
  var SymbolBuilder = class {
7274
7366
  constructor(tcbPath, tcbIsShim, typeCheckBlock, templateData, componentScopeReader, getTypeChecker) {
@@ -7293,8 +7385,10 @@ var SymbolBuilder = class {
7293
7385
  symbol = this.getSymbolOfElement(node);
7294
7386
  } else if (node instanceof TmplAstTemplate3) {
7295
7387
  symbol = this.getSymbolOfAstTemplate(node);
7296
- } else if (node instanceof TmplAstVariable2) {
7388
+ } else if (node instanceof TmplAstVariable3) {
7297
7389
  symbol = this.getSymbolOfVariable(node);
7390
+ } else if (node instanceof TmplAstLetDeclaration3) {
7391
+ symbol = this.getSymbolOfLetDeclaration(node);
7298
7392
  } else if (node instanceof TmplAstReference4) {
7299
7393
  symbol = this.getSymbolOfReference(node);
7300
7394
  } else if (node instanceof BindingPipe2) {
@@ -7682,6 +7776,31 @@ var SymbolBuilder = class {
7682
7776
  };
7683
7777
  }
7684
7778
  }
7779
+ getSymbolOfLetDeclaration(decl) {
7780
+ const node = findFirstMatchingNode(this.typeCheckBlock, {
7781
+ withSpan: decl.sourceSpan,
7782
+ filter: ts34.isVariableDeclaration
7783
+ });
7784
+ if (node === null) {
7785
+ return null;
7786
+ }
7787
+ const nodeValueSymbol = this.getSymbolOfTsNode(node.initializer);
7788
+ if (nodeValueSymbol === null) {
7789
+ return null;
7790
+ }
7791
+ return {
7792
+ tsType: nodeValueSymbol.tsType,
7793
+ tsSymbol: nodeValueSymbol.tsSymbol,
7794
+ initializerLocation: nodeValueSymbol.tcbLocation,
7795
+ kind: SymbolKind.LetDeclaration,
7796
+ declaration: decl,
7797
+ localVarLocation: {
7798
+ tcbPath: this.tcbPath,
7799
+ isShimFile: this.tcbIsShim,
7800
+ positionInFile: this.getTcbPositionForNode(node.name)
7801
+ }
7802
+ };
7803
+ }
7685
7804
  getSymbolOfPipe(expression) {
7686
7805
  const methodAccess = findFirstMatchingNode(this.typeCheckBlock, {
7687
7806
  withSpan: expression.nameSpan,
@@ -7814,7 +7933,7 @@ function unwrapSignalInputWriteTAccessor(expr) {
7814
7933
  };
7815
7934
  }
7816
7935
 
7817
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/checker.mjs
7936
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/checker.mjs
7818
7937
  var REGISTRY2 = new DomElementSchemaRegistry2();
7819
7938
  var TemplateTypeCheckerImpl = class {
7820
7939
  constructor(originalProgram, programDriver, typeCheckAdapter, config, refEmitter, reflector, compilerHost, priorBuild, metaReader, localMetaReader, ngModuleIndex, componentScopeReader, typeCheckScopeRegistry, perf) {
@@ -8515,10 +8634,10 @@ var SingleShimTypeCheckingHost = class extends SingleFileTypeCheckingHost {
8515
8634
  }
8516
8635
  };
8517
8636
 
8518
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/interpolated_signal_not_invoked/index.mjs
8637
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/interpolated_signal_not_invoked/index.mjs
8519
8638
  import { ASTWithSource as ASTWithSource5, BindingType as BindingType2, Interpolation, PropertyRead as PropertyRead6, TmplAstBoundAttribute as TmplAstBoundAttribute3 } from "@angular/compiler";
8520
8639
 
8521
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/symbol_util.mjs
8640
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/symbol_util.mjs
8522
8641
  import ts35 from "typescript";
8523
8642
  var SIGNAL_FNS = /* @__PURE__ */ new Set([
8524
8643
  "WritableSignal",
@@ -8528,7 +8647,7 @@ var SIGNAL_FNS = /* @__PURE__ */ new Set([
8528
8647
  "ModelSignal"
8529
8648
  ]);
8530
8649
  function isSignalReference(symbol) {
8531
- return (symbol.kind === SymbolKind.Expression || symbol.kind === SymbolKind.Variable) && (symbol.tsType.symbol !== void 0 && isSignalSymbol(symbol.tsType.symbol) || symbol.tsType.aliasSymbol !== void 0 && isSignalSymbol(symbol.tsType.aliasSymbol));
8650
+ return (symbol.kind === SymbolKind.Expression || symbol.kind === SymbolKind.Variable || symbol.kind === SymbolKind.LetDeclaration) && (symbol.tsType.symbol !== void 0 && isSignalSymbol(symbol.tsType.symbol) || symbol.tsType.aliasSymbol !== void 0 && isSignalSymbol(symbol.tsType.aliasSymbol));
8532
8651
  }
8533
8652
  function isSignalSymbol(symbol) {
8534
8653
  const declarations = symbol.getDeclarations();
@@ -8538,7 +8657,7 @@ function isSignalSymbol(symbol) {
8538
8657
  });
8539
8658
  }
8540
8659
 
8541
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/api/api.mjs
8660
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/api/api.mjs
8542
8661
  import { ASTWithSource as ASTWithSource4, RecursiveAstVisitor as RecursiveAstVisitor2, TmplAstBoundDeferredTrigger as TmplAstBoundDeferredTrigger2 } from "@angular/compiler";
8543
8662
  var TemplateCheckWithVisitor = class {
8544
8663
  run(ctx, component, template) {
@@ -8656,6 +8775,9 @@ var TemplateVisitor2 = class extends RecursiveAstVisitor2 {
8656
8775
  (_a = block.expressionAlias) == null ? void 0 : _a.visit(this);
8657
8776
  this.visitAllNodes(block.children);
8658
8777
  }
8778
+ visitLetDeclaration(decl) {
8779
+ this.visitAst(decl.value);
8780
+ }
8659
8781
  getDiagnostics(template) {
8660
8782
  this.diagnostics = [];
8661
8783
  this.visitAllNodes(template);
@@ -8663,7 +8785,7 @@ var TemplateVisitor2 = class extends RecursiveAstVisitor2 {
8663
8785
  }
8664
8786
  };
8665
8787
 
8666
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/interpolated_signal_not_invoked/index.mjs
8788
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/interpolated_signal_not_invoked/index.mjs
8667
8789
  var SIGNAL_INSTANCE_PROPERTIES = /* @__PURE__ */ new Set(["set", "update", "asReadonly"]);
8668
8790
  var FUNCTION_INSTANCE_PROPERTIES = /* @__PURE__ */ new Set(["name", "length", "prototype"]);
8669
8791
  var InterpolatedSignalCheck = class extends TemplateCheckWithVisitor {
@@ -8715,7 +8837,7 @@ var factory = {
8715
8837
  create: () => new InterpolatedSignalCheck()
8716
8838
  };
8717
8839
 
8718
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/invalid_banana_in_box/index.mjs
8840
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/invalid_banana_in_box/index.mjs
8719
8841
  import { TmplAstBoundEvent as TmplAstBoundEvent2 } from "@angular/compiler";
8720
8842
  var InvalidBananaInBoxCheck = class extends TemplateCheckWithVisitor {
8721
8843
  constructor() {
@@ -8741,7 +8863,7 @@ var factory2 = {
8741
8863
  create: () => new InvalidBananaInBoxCheck()
8742
8864
  };
8743
8865
 
8744
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/missing_control_flow_directive/index.mjs
8866
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/missing_control_flow_directive/index.mjs
8745
8867
  import { TmplAstTemplate as TmplAstTemplate4 } from "@angular/compiler";
8746
8868
  var KNOWN_CONTROL_FLOW_DIRECTIVES = /* @__PURE__ */ new Map([
8747
8869
  ["ngIf", { directive: "NgIf", builtIn: "@if" }],
@@ -8786,7 +8908,7 @@ var factory3 = {
8786
8908
  }
8787
8909
  };
8788
8910
 
8789
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/missing_ngforof_let/index.mjs
8911
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/missing_ngforof_let/index.mjs
8790
8912
  import { TmplAstTemplate as TmplAstTemplate5 } from "@angular/compiler";
8791
8913
  var MissingNgForOfLetCheck = class extends TemplateCheckWithVisitor {
8792
8914
  constructor() {
@@ -8819,7 +8941,7 @@ var factory4 = {
8819
8941
  create: () => new MissingNgForOfLetCheck()
8820
8942
  };
8821
8943
 
8822
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/nullish_coalescing_not_nullable/index.mjs
8944
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/nullish_coalescing_not_nullable/index.mjs
8823
8945
  import { Binary } from "@angular/compiler";
8824
8946
  import ts36 from "typescript";
8825
8947
  var NullishCoalescingNotNullableCheck = class extends TemplateCheckWithVisitor {
@@ -8864,7 +8986,7 @@ var factory5 = {
8864
8986
  }
8865
8987
  };
8866
8988
 
8867
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/optional_chain_not_nullable/index.mjs
8989
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/optional_chain_not_nullable/index.mjs
8868
8990
  import { SafeCall as SafeCall2, SafeKeyedRead as SafeKeyedRead2, SafePropertyRead as SafePropertyRead5 } from "@angular/compiler";
8869
8991
  import ts37 from "typescript";
8870
8992
  var OptionalChainNotNullableCheck = class extends TemplateCheckWithVisitor {
@@ -8910,7 +9032,7 @@ var factory6 = {
8910
9032
  }
8911
9033
  };
8912
9034
 
8913
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/suffix_not_supported/index.mjs
9035
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/suffix_not_supported/index.mjs
8914
9036
  import { TmplAstBoundAttribute as TmplAstBoundAttribute4 } from "@angular/compiler";
8915
9037
  var STYLE_SUFFIXES = ["px", "%", "em"];
8916
9038
  var SuffixNotSupportedCheck = class extends TemplateCheckWithVisitor {
@@ -8934,7 +9056,7 @@ var factory7 = {
8934
9056
  create: () => new SuffixNotSupportedCheck()
8935
9057
  };
8936
9058
 
8937
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/text_attribute_not_binding/index.mjs
9059
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/text_attribute_not_binding/index.mjs
8938
9060
  import { TmplAstTextAttribute as TmplAstTextAttribute4 } from "@angular/compiler";
8939
9061
  var TextAttributeNotBindingSpec = class extends TemplateCheckWithVisitor {
8940
9062
  constructor() {
@@ -8973,10 +9095,10 @@ var factory8 = {
8973
9095
  create: () => new TextAttributeNotBindingSpec()
8974
9096
  };
8975
9097
 
8976
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/src/extended_template_checker.mjs
9098
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/src/extended_template_checker.mjs
8977
9099
  import ts38 from "typescript";
8978
9100
 
8979
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/core/api/src/public_options.mjs
9101
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/core/api/src/public_options.mjs
8980
9102
  var DiagnosticCategoryLabel;
8981
9103
  (function(DiagnosticCategoryLabel2) {
8982
9104
  DiagnosticCategoryLabel2["Warning"] = "warning";
@@ -8984,7 +9106,7 @@ var DiagnosticCategoryLabel;
8984
9106
  DiagnosticCategoryLabel2["Suppress"] = "suppress";
8985
9107
  })(DiagnosticCategoryLabel || (DiagnosticCategoryLabel = {}));
8986
9108
 
8987
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/src/extended_template_checker.mjs
9109
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/src/extended_template_checker.mjs
8988
9110
  var ExtendedTemplateCheckerImpl = class {
8989
9111
  constructor(templateTypeChecker, typeChecker, templateCheckFactories, options) {
8990
9112
  var _a, _b, _c, _d, _e;
@@ -9037,7 +9159,7 @@ function assertNever(value) {
9037
9159
  ${value}`);
9038
9160
  }
9039
9161
 
9040
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/index.mjs
9162
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/index.mjs
9041
9163
  var ALL_DIAGNOSTIC_FACTORIES = [
9042
9164
  factory2,
9043
9165
  factory5,
@@ -9053,8 +9175,8 @@ var SUPPORTED_DIAGNOSTIC_NAMES = /* @__PURE__ */ new Set([
9053
9175
  ...ALL_DIAGNOSTIC_FACTORIES.map((factory9) => factory9.name)
9054
9176
  ]);
9055
9177
 
9056
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/template_semantics/src/template_semantics_checker.mjs
9057
- import { ASTWithSource as ASTWithSource6, ImplicitReceiver as ImplicitReceiver4, ParsedEventType as ParsedEventType2, RecursiveAstVisitor as RecursiveAstVisitor3, TmplAstBoundEvent as TmplAstBoundEvent3, TmplAstRecursiveVisitor as TmplAstRecursiveVisitor2, TmplAstVariable as TmplAstVariable3 } from "@angular/compiler";
9178
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/template_semantics/src/template_semantics_checker.mjs
9179
+ import { ASTWithSource as ASTWithSource6, ImplicitReceiver as ImplicitReceiver4, ParsedEventType as ParsedEventType2, RecursiveAstVisitor as RecursiveAstVisitor3, TmplAstBoundEvent as TmplAstBoundEvent3, TmplAstLetDeclaration as TmplAstLetDeclaration4, TmplAstRecursiveVisitor as TmplAstRecursiveVisitor2, TmplAstVariable as TmplAstVariable4 } from "@angular/compiler";
9058
9180
  import ts39 from "typescript";
9059
9181
  var TemplateSemanticsCheckerImpl = class {
9060
9182
  constructor(templateTypeChecker) {
@@ -9102,7 +9224,7 @@ var ExpressionsSemanticsVisitor = class extends RecursiveAstVisitor3 {
9102
9224
  return;
9103
9225
  }
9104
9226
  const target = this.templateTypeChecker.getExpressionTarget(ast, this.component);
9105
- if (target instanceof TmplAstVariable3) {
9227
+ if (target instanceof TmplAstVariable4) {
9106
9228
  const errorMessage = `Cannot use variable '${target.name}' as the left-hand side of an assignment expression. Template variables are read-only.`;
9107
9229
  this.diagnostics.push(this.makeIllegalTemplateVarDiagnostic(target, context, errorMessage));
9108
9230
  }
@@ -9112,22 +9234,29 @@ var ExpressionsSemanticsVisitor = class extends RecursiveAstVisitor3 {
9112
9234
  return;
9113
9235
  }
9114
9236
  const target = this.templateTypeChecker.getExpressionTarget(ast, this.component);
9115
- if (!(target instanceof TmplAstVariable3)) {
9237
+ const isVariable = target instanceof TmplAstVariable4;
9238
+ const isLet = target instanceof TmplAstLetDeclaration4;
9239
+ if (!isVariable && !isLet) {
9116
9240
  return;
9117
9241
  }
9118
9242
  const symbol = this.templateTypeChecker.getSymbolOfNode(target, this.component);
9119
9243
  if (symbol !== null && !isSignalReference(symbol)) {
9120
- const errorMessage = `Cannot use a non-signal variable '${target.name}' in a two-way binding expression. Template variables are read-only.`;
9244
+ let errorMessage;
9245
+ if (isVariable) {
9246
+ errorMessage = `Cannot use a non-signal variable '${target.name}' in a two-way binding expression. Template variables are read-only.`;
9247
+ } else {
9248
+ errorMessage = `Cannot use non-signal @let declaration '${target.name}' in a two-way binding expression. @let declarations are read-only.`;
9249
+ }
9121
9250
  this.diagnostics.push(this.makeIllegalTemplateVarDiagnostic(target, context, errorMessage));
9122
9251
  }
9123
9252
  }
9124
9253
  makeIllegalTemplateVarDiagnostic(target, expressionNode, errorMessage) {
9125
- var _a, _b;
9254
+ const span = target instanceof TmplAstVariable4 ? target.valueSpan || target.sourceSpan : target.sourceSpan;
9126
9255
  return this.templateTypeChecker.makeTemplateDiagnostic(this.component, expressionNode.handlerSpan, ts39.DiagnosticCategory.Error, ngErrorCode(ErrorCode.WRITE_TO_READ_ONLY_VARIABLE), errorMessage, [
9127
9256
  {
9128
- text: `The variable ${target.name} is declared here.`,
9129
- start: ((_a = target.valueSpan) == null ? void 0 : _a.start.offset) || target.sourceSpan.start.offset,
9130
- end: ((_b = target.valueSpan) == null ? void 0 : _b.end.offset) || target.sourceSpan.end.offset,
9257
+ text: `'${target.name}' is declared here.`,
9258
+ start: span.start.offset,
9259
+ end: span.end.offset,
9131
9260
  sourceFile: this.component.getSourceFile()
9132
9261
  }
9133
9262
  ]);
@@ -9137,7 +9266,7 @@ function unwrapAstWithSource(ast) {
9137
9266
  return ast instanceof ASTWithSource6 ? ast.ast : ast;
9138
9267
  }
9139
9268
 
9140
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/validation/src/rules/initializer_api_usage_rule.mjs
9269
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/validation/src/rules/initializer_api_usage_rule.mjs
9141
9270
  import ts40 from "typescript";
9142
9271
  var APIS_TO_CHECK = [
9143
9272
  INPUT_INITIALIZER_FN,
@@ -9188,7 +9317,7 @@ var InitializerApiUsageRule = class {
9188
9317
  }
9189
9318
  };
9190
9319
 
9191
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/validation/src/source_file_validator.mjs
9320
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/validation/src/source_file_validator.mjs
9192
9321
  var SourceFileValidator = class {
9193
9322
  constructor(reflector, importedSymbolsTracker) {
9194
9323
  this.rules = [new InitializerApiUsageRule(reflector, importedSymbolsTracker)];
@@ -9226,7 +9355,7 @@ var SourceFileValidator = class {
9226
9355
  }
9227
9356
  };
9228
9357
 
9229
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/core/src/core_version.mjs
9358
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/core/src/core_version.mjs
9230
9359
  function coreHasSymbol(program, symbol) {
9231
9360
  const checker = program.getTypeChecker();
9232
9361
  for (const sf of program.getSourceFiles().filter(isMaybeCore)) {
@@ -9245,7 +9374,7 @@ function isMaybeCore(sf) {
9245
9374
  return sf.isDeclarationFile && sf.fileName.includes("@angular/core") && sf.fileName.endsWith("index.d.ts");
9246
9375
  }
9247
9376
 
9248
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/core/src/feature_detection.mjs
9377
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/core/src/feature_detection.mjs
9249
9378
  import semver from "semver";
9250
9379
  function coreVersionSupportsFeature(coreVersion, minVersion) {
9251
9380
  if (coreVersion === `0.0.0-${"PLACEHOLDER"}`) {
@@ -9254,7 +9383,7 @@ function coreVersionSupportsFeature(coreVersion, minVersion) {
9254
9383
  return semver.satisfies(coreVersion, minVersion);
9255
9384
  }
9256
9385
 
9257
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/core/src/compiler.mjs
9386
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/core/src/compiler.mjs
9258
9387
  var CompilationTicketKind;
9259
9388
  (function(CompilationTicketKind2) {
9260
9389
  CompilationTicketKind2[CompilationTicketKind2["Fresh"] = 0] = "Fresh";
@@ -9326,7 +9455,7 @@ var NgCompiler = class {
9326
9455
  }
9327
9456
  }
9328
9457
  constructor(adapter, options, inputProgram, programDriver, incrementalStrategy, incrementalCompilation, enableTemplateTypeChecker, usePoisonedData, livePerfRecorder) {
9329
- var _a, _b, _c;
9458
+ var _a, _b, _c, _d;
9330
9459
  this.adapter = adapter;
9331
9460
  this.options = options;
9332
9461
  this.inputProgram = inputProgram;
@@ -9341,7 +9470,8 @@ var NgCompiler = class {
9341
9470
  this.delegatingPerfRecorder = new DelegatingPerfRecorder(this.perfRecorder);
9342
9471
  this.enableTemplateTypeChecker = enableTemplateTypeChecker || ((_a = options["_enableTemplateTypeChecker"]) != null ? _a : false);
9343
9472
  this.enableBlockSyntax = (_b = options["_enableBlockSyntax"]) != null ? _b : true;
9344
- this.angularCoreVersion = (_c = options["_angularCoreVersion"]) != null ? _c : null;
9473
+ this.enableLetSyntax = (_c = options["_enableLetSyntax"]) != null ? _c : false;
9474
+ this.angularCoreVersion = (_d = options["_angularCoreVersion"]) != null ? _d : null;
9345
9475
  this.constructionDiagnostics.push(...this.adapter.constructionDiagnostics, ...verifyCompatibleTypeCheckOptions(this.options));
9346
9476
  this.currentProgram = inputProgram;
9347
9477
  this.closureCompilerEnabled = !!this.options.annotateForClosureCompiler;
@@ -9857,7 +9987,7 @@ var NgCompiler = class {
9857
9987
  throw new Error('JIT mode support ("supportJitMode" option) cannot be disabled when forbidOrphanComponents is set to true');
9858
9988
  }
9859
9989
  const handlers = [
9860
- new ComponentDecoratorHandler(reflector, evaluator, metaRegistry, metaReader, scopeReader, depScopeReader, ngModuleScopeRegistry, typeCheckScopeRegistry, resourceRegistry, isCore, strictCtorDeps, this.resourceManager, this.adapter.rootDirs, this.options.preserveWhitespaces || false, this.options.i18nUseExternalIds !== false, this.options.enableI18nLegacyMessageIdFormat !== false, this.usePoisonedData, this.options.i18nNormalizeLineEndingsInICUs === true, this.moduleResolver, this.cycleAnalyzer, cycleHandlingStrategy, refEmitter, referencesRegistry, this.incrementalCompilation.depGraph, injectableRegistry, semanticDepGraphUpdater, this.closureCompilerEnabled, this.delegatingPerfRecorder, hostDirectivesResolver, importTracker, supportTestBed, compilationMode, deferredSymbolsTracker, !!this.options.forbidOrphanComponents, this.enableBlockSyntax, localCompilationExtraImportsTracker),
9990
+ new ComponentDecoratorHandler(reflector, evaluator, metaRegistry, metaReader, scopeReader, depScopeReader, ngModuleScopeRegistry, typeCheckScopeRegistry, resourceRegistry, isCore, strictCtorDeps, this.resourceManager, this.adapter.rootDirs, this.options.preserveWhitespaces || false, this.options.i18nUseExternalIds !== false, this.options.enableI18nLegacyMessageIdFormat !== false, this.usePoisonedData, this.options.i18nNormalizeLineEndingsInICUs === true, this.moduleResolver, this.cycleAnalyzer, cycleHandlingStrategy, refEmitter, referencesRegistry, this.incrementalCompilation.depGraph, injectableRegistry, semanticDepGraphUpdater, this.closureCompilerEnabled, this.delegatingPerfRecorder, hostDirectivesResolver, importTracker, supportTestBed, compilationMode, deferredSymbolsTracker, !!this.options.forbidOrphanComponents, this.enableBlockSyntax, this.enableLetSyntax, localCompilationExtraImportsTracker),
9861
9991
  new DirectiveDecoratorHandler(reflector, evaluator, metaRegistry, ngModuleScopeRegistry, metaReader, injectableRegistry, refEmitter, referencesRegistry, isCore, strictCtorDeps, semanticDepGraphUpdater, this.closureCompilerEnabled, this.delegatingPerfRecorder, importTracker, supportTestBed, compilationMode, !!this.options.generateExtraImportsInLocalMode),
9862
9992
  new PipeDecoratorHandler(reflector, evaluator, metaRegistry, ngModuleScopeRegistry, injectableRegistry, isCore, this.delegatingPerfRecorder, supportTestBed, compilationMode, !!this.options.generateExtraImportsInLocalMode),
9863
9993
  new InjectableDecoratorHandler(reflector, evaluator, isCore, strictCtorDeps, injectableRegistry, this.delegatingPerfRecorder, supportTestBed, compilationMode),
@@ -10052,7 +10182,7 @@ function versionMapFromProgram(program, driver) {
10052
10182
  return versions;
10053
10183
  }
10054
10184
 
10055
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/core/src/host.mjs
10185
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/core/src/host.mjs
10056
10186
  import ts42 from "typescript";
10057
10187
  var DelegatingCompilerHost2 = class {
10058
10188
  get jsDocParsingMode() {
@@ -10191,7 +10321,7 @@ var NgCompilerHost = class extends DelegatingCompilerHost2 {
10191
10321
  }
10192
10322
  };
10193
10323
 
10194
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/program.mjs
10324
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/program.mjs
10195
10325
  var NgtscProgram = class {
10196
10326
  constructor(rootNames, options, delegateHost, oldProgram) {
10197
10327
  this.options = options;
@@ -10418,15 +10548,15 @@ function mergeEmitResults(emitResults) {
10418
10548
  return { diagnostics, emitSkipped, emittedFiles };
10419
10549
  }
10420
10550
 
10421
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/transformers/program.mjs
10551
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/transformers/program.mjs
10422
10552
  function createProgram({ rootNames, options, host, oldProgram }) {
10423
10553
  return new NgtscProgram(rootNames, options, host, oldProgram);
10424
10554
  }
10425
10555
 
10426
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/perform_compile.mjs
10556
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/perform_compile.mjs
10427
10557
  import ts45 from "typescript";
10428
10558
 
10429
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/transformers/util.mjs
10559
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/transformers/util.mjs
10430
10560
  import ts44 from "typescript";
10431
10561
  function createMessageDiagnostic(messageText) {
10432
10562
  return {
@@ -10440,7 +10570,7 @@ function createMessageDiagnostic(messageText) {
10440
10570
  };
10441
10571
  }
10442
10572
 
10443
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/perform_compile.mjs
10573
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/perform_compile.mjs
10444
10574
  var defaultFormatHost = {
10445
10575
  getCurrentDirectory: () => ts45.sys.getCurrentDirectory(),
10446
10576
  getCanonicalFileName: (fileName) => fileName,
@@ -10673,4 +10803,4 @@ export {
10673
10803
  * Use of this source code is governed by an MIT-style license that can be
10674
10804
  * found in the LICENSE file at https://angular.io/license
10675
10805
  */
10676
- //# sourceMappingURL=chunk-ZLHOM56K.js.map
10806
+ //# sourceMappingURL=chunk-BOT54HZ5.js.map