@angular/compiler-cli 17.0.5 → 17.0.6

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 (47) hide show
  1. package/bundles/{chunk-UHYH6BYB.js → chunk-3O3O4L34.js} +1 -1
  2. package/bundles/{chunk-BNWUZHCZ.js → chunk-77ECZTEH.js} +5 -5
  3. package/bundles/{chunk-VNJI35KB.js → chunk-CDJYMGHH.js} +4 -4
  4. package/bundles/{chunk-SBDNBITT.js → chunk-CF2CT7RQ.js} +3 -3
  5. package/bundles/{chunk-3ZDTTLEA.js → chunk-ILV5JRA3.js} +91 -85
  6. package/bundles/chunk-ILV5JRA3.js.map +6 -0
  7. package/bundles/{chunk-3GCK5JND.js → chunk-JNTXXKVD.js} +225 -123
  8. package/bundles/chunk-JNTXXKVD.js.map +6 -0
  9. package/bundles/{chunk-CLTYCPJK.js → chunk-JZRCFA2M.js} +29 -27
  10. package/bundles/{chunk-CLTYCPJK.js.map → chunk-JZRCFA2M.js.map} +1 -1
  11. package/bundles/{chunk-GYHDNUIK.js → chunk-OULZQUKT.js} +7 -7
  12. package/bundles/{chunk-QDHJ26RK.js → chunk-PJ5O6AJ3.js} +9 -9
  13. package/bundles/{chunk-3IBJEGH3.js → chunk-W22VYY2W.js} +5 -5
  14. package/bundles/{chunk-CSOLWS7O.js → chunk-W653LDC7.js} +7 -7
  15. package/bundles/{chunk-QFTMYSLL.js → chunk-Z6XLAZWI.js} +30 -30
  16. package/bundles/index.js +13 -13
  17. package/bundles/linker/babel/index.js +13 -13
  18. package/bundles/linker/index.js +5 -5
  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 +6 -6
  23. package/bundles/private/tooling.js +4 -4
  24. package/bundles/src/bin/ng_xi18n.js +11 -11
  25. package/bundles/src/bin/ngc.js +9 -9
  26. package/bundles_metadata.json +1 -1
  27. package/linker/src/file_linker/partial_linkers/util.d.ts +1 -1
  28. package/package.json +2 -2
  29. package/src/ngtsc/diagnostics/src/error_code.d.ts +14 -0
  30. package/src/ngtsc/diagnostics/src/extended_template_diagnostic_name.d.ts +2 -1
  31. package/src/ngtsc/typecheck/api/api.d.ts +8 -0
  32. package/src/ngtsc/typecheck/api/context.d.ts +3 -1
  33. package/src/ngtsc/typecheck/extended/index.d.ts +1 -0
  34. package/src/ngtsc/typecheck/src/context.d.ts +1 -1
  35. package/src/ngtsc/typecheck/src/oob.d.ts +7 -1
  36. package/src/ngtsc/typecheck/src/type_check_block.d.ts +5 -2
  37. package/bundles/chunk-3GCK5JND.js.map +0 -6
  38. package/bundles/chunk-3ZDTTLEA.js.map +0 -6
  39. /package/bundles/{chunk-UHYH6BYB.js.map → chunk-3O3O4L34.js.map} +0 -0
  40. /package/bundles/{chunk-BNWUZHCZ.js.map → chunk-77ECZTEH.js.map} +0 -0
  41. /package/bundles/{chunk-VNJI35KB.js.map → chunk-CDJYMGHH.js.map} +0 -0
  42. /package/bundles/{chunk-SBDNBITT.js.map → chunk-CF2CT7RQ.js.map} +0 -0
  43. /package/bundles/{chunk-GYHDNUIK.js.map → chunk-OULZQUKT.js.map} +0 -0
  44. /package/bundles/{chunk-QDHJ26RK.js.map → chunk-PJ5O6AJ3.js.map} +0 -0
  45. /package/bundles/{chunk-3IBJEGH3.js.map → chunk-W22VYY2W.js.map} +0 -0
  46. /package/bundles/{chunk-CSOLWS7O.js.map → chunk-W653LDC7.js.map} +0 -0
  47. /package/bundles/{chunk-QFTMYSLL.js.map → chunk-Z6XLAZWI.js.map} +0 -0
@@ -36,14 +36,14 @@ import {
36
36
  aliasTransformFactory,
37
37
  declarationTransformFactory,
38
38
  ivyTransformFactory
39
- } from "./chunk-3ZDTTLEA.js";
39
+ } from "./chunk-ILV5JRA3.js";
40
40
  import {
41
41
  ImportManager,
42
42
  TypeEmitter,
43
43
  canEmitType,
44
44
  translateExpression,
45
45
  translateType
46
- } from "./chunk-QDHJ26RK.js";
46
+ } from "./chunk-PJ5O6AJ3.js";
47
47
  import {
48
48
  AbsoluteModuleStrategy,
49
49
  AliasStrategy,
@@ -85,14 +85,14 @@ import {
85
85
  relativePathBetween,
86
86
  replaceTsWithNgInErrors,
87
87
  toUnredirectedSourceFile
88
- } from "./chunk-CLTYCPJK.js";
88
+ } from "./chunk-JZRCFA2M.js";
89
89
  import {
90
90
  ActivePerfRecorder,
91
91
  DelegatingPerfRecorder,
92
92
  PerfCheckpoint,
93
93
  PerfEvent,
94
94
  PerfPhase
95
- } from "./chunk-3IBJEGH3.js";
95
+ } from "./chunk-W22VYY2W.js";
96
96
  import {
97
97
  LogicalFileSystem,
98
98
  absoluteFrom,
@@ -102,9 +102,9 @@ import {
102
102
  getSourceFileOrError,
103
103
  join,
104
104
  resolve
105
- } from "./chunk-CSOLWS7O.js";
105
+ } from "./chunk-W653LDC7.js";
106
106
 
107
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/transformers/api.mjs
107
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/transformers/api.mjs
108
108
  var DEFAULT_ERROR_CODE = 100;
109
109
  var UNKNOWN_ERROR_CODE = 500;
110
110
  var SOURCE = "angular";
@@ -122,7 +122,7 @@ var EmitFlags;
122
122
  EmitFlags2[EmitFlags2["All"] = 31] = "All";
123
123
  })(EmitFlags || (EmitFlags = {}));
124
124
 
125
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/transformers/compiler_host.mjs
125
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/transformers/compiler_host.mjs
126
126
  import ts from "typescript";
127
127
  var wrapHostForTest = null;
128
128
  function createCompilerHost({ options, tsHost = ts.createCompilerHost(options, true) }) {
@@ -132,7 +132,7 @@ function createCompilerHost({ options, tsHost = ts.createCompilerHost(options, t
132
132
  return tsHost;
133
133
  }
134
134
 
135
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/entities.mjs
135
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/entities.mjs
136
136
  var EntryType;
137
137
  (function(EntryType2) {
138
138
  EntryType2["Block"] = "block";
@@ -175,11 +175,11 @@ var MemberTags;
175
175
  MemberTags2["Inherited"] = "override";
176
176
  })(MemberTags || (MemberTags = {}));
177
177
 
178
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/program.mjs
178
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/program.mjs
179
179
  import { HtmlParser, MessageBundle } from "@angular/compiler";
180
180
  import ts37 from "typescript";
181
181
 
182
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/transformers/i18n.mjs
182
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/transformers/i18n.mjs
183
183
  import { Xliff, Xliff2, Xmb } from "@angular/compiler";
184
184
  import * as path from "path";
185
185
  function i18nGetExtension(formatName) {
@@ -230,10 +230,10 @@ function getPathNormalizer(basePath) {
230
230
  };
231
231
  }
232
232
 
233
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/typescript_support.mjs
233
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/typescript_support.mjs
234
234
  import ts2 from "typescript";
235
235
 
236
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/version_helpers.mjs
236
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/version_helpers.mjs
237
237
  function toNumbers(value) {
238
238
  const suffixIndex = value.lastIndexOf("-");
239
239
  return value.slice(0, suffixIndex === -1 ? value.length : suffixIndex).split(".").map((segment) => {
@@ -268,7 +268,7 @@ function compareVersions(v1, v2) {
268
268
  return compareNumbers(toNumbers(v1), toNumbers(v2));
269
269
  }
270
270
 
271
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/typescript_support.mjs
271
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/typescript_support.mjs
272
272
  var MIN_TS_VERSION = "5.2.0";
273
273
  var MAX_TS_VERSION = "5.3.0";
274
274
  var tsVersion = ts2.version;
@@ -281,10 +281,10 @@ function verifySupportedTypeScriptVersion() {
281
281
  checkVersion(tsVersion, MIN_TS_VERSION, MAX_TS_VERSION);
282
282
  }
283
283
 
284
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/core/src/compiler.mjs
284
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/core/src/compiler.mjs
285
285
  import ts35 from "typescript";
286
286
 
287
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/cycles/src/analyzer.mjs
287
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/cycles/src/analyzer.mjs
288
288
  var CycleAnalyzer = class {
289
289
  constructor(importGraph) {
290
290
  this.importGraph = importGraph;
@@ -355,7 +355,7 @@ var Cycle = class {
355
355
  }
356
356
  };
357
357
 
358
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/cycles/src/imports.mjs
358
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/cycles/src/imports.mjs
359
359
  import ts3 from "typescript";
360
360
  var ImportGraph = class {
361
361
  constructor(checker, perf) {
@@ -447,23 +447,23 @@ var Found = class {
447
447
  }
448
448
  };
449
449
 
450
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/extractor.mjs
450
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/extractor.mjs
451
451
  import ts9 from "typescript";
452
452
 
453
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/class_extractor.mjs
453
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/class_extractor.mjs
454
454
  import ts6 from "typescript";
455
455
 
456
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/filters.mjs
456
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/filters.mjs
457
457
  function isAngularPrivateName(name) {
458
458
  var _a;
459
459
  const firstChar = (_a = name[0]) != null ? _a : "";
460
460
  return firstChar === "\u0275" || firstChar === "_";
461
461
  }
462
462
 
463
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/function_extractor.mjs
463
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/function_extractor.mjs
464
464
  import ts5 from "typescript";
465
465
 
466
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/generics_extractor.mjs
466
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/generics_extractor.mjs
467
467
  function extractGenerics(declaration) {
468
468
  var _a, _b;
469
469
  return (_b = (_a = declaration.typeParameters) == null ? void 0 : _a.map((typeParam) => {
@@ -476,7 +476,7 @@ function extractGenerics(declaration) {
476
476
  })) != null ? _b : [];
477
477
  }
478
478
 
479
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/jsdoc_extractor.mjs
479
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/jsdoc_extractor.mjs
480
480
  import ts4 from "typescript";
481
481
  var decoratorExpression = /@(?=(Injectable|Component|Directive|Pipe|NgModule|Input|Output|HostBinding|HostListener|Inject|Optional|Self|Host|SkipSelf))/g;
482
482
  function extractJsDocTags(node) {
@@ -520,12 +520,12 @@ function unescapeAngularDecorators(comment) {
520
520
  return comment.replace(/_NG_AT_/g, "@");
521
521
  }
522
522
 
523
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/type_extractor.mjs
523
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/type_extractor.mjs
524
524
  function extractResolvedTypeString(node, checker) {
525
525
  return checker.typeToString(checker.getTypeAtLocation(node));
526
526
  }
527
527
 
528
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/function_extractor.mjs
528
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/function_extractor.mjs
529
529
  var FunctionExtractor = class {
530
530
  constructor(declaration, typeChecker) {
531
531
  this.declaration = declaration;
@@ -579,7 +579,7 @@ var FunctionExtractor = class {
579
579
  }
580
580
  };
581
581
 
582
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/class_extractor.mjs
582
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/class_extractor.mjs
583
583
  var ClassExtractor = class {
584
584
  constructor(declaration, typeChecker) {
585
585
  this.declaration = declaration;
@@ -811,7 +811,7 @@ function extractInterface(declaration, typeChecker) {
811
811
  return extractor.extract();
812
812
  }
813
813
 
814
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/constant_extractor.mjs
814
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/constant_extractor.mjs
815
815
  function extractConstant(declaration, typeChecker) {
816
816
  const resolvedType = typeChecker.getBaseTypeOfLiteralType(typeChecker.getTypeAtLocation(declaration));
817
817
  const variableStatement = declaration.parent.parent;
@@ -829,7 +829,7 @@ function isSyntheticAngularConstant(declaration) {
829
829
  return declaration.name.getText() === "USED_FOR_NG_TYPE_CHECKING";
830
830
  }
831
831
 
832
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/decorator_extractor.mjs
832
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/decorator_extractor.mjs
833
833
  import ts7 from "typescript";
834
834
  function extractorDecorator(declaration, typeChecker) {
835
835
  const documentedNode = getDecoratorJsDocNode(declaration);
@@ -902,7 +902,7 @@ function getDecoratorJsDocNode(declaration) {
902
902
  return callSignature;
903
903
  }
904
904
 
905
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/enum_extractor.mjs
905
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/enum_extractor.mjs
906
906
  import ts8 from "typescript";
907
907
  function extractEnum(declaration, typeChecker) {
908
908
  return {
@@ -931,7 +931,7 @@ function getEnumMemberValue(memberNode) {
931
931
  return (_a = literal == null ? void 0 : literal.getText()) != null ? _a : "";
932
932
  }
933
933
 
934
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/type_alias_extractor.mjs
934
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/type_alias_extractor.mjs
935
935
  function extractTypeAlias(declaration) {
936
936
  return {
937
937
  name: declaration.name.getText(),
@@ -943,7 +943,7 @@ function extractTypeAlias(declaration) {
943
943
  };
944
944
  }
945
945
 
946
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/extractor.mjs
946
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/extractor.mjs
947
947
  var DocsExtractor = class {
948
948
  constructor(typeChecker, metadataReader) {
949
949
  this.typeChecker = typeChecker;
@@ -1005,7 +1005,7 @@ function isIgnoredInterface(node) {
1005
1005
  return node.name.getText().endsWith("Decorator") || isDecoratorOptionsInterface(node);
1006
1006
  }
1007
1007
 
1008
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/entry_point/src/generator.mjs
1008
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/entry_point/src/generator.mjs
1009
1009
  import ts10 from "typescript";
1010
1010
  var FlatIndexGenerator = class {
1011
1011
  constructor(entryPoint, relativeFlatIndexPath, moduleName) {
@@ -1030,7 +1030,7 @@ export * from '${relativeEntryPoint}';
1030
1030
  }
1031
1031
  };
1032
1032
 
1033
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/entry_point/src/logic.mjs
1033
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/entry_point/src/logic.mjs
1034
1034
  function findFlatIndexEntryPoint(rootFiles) {
1035
1035
  const tsFiles = rootFiles.filter((file) => isNonDeclarationTsPath(file));
1036
1036
  let resolvedEntryPoint = null;
@@ -1046,7 +1046,7 @@ function findFlatIndexEntryPoint(rootFiles) {
1046
1046
  return resolvedEntryPoint;
1047
1047
  }
1048
1048
 
1049
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/entry_point/src/private_export_checker.mjs
1049
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/entry_point/src/private_export_checker.mjs
1050
1050
  import ts11 from "typescript";
1051
1051
  function checkForPrivateExports(entryPoint, checker, refGraph) {
1052
1052
  const diagnostics = [];
@@ -1126,7 +1126,7 @@ function getDescriptorOfDeclaration(decl) {
1126
1126
  }
1127
1127
  }
1128
1128
 
1129
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/entry_point/src/reference_graph.mjs
1129
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/entry_point/src/reference_graph.mjs
1130
1130
  var ReferenceGraph = class {
1131
1131
  constructor() {
1132
1132
  this.references = /* @__PURE__ */ new Map();
@@ -1180,7 +1180,7 @@ var ReferenceGraph = class {
1180
1180
  }
1181
1181
  };
1182
1182
 
1183
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/program_driver/src/api.mjs
1183
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/program_driver/src/api.mjs
1184
1184
  var NgOriginalFile = Symbol("NgOriginalFile");
1185
1185
  var UpdateMode;
1186
1186
  (function(UpdateMode2) {
@@ -1188,13 +1188,13 @@ var UpdateMode;
1188
1188
  UpdateMode2[UpdateMode2["Incremental"] = 1] = "Incremental";
1189
1189
  })(UpdateMode || (UpdateMode = {}));
1190
1190
 
1191
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/program_driver/src/ts_create_program_driver.mjs
1191
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/program_driver/src/ts_create_program_driver.mjs
1192
1192
  import ts13 from "typescript";
1193
1193
 
1194
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/adapter.mjs
1194
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/adapter.mjs
1195
1195
  import ts12 from "typescript";
1196
1196
 
1197
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/expando.mjs
1197
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/expando.mjs
1198
1198
  var NgExtension = Symbol("NgExtension");
1199
1199
  function isExtended(sf) {
1200
1200
  return sf[NgExtension] !== void 0;
@@ -1254,13 +1254,13 @@ function retagTsFile(sf) {
1254
1254
  }
1255
1255
  }
1256
1256
 
1257
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/util.mjs
1257
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/util.mjs
1258
1258
  var TS_EXTENSIONS = /\.tsx?$/i;
1259
1259
  function makeShimFileName(fileName, suffix) {
1260
1260
  return absoluteFrom(fileName.replace(TS_EXTENSIONS, suffix));
1261
1261
  }
1262
1262
 
1263
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/adapter.mjs
1263
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/adapter.mjs
1264
1264
  var ShimAdapter = class {
1265
1265
  constructor(delegate, tsRootFiles, topLevelGenerators, perFileGenerators, oldProgram) {
1266
1266
  this.delegate = delegate;
@@ -1355,7 +1355,7 @@ var ShimAdapter = class {
1355
1355
  }
1356
1356
  };
1357
1357
 
1358
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/reference_tagger.mjs
1358
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/reference_tagger.mjs
1359
1359
  var ShimReferenceTagger = class {
1360
1360
  constructor(shimExtensions) {
1361
1361
  this.tagged = /* @__PURE__ */ new Set();
@@ -1389,7 +1389,7 @@ var ShimReferenceTagger = class {
1389
1389
  }
1390
1390
  };
1391
1391
 
1392
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/program_driver/src/ts_create_program_driver.mjs
1392
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/program_driver/src/ts_create_program_driver.mjs
1393
1393
  var DelegatingCompilerHost = class {
1394
1394
  constructor(delegate) {
1395
1395
  this.delegate = delegate;
@@ -1502,7 +1502,7 @@ var TsCreateProgramDriver = class {
1502
1502
  }
1503
1503
  };
1504
1504
 
1505
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/src/dependency_tracking.mjs
1505
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/src/dependency_tracking.mjs
1506
1506
  var FileDependencyGraph = class {
1507
1507
  constructor() {
1508
1508
  this.nodes = /* @__PURE__ */ new Map();
@@ -1569,7 +1569,7 @@ function isLogicallyChanged(sf, node, changedTsPaths, deletedTsPaths, changedRes
1569
1569
  return false;
1570
1570
  }
1571
1571
 
1572
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/src/state.mjs
1572
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/src/state.mjs
1573
1573
  var IncrementalStateKind;
1574
1574
  (function(IncrementalStateKind2) {
1575
1575
  IncrementalStateKind2[IncrementalStateKind2["Fresh"] = 0] = "Fresh";
@@ -1577,7 +1577,7 @@ var IncrementalStateKind;
1577
1577
  IncrementalStateKind2[IncrementalStateKind2["Analyzed"] = 2] = "Analyzed";
1578
1578
  })(IncrementalStateKind || (IncrementalStateKind = {}));
1579
1579
 
1580
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/src/incremental.mjs
1580
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/src/incremental.mjs
1581
1581
  var PhaseKind;
1582
1582
  (function(PhaseKind2) {
1583
1583
  PhaseKind2[PhaseKind2["Analysis"] = 0] = "Analysis";
@@ -1778,7 +1778,7 @@ function toOriginalSourceFile(sf) {
1778
1778
  }
1779
1779
  }
1780
1780
 
1781
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/src/strategy.mjs
1781
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/src/strategy.mjs
1782
1782
  var TrackedIncrementalBuildStrategy = class {
1783
1783
  constructor() {
1784
1784
  this.state = null;
@@ -1814,7 +1814,7 @@ var PatchedProgramIncrementalBuildStrategy = class {
1814
1814
  };
1815
1815
  var SYM_INCREMENTAL_STATE = Symbol("NgIncrementalState");
1816
1816
 
1817
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/indexer/src/api.mjs
1817
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/indexer/src/api.mjs
1818
1818
  var IdentifierKind;
1819
1819
  (function(IdentifierKind2) {
1820
1820
  IdentifierKind2[IdentifierKind2["Property"] = 0] = "Property";
@@ -1832,7 +1832,7 @@ var AbsoluteSourceSpan = class {
1832
1832
  }
1833
1833
  };
1834
1834
 
1835
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/indexer/src/context.mjs
1835
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/indexer/src/context.mjs
1836
1836
  var IndexingContext = class {
1837
1837
  constructor() {
1838
1838
  this.components = /* @__PURE__ */ new Set();
@@ -1842,10 +1842,10 @@ var IndexingContext = class {
1842
1842
  }
1843
1843
  };
1844
1844
 
1845
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/indexer/src/transform.mjs
1845
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/indexer/src/transform.mjs
1846
1846
  import { ParseSourceFile } from "@angular/compiler";
1847
1847
 
1848
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/indexer/src/template.mjs
1848
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/indexer/src/template.mjs
1849
1849
  import { ASTWithSource, ImplicitReceiver, PropertyRead, PropertyWrite, RecursiveAstVisitor, TmplAstBoundDeferredTrigger, TmplAstElement, TmplAstRecursiveVisitor, TmplAstReference, TmplAstTemplate } from "@angular/compiler";
1850
1850
  var ExpressionVisitor = class extends RecursiveAstVisitor {
1851
1851
  constructor(expressionStr, absoluteOffset, boundTemplate, targetToIdentifier) {
@@ -2127,7 +2127,7 @@ function getTemplateIdentifiers(boundTemplate) {
2127
2127
  return { identifiers: visitor.identifiers, errors: visitor.errors };
2128
2128
  }
2129
2129
 
2130
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/indexer/src/transform.mjs
2130
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/indexer/src/transform.mjs
2131
2131
  function generateAnalysis(context) {
2132
2132
  const analysis = /* @__PURE__ */ new Map();
2133
2133
  context.components.forEach(({ declaration, selector, boundTemplate, templateMeta }) => {
@@ -2163,7 +2163,7 @@ function generateAnalysis(context) {
2163
2163
  return analysis;
2164
2164
  }
2165
2165
 
2166
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/ng_module_index.mjs
2166
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/ng_module_index.mjs
2167
2167
  var NgModuleIndexImpl = class {
2168
2168
  constructor(metaReader, localReader) {
2169
2169
  this.metaReader = metaReader;
@@ -2252,7 +2252,7 @@ var NgModuleIndexImpl = class {
2252
2252
  }
2253
2253
  };
2254
2254
 
2255
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/resource/src/loader.mjs
2255
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/resource/src/loader.mjs
2256
2256
  import ts14 from "typescript";
2257
2257
  var CSS_PREPROCESSOR_EXT = /(\.scss|\.sass|\.less|\.styl)$/;
2258
2258
  var RESOURCE_MARKER = ".$ngresource$";
@@ -2398,7 +2398,7 @@ function createLookupResolutionHost(adapter) {
2398
2398
  };
2399
2399
  }
2400
2400
 
2401
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/scope/src/standalone.mjs
2401
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/scope/src/standalone.mjs
2402
2402
  var StandaloneComponentScopeReader = class {
2403
2403
  constructor(metaReader, localModuleReader, dtsModuleReader) {
2404
2404
  this.metaReader = metaReader;
@@ -2476,10 +2476,10 @@ var StandaloneComponentScopeReader = class {
2476
2476
  }
2477
2477
  };
2478
2478
 
2479
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/checker.mjs
2480
- import { CssSelector, DomElementSchemaRegistry as DomElementSchemaRegistry2, ExternalExpr as ExternalExpr2, WrappedNodeExpr } from "@angular/compiler";
2479
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/checker.mjs
2480
+ import { CssSelector as CssSelector2, DomElementSchemaRegistry as DomElementSchemaRegistry2, ExternalExpr as ExternalExpr2, WrappedNodeExpr } from "@angular/compiler";
2481
2481
 
2482
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/diagnostics/src/diagnostic.mjs
2482
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/diagnostics/src/diagnostic.mjs
2483
2483
  import ts15 from "typescript";
2484
2484
  function makeTemplateDiagnostic(templateId, mapping, span, category, code, messageText, relatedMessages) {
2485
2485
  var _a;
@@ -2586,7 +2586,7 @@ function parseTemplateAsSourceFile(fileName, template) {
2586
2586
  return ts15.createSourceFile(fileName, template, ts15.ScriptTarget.Latest, false, ts15.ScriptKind.JSX);
2587
2587
  }
2588
2588
 
2589
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/diagnostics/src/id.mjs
2589
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/diagnostics/src/id.mjs
2590
2590
  var TEMPLATE_ID = Symbol("ngTemplateId");
2591
2591
  var NEXT_TEMPLATE_ID = Symbol("ngNextTemplateId");
2592
2592
  function getTemplateId(clazz) {
@@ -2603,11 +2603,11 @@ function allocateTemplateId(sf) {
2603
2603
  return `tcb${sf[NEXT_TEMPLATE_ID]++}`;
2604
2604
  }
2605
2605
 
2606
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/completion.mjs
2606
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/completion.mjs
2607
2607
  import { EmptyExpr, ImplicitReceiver as ImplicitReceiver2, PropertyRead as PropertyRead2, PropertyWrite as PropertyWrite2, SafePropertyRead, TmplAstReference as TmplAstReference2, TmplAstTextAttribute } from "@angular/compiler";
2608
2608
  import ts17 from "typescript";
2609
2609
 
2610
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/comments.mjs
2610
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/comments.mjs
2611
2611
  import { AbsoluteSourceSpan as AbsoluteSourceSpan2 } from "@angular/compiler";
2612
2612
  import ts16 from "typescript";
2613
2613
  var parseSpanComment = /^(\d+),(\d+)$/;
@@ -2737,7 +2737,7 @@ function hasExpressionIdentifier(sourceFile, node, identifier) {
2737
2737
  }) || false;
2738
2738
  }
2739
2739
 
2740
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/completion.mjs
2740
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/completion.mjs
2741
2741
  var CompletionEngine = class {
2742
2742
  constructor(tcb, data, tcbPath, tcbIsShim) {
2743
2743
  this.tcb = tcb;
@@ -2894,10 +2894,10 @@ var CompletionEngine = class {
2894
2894
  }
2895
2895
  };
2896
2896
 
2897
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/context.mjs
2897
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/context.mjs
2898
2898
  import ts30 from "typescript";
2899
2899
 
2900
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/dom.mjs
2900
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/dom.mjs
2901
2901
  import { DomElementSchemaRegistry } from "@angular/compiler";
2902
2902
  import ts18 from "typescript";
2903
2903
  var REGISTRY = new DomElementSchemaRegistry();
@@ -2950,11 +2950,11 @@ var RegistryDomSchemaChecker = class {
2950
2950
  }
2951
2951
  };
2952
2952
 
2953
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/environment.mjs
2953
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/environment.mjs
2954
2954
  import { ExpressionType, ExternalExpr, TypeModifier } from "@angular/compiler";
2955
2955
  import ts23 from "typescript";
2956
2956
 
2957
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/ts_util.mjs
2957
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/ts_util.mjs
2958
2958
  import ts19 from "typescript";
2959
2959
  var SAFE_TO_CAST_WITHOUT_PARENS = /* @__PURE__ */ new Set([
2960
2960
  ts19.SyntaxKind.ParenthesizedExpression,
@@ -3032,13 +3032,13 @@ function isAccessExpression(node) {
3032
3032
  return ts19.isPropertyAccessExpression(node) || ts19.isElementAccessExpression(node);
3033
3033
  }
3034
3034
 
3035
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_constructor.mjs
3035
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_constructor.mjs
3036
3036
  import ts22 from "typescript";
3037
3037
 
3038
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/tcb_util.mjs
3038
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/tcb_util.mjs
3039
3039
  import ts21 from "typescript";
3040
3040
 
3041
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_parameter_emitter.mjs
3041
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_parameter_emitter.mjs
3042
3042
  import ts20 from "typescript";
3043
3043
  var TypeParameterEmitter = class {
3044
3044
  constructor(typeParameters, reflector) {
@@ -3116,7 +3116,7 @@ var TypeParameterEmitter = class {
3116
3116
  }
3117
3117
  };
3118
3118
 
3119
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/tcb_util.mjs
3119
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/tcb_util.mjs
3120
3120
  var TcbInliningRequirement;
3121
3121
  (function(TcbInliningRequirement2) {
3122
3122
  TcbInliningRequirement2[TcbInliningRequirement2["MustInline"] = 0] = "MustInline";
@@ -3196,7 +3196,7 @@ function checkIfGenericTypeBoundsCanBeEmitted(node, reflector, env) {
3196
3196
  return emitter.canEmit((ref) => env.canReferenceType(ref));
3197
3197
  }
3198
3198
 
3199
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_constructor.mjs
3199
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_constructor.mjs
3200
3200
  function generateTypeCtorDeclarationFn(node, meta, nodeTypeRef, typeParams) {
3201
3201
  const rawTypeArgs = typeParams !== void 0 ? generateGenericArgs(typeParams) : void 0;
3202
3202
  const rawType = ts22.factory.createTypeReferenceNode(nodeTypeRef, rawTypeArgs);
@@ -3307,7 +3307,7 @@ function typeParametersWithDefaultTypes(params) {
3307
3307
  });
3308
3308
  }
3309
3309
 
3310
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/environment.mjs
3310
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/environment.mjs
3311
3311
  var Environment = class {
3312
3312
  constructor(config, importManager, refEmitter, reflector, contextFile) {
3313
3313
  this.config = config;
@@ -3401,8 +3401,8 @@ var Environment = class {
3401
3401
  }
3402
3402
  };
3403
3403
 
3404
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/oob.mjs
3405
- import { TmplAstElement as TmplAstElement2 } from "@angular/compiler";
3404
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/oob.mjs
3405
+ import { TmplAstElement as TmplAstElement2, TmplAstIfBlockBranch } from "@angular/compiler";
3406
3406
  import ts24 from "typescript";
3407
3407
  var OutOfBandDiagnosticRecorderImpl = class {
3408
3408
  constructor(resolver) {
@@ -3548,6 +3548,21 @@ Deferred blocks can only access triggers in same view, a parent embedded view or
3548
3548
  }
3549
3549
  this._diagnostics.push(makeTemplateDiagnostic(templateId, this.resolver.getSourceMapping(templateId), trigger.sourceSpan, ts24.DiagnosticCategory.Error, ngErrorCode(ErrorCode.INACCESSIBLE_DEFERRED_TRIGGER_ELEMENT), message));
3550
3550
  }
3551
+ controlFlowPreventingContentProjection(templateId, category, projectionNode, componentName, slotSelector, controlFlowNode, preservesWhitespaces) {
3552
+ const blockName = controlFlowNode instanceof TmplAstIfBlockBranch ? "@if" : "@for";
3553
+ const lines = [
3554
+ `Node matches the "${slotSelector}" slot of the "${componentName}" component, but will not be projected into the specific slot because the surrounding ${blockName} has more than one node at its root. To project the node in the right slot, you can:
3555
+ `,
3556
+ `1. Wrap the content of the ${blockName} block in an <ng-container/> that matches the "${slotSelector}" selector.`,
3557
+ `2. Split the content of the ${blockName} block across multiple ${blockName} blocks such that each one only has a single projectable node at its root.`,
3558
+ `3. Remove all content from the ${blockName} block, except for the node being projected.`
3559
+ ];
3560
+ if (preservesWhitespaces) {
3561
+ lines.push("Note: the host component has `preserveWhitespaces: true` which may cause whitespace to affect content projection.");
3562
+ }
3563
+ lines.push("", 'This check can be disabled using the `extendedDiagnostics.checks.controlFlowPreventingContentProjection = "suppress" compiler option.`');
3564
+ this._diagnostics.push(makeTemplateDiagnostic(templateId, this.resolver.getSourceMapping(templateId), projectionNode.startSourceSpan, category, ngErrorCode(ErrorCode.CONTROL_FLOW_PREVENTING_CONTENT_PROJECTION), lines.join("\n")));
3565
+ }
3551
3566
  };
3552
3567
  function makeInlineDiagnostic(templateId, code, node, messageText, relatedInformation) {
3553
3568
  return {
@@ -3557,7 +3572,7 @@ function makeInlineDiagnostic(templateId, code, node, messageText, relatedInform
3557
3572
  };
3558
3573
  }
3559
3574
 
3560
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/shim.mjs
3575
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/shim.mjs
3561
3576
  import ts25 from "typescript";
3562
3577
  var TypeCheckShimGenerator = class {
3563
3578
  constructor() {
@@ -3575,11 +3590,11 @@ var TypeCheckShimGenerator = class {
3575
3590
  }
3576
3591
  };
3577
3592
 
3578
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_check_block.mjs
3579
- import { BindingPipe, Call as Call2, DYNAMIC_TYPE, ImplicitReceiver as ImplicitReceiver4, PropertyRead as PropertyRead4, PropertyWrite as PropertyWrite3, SafeCall, SafePropertyRead as SafePropertyRead3, ThisReceiver, TmplAstBoundAttribute, TmplAstBoundText, TmplAstDeferredBlock, TmplAstElement as TmplAstElement3, TmplAstForLoopBlock, TmplAstIcu, TmplAstIfBlock, TmplAstIfBlockBranch, TmplAstReference as TmplAstReference3, TmplAstSwitchBlock, TmplAstTemplate as TmplAstTemplate2, TmplAstTextAttribute as TmplAstTextAttribute2, TmplAstVariable as TmplAstVariable2, TransplantedType } from "@angular/compiler";
3593
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_check_block.mjs
3594
+ import { BindingPipe, Call as Call2, createCssSelectorFromNode, CssSelector, DYNAMIC_TYPE, ImplicitReceiver as ImplicitReceiver4, PropertyRead as PropertyRead4, PropertyWrite as PropertyWrite3, SafeCall, SafePropertyRead as SafePropertyRead3, SelectorMatcher, ThisReceiver, TmplAstBoundAttribute, TmplAstBoundText, TmplAstDeferredBlock, TmplAstElement as TmplAstElement3, TmplAstForLoopBlock, TmplAstIcu, TmplAstIfBlock, TmplAstIfBlockBranch as TmplAstIfBlockBranch2, TmplAstReference as TmplAstReference3, TmplAstSwitchBlock, TmplAstTemplate as TmplAstTemplate2, TmplAstText, TmplAstTextAttribute as TmplAstTextAttribute2, TmplAstVariable as TmplAstVariable2, TransplantedType } from "@angular/compiler";
3580
3595
  import ts28 from "typescript";
3581
3596
 
3582
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/diagnostics.mjs
3597
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/diagnostics.mjs
3583
3598
  import { AbsoluteSourceSpan as AbsoluteSourceSpan3 } from "@angular/compiler";
3584
3599
  import ts26 from "typescript";
3585
3600
  function wrapForDiagnostics(expr) {
@@ -3625,7 +3640,7 @@ function translateDiagnostic(diagnostic, resolver) {
3625
3640
  return makeTemplateDiagnostic(sourceLocation.id, templateSourceMapping, span, diagnostic.category, diagnostic.code, diagnostic.messageText);
3626
3641
  }
3627
3642
 
3628
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/expression.mjs
3643
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/expression.mjs
3629
3644
  import { ASTWithSource as ASTWithSource2, Call, EmptyExpr as EmptyExpr2, PropertyRead as PropertyRead3, SafeKeyedRead, SafePropertyRead as SafePropertyRead2 } from "@angular/compiler";
3630
3645
  import ts27 from "typescript";
3631
3646
  var NULL_AS_ANY = ts27.factory.createAsExpression(ts27.factory.createNull(), ts27.factory.createKeywordTypeNode(ts27.SyntaxKind.AnyKeyword));
@@ -3958,7 +3973,7 @@ var VeSafeLhsInferenceBugDetector = _VeSafeLhsInferenceBugDetector;
3958
3973
  _VeSafeLhsInferenceBugDetector.SINGLETON = new _VeSafeLhsInferenceBugDetector();
3959
3974
  })();
3960
3975
 
3961
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/template_semantics.mjs
3976
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/template_semantics.mjs
3962
3977
  import { ImplicitReceiver as ImplicitReceiver3, RecursiveAstVisitor as RecursiveAstVisitor2, TmplAstVariable } from "@angular/compiler";
3963
3978
  var ExpressionSemanticVisitor = class extends RecursiveAstVisitor2 {
3964
3979
  constructor(templateId, boundTarget, oob) {
@@ -3982,7 +3997,7 @@ var ExpressionSemanticVisitor = class extends RecursiveAstVisitor2 {
3982
3997
  }
3983
3998
  };
3984
3999
 
3985
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_check_block.mjs
4000
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_check_block.mjs
3986
4001
  var TcbGenericContextBehavior;
3987
4002
  (function(TcbGenericContextBehavior2) {
3988
4003
  TcbGenericContextBehavior2[TcbGenericContextBehavior2["UseEmitter"] = 0] = "UseEmitter";
@@ -3990,7 +4005,7 @@ var TcbGenericContextBehavior;
3990
4005
  TcbGenericContextBehavior2[TcbGenericContextBehavior2["FallbackToAny"] = 2] = "FallbackToAny";
3991
4006
  })(TcbGenericContextBehavior || (TcbGenericContextBehavior = {}));
3992
4007
  function generateTypeCheckBlock(env, ref, name, meta, domSchemaChecker, oobRecorder, genericContextBehavior) {
3993
- const tcb = new Context(env, domSchemaChecker, oobRecorder, meta.id, meta.boundTarget, meta.pipes, meta.schemas, meta.isStandalone);
4008
+ const tcb = new Context(env, domSchemaChecker, oobRecorder, meta.id, meta.boundTarget, meta.pipes, meta.schemas, meta.isStandalone, meta.preserveWhitespaces);
3994
4009
  const scope = Scope.forNodes(tcb, null, null, tcb.boundTarget.target.template, null);
3995
4010
  const ctxRawType = env.referenceType(ref);
3996
4011
  if (!ts28.isTypeReferenceNode(ctxRawType)) {
@@ -4446,6 +4461,62 @@ var TcbDomSchemaCheckerOp = class extends TcbOp {
4446
4461
  return null;
4447
4462
  }
4448
4463
  };
4464
+ var TcbControlFlowContentProjectionOp = class extends TcbOp {
4465
+ constructor(tcb, element, ngContentSelectors, componentName) {
4466
+ super();
4467
+ this.tcb = tcb;
4468
+ this.element = element;
4469
+ this.ngContentSelectors = ngContentSelectors;
4470
+ this.componentName = componentName;
4471
+ this.optional = false;
4472
+ this.category = tcb.env.config.controlFlowPreventingContentProjection === "error" ? ts28.DiagnosticCategory.Error : ts28.DiagnosticCategory.Warning;
4473
+ }
4474
+ execute() {
4475
+ const controlFlowToCheck = this.findPotentialControlFlowNodes();
4476
+ if (controlFlowToCheck.length > 0) {
4477
+ const matcher = new SelectorMatcher();
4478
+ for (const selector of this.ngContentSelectors) {
4479
+ if (selector !== "*") {
4480
+ matcher.addSelectables(CssSelector.parse(selector), selector);
4481
+ }
4482
+ }
4483
+ for (const root of controlFlowToCheck) {
4484
+ for (const child of root.children) {
4485
+ if (child instanceof TmplAstElement3 || child instanceof TmplAstTemplate2) {
4486
+ matcher.match(createCssSelectorFromNode(child), (_, originalSelector) => {
4487
+ this.tcb.oobRecorder.controlFlowPreventingContentProjection(this.tcb.id, this.category, child, this.componentName, originalSelector, root, this.tcb.hostPreserveWhitespaces);
4488
+ });
4489
+ }
4490
+ }
4491
+ }
4492
+ }
4493
+ return null;
4494
+ }
4495
+ findPotentialControlFlowNodes() {
4496
+ const result = [];
4497
+ for (const child of this.element.children) {
4498
+ let eligibleNode = null;
4499
+ if (child instanceof TmplAstForLoopBlock) {
4500
+ eligibleNode = child;
4501
+ } else if (child instanceof TmplAstIfBlock) {
4502
+ eligibleNode = child.branches[0];
4503
+ }
4504
+ if (eligibleNode === null || eligibleNode.children.length < 2) {
4505
+ continue;
4506
+ }
4507
+ const rootNodeCount = eligibleNode.children.reduce((count, node) => {
4508
+ if (!(node instanceof TmplAstText) || this.tcb.hostPreserveWhitespaces || node.value.trim().length > 0) {
4509
+ count++;
4510
+ }
4511
+ return count;
4512
+ }, 0);
4513
+ if (rootNodeCount > 1) {
4514
+ result.push(eligibleNode);
4515
+ }
4516
+ }
4517
+ return result;
4518
+ }
4519
+ };
4449
4520
  var ATTR_TO_PROP = new Map(Object.entries({
4450
4521
  "class": "className",
4451
4522
  "for": "htmlFor",
@@ -4765,7 +4836,11 @@ var TcbForOfOp = class extends TcbOp {
4765
4836
  }
4766
4837
  execute() {
4767
4838
  const loopScope = Scope.forNodes(this.tcb, this.scope, this.block, this.block.children, null);
4768
- const initializer = ts28.factory.createVariableDeclarationList([ts28.factory.createVariableDeclaration(this.block.item.name)], ts28.NodeFlags.Const);
4839
+ const initializerId = loopScope.resolve(this.block.item);
4840
+ if (!ts28.isIdentifier(initializerId)) {
4841
+ throw new Error(`Could not resolve for loop variable ${this.block.item.name} to an identifier`);
4842
+ }
4843
+ const initializer = ts28.factory.createVariableDeclarationList([ts28.factory.createVariableDeclaration(initializerId)], ts28.NodeFlags.Const);
4769
4844
  const expression = ts28.factory.createNonNullExpression(tcbExpression(this.block.expression, this.tcb, loopScope));
4770
4845
  const trackTranslator = new TcbForLoopTrackTranslator(this.tcb, loopScope, this.block);
4771
4846
  const trackExpression = trackTranslator.translate(this.block.trackBy);
@@ -4779,7 +4854,7 @@ var TcbForOfOp = class extends TcbOp {
4779
4854
  };
4780
4855
  var INFER_TYPE_FOR_CIRCULAR_OP_EXPR = ts28.factory.createNonNullExpression(ts28.factory.createNull());
4781
4856
  var Context = class {
4782
- constructor(env, domSchemaChecker, oobRecorder, id, boundTarget, pipes, schemas, hostIsStandalone) {
4857
+ constructor(env, domSchemaChecker, oobRecorder, id, boundTarget, pipes, schemas, hostIsStandalone, hostPreserveWhitespaces) {
4783
4858
  this.env = env;
4784
4859
  this.domSchemaChecker = domSchemaChecker;
4785
4860
  this.oobRecorder = oobRecorder;
@@ -4788,6 +4863,7 @@ var Context = class {
4788
4863
  this.pipes = pipes;
4789
4864
  this.schemas = schemas;
4790
4865
  this.hostIsStandalone = hostIsStandalone;
4866
+ this.hostPreserveWhitespaces = hostPreserveWhitespaces;
4791
4867
  this.nextId = 1;
4792
4868
  }
4793
4869
  allocateId() {
@@ -4829,13 +4905,15 @@ var _Scope = class {
4829
4905
  }
4830
4906
  this.registerVariable(scope, v, new TcbTemplateVariableOp(tcb, scope, scopedNode, v));
4831
4907
  }
4832
- } else if (scopedNode instanceof TmplAstIfBlockBranch) {
4908
+ } else if (scopedNode instanceof TmplAstIfBlockBranch2) {
4833
4909
  const { expression, expressionAlias } = scopedNode;
4834
4910
  if (expression !== null && expressionAlias !== null) {
4835
4911
  this.registerVariable(scope, expressionAlias, new TcbBlockVariableOp(tcb, scope, tcbExpression(expression, tcb, scope), expressionAlias));
4836
4912
  }
4837
4913
  } else if (scopedNode instanceof TmplAstForLoopBlock) {
4838
- this.registerVariable(scope, scopedNode.item, new TcbBlockVariableOp(tcb, scope, ts28.factory.createIdentifier(scopedNode.item.name), scopedNode.item));
4914
+ const loopInitializer = tcb.allocateId();
4915
+ addParseSpanInfo(loopInitializer, scopedNode.item.sourceSpan);
4916
+ scope.varMap.set(scopedNode.item, loopInitializer);
4839
4917
  for (const [name, variable] of Object.entries(scopedNode.contextVariables)) {
4840
4918
  if (!this.forLoopContextVariableTypes.has(name)) {
4841
4919
  throw new Error(`Unrecognized for loop context variable ${name}`);
@@ -4900,7 +4978,8 @@ var _Scope = class {
4900
4978
  if (ref instanceof TmplAstReference3 && this.referenceOpMap.has(ref)) {
4901
4979
  return this.resolveOp(this.referenceOpMap.get(ref));
4902
4980
  } else if (ref instanceof TmplAstVariable2 && this.varMap.has(ref)) {
4903
- return this.resolveOp(this.varMap.get(ref));
4981
+ const opIndexOrNode = this.varMap.get(ref);
4982
+ return typeof opIndexOrNode === "number" ? this.resolveOp(opIndexOrNode) : opIndexOrNode;
4904
4983
  } else if (ref instanceof TmplAstTemplate2 && directive === void 0 && this.templateCtxOpMap.has(ref)) {
4905
4984
  return this.resolveOp(this.templateCtxOpMap.get(ref));
4906
4985
  } else if ((ref instanceof TmplAstElement3 || ref instanceof TmplAstTemplate2) && directive !== void 0 && this.directiveOpMap.has(ref)) {
@@ -4940,6 +5019,9 @@ var _Scope = class {
4940
5019
  if (node instanceof TmplAstElement3) {
4941
5020
  const opIndex = this.opQueue.push(new TcbElementOp(this.tcb, this, node)) - 1;
4942
5021
  this.elementOpMap.set(node, opIndex);
5022
+ if (this.tcb.env.config.controlFlowPreventingContentProjection !== "suppress") {
5023
+ this.appendContentProjectionCheckOp(node);
5024
+ }
4943
5025
  this.appendDirectivesAndInputsOfNode(node);
4944
5026
  this.appendOutputsOfNode(node);
4945
5027
  this.appendChildren(node);
@@ -5083,6 +5165,16 @@ var _Scope = class {
5083
5165
  }
5084
5166
  }
5085
5167
  }
5168
+ appendContentProjectionCheckOp(root) {
5169
+ var _a;
5170
+ const meta = ((_a = this.tcb.boundTarget.getDirectivesOfNode(root)) == null ? void 0 : _a.find((meta2) => meta2.isComponent)) || null;
5171
+ if (meta !== null && meta.ngContentSelectors !== null && meta.ngContentSelectors.length > 0) {
5172
+ const selectors = meta.ngContentSelectors;
5173
+ if (selectors.length > 1 || selectors.length === 1 && selectors[0] !== "*") {
5174
+ this.opQueue.push(new TcbControlFlowContentProjectionOp(this.tcb, root, selectors, meta.name));
5175
+ }
5176
+ }
5177
+ }
5086
5178
  appendDeferredBlock(block) {
5087
5179
  this.appendDeferredTriggers(block, block.triggers);
5088
5180
  this.appendDeferredTriggers(block, block.prefetchTriggers);
@@ -5368,7 +5460,7 @@ var TcbForLoopTrackTranslator = class extends TcbExpressionTranslator {
5368
5460
  }
5369
5461
  };
5370
5462
 
5371
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_check_file.mjs
5463
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_check_file.mjs
5372
5464
  import ts29 from "typescript";
5373
5465
  var TypeCheckFile = class extends Environment {
5374
5466
  constructor(fileName, config, refEmitter, reflector, compilerHost) {
@@ -5404,7 +5496,7 @@ var TypeCheckFile = class extends Environment {
5404
5496
  }
5405
5497
  };
5406
5498
 
5407
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/context.mjs
5499
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/context.mjs
5408
5500
  var InliningMode;
5409
5501
  (function(InliningMode2) {
5410
5502
  InliningMode2[InliningMode2["InlineOps"] = 0] = "InlineOps";
@@ -5426,7 +5518,7 @@ var TypeCheckContextImpl = class {
5426
5518
  throw new Error(`AssertionError: invalid inlining configuration.`);
5427
5519
  }
5428
5520
  }
5429
- addTemplate(ref, binder, template, pipes, schemas, sourceMapping, file, parseErrors, isStandalone) {
5521
+ addTemplate(ref, binder, template, pipes, schemas, sourceMapping, file, parseErrors, isStandalone, preserveWhitespaces) {
5430
5522
  if (!this.host.shouldCheckComponent(ref.node)) {
5431
5523
  return;
5432
5524
  }
@@ -5479,7 +5571,8 @@ var TypeCheckContextImpl = class {
5479
5571
  boundTarget,
5480
5572
  pipes,
5481
5573
  schemas,
5482
- isStandalone
5574
+ isStandalone,
5575
+ preserveWhitespaces
5483
5576
  };
5484
5577
  this.perf.eventCount(PerfEvent.GenerateTcb);
5485
5578
  if (inliningRequirement !== TcbInliningRequirement.None && this.inlining === InliningMode.InlineOps) {
@@ -5641,10 +5734,10 @@ function splitStringAtPoints(str, points) {
5641
5734
  return splits;
5642
5735
  }
5643
5736
 
5644
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/source.mjs
5737
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/source.mjs
5645
5738
  import { ParseLocation, ParseSourceSpan } from "@angular/compiler";
5646
5739
 
5647
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/line_mappings.mjs
5740
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/line_mappings.mjs
5648
5741
  var LF_CHAR = 10;
5649
5742
  var CR_CHAR = 13;
5650
5743
  var LINE_SEP_CHAR = 8232;
@@ -5685,7 +5778,7 @@ function findClosestLineStartPosition(linesMap, position, low = 0, high = linesM
5685
5778
  return low - 1;
5686
5779
  }
5687
5780
 
5688
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/source.mjs
5781
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/source.mjs
5689
5782
  var TemplateSource = class {
5690
5783
  constructor(mapping, file) {
5691
5784
  this.mapping = mapping;
@@ -5736,7 +5829,7 @@ var TemplateSourceManager = class {
5736
5829
  }
5737
5830
  };
5738
5831
 
5739
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/template_symbol_builder.mjs
5832
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/template_symbol_builder.mjs
5740
5833
  import { AST, ASTWithSource as ASTWithSource3, BindingPipe as BindingPipe2, PropertyRead as PropertyRead5, PropertyWrite as PropertyWrite4, SafePropertyRead as SafePropertyRead4, TmplAstBoundAttribute as TmplAstBoundAttribute2, TmplAstBoundEvent, TmplAstElement as TmplAstElement4, TmplAstReference as TmplAstReference4, TmplAstTemplate as TmplAstTemplate3, TmplAstTextAttribute as TmplAstTextAttribute3, TmplAstVariable as TmplAstVariable3 } from "@angular/compiler";
5741
5834
  import ts31 from "typescript";
5742
5835
  var SymbolBuilder = class {
@@ -6220,7 +6313,7 @@ function sourceSpanEqual(a, b) {
6220
6313
  return a.start.offset === b.start.offset && a.end.offset === b.end.offset;
6221
6314
  }
6222
6315
 
6223
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/checker.mjs
6316
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/checker.mjs
6224
6317
  var REGISTRY2 = new DomElementSchemaRegistry2();
6225
6318
  var TemplateTypeCheckerImpl = class {
6226
6319
  constructor(originalProgram, programDriver, typeCheckAdapter, config, refEmitter, reflector, compilerHost, priorBuild, metaReader, localMetaReader, ngModuleIndex, componentScopeReader, typeCheckScopeRegistry, perf) {
@@ -6655,7 +6748,7 @@ var TemplateTypeCheckerImpl = class {
6655
6748
  if (directive.selector === null) {
6656
6749
  continue;
6657
6750
  }
6658
- for (const selector of CssSelector.parse(directive.selector)) {
6751
+ for (const selector of CssSelector2.parse(directive.selector)) {
6659
6752
  if (selector.element === null || tagMap.has(selector.element)) {
6660
6753
  continue;
6661
6754
  }
@@ -6917,10 +7010,10 @@ var SingleShimTypeCheckingHost = class extends SingleFileTypeCheckingHost {
6917
7010
  }
6918
7011
  };
6919
7012
 
6920
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/interpolated_signal_not_invoked/index.mjs
7013
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/interpolated_signal_not_invoked/index.mjs
6921
7014
  import { Interpolation, PropertyRead as PropertyRead6 } from "@angular/compiler";
6922
7015
 
6923
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/api/api.mjs
7016
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/api/api.mjs
6924
7017
  import { ASTWithSource as ASTWithSource4, RecursiveAstVisitor as RecursiveAstVisitor3, TmplAstBoundDeferredTrigger as TmplAstBoundDeferredTrigger2 } from "@angular/compiler";
6925
7018
  var TemplateCheckWithVisitor = class {
6926
7019
  run(ctx, component, template) {
@@ -7044,7 +7137,7 @@ var TemplateVisitor2 = class extends RecursiveAstVisitor3 {
7044
7137
  }
7045
7138
  };
7046
7139
 
7047
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/interpolated_signal_not_invoked/index.mjs
7140
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/interpolated_signal_not_invoked/index.mjs
7048
7141
  var InterpolatedSignalCheck = class extends TemplateCheckWithVisitor {
7049
7142
  constructor() {
7050
7143
  super(...arguments);
@@ -7079,7 +7172,7 @@ var factory = {
7079
7172
  create: () => new InterpolatedSignalCheck()
7080
7173
  };
7081
7174
 
7082
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/invalid_banana_in_box/index.mjs
7175
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/invalid_banana_in_box/index.mjs
7083
7176
  import { TmplAstBoundEvent as TmplAstBoundEvent2 } from "@angular/compiler";
7084
7177
  var InvalidBananaInBoxCheck = class extends TemplateCheckWithVisitor {
7085
7178
  constructor() {
@@ -7105,7 +7198,7 @@ var factory2 = {
7105
7198
  create: () => new InvalidBananaInBoxCheck()
7106
7199
  };
7107
7200
 
7108
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/missing_control_flow_directive/index.mjs
7201
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/missing_control_flow_directive/index.mjs
7109
7202
  import { TmplAstTemplate as TmplAstTemplate4 } from "@angular/compiler";
7110
7203
  var KNOWN_CONTROL_FLOW_DIRECTIVES = /* @__PURE__ */ new Map([
7111
7204
  ["ngIf", { directive: "NgIf", builtIn: "@if" }],
@@ -7150,7 +7243,7 @@ var factory3 = {
7150
7243
  }
7151
7244
  };
7152
7245
 
7153
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/missing_ngforof_let/index.mjs
7246
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/missing_ngforof_let/index.mjs
7154
7247
  import { TmplAstTemplate as TmplAstTemplate5 } from "@angular/compiler";
7155
7248
  var MissingNgForOfLetCheck = class extends TemplateCheckWithVisitor {
7156
7249
  constructor() {
@@ -7183,7 +7276,7 @@ var factory4 = {
7183
7276
  create: () => new MissingNgForOfLetCheck()
7184
7277
  };
7185
7278
 
7186
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/nullish_coalescing_not_nullable/index.mjs
7279
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/nullish_coalescing_not_nullable/index.mjs
7187
7280
  import { Binary } from "@angular/compiler";
7188
7281
  import ts32 from "typescript";
7189
7282
  var NullishCoalescingNotNullableCheck = class extends TemplateCheckWithVisitor {
@@ -7228,7 +7321,7 @@ var factory5 = {
7228
7321
  }
7229
7322
  };
7230
7323
 
7231
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/optional_chain_not_nullable/index.mjs
7324
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/optional_chain_not_nullable/index.mjs
7232
7325
  import { SafeCall as SafeCall2, SafeKeyedRead as SafeKeyedRead2, SafePropertyRead as SafePropertyRead5 } from "@angular/compiler";
7233
7326
  import ts33 from "typescript";
7234
7327
  var OptionalChainNotNullableCheck = class extends TemplateCheckWithVisitor {
@@ -7274,7 +7367,7 @@ var factory6 = {
7274
7367
  }
7275
7368
  };
7276
7369
 
7277
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/suffix_not_supported/index.mjs
7370
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/suffix_not_supported/index.mjs
7278
7371
  import { TmplAstBoundAttribute as TmplAstBoundAttribute3 } from "@angular/compiler";
7279
7372
  var STYLE_SUFFIXES = ["px", "%", "em"];
7280
7373
  var SuffixNotSupportedCheck = class extends TemplateCheckWithVisitor {
@@ -7298,7 +7391,7 @@ var factory7 = {
7298
7391
  create: () => new SuffixNotSupportedCheck()
7299
7392
  };
7300
7393
 
7301
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/text_attribute_not_binding/index.mjs
7394
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/text_attribute_not_binding/index.mjs
7302
7395
  import { TmplAstTextAttribute as TmplAstTextAttribute4 } from "@angular/compiler";
7303
7396
  var TextAttributeNotBindingSpec = class extends TemplateCheckWithVisitor {
7304
7397
  constructor() {
@@ -7337,10 +7430,10 @@ var factory8 = {
7337
7430
  create: () => new TextAttributeNotBindingSpec()
7338
7431
  };
7339
7432
 
7340
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/src/extended_template_checker.mjs
7433
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/src/extended_template_checker.mjs
7341
7434
  import ts34 from "typescript";
7342
7435
 
7343
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/core/api/src/public_options.mjs
7436
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/core/api/src/public_options.mjs
7344
7437
  var DiagnosticCategoryLabel;
7345
7438
  (function(DiagnosticCategoryLabel2) {
7346
7439
  DiagnosticCategoryLabel2["Warning"] = "warning";
@@ -7348,7 +7441,7 @@ var DiagnosticCategoryLabel;
7348
7441
  DiagnosticCategoryLabel2["Suppress"] = "suppress";
7349
7442
  })(DiagnosticCategoryLabel || (DiagnosticCategoryLabel = {}));
7350
7443
 
7351
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/src/extended_template_checker.mjs
7444
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/src/extended_template_checker.mjs
7352
7445
  var ExtendedTemplateCheckerImpl = class {
7353
7446
  constructor(templateTypeChecker, typeChecker, templateCheckFactories, options) {
7354
7447
  var _a, _b, _c, _d, _e;
@@ -7401,7 +7494,7 @@ function assertNever(value) {
7401
7494
  ${value}`);
7402
7495
  }
7403
7496
 
7404
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/index.mjs
7497
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/index.mjs
7405
7498
  var ALL_DIAGNOSTIC_FACTORIES = [
7406
7499
  factory2,
7407
7500
  factory5,
@@ -7412,8 +7505,12 @@ var ALL_DIAGNOSTIC_FACTORIES = [
7412
7505
  factory7,
7413
7506
  factory
7414
7507
  ];
7508
+ var SUPPORTED_DIAGNOSTIC_NAMES = /* @__PURE__ */ new Set([
7509
+ ExtendedTemplateDiagnosticName.CONTROL_FLOW_PREVENTING_CONTENT_PROJECTION,
7510
+ ...ALL_DIAGNOSTIC_FACTORIES.map((factory9) => factory9.name)
7511
+ ]);
7415
7512
 
7416
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/core/src/compiler.mjs
7513
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/core/src/compiler.mjs
7417
7514
  var CompilationTicketKind;
7418
7515
  (function(CompilationTicketKind2) {
7419
7516
  CompilationTicketKind2[CompilationTicketKind2["Fresh"] = 0] = "Fresh";
@@ -7747,6 +7844,7 @@ var NgCompiler = class {
7747
7844
  return strictTemplates || !!this.options.fullTemplateTypeCheck;
7748
7845
  }
7749
7846
  getTypeCheckingConfig() {
7847
+ var _a, _b, _c, _d;
7750
7848
  const strictTemplates = !!this.options.strictTemplates;
7751
7849
  const useInlineTypeConstructors = this.programDriver.supportsInlineOperations;
7752
7850
  let typeCheckingConfig;
@@ -7772,7 +7870,8 @@ var NgCompiler = class {
7772
7870
  strictLiteralTypes: true,
7773
7871
  enableTemplateTypeChecker: this.enableTemplateTypeChecker,
7774
7872
  useInlineTypeConstructors,
7775
- suggestionsForSuboptimalTypeInference: this.enableTemplateTypeChecker && !strictTemplates
7873
+ suggestionsForSuboptimalTypeInference: this.enableTemplateTypeChecker && !strictTemplates,
7874
+ controlFlowPreventingContentProjection: ((_a = this.options.extendedDiagnostics) == null ? void 0 : _a.defaultCategory) || DiagnosticCategoryLabel.Warning
7776
7875
  };
7777
7876
  } else {
7778
7877
  typeCheckingConfig = {
@@ -7796,7 +7895,8 @@ var NgCompiler = class {
7796
7895
  strictLiteralTypes: false,
7797
7896
  enableTemplateTypeChecker: this.enableTemplateTypeChecker,
7798
7897
  useInlineTypeConstructors,
7799
- suggestionsForSuboptimalTypeInference: false
7898
+ suggestionsForSuboptimalTypeInference: false,
7899
+ controlFlowPreventingContentProjection: ((_b = this.options.extendedDiagnostics) == null ? void 0 : _b.defaultCategory) || DiagnosticCategoryLabel.Warning
7800
7900
  };
7801
7901
  }
7802
7902
  if (this.options.strictInputTypes !== void 0) {
@@ -7831,6 +7931,9 @@ var NgCompiler = class {
7831
7931
  if (this.options.strictLiteralTypes !== void 0) {
7832
7932
  typeCheckingConfig.strictLiteralTypes = this.options.strictLiteralTypes;
7833
7933
  }
7934
+ if (((_d = (_c = this.options.extendedDiagnostics) == null ? void 0 : _c.checks) == null ? void 0 : _d.controlFlowPreventingContentProjection) !== void 0) {
7935
+ typeCheckingConfig.controlFlowPreventingContentProjection = this.options.extendedDiagnostics.checks.controlFlowPreventingContentProjection;
7936
+ }
7834
7937
  return typeCheckingConfig;
7835
7938
  }
7836
7939
  getTemplateDiagnostics() {
@@ -8089,9 +8192,8 @@ ${allowedCategoryLabels.join("\n")}
8089
8192
  `.trim()
8090
8193
  });
8091
8194
  }
8092
- const allExtendedDiagnosticNames = ALL_DIAGNOSTIC_FACTORIES.map((factory9) => factory9.name);
8093
8195
  for (const [checkName, category] of Object.entries((_c = (_b = options.extendedDiagnostics) == null ? void 0 : _b.checks) != null ? _c : {})) {
8094
- if (!allExtendedDiagnosticNames.includes(checkName)) {
8196
+ if (!SUPPORTED_DIAGNOSTIC_NAMES.has(checkName)) {
8095
8197
  yield makeConfigDiagnostic({
8096
8198
  category: ts35.DiagnosticCategory.Error,
8097
8199
  code: ErrorCode.CONFIG_EXTENDED_DIAGNOSTICS_UNKNOWN_CHECK,
@@ -8099,7 +8201,7 @@ ${allowedCategoryLabels.join("\n")}
8099
8201
  Angular compiler option "extendedDiagnostics.checks" has an unknown check: "${checkName}".
8100
8202
 
8101
8203
  Allowed check names are:
8102
- ${allExtendedDiagnosticNames.join("\n")}
8204
+ ${Array.from(SUPPORTED_DIAGNOSTIC_NAMES).join("\n")}
8103
8205
  `.trim()
8104
8206
  });
8105
8207
  }
@@ -8173,7 +8275,7 @@ function versionMapFromProgram(program, driver) {
8173
8275
  return versions;
8174
8276
  }
8175
8277
 
8176
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/core/src/host.mjs
8278
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/core/src/host.mjs
8177
8279
  import ts36 from "typescript";
8178
8280
  var DelegatingCompilerHost2 = class {
8179
8281
  constructor(delegate) {
@@ -8306,7 +8408,7 @@ var NgCompilerHost = class extends DelegatingCompilerHost2 {
8306
8408
  }
8307
8409
  };
8308
8410
 
8309
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/program.mjs
8411
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/program.mjs
8310
8412
  var NgtscProgram = class {
8311
8413
  constructor(rootNames, options, delegateHost, oldProgram) {
8312
8414
  this.options = options;
@@ -8533,15 +8635,15 @@ function mergeEmitResults(emitResults) {
8533
8635
  return { diagnostics, emitSkipped, emittedFiles };
8534
8636
  }
8535
8637
 
8536
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/transformers/program.mjs
8638
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/transformers/program.mjs
8537
8639
  function createProgram({ rootNames, options, host, oldProgram }) {
8538
8640
  return new NgtscProgram(rootNames, options, host, oldProgram);
8539
8641
  }
8540
8642
 
8541
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/perform_compile.mjs
8643
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/perform_compile.mjs
8542
8644
  import ts39 from "typescript";
8543
8645
 
8544
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/transformers/util.mjs
8646
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/transformers/util.mjs
8545
8647
  import ts38 from "typescript";
8546
8648
  function createMessageDiagnostic(messageText) {
8547
8649
  return {
@@ -8555,7 +8657,7 @@ function createMessageDiagnostic(messageText) {
8555
8657
  };
8556
8658
  }
8557
8659
 
8558
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/perform_compile.mjs
8660
+ // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/perform_compile.mjs
8559
8661
  var defaultFormatHost = {
8560
8662
  getCurrentDirectory: () => ts39.sys.getCurrentDirectory(),
8561
8663
  getCanonicalFileName: (fileName) => fileName,
@@ -8768,4 +8870,4 @@ export {
8768
8870
  * Use of this source code is governed by an MIT-style license that can be
8769
8871
  * found in the LICENSE file at https://angular.io/license
8770
8872
  */
8771
- //# sourceMappingURL=chunk-3GCK5JND.js.map
8873
+ //# sourceMappingURL=chunk-JNTXXKVD.js.map