@angular/compiler-cli 17.2.2 → 17.2.4

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 (36) hide show
  1. package/bundles/{chunk-RMH722TZ.js → chunk-4ZRGWY6Y.js} +2 -2
  2. package/bundles/{chunk-6VI5PEAF.js → chunk-FS75LCNP.js} +3 -3
  3. package/bundles/{chunk-SN7STUDB.js → chunk-LVVK56VK.js} +489 -482
  4. package/bundles/chunk-LVVK56VK.js.map +6 -0
  5. package/bundles/{chunk-FUGV6LEW.js → chunk-TZRMP73O.js} +77 -53
  6. package/bundles/chunk-TZRMP73O.js.map +6 -0
  7. package/bundles/{chunk-HL2GCSY7.js → chunk-YBXVKJOM.js} +213 -153
  8. package/bundles/{chunk-HL2GCSY7.js.map → chunk-YBXVKJOM.js.map} +3 -3
  9. package/bundles/{chunk-5BWCY2AS.js → chunk-ZORZBAFD.js} +18 -18
  10. package/bundles/{chunk-5BWCY2AS.js.map → chunk-ZORZBAFD.js.map} +1 -1
  11. package/bundles/index.js +5 -5
  12. package/bundles/linker/babel/index.js +2 -2
  13. package/bundles/linker/index.js +2 -2
  14. package/bundles/private/migrations.js +2 -2
  15. package/bundles/private/tooling.js +3 -3
  16. package/bundles/src/bin/ng_xi18n.js +4 -4
  17. package/bundles/src/bin/ngc.js +4 -4
  18. package/bundles_metadata.json +1 -1
  19. package/linker/src/file_linker/partial_linkers/util.d.ts +1 -1
  20. package/package.json +2 -2
  21. package/src/ngtsc/annotations/component/src/handler.d.ts +3 -2
  22. package/src/ngtsc/annotations/directive/src/handler.d.ts +3 -2
  23. package/src/ngtsc/annotations/directive/src/initializer_functions.d.ts +2 -3
  24. package/src/ngtsc/annotations/directive/src/input_function.d.ts +2 -1
  25. package/src/ngtsc/annotations/directive/src/model_function.d.ts +2 -1
  26. package/src/ngtsc/annotations/directive/src/output_function.d.ts +2 -1
  27. package/src/ngtsc/annotations/directive/src/query_functions.d.ts +2 -1
  28. package/src/ngtsc/annotations/directive/src/shared.d.ts +2 -2
  29. package/src/ngtsc/imports/index.d.ts +1 -0
  30. package/src/ngtsc/imports/src/imported_symbols_tracker.d.ts +37 -0
  31. package/src/transformers/jit_transforms/initializer_api_transforms/transform.d.ts +2 -1
  32. package/src/transformers/jit_transforms/initializer_api_transforms/transform_api.d.ts +3 -2
  33. package/bundles/chunk-FUGV6LEW.js.map +0 -6
  34. package/bundles/chunk-SN7STUDB.js.map +0 -6
  35. /package/bundles/{chunk-RMH722TZ.js.map → chunk-4ZRGWY6Y.js.map} +0 -0
  36. /package/bundles/{chunk-6VI5PEAF.js.map → chunk-FS75LCNP.js.map} +0 -0
@@ -29,7 +29,7 @@ import {
29
29
  translateStatement,
30
30
  translateType,
31
31
  typeNodeToValueExpr
32
- } from "./chunk-HL2GCSY7.js";
32
+ } from "./chunk-YBXVKJOM.js";
33
33
  import {
34
34
  PerfEvent,
35
35
  PerfPhase
@@ -40,6 +40,262 @@ import {
40
40
  relative
41
41
  } from "./chunk-75YFKYUJ.js";
42
42
 
43
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/util.mjs
44
+ import { ExternalExpr, ParseLocation, ParseSourceFile, ParseSourceSpan, ReadPropExpr, WrappedNodeExpr } from "@angular/compiler";
45
+ import ts from "typescript";
46
+ var CORE_MODULE = "@angular/core";
47
+ function valueReferenceToExpression(valueRef) {
48
+ if (valueRef.kind === 2) {
49
+ return null;
50
+ } else if (valueRef.kind === 0) {
51
+ const expr = new WrappedNodeExpr(valueRef.expression);
52
+ if (valueRef.defaultImportStatement !== null) {
53
+ attachDefaultImportDeclaration(expr, valueRef.defaultImportStatement);
54
+ }
55
+ return expr;
56
+ } else {
57
+ let importExpr = new ExternalExpr({ moduleName: valueRef.moduleName, name: valueRef.importedName });
58
+ if (valueRef.nestedPath !== null) {
59
+ for (const property of valueRef.nestedPath) {
60
+ importExpr = new ReadPropExpr(importExpr, property);
61
+ }
62
+ }
63
+ return importExpr;
64
+ }
65
+ }
66
+ function toR3Reference(origin, ref, context, refEmitter) {
67
+ const emittedValueRef = refEmitter.emit(ref, context);
68
+ assertSuccessfulReferenceEmit(emittedValueRef, origin, "class");
69
+ const emittedTypeRef = refEmitter.emit(ref, context, ImportFlags.ForceNewImport | ImportFlags.AllowTypeImports);
70
+ assertSuccessfulReferenceEmit(emittedTypeRef, origin, "class");
71
+ return {
72
+ value: emittedValueRef.expression,
73
+ type: emittedTypeRef.expression
74
+ };
75
+ }
76
+ function isAngularCore(decorator) {
77
+ return decorator.import !== null && decorator.import.from === CORE_MODULE;
78
+ }
79
+ function isAngularCoreReference(reference, symbolName) {
80
+ return reference.ownedByModuleGuess === CORE_MODULE && reference.debugName === symbolName;
81
+ }
82
+ function findAngularDecorator(decorators, name, isCore) {
83
+ return decorators.find((decorator) => isAngularDecorator(decorator, name, isCore));
84
+ }
85
+ function isAngularDecorator(decorator, name, isCore) {
86
+ if (isCore) {
87
+ return decorator.name === name;
88
+ } else if (isAngularCore(decorator)) {
89
+ return decorator.import.name === name;
90
+ }
91
+ return false;
92
+ }
93
+ function getAngularDecorators(decorators, names, isCore) {
94
+ return decorators.filter((decorator) => {
95
+ var _a;
96
+ const name = isCore ? decorator.name : (_a = decorator.import) == null ? void 0 : _a.name;
97
+ if (name === void 0 || !names.includes(name)) {
98
+ return false;
99
+ }
100
+ return isCore || isAngularCore(decorator);
101
+ });
102
+ }
103
+ function unwrapExpression(node) {
104
+ while (ts.isAsExpression(node) || ts.isParenthesizedExpression(node)) {
105
+ node = node.expression;
106
+ }
107
+ return node;
108
+ }
109
+ function expandForwardRef(arg) {
110
+ arg = unwrapExpression(arg);
111
+ if (!ts.isArrowFunction(arg) && !ts.isFunctionExpression(arg)) {
112
+ return null;
113
+ }
114
+ const body = arg.body;
115
+ if (ts.isBlock(body)) {
116
+ if (body.statements.length !== 1) {
117
+ return null;
118
+ }
119
+ const stmt = body.statements[0];
120
+ if (!ts.isReturnStatement(stmt) || stmt.expression === void 0) {
121
+ return null;
122
+ }
123
+ return stmt.expression;
124
+ } else {
125
+ return body;
126
+ }
127
+ }
128
+ function tryUnwrapForwardRef(node, reflector) {
129
+ node = unwrapExpression(node);
130
+ if (!ts.isCallExpression(node) || node.arguments.length !== 1) {
131
+ return null;
132
+ }
133
+ const fn = ts.isPropertyAccessExpression(node.expression) ? node.expression.name : node.expression;
134
+ if (!ts.isIdentifier(fn)) {
135
+ return null;
136
+ }
137
+ const expr = expandForwardRef(node.arguments[0]);
138
+ if (expr === null) {
139
+ return null;
140
+ }
141
+ const imp = reflector.getImportOfIdentifier(fn);
142
+ if (imp === null || imp.from !== "@angular/core" || imp.name !== "forwardRef") {
143
+ return null;
144
+ }
145
+ return expr;
146
+ }
147
+ var forwardRefResolver = (fn, callExpr, resolve, unresolvable) => {
148
+ if (!isAngularCoreReference(fn, "forwardRef") || callExpr.arguments.length !== 1) {
149
+ return unresolvable;
150
+ }
151
+ const expanded = expandForwardRef(callExpr.arguments[0]);
152
+ if (expanded !== null) {
153
+ return resolve(expanded);
154
+ } else {
155
+ return unresolvable;
156
+ }
157
+ };
158
+ function combineResolvers(resolvers) {
159
+ return (fn, callExpr, resolve, unresolvable) => {
160
+ for (const resolver of resolvers) {
161
+ const resolved = resolver(fn, callExpr, resolve, unresolvable);
162
+ if (resolved !== unresolvable) {
163
+ return resolved;
164
+ }
165
+ }
166
+ return unresolvable;
167
+ };
168
+ }
169
+ function isExpressionForwardReference(expr, context, contextSource) {
170
+ if (isWrappedTsNodeExpr(expr)) {
171
+ const node = ts.getOriginalNode(expr.node);
172
+ return node.getSourceFile() === contextSource && context.pos < node.pos;
173
+ } else {
174
+ return false;
175
+ }
176
+ }
177
+ function isWrappedTsNodeExpr(expr) {
178
+ return expr instanceof WrappedNodeExpr;
179
+ }
180
+ function readBaseClass(node, reflector, evaluator) {
181
+ const baseExpression = reflector.getBaseClassExpression(node);
182
+ if (baseExpression !== null) {
183
+ const baseClass = evaluator.evaluate(baseExpression);
184
+ if (baseClass instanceof Reference && reflector.isClass(baseClass.node)) {
185
+ return baseClass;
186
+ } else {
187
+ return "dynamic";
188
+ }
189
+ }
190
+ return null;
191
+ }
192
+ var parensWrapperTransformerFactory = (context) => {
193
+ const visitor = (node) => {
194
+ const visited = ts.visitEachChild(node, visitor, context);
195
+ if (ts.isArrowFunction(visited) || ts.isFunctionExpression(visited)) {
196
+ return ts.factory.createParenthesizedExpression(visited);
197
+ }
198
+ return visited;
199
+ };
200
+ return (node) => ts.visitEachChild(node, visitor, context);
201
+ };
202
+ function wrapFunctionExpressionsInParens(expression) {
203
+ return ts.transform(expression, [parensWrapperTransformerFactory]).transformed[0];
204
+ }
205
+ function resolveProvidersRequiringFactory(rawProviders, reflector, evaluator) {
206
+ const providers = /* @__PURE__ */ new Set();
207
+ const resolvedProviders = evaluator.evaluate(rawProviders);
208
+ if (!Array.isArray(resolvedProviders)) {
209
+ return providers;
210
+ }
211
+ resolvedProviders.forEach(function processProviders(provider) {
212
+ let tokenClass = null;
213
+ if (Array.isArray(provider)) {
214
+ provider.forEach(processProviders);
215
+ } else if (provider instanceof Reference) {
216
+ tokenClass = provider;
217
+ } else if (provider instanceof Map && provider.has("useClass") && !provider.has("deps")) {
218
+ const useExisting = provider.get("useClass");
219
+ if (useExisting instanceof Reference) {
220
+ tokenClass = useExisting;
221
+ }
222
+ }
223
+ if (tokenClass !== null && !tokenClass.node.getSourceFile().isDeclarationFile && reflector.isClass(tokenClass.node)) {
224
+ const constructorParameters = reflector.getConstructorParameters(tokenClass.node);
225
+ if (constructorParameters !== null && constructorParameters.length > 0) {
226
+ providers.add(tokenClass);
227
+ }
228
+ }
229
+ });
230
+ return providers;
231
+ }
232
+ function wrapTypeReference(reflector, clazz) {
233
+ const value = new WrappedNodeExpr(clazz.name);
234
+ const type = value;
235
+ return { value, type };
236
+ }
237
+ function createSourceSpan(node) {
238
+ const sf = node.getSourceFile();
239
+ const [startOffset, endOffset] = [node.getStart(), node.getEnd()];
240
+ const { line: startLine, character: startCol } = sf.getLineAndCharacterOfPosition(startOffset);
241
+ const { line: endLine, character: endCol } = sf.getLineAndCharacterOfPosition(endOffset);
242
+ const parseSf = new ParseSourceFile(sf.getFullText(), sf.fileName);
243
+ return new ParseSourceSpan(new ParseLocation(parseSf, startOffset, startLine + 1, startCol + 1), new ParseLocation(parseSf, endOffset, endLine + 1, endCol + 1));
244
+ }
245
+ function compileResults(fac, def, metadataStmt, propName, additionalFields, deferrableImports, debugInfo = null) {
246
+ const statements = def.statements;
247
+ if (metadataStmt !== null) {
248
+ statements.push(metadataStmt);
249
+ }
250
+ if (debugInfo !== null) {
251
+ statements.push(debugInfo);
252
+ }
253
+ const results = [
254
+ fac,
255
+ {
256
+ name: propName,
257
+ initializer: def.expression,
258
+ statements: def.statements,
259
+ type: def.type,
260
+ deferrableImports
261
+ }
262
+ ];
263
+ if (additionalFields !== null) {
264
+ results.push(...additionalFields);
265
+ }
266
+ return results;
267
+ }
268
+ function toFactoryMetadata(meta, target) {
269
+ return {
270
+ name: meta.name,
271
+ type: meta.type,
272
+ typeArgumentCount: meta.typeArgumentCount,
273
+ deps: meta.deps,
274
+ target
275
+ };
276
+ }
277
+ function resolveImportedFile(moduleResolver, importedFile, expr, origin) {
278
+ if (importedFile !== "unknown") {
279
+ return importedFile;
280
+ }
281
+ if (!(expr instanceof ExternalExpr)) {
282
+ return null;
283
+ }
284
+ return moduleResolver.resolveModule(expr.value.moduleName, origin.fileName);
285
+ }
286
+ function getOriginNodeForDiagnostics(expr, container) {
287
+ const nodeSf = expr.getSourceFile();
288
+ const exprSf = container.getSourceFile();
289
+ if (nodeSf === exprSf && expr.pos >= container.pos && expr.end <= container.end) {
290
+ return expr;
291
+ } else {
292
+ return container;
293
+ }
294
+ }
295
+ function isAbstractClassDeclaration(clazz) {
296
+ return ts.canHaveModifiers(clazz) && clazz.modifiers !== void 0 ? clazz.modifiers.some((mod) => mod.kind === ts.SyntaxKind.AbstractKeyword) : false;
297
+ }
298
+
43
299
  // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/dynamic.mjs
44
300
  var DynamicValue = class {
45
301
  constructor(node, reason, code) {
@@ -131,7 +387,7 @@ var DynamicValue = class {
131
387
  };
132
388
 
133
389
  // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/interpreter.mjs
134
- import ts from "typescript";
390
+ import ts2 from "typescript";
135
391
 
136
392
  // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/result.mjs
137
393
  var ResolvedModule = class {
@@ -230,34 +486,34 @@ function referenceBinaryOp(op) {
230
486
  return { op, literal: false };
231
487
  }
232
488
  var BINARY_OPERATORS = /* @__PURE__ */ new Map([
233
- [ts.SyntaxKind.PlusToken, literalBinaryOp((a, b) => a + b)],
234
- [ts.SyntaxKind.MinusToken, literalBinaryOp((a, b) => a - b)],
235
- [ts.SyntaxKind.AsteriskToken, literalBinaryOp((a, b) => a * b)],
236
- [ts.SyntaxKind.SlashToken, literalBinaryOp((a, b) => a / b)],
237
- [ts.SyntaxKind.PercentToken, literalBinaryOp((a, b) => a % b)],
238
- [ts.SyntaxKind.AmpersandToken, literalBinaryOp((a, b) => a & b)],
239
- [ts.SyntaxKind.BarToken, literalBinaryOp((a, b) => a | b)],
240
- [ts.SyntaxKind.CaretToken, literalBinaryOp((a, b) => a ^ b)],
241
- [ts.SyntaxKind.LessThanToken, literalBinaryOp((a, b) => a < b)],
242
- [ts.SyntaxKind.LessThanEqualsToken, literalBinaryOp((a, b) => a <= b)],
243
- [ts.SyntaxKind.GreaterThanToken, literalBinaryOp((a, b) => a > b)],
244
- [ts.SyntaxKind.GreaterThanEqualsToken, literalBinaryOp((a, b) => a >= b)],
245
- [ts.SyntaxKind.EqualsEqualsToken, literalBinaryOp((a, b) => a == b)],
246
- [ts.SyntaxKind.EqualsEqualsEqualsToken, literalBinaryOp((a, b) => a === b)],
247
- [ts.SyntaxKind.ExclamationEqualsToken, literalBinaryOp((a, b) => a != b)],
248
- [ts.SyntaxKind.ExclamationEqualsEqualsToken, literalBinaryOp((a, b) => a !== b)],
249
- [ts.SyntaxKind.LessThanLessThanToken, literalBinaryOp((a, b) => a << b)],
250
- [ts.SyntaxKind.GreaterThanGreaterThanToken, literalBinaryOp((a, b) => a >> b)],
251
- [ts.SyntaxKind.GreaterThanGreaterThanGreaterThanToken, literalBinaryOp((a, b) => a >>> b)],
252
- [ts.SyntaxKind.AsteriskAsteriskToken, literalBinaryOp((a, b) => Math.pow(a, b))],
253
- [ts.SyntaxKind.AmpersandAmpersandToken, referenceBinaryOp((a, b) => a && b)],
254
- [ts.SyntaxKind.BarBarToken, referenceBinaryOp((a, b) => a || b)]
489
+ [ts2.SyntaxKind.PlusToken, literalBinaryOp((a, b) => a + b)],
490
+ [ts2.SyntaxKind.MinusToken, literalBinaryOp((a, b) => a - b)],
491
+ [ts2.SyntaxKind.AsteriskToken, literalBinaryOp((a, b) => a * b)],
492
+ [ts2.SyntaxKind.SlashToken, literalBinaryOp((a, b) => a / b)],
493
+ [ts2.SyntaxKind.PercentToken, literalBinaryOp((a, b) => a % b)],
494
+ [ts2.SyntaxKind.AmpersandToken, literalBinaryOp((a, b) => a & b)],
495
+ [ts2.SyntaxKind.BarToken, literalBinaryOp((a, b) => a | b)],
496
+ [ts2.SyntaxKind.CaretToken, literalBinaryOp((a, b) => a ^ b)],
497
+ [ts2.SyntaxKind.LessThanToken, literalBinaryOp((a, b) => a < b)],
498
+ [ts2.SyntaxKind.LessThanEqualsToken, literalBinaryOp((a, b) => a <= b)],
499
+ [ts2.SyntaxKind.GreaterThanToken, literalBinaryOp((a, b) => a > b)],
500
+ [ts2.SyntaxKind.GreaterThanEqualsToken, literalBinaryOp((a, b) => a >= b)],
501
+ [ts2.SyntaxKind.EqualsEqualsToken, literalBinaryOp((a, b) => a == b)],
502
+ [ts2.SyntaxKind.EqualsEqualsEqualsToken, literalBinaryOp((a, b) => a === b)],
503
+ [ts2.SyntaxKind.ExclamationEqualsToken, literalBinaryOp((a, b) => a != b)],
504
+ [ts2.SyntaxKind.ExclamationEqualsEqualsToken, literalBinaryOp((a, b) => a !== b)],
505
+ [ts2.SyntaxKind.LessThanLessThanToken, literalBinaryOp((a, b) => a << b)],
506
+ [ts2.SyntaxKind.GreaterThanGreaterThanToken, literalBinaryOp((a, b) => a >> b)],
507
+ [ts2.SyntaxKind.GreaterThanGreaterThanGreaterThanToken, literalBinaryOp((a, b) => a >>> b)],
508
+ [ts2.SyntaxKind.AsteriskAsteriskToken, literalBinaryOp((a, b) => Math.pow(a, b))],
509
+ [ts2.SyntaxKind.AmpersandAmpersandToken, referenceBinaryOp((a, b) => a && b)],
510
+ [ts2.SyntaxKind.BarBarToken, referenceBinaryOp((a, b) => a || b)]
255
511
  ]);
256
512
  var UNARY_OPERATORS = /* @__PURE__ */ new Map([
257
- [ts.SyntaxKind.TildeToken, (a) => ~a],
258
- [ts.SyntaxKind.MinusToken, (a) => -a],
259
- [ts.SyntaxKind.PlusToken, (a) => +a],
260
- [ts.SyntaxKind.ExclamationToken, (a) => !a]
513
+ [ts2.SyntaxKind.TildeToken, (a) => ~a],
514
+ [ts2.SyntaxKind.MinusToken, (a) => -a],
515
+ [ts2.SyntaxKind.PlusToken, (a) => +a],
516
+ [ts2.SyntaxKind.ExclamationToken, (a) => !a]
261
517
  ]);
262
518
  var StaticInterpreter = class {
263
519
  constructor(host, checker, dependencyTracker) {
@@ -270,43 +526,43 @@ var StaticInterpreter = class {
270
526
  }
271
527
  visitExpression(node, context) {
272
528
  let result;
273
- if (node.kind === ts.SyntaxKind.TrueKeyword) {
529
+ if (node.kind === ts2.SyntaxKind.TrueKeyword) {
274
530
  return true;
275
- } else if (node.kind === ts.SyntaxKind.FalseKeyword) {
531
+ } else if (node.kind === ts2.SyntaxKind.FalseKeyword) {
276
532
  return false;
277
- } else if (node.kind === ts.SyntaxKind.NullKeyword) {
533
+ } else if (node.kind === ts2.SyntaxKind.NullKeyword) {
278
534
  return null;
279
- } else if (ts.isStringLiteral(node)) {
535
+ } else if (ts2.isStringLiteral(node)) {
280
536
  return node.text;
281
- } else if (ts.isNoSubstitutionTemplateLiteral(node)) {
537
+ } else if (ts2.isNoSubstitutionTemplateLiteral(node)) {
282
538
  return node.text;
283
- } else if (ts.isTemplateExpression(node)) {
539
+ } else if (ts2.isTemplateExpression(node)) {
284
540
  result = this.visitTemplateExpression(node, context);
285
- } else if (ts.isNumericLiteral(node)) {
541
+ } else if (ts2.isNumericLiteral(node)) {
286
542
  return parseFloat(node.text);
287
- } else if (ts.isObjectLiteralExpression(node)) {
543
+ } else if (ts2.isObjectLiteralExpression(node)) {
288
544
  result = this.visitObjectLiteralExpression(node, context);
289
- } else if (ts.isIdentifier(node)) {
545
+ } else if (ts2.isIdentifier(node)) {
290
546
  result = this.visitIdentifier(node, context);
291
- } else if (ts.isPropertyAccessExpression(node)) {
547
+ } else if (ts2.isPropertyAccessExpression(node)) {
292
548
  result = this.visitPropertyAccessExpression(node, context);
293
- } else if (ts.isCallExpression(node)) {
549
+ } else if (ts2.isCallExpression(node)) {
294
550
  result = this.visitCallExpression(node, context);
295
- } else if (ts.isConditionalExpression(node)) {
551
+ } else if (ts2.isConditionalExpression(node)) {
296
552
  result = this.visitConditionalExpression(node, context);
297
- } else if (ts.isPrefixUnaryExpression(node)) {
553
+ } else if (ts2.isPrefixUnaryExpression(node)) {
298
554
  result = this.visitPrefixUnaryExpression(node, context);
299
- } else if (ts.isBinaryExpression(node)) {
555
+ } else if (ts2.isBinaryExpression(node)) {
300
556
  result = this.visitBinaryExpression(node, context);
301
- } else if (ts.isArrayLiteralExpression(node)) {
557
+ } else if (ts2.isArrayLiteralExpression(node)) {
302
558
  result = this.visitArrayLiteralExpression(node, context);
303
- } else if (ts.isParenthesizedExpression(node)) {
559
+ } else if (ts2.isParenthesizedExpression(node)) {
304
560
  result = this.visitParenthesizedExpression(node, context);
305
- } else if (ts.isElementAccessExpression(node)) {
561
+ } else if (ts2.isElementAccessExpression(node)) {
306
562
  result = this.visitElementAccessExpression(node, context);
307
- } else if (ts.isAsExpression(node)) {
563
+ } else if (ts2.isAsExpression(node)) {
308
564
  result = this.visitExpression(node.expression, context);
309
- } else if (ts.isNonNullExpression(node)) {
565
+ } else if (ts2.isNonNullExpression(node)) {
310
566
  result = this.visitExpression(node.expression, context);
311
567
  } else if (this.host.isClass(node)) {
312
568
  result = this.visitDeclaration(node, context);
@@ -322,7 +578,7 @@ var StaticInterpreter = class {
322
578
  const array = [];
323
579
  for (let i = 0; i < node.elements.length; i++) {
324
580
  const element = node.elements[i];
325
- if (ts.isSpreadElement(element)) {
581
+ if (ts2.isSpreadElement(element)) {
326
582
  array.push(...this.visitSpreadElement(element, context));
327
583
  } else {
328
584
  array.push(this.visitExpression(element, context));
@@ -334,20 +590,20 @@ var StaticInterpreter = class {
334
590
  const map = /* @__PURE__ */ new Map();
335
591
  for (let i = 0; i < node.properties.length; i++) {
336
592
  const property = node.properties[i];
337
- if (ts.isPropertyAssignment(property)) {
593
+ if (ts2.isPropertyAssignment(property)) {
338
594
  const name = this.stringNameFromPropertyName(property.name, context);
339
595
  if (name === void 0) {
340
596
  return DynamicValue.fromDynamicInput(node, DynamicValue.fromDynamicString(property.name));
341
597
  }
342
598
  map.set(name, this.visitExpression(property.initializer, context));
343
- } else if (ts.isShorthandPropertyAssignment(property)) {
599
+ } else if (ts2.isShorthandPropertyAssignment(property)) {
344
600
  const symbol = this.checker.getShorthandAssignmentValueSymbol(property);
345
601
  if (symbol === void 0 || symbol.valueDeclaration === void 0) {
346
602
  map.set(property.name.text, DynamicValue.fromUnknown(property));
347
603
  } else {
348
604
  map.set(property.name.text, this.visitDeclaration(symbol.valueDeclaration, context));
349
605
  }
350
- } else if (ts.isSpreadAssignment(property)) {
606
+ } else if (ts2.isSpreadAssignment(property)) {
351
607
  const spread = this.visitExpression(property.expression, context);
352
608
  if (spread instanceof DynamicValue) {
353
609
  return DynamicValue.fromDynamicInput(node, spread);
@@ -379,7 +635,7 @@ var StaticInterpreter = class {
379
635
  visitIdentifier(node, context) {
380
636
  const decl = this.host.getDeclarationOfIdentifier(node);
381
637
  if (decl === null) {
382
- if (ts.identifierToKeywordKind(node) === ts.SyntaxKind.UndefinedKeyword) {
638
+ if (ts2.identifierToKeywordKind(node) === ts2.SyntaxKind.UndefinedKeyword) {
383
639
  return void 0;
384
640
  } else {
385
641
  if (this.dependencyTracker !== null && this.host.getImportOfIdentifier(node) !== null) {
@@ -405,17 +661,17 @@ var StaticInterpreter = class {
405
661
  }
406
662
  if (this.host.isClass(node)) {
407
663
  return this.getReference(node, context);
408
- } else if (ts.isVariableDeclaration(node)) {
664
+ } else if (ts2.isVariableDeclaration(node)) {
409
665
  return this.visitVariableDeclaration(node, context);
410
- } else if (ts.isParameter(node) && context.scope.has(node)) {
666
+ } else if (ts2.isParameter(node) && context.scope.has(node)) {
411
667
  return context.scope.get(node);
412
- } else if (ts.isExportAssignment(node)) {
668
+ } else if (ts2.isExportAssignment(node)) {
413
669
  return this.visitExpression(node.expression, context);
414
- } else if (ts.isEnumDeclaration(node)) {
670
+ } else if (ts2.isEnumDeclaration(node)) {
415
671
  return this.visitEnumDeclaration(node, context);
416
- } else if (ts.isSourceFile(node)) {
672
+ } else if (ts2.isSourceFile(node)) {
417
673
  return this.visitSourceFile(node, context);
418
- } else if (ts.isBindingElement(node)) {
674
+ } else if (ts2.isBindingElement(node)) {
419
675
  return this.visitBindingElement(node, context);
420
676
  } else {
421
677
  return this.getReference(node, context);
@@ -583,7 +839,7 @@ var StaticInterpreter = class {
583
839
  visitFunctionBody(node, fn, context) {
584
840
  if (fn.body === null) {
585
841
  return DynamicValue.fromUnknown(node);
586
- } else if (fn.body.length !== 1 || !ts.isReturnStatement(fn.body[0])) {
842
+ } else if (fn.body.length !== 1 || !ts2.isReturnStatement(fn.body[0])) {
587
843
  return DynamicValue.fromComplexFunctionCall(node, fn);
588
844
  }
589
845
  const ret = fn.body[0];
@@ -654,7 +910,7 @@ var StaticInterpreter = class {
654
910
  evaluateFunctionArguments(node, context) {
655
911
  const args = [];
656
912
  for (const arg of node.arguments) {
657
- if (ts.isSpreadElement(arg)) {
913
+ if (ts2.isSpreadElement(arg)) {
658
914
  args.push(...this.visitSpreadElement(arg, context));
659
915
  } else {
660
916
  args.push(this.visitExpression(arg, context));
@@ -675,23 +931,23 @@ var StaticInterpreter = class {
675
931
  visitBindingElement(node, context) {
676
932
  const path2 = [];
677
933
  let closestDeclaration = node;
678
- while (ts.isBindingElement(closestDeclaration) || ts.isArrayBindingPattern(closestDeclaration) || ts.isObjectBindingPattern(closestDeclaration)) {
679
- if (ts.isBindingElement(closestDeclaration)) {
934
+ while (ts2.isBindingElement(closestDeclaration) || ts2.isArrayBindingPattern(closestDeclaration) || ts2.isObjectBindingPattern(closestDeclaration)) {
935
+ if (ts2.isBindingElement(closestDeclaration)) {
680
936
  path2.unshift(closestDeclaration);
681
937
  }
682
938
  closestDeclaration = closestDeclaration.parent;
683
939
  }
684
- if (!ts.isVariableDeclaration(closestDeclaration) || closestDeclaration.initializer === void 0) {
940
+ if (!ts2.isVariableDeclaration(closestDeclaration) || closestDeclaration.initializer === void 0) {
685
941
  return DynamicValue.fromUnknown(node);
686
942
  }
687
943
  let value = this.visit(closestDeclaration.initializer, context);
688
944
  for (const element of path2) {
689
945
  let key;
690
- if (ts.isArrayBindingPattern(element.parent)) {
946
+ if (ts2.isArrayBindingPattern(element.parent)) {
691
947
  key = element.parent.elements.indexOf(element);
692
948
  } else {
693
949
  const name = element.propertyName || element.name;
694
- if (ts.isIdentifier(name)) {
950
+ if (ts2.isIdentifier(name)) {
695
951
  key = name.text;
696
952
  } else {
697
953
  return DynamicValue.fromUnknown(element);
@@ -705,9 +961,9 @@ var StaticInterpreter = class {
705
961
  return value;
706
962
  }
707
963
  stringNameFromPropertyName(node, context) {
708
- if (ts.isIdentifier(node) || ts.isStringLiteral(node) || ts.isNumericLiteral(node)) {
964
+ if (ts2.isIdentifier(node) || ts2.isStringLiteral(node) || ts2.isNumericLiteral(node)) {
709
965
  return node.text;
710
- } else if (ts.isComputedPropertyName(node)) {
966
+ } else if (ts2.isComputedPropertyName(node)) {
711
967
  const literal3 = this.visitExpression(node.expression, context);
712
968
  return typeof literal3 === "string" ? literal3 : void 0;
713
969
  } else {
@@ -718,15 +974,15 @@ var StaticInterpreter = class {
718
974
  return new Reference(node, owningModule(context));
719
975
  }
720
976
  visitType(node, context) {
721
- if (ts.isLiteralTypeNode(node)) {
977
+ if (ts2.isLiteralTypeNode(node)) {
722
978
  return this.visitExpression(node.literal, context);
723
- } else if (ts.isTupleTypeNode(node)) {
979
+ } else if (ts2.isTupleTypeNode(node)) {
724
980
  return this.visitTupleType(node, context);
725
- } else if (ts.isNamedTupleMember(node)) {
981
+ } else if (ts2.isNamedTupleMember(node)) {
726
982
  return this.visitType(node.type, context);
727
- } else if (ts.isTypeOperatorNode(node) && node.operator === ts.SyntaxKind.ReadonlyKeyword) {
983
+ } else if (ts2.isTypeOperatorNode(node) && node.operator === ts2.SyntaxKind.ReadonlyKeyword) {
728
984
  return this.visitType(node.type, context);
729
- } else if (ts.isTypeQueryNode(node)) {
985
+ } else if (ts2.isTypeQueryNode(node)) {
730
986
  return this.visitTypeQuery(node, context);
731
987
  }
732
988
  return DynamicValue.fromDynamicType(node);
@@ -739,7 +995,7 @@ var StaticInterpreter = class {
739
995
  return res;
740
996
  }
741
997
  visitTypeQuery(node, context) {
742
- if (!ts.isIdentifier(node.exprName)) {
998
+ if (!ts2.isIdentifier(node.exprName)) {
743
999
  return DynamicValue.fromUnknown(node);
744
1000
  }
745
1001
  const decl = this.host.getDeclarationOfIdentifier(node.exprName);
@@ -751,7 +1007,7 @@ var StaticInterpreter = class {
751
1007
  }
752
1008
  };
753
1009
  function isFunctionOrMethodReference(ref) {
754
- return ts.isFunctionDeclaration(ref.node) || ts.isMethodDeclaration(ref.node) || ts.isFunctionExpression(ref.node);
1010
+ return ts2.isFunctionDeclaration(ref.node) || ts2.isMethodDeclaration(ref.node) || ts2.isFunctionExpression(ref.node);
755
1011
  }
756
1012
  function literal(value, reject) {
757
1013
  if (value instanceof EnumValue) {
@@ -763,16 +1019,16 @@ function literal(value, reject) {
763
1019
  return reject(value);
764
1020
  }
765
1021
  function isVariableDeclarationDeclared(node) {
766
- if (node.parent === void 0 || !ts.isVariableDeclarationList(node.parent)) {
1022
+ if (node.parent === void 0 || !ts2.isVariableDeclarationList(node.parent)) {
767
1023
  return false;
768
1024
  }
769
1025
  const declList = node.parent;
770
- if (declList.parent === void 0 || !ts.isVariableStatement(declList.parent)) {
1026
+ if (declList.parent === void 0 || !ts2.isVariableStatement(declList.parent)) {
771
1027
  return false;
772
1028
  }
773
1029
  const varStmt = declList.parent;
774
- const modifiers = ts.getModifiers(varStmt);
775
- return modifiers !== void 0 && modifiers.some((mod) => mod.kind === ts.SyntaxKind.DeclareKeyword);
1030
+ const modifiers = ts2.getModifiers(varStmt);
1031
+ return modifiers !== void 0 && modifiers.some((mod) => mod.kind === ts2.SyntaxKind.DeclareKeyword);
776
1032
  }
777
1033
  var EMPTY = {};
778
1034
  function joinModuleContext(existing, node, decl) {
@@ -821,7 +1077,7 @@ var PartialEvaluator = class {
821
1077
  };
822
1078
 
823
1079
  // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/diagnostics.mjs
824
- import ts2 from "typescript";
1080
+ import ts3 from "typescript";
825
1081
  function describeResolvedType(value, maxDepth = 1) {
826
1082
  var _a, _b;
827
1083
  if (value === null) {
@@ -845,365 +1101,109 @@ function describeResolvedType(value, maxDepth = 1) {
845
1101
  } else if (value instanceof Reference) {
846
1102
  return (_b = value.debugName) != null ? _b : "(anonymous)";
847
1103
  } else if (Array.isArray(value)) {
848
- if (maxDepth === 0) {
849
- return "Array";
850
- }
851
- return `[${value.map((v) => describeResolvedType(v, maxDepth - 1)).join(", ")}]`;
852
- } else if (value instanceof DynamicValue) {
853
- return "(not statically analyzable)";
854
- } else if (value instanceof KnownFn) {
855
- return "Function";
856
- } else {
857
- return "unknown";
858
- }
859
- }
860
- function quoteKey(key) {
861
- if (/^[a-z0-9_]+$/i.test(key)) {
862
- return key;
863
- } else {
864
- return `'${key.replace(/'/g, "\\'")}'`;
865
- }
866
- }
867
- function traceDynamicValue(node, value) {
868
- return value.accept(new TraceDynamicValueVisitor(node));
869
- }
870
- var TraceDynamicValueVisitor = class {
871
- constructor(node) {
872
- this.node = node;
873
- this.currentContainerNode = null;
874
- }
875
- visitDynamicInput(value) {
876
- const trace = value.reason.accept(this);
877
- if (this.shouldTrace(value.node)) {
878
- const info = makeRelatedInformation(value.node, "Unable to evaluate this expression statically.");
879
- trace.unshift(info);
880
- }
881
- return trace;
882
- }
883
- visitSyntheticInput(value) {
884
- return [makeRelatedInformation(value.node, "Unable to evaluate this expression further.")];
885
- }
886
- visitDynamicString(value) {
887
- return [makeRelatedInformation(value.node, "A string value could not be determined statically.")];
888
- }
889
- visitExternalReference(value) {
890
- const name = value.reason.debugName;
891
- const description = name !== null ? `'${name}'` : "an anonymous declaration";
892
- return [makeRelatedInformation(value.node, `A value for ${description} cannot be determined statically, as it is an external declaration.`)];
893
- }
894
- visitComplexFunctionCall(value) {
895
- return [
896
- makeRelatedInformation(value.node, "Unable to evaluate function call of complex function. A function must have exactly one return statement."),
897
- makeRelatedInformation(value.reason.node, "Function is declared here.")
898
- ];
899
- }
900
- visitInvalidExpressionType(value) {
901
- return [makeRelatedInformation(value.node, "Unable to evaluate an invalid expression.")];
902
- }
903
- visitUnknown(value) {
904
- return [makeRelatedInformation(value.node, "Unable to evaluate statically.")];
905
- }
906
- visitUnknownIdentifier(value) {
907
- return [makeRelatedInformation(value.node, "Unknown reference.")];
908
- }
909
- visitDynamicType(value) {
910
- return [makeRelatedInformation(value.node, "Dynamic type.")];
911
- }
912
- visitUnsupportedSyntax(value) {
913
- return [makeRelatedInformation(value.node, "This syntax is not supported.")];
914
- }
915
- shouldTrace(node) {
916
- if (node === this.node) {
917
- return false;
918
- }
919
- const container = getContainerNode(node);
920
- if (container === this.currentContainerNode) {
921
- return false;
922
- }
923
- this.currentContainerNode = container;
924
- return true;
925
- }
926
- };
927
- function getContainerNode(node) {
928
- let currentNode = node;
929
- while (currentNode !== void 0) {
930
- switch (currentNode.kind) {
931
- case ts2.SyntaxKind.ExpressionStatement:
932
- case ts2.SyntaxKind.VariableStatement:
933
- case ts2.SyntaxKind.ReturnStatement:
934
- case ts2.SyntaxKind.IfStatement:
935
- case ts2.SyntaxKind.SwitchStatement:
936
- case ts2.SyntaxKind.DoStatement:
937
- case ts2.SyntaxKind.WhileStatement:
938
- case ts2.SyntaxKind.ForStatement:
939
- case ts2.SyntaxKind.ForInStatement:
940
- case ts2.SyntaxKind.ForOfStatement:
941
- case ts2.SyntaxKind.ContinueStatement:
942
- case ts2.SyntaxKind.BreakStatement:
943
- case ts2.SyntaxKind.ThrowStatement:
944
- case ts2.SyntaxKind.ObjectBindingPattern:
945
- case ts2.SyntaxKind.ArrayBindingPattern:
946
- return currentNode;
947
- }
948
- currentNode = currentNode.parent;
949
- }
950
- return node.getSourceFile();
951
- }
952
-
953
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/util.mjs
954
- import { ExternalExpr, ParseLocation, ParseSourceFile, ParseSourceSpan, ReadPropExpr, WrappedNodeExpr } from "@angular/compiler";
955
- import ts3 from "typescript";
956
- var CORE_MODULE = "@angular/core";
957
- function valueReferenceToExpression(valueRef) {
958
- if (valueRef.kind === 2) {
959
- return null;
960
- } else if (valueRef.kind === 0) {
961
- const expr = new WrappedNodeExpr(valueRef.expression);
962
- if (valueRef.defaultImportStatement !== null) {
963
- attachDefaultImportDeclaration(expr, valueRef.defaultImportStatement);
964
- }
965
- return expr;
966
- } else {
967
- let importExpr = new ExternalExpr({ moduleName: valueRef.moduleName, name: valueRef.importedName });
968
- if (valueRef.nestedPath !== null) {
969
- for (const property of valueRef.nestedPath) {
970
- importExpr = new ReadPropExpr(importExpr, property);
971
- }
972
- }
973
- return importExpr;
974
- }
975
- }
976
- function toR3Reference(origin, ref, context, refEmitter) {
977
- const emittedValueRef = refEmitter.emit(ref, context);
978
- assertSuccessfulReferenceEmit(emittedValueRef, origin, "class");
979
- const emittedTypeRef = refEmitter.emit(ref, context, ImportFlags.ForceNewImport | ImportFlags.AllowTypeImports);
980
- assertSuccessfulReferenceEmit(emittedTypeRef, origin, "class");
981
- return {
982
- value: emittedValueRef.expression,
983
- type: emittedTypeRef.expression
984
- };
985
- }
986
- function isAngularCore(decorator) {
987
- return decorator.import !== null && decorator.import.from === CORE_MODULE;
988
- }
989
- function isAngularCoreReference(reference, symbolName) {
990
- return reference.ownedByModuleGuess === CORE_MODULE && reference.debugName === symbolName;
991
- }
992
- function findAngularDecorator(decorators, name, isCore) {
993
- return decorators.find((decorator) => isAngularDecorator(decorator, name, isCore));
994
- }
995
- function isAngularDecorator(decorator, name, isCore) {
996
- if (isCore) {
997
- return decorator.name === name;
998
- } else if (isAngularCore(decorator)) {
999
- return decorator.import.name === name;
1000
- }
1001
- return false;
1002
- }
1003
- function getAngularDecorators(decorators, names, isCore) {
1004
- return decorators.filter((decorator) => {
1005
- var _a;
1006
- const name = isCore ? decorator.name : (_a = decorator.import) == null ? void 0 : _a.name;
1007
- if (name === void 0 || !names.includes(name)) {
1008
- return false;
1104
+ if (maxDepth === 0) {
1105
+ return "Array";
1009
1106
  }
1010
- return isCore || isAngularCore(decorator);
1011
- });
1107
+ return `[${value.map((v) => describeResolvedType(v, maxDepth - 1)).join(", ")}]`;
1108
+ } else if (value instanceof DynamicValue) {
1109
+ return "(not statically analyzable)";
1110
+ } else if (value instanceof KnownFn) {
1111
+ return "Function";
1112
+ } else {
1113
+ return "unknown";
1114
+ }
1012
1115
  }
1013
- function unwrapExpression(node) {
1014
- while (ts3.isAsExpression(node) || ts3.isParenthesizedExpression(node)) {
1015
- node = node.expression;
1116
+ function quoteKey(key) {
1117
+ if (/^[a-z0-9_]+$/i.test(key)) {
1118
+ return key;
1119
+ } else {
1120
+ return `'${key.replace(/'/g, "\\'")}'`;
1016
1121
  }
1017
- return node;
1018
1122
  }
1019
- function expandForwardRef(arg) {
1020
- arg = unwrapExpression(arg);
1021
- if (!ts3.isArrowFunction(arg) && !ts3.isFunctionExpression(arg)) {
1022
- return null;
1123
+ function traceDynamicValue(node, value) {
1124
+ return value.accept(new TraceDynamicValueVisitor(node));
1125
+ }
1126
+ var TraceDynamicValueVisitor = class {
1127
+ constructor(node) {
1128
+ this.node = node;
1129
+ this.currentContainerNode = null;
1023
1130
  }
1024
- const body = arg.body;
1025
- if (ts3.isBlock(body)) {
1026
- if (body.statements.length !== 1) {
1027
- return null;
1028
- }
1029
- const stmt = body.statements[0];
1030
- if (!ts3.isReturnStatement(stmt) || stmt.expression === void 0) {
1031
- return null;
1131
+ visitDynamicInput(value) {
1132
+ const trace = value.reason.accept(this);
1133
+ if (this.shouldTrace(value.node)) {
1134
+ const info = makeRelatedInformation(value.node, "Unable to evaluate this expression statically.");
1135
+ trace.unshift(info);
1032
1136
  }
1033
- return stmt.expression;
1034
- } else {
1035
- return body;
1137
+ return trace;
1036
1138
  }
1037
- }
1038
- function tryUnwrapForwardRef(node, reflector) {
1039
- node = unwrapExpression(node);
1040
- if (!ts3.isCallExpression(node) || node.arguments.length !== 1) {
1041
- return null;
1139
+ visitSyntheticInput(value) {
1140
+ return [makeRelatedInformation(value.node, "Unable to evaluate this expression further.")];
1042
1141
  }
1043
- const fn = ts3.isPropertyAccessExpression(node.expression) ? node.expression.name : node.expression;
1044
- if (!ts3.isIdentifier(fn)) {
1045
- return null;
1142
+ visitDynamicString(value) {
1143
+ return [makeRelatedInformation(value.node, "A string value could not be determined statically.")];
1046
1144
  }
1047
- const expr = expandForwardRef(node.arguments[0]);
1048
- if (expr === null) {
1049
- return null;
1145
+ visitExternalReference(value) {
1146
+ const name = value.reason.debugName;
1147
+ const description = name !== null ? `'${name}'` : "an anonymous declaration";
1148
+ return [makeRelatedInformation(value.node, `A value for ${description} cannot be determined statically, as it is an external declaration.`)];
1050
1149
  }
1051
- const imp = reflector.getImportOfIdentifier(fn);
1052
- if (imp === null || imp.from !== "@angular/core" || imp.name !== "forwardRef") {
1053
- return null;
1150
+ visitComplexFunctionCall(value) {
1151
+ return [
1152
+ makeRelatedInformation(value.node, "Unable to evaluate function call of complex function. A function must have exactly one return statement."),
1153
+ makeRelatedInformation(value.reason.node, "Function is declared here.")
1154
+ ];
1054
1155
  }
1055
- return expr;
1056
- }
1057
- var forwardRefResolver = (fn, callExpr, resolve, unresolvable) => {
1058
- if (!isAngularCoreReference(fn, "forwardRef") || callExpr.arguments.length !== 1) {
1059
- return unresolvable;
1156
+ visitInvalidExpressionType(value) {
1157
+ return [makeRelatedInformation(value.node, "Unable to evaluate an invalid expression.")];
1060
1158
  }
1061
- const expanded = expandForwardRef(callExpr.arguments[0]);
1062
- if (expanded !== null) {
1063
- return resolve(expanded);
1064
- } else {
1065
- return unresolvable;
1159
+ visitUnknown(value) {
1160
+ return [makeRelatedInformation(value.node, "Unable to evaluate statically.")];
1066
1161
  }
1067
- };
1068
- function combineResolvers(resolvers) {
1069
- return (fn, callExpr, resolve, unresolvable) => {
1070
- for (const resolver of resolvers) {
1071
- const resolved = resolver(fn, callExpr, resolve, unresolvable);
1072
- if (resolved !== unresolvable) {
1073
- return resolved;
1074
- }
1075
- }
1076
- return unresolvable;
1077
- };
1078
- }
1079
- function isExpressionForwardReference(expr, context, contextSource) {
1080
- if (isWrappedTsNodeExpr(expr)) {
1081
- const node = ts3.getOriginalNode(expr.node);
1082
- return node.getSourceFile() === contextSource && context.pos < node.pos;
1083
- } else {
1084
- return false;
1162
+ visitUnknownIdentifier(value) {
1163
+ return [makeRelatedInformation(value.node, "Unknown reference.")];
1085
1164
  }
1086
- }
1087
- function isWrappedTsNodeExpr(expr) {
1088
- return expr instanceof WrappedNodeExpr;
1089
- }
1090
- function readBaseClass(node, reflector, evaluator) {
1091
- const baseExpression = reflector.getBaseClassExpression(node);
1092
- if (baseExpression !== null) {
1093
- const baseClass = evaluator.evaluate(baseExpression);
1094
- if (baseClass instanceof Reference && reflector.isClass(baseClass.node)) {
1095
- return baseClass;
1096
- } else {
1097
- return "dynamic";
1098
- }
1165
+ visitDynamicType(value) {
1166
+ return [makeRelatedInformation(value.node, "Dynamic type.")];
1099
1167
  }
1100
- return null;
1101
- }
1102
- var parensWrapperTransformerFactory = (context) => {
1103
- const visitor = (node) => {
1104
- const visited = ts3.visitEachChild(node, visitor, context);
1105
- if (ts3.isArrowFunction(visited) || ts3.isFunctionExpression(visited)) {
1106
- return ts3.factory.createParenthesizedExpression(visited);
1107
- }
1108
- return visited;
1109
- };
1110
- return (node) => ts3.visitEachChild(node, visitor, context);
1111
- };
1112
- function wrapFunctionExpressionsInParens(expression) {
1113
- return ts3.transform(expression, [parensWrapperTransformerFactory]).transformed[0];
1114
- }
1115
- function resolveProvidersRequiringFactory(rawProviders, reflector, evaluator) {
1116
- const providers = /* @__PURE__ */ new Set();
1117
- const resolvedProviders = evaluator.evaluate(rawProviders);
1118
- if (!Array.isArray(resolvedProviders)) {
1119
- return providers;
1168
+ visitUnsupportedSyntax(value) {
1169
+ return [makeRelatedInformation(value.node, "This syntax is not supported.")];
1120
1170
  }
1121
- resolvedProviders.forEach(function processProviders(provider) {
1122
- let tokenClass = null;
1123
- if (Array.isArray(provider)) {
1124
- provider.forEach(processProviders);
1125
- } else if (provider instanceof Reference) {
1126
- tokenClass = provider;
1127
- } else if (provider instanceof Map && provider.has("useClass") && !provider.has("deps")) {
1128
- const useExisting = provider.get("useClass");
1129
- if (useExisting instanceof Reference) {
1130
- tokenClass = useExisting;
1131
- }
1171
+ shouldTrace(node) {
1172
+ if (node === this.node) {
1173
+ return false;
1132
1174
  }
1133
- if (tokenClass !== null && !tokenClass.node.getSourceFile().isDeclarationFile && reflector.isClass(tokenClass.node)) {
1134
- const constructorParameters = reflector.getConstructorParameters(tokenClass.node);
1135
- if (constructorParameters !== null && constructorParameters.length > 0) {
1136
- providers.add(tokenClass);
1137
- }
1175
+ const container = getContainerNode(node);
1176
+ if (container === this.currentContainerNode) {
1177
+ return false;
1138
1178
  }
1139
- });
1140
- return providers;
1141
- }
1142
- function wrapTypeReference(reflector, clazz) {
1143
- const value = new WrappedNodeExpr(clazz.name);
1144
- const type = value;
1145
- return { value, type };
1146
- }
1147
- function createSourceSpan(node) {
1148
- const sf = node.getSourceFile();
1149
- const [startOffset, endOffset] = [node.getStart(), node.getEnd()];
1150
- const { line: startLine, character: startCol } = sf.getLineAndCharacterOfPosition(startOffset);
1151
- const { line: endLine, character: endCol } = sf.getLineAndCharacterOfPosition(endOffset);
1152
- const parseSf = new ParseSourceFile(sf.getFullText(), sf.fileName);
1153
- return new ParseSourceSpan(new ParseLocation(parseSf, startOffset, startLine + 1, startCol + 1), new ParseLocation(parseSf, endOffset, endLine + 1, endCol + 1));
1154
- }
1155
- function compileResults(fac, def, metadataStmt, propName, additionalFields, deferrableImports, debugInfo = null) {
1156
- const statements = def.statements;
1157
- if (metadataStmt !== null) {
1158
- statements.push(metadataStmt);
1159
- }
1160
- if (debugInfo !== null) {
1161
- statements.push(debugInfo);
1179
+ this.currentContainerNode = container;
1180
+ return true;
1162
1181
  }
1163
- const results = [
1164
- fac,
1165
- {
1166
- name: propName,
1167
- initializer: def.expression,
1168
- statements: def.statements,
1169
- type: def.type,
1170
- deferrableImports
1182
+ };
1183
+ function getContainerNode(node) {
1184
+ let currentNode = node;
1185
+ while (currentNode !== void 0) {
1186
+ switch (currentNode.kind) {
1187
+ case ts3.SyntaxKind.ExpressionStatement:
1188
+ case ts3.SyntaxKind.VariableStatement:
1189
+ case ts3.SyntaxKind.ReturnStatement:
1190
+ case ts3.SyntaxKind.IfStatement:
1191
+ case ts3.SyntaxKind.SwitchStatement:
1192
+ case ts3.SyntaxKind.DoStatement:
1193
+ case ts3.SyntaxKind.WhileStatement:
1194
+ case ts3.SyntaxKind.ForStatement:
1195
+ case ts3.SyntaxKind.ForInStatement:
1196
+ case ts3.SyntaxKind.ForOfStatement:
1197
+ case ts3.SyntaxKind.ContinueStatement:
1198
+ case ts3.SyntaxKind.BreakStatement:
1199
+ case ts3.SyntaxKind.ThrowStatement:
1200
+ case ts3.SyntaxKind.ObjectBindingPattern:
1201
+ case ts3.SyntaxKind.ArrayBindingPattern:
1202
+ return currentNode;
1171
1203
  }
1172
- ];
1173
- if (additionalFields !== null) {
1174
- results.push(...additionalFields);
1175
- }
1176
- return results;
1177
- }
1178
- function toFactoryMetadata(meta, target) {
1179
- return {
1180
- name: meta.name,
1181
- type: meta.type,
1182
- typeArgumentCount: meta.typeArgumentCount,
1183
- deps: meta.deps,
1184
- target
1185
- };
1186
- }
1187
- function resolveImportedFile(moduleResolver, importedFile, expr, origin) {
1188
- if (importedFile !== "unknown") {
1189
- return importedFile;
1190
- }
1191
- if (!(expr instanceof ExternalExpr)) {
1192
- return null;
1193
- }
1194
- return moduleResolver.resolveModule(expr.value.moduleName, origin.fileName);
1195
- }
1196
- function getOriginNodeForDiagnostics(expr, container) {
1197
- const nodeSf = expr.getSourceFile();
1198
- const exprSf = container.getSourceFile();
1199
- if (nodeSf === exprSf && expr.pos >= container.pos && expr.end <= container.end) {
1200
- return expr;
1201
- } else {
1202
- return container;
1204
+ currentNode = currentNode.parent;
1203
1205
  }
1204
- }
1205
- function isAbstractClassDeclaration(clazz) {
1206
- return ts3.canHaveModifiers(clazz) && clazz.modifiers !== void 0 ? clazz.modifiers.some((mod) => mod.kind === ts3.SyntaxKind.AbstractKeyword) : false;
1206
+ return node.getSourceFile();
1207
1207
  }
1208
1208
 
1209
1209
  // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/di.mjs
@@ -4436,57 +4436,58 @@ import ts23 from "typescript";
4436
4436
 
4437
4437
  // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/initializer_functions.mjs
4438
4438
  import ts20 from "typescript";
4439
- function tryParseInitializerApiMember(fnNames, member, reflector, isCore) {
4439
+ function tryParseInitializerApiMember(fnNames, member, reflector, importTracker) {
4440
4440
  if (member.value === null || !ts20.isCallExpression(member.value)) {
4441
4441
  return null;
4442
4442
  }
4443
4443
  const call = member.value;
4444
- let target = extractPropertyTarget(call.expression);
4445
- if (target === null) {
4446
- return null;
4447
- }
4448
- let apiName = fnNames.find((n) => n === target.text);
4449
- if (apiName !== void 0) {
4450
- if (!isReferenceToInitializerApiFunction(apiName, target, isCore, reflector)) {
4451
- return null;
4452
- }
4453
- return { apiName, call, isRequired: false };
4454
- }
4455
- if (target.text !== "required" || !ts20.isPropertyAccessExpression(call.expression)) {
4456
- return null;
4457
- }
4458
- const apiPropertyAccess = call.expression;
4459
- target = extractPropertyTarget(apiPropertyAccess.expression);
4460
- if (target === null) {
4444
+ const staticResult = parseTopLevelCall(call, fnNames, importTracker) || parseTopLevelRequiredCall(call, fnNames, importTracker) || parseTopLevelCallFromNamespace(call, fnNames, importTracker);
4445
+ if (staticResult === null) {
4461
4446
  return null;
4462
4447
  }
4463
- apiName = fnNames.find((n) => n === target.text);
4464
- if (apiName === void 0 || !isReferenceToInitializerApiFunction(apiName, target, isCore, reflector)) {
4448
+ const resolvedImport = reflector.getImportOfIdentifier(staticResult.node);
4449
+ if (resolvedImport === null || !fnNames.includes(resolvedImport.name)) {
4465
4450
  return null;
4466
4451
  }
4467
4452
  return {
4468
- apiName,
4469
4453
  call,
4470
- isRequired: true
4454
+ isRequired: staticResult.isRequired,
4455
+ apiName: resolvedImport.name
4471
4456
  };
4472
4457
  }
4473
- function extractPropertyTarget(node) {
4474
- if (ts20.isPropertyAccessExpression(node) && ts20.isIdentifier(node.name)) {
4475
- return node.name;
4476
- } else if (ts20.isIdentifier(node)) {
4477
- return node;
4458
+ function parseTopLevelCall(call, fnNames, importTracker) {
4459
+ const node = call.expression;
4460
+ if (!ts20.isIdentifier(node)) {
4461
+ return null;
4478
4462
  }
4479
- return null;
4463
+ return fnNames.some((name) => importTracker.isPotentialReferenceToNamedImport(node, name, CORE_MODULE)) ? { node, isRequired: false } : null;
4480
4464
  }
4481
- function isReferenceToInitializerApiFunction(functionName, target, isCore, reflector) {
4482
- let targetImport = reflector.getImportOfIdentifier(target);
4483
- if (targetImport === null) {
4484
- if (!isCore) {
4485
- return false;
4486
- }
4487
- targetImport = { name: target.text, from: CORE_MODULE };
4465
+ function parseTopLevelRequiredCall(call, fnNames, importTracker) {
4466
+ const node = call.expression;
4467
+ if (!ts20.isPropertyAccessExpression(node) || !ts20.isIdentifier(node.expression) || node.name.text !== "required") {
4468
+ return null;
4469
+ }
4470
+ const expression = node.expression;
4471
+ const matchesCoreApi = fnNames.some((name) => importTracker.isPotentialReferenceToNamedImport(expression, name, CORE_MODULE));
4472
+ return matchesCoreApi ? { node: expression, isRequired: true } : null;
4473
+ }
4474
+ function parseTopLevelCallFromNamespace(call, fnNames, importTracker) {
4475
+ const node = call.expression;
4476
+ if (!ts20.isPropertyAccessExpression(node)) {
4477
+ return null;
4478
+ }
4479
+ let apiReference = null;
4480
+ let isRequired = false;
4481
+ if (ts20.isIdentifier(node.expression) && ts20.isIdentifier(node.name) && importTracker.isPotentialReferenceToNamespaceImport(node.expression, CORE_MODULE)) {
4482
+ apiReference = node.name;
4483
+ } else if (ts20.isPropertyAccessExpression(node.expression) && ts20.isIdentifier(node.expression.expression) && ts20.isIdentifier(node.expression.name) && importTracker.isPotentialReferenceToNamespaceImport(node.expression.expression, CORE_MODULE) && node.name.text === "required") {
4484
+ apiReference = node.expression.name;
4485
+ isRequired = true;
4486
+ }
4487
+ if (apiReference === null || !fnNames.includes(apiReference.text)) {
4488
+ return null;
4488
4489
  }
4489
- return targetImport.name === functionName && targetImport.from === CORE_MODULE;
4490
+ return { node: apiReference, isRequired };
4490
4491
  }
4491
4492
 
4492
4493
  // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/input_output_parse_options.mjs
@@ -4508,9 +4509,9 @@ function parseAndValidateInputAndOutputOptions(optionsNode) {
4508
4509
  }
4509
4510
 
4510
4511
  // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/input_function.mjs
4511
- function tryParseSignalInputMapping(member, reflector, isCore) {
4512
+ function tryParseSignalInputMapping(member, reflector, importTracker) {
4512
4513
  var _a;
4513
- const signalInput = tryParseInitializerApiMember(["input"], member, reflector, isCore);
4514
+ const signalInput = tryParseInitializerApiMember(["input"], member, reflector, importTracker);
4514
4515
  if (signalInput === null) {
4515
4516
  return null;
4516
4517
  }
@@ -4527,9 +4528,9 @@ function tryParseSignalInputMapping(member, reflector, isCore) {
4527
4528
  }
4528
4529
 
4529
4530
  // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/model_function.mjs
4530
- function tryParseSignalModelMapping(member, reflector, isCore) {
4531
+ function tryParseSignalModelMapping(member, reflector, importTracker) {
4531
4532
  var _a;
4532
- const model = tryParseInitializerApiMember(["model"], member, reflector, isCore);
4533
+ const model = tryParseInitializerApiMember(["model"], member, reflector, importTracker);
4533
4534
  if (model === null) {
4534
4535
  return null;
4535
4536
  }
@@ -4555,9 +4556,9 @@ function tryParseSignalModelMapping(member, reflector, isCore) {
4555
4556
  }
4556
4557
 
4557
4558
  // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/output_function.mjs
4558
- function tryParseInitializerBasedOutput(member, reflector, isCore) {
4559
+ function tryParseInitializerBasedOutput(member, reflector, importTracker) {
4559
4560
  var _a;
4560
- const output = tryParseInitializerApiMember(["output", "\u0275output"], member, reflector, isCore);
4561
+ const output = tryParseInitializerApiMember(["output", "\u0275output"], member, reflector, importTracker);
4561
4562
  if (output === null) {
4562
4563
  return null;
4563
4564
  }
@@ -4582,8 +4583,8 @@ import { createMayBeForwardRefExpression, outputAst as o } from "@angular/compil
4582
4583
  import ts22 from "typescript";
4583
4584
  var queryFunctionNames = ["viewChild", "viewChildren", "contentChild", "contentChildren"];
4584
4585
  var defaultDescendantsValue = (type) => type !== "contentChildren";
4585
- function tryParseSignalQueryFromInitializer(member, reflector, isCore) {
4586
- const query = tryParseInitializerApiMember(queryFunctionNames, member, reflector, isCore);
4586
+ function tryParseSignalQueryFromInitializer(member, reflector, importTracker) {
4587
+ const query = tryParseInitializerApiMember(queryFunctionNames, member, reflector, importTracker);
4587
4588
  if (query === null) {
4588
4589
  return null;
4589
4590
  }
@@ -4625,6 +4626,9 @@ function parseLocator(expression, reflector) {
4625
4626
  return createMayBeForwardRefExpression(new o.WrappedNodeExpr(expression), unwrappedExpression !== null ? 2 : 0);
4626
4627
  }
4627
4628
  function parseReadOption(value) {
4629
+ if (ts22.isExpressionWithTypeArguments(value) || ts22.isParenthesizedExpression(value) || ts22.isAsExpression(value)) {
4630
+ return parseReadOption(value.expression);
4631
+ }
4628
4632
  if (ts22.isPropertyAccessExpression(value) && ts22.isIdentifier(value.expression) || ts22.isIdentifier(value)) {
4629
4633
  return new o.WrappedNodeExpr(value);
4630
4634
  }
@@ -4643,7 +4647,7 @@ function parseDescendantsOption(value) {
4643
4647
  var EMPTY_OBJECT = {};
4644
4648
  var queryDecoratorNames = ["ViewChild", "ViewChildren", "ContentChild", "ContentChildren"];
4645
4649
  var QUERY_TYPES = new Set(queryDecoratorNames);
4646
- function extractDirectiveMetadata(clazz, decorator, reflector, evaluator, refEmitter, referencesRegistry, isCore, annotateForClosureCompiler, compilationMode, defaultSelector, useTemplatePipeline) {
4650
+ function extractDirectiveMetadata(clazz, decorator, reflector, importTracker, evaluator, refEmitter, referencesRegistry, isCore, annotateForClosureCompiler, compilationMode, defaultSelector, useTemplatePipeline) {
4647
4651
  let directive;
4648
4652
  if (decorator.args === null || decorator.args.length === 0) {
4649
4653
  directive = /* @__PURE__ */ new Map();
@@ -4663,12 +4667,12 @@ function extractDirectiveMetadata(clazz, decorator, reflector, evaluator, refEmi
4663
4667
  const decoratedElements = members.filter((member) => !member.isStatic && member.decorators !== null);
4664
4668
  const coreModule = isCore ? void 0 : "@angular/core";
4665
4669
  const inputsFromMeta = parseInputsArray(clazz, directive, evaluator, reflector, refEmitter, compilationMode);
4666
- const inputsFromFields = parseInputFields(clazz, members, evaluator, reflector, refEmitter, isCore, compilationMode, inputsFromMeta, decorator);
4670
+ const inputsFromFields = parseInputFields(clazz, members, evaluator, reflector, importTracker, refEmitter, isCore, compilationMode, inputsFromMeta, decorator);
4667
4671
  const inputs = ClassPropertyMapping.fromMappedObject({ ...inputsFromMeta, ...inputsFromFields });
4668
4672
  const outputsFromMeta = parseOutputsArray(directive, evaluator);
4669
- const outputsFromFields = parseOutputFields(clazz, decorator, members, isCore, reflector, evaluator, outputsFromMeta);
4673
+ const outputsFromFields = parseOutputFields(clazz, decorator, members, isCore, reflector, importTracker, evaluator, outputsFromMeta);
4670
4674
  const outputs = ClassPropertyMapping.fromMappedObject({ ...outputsFromMeta, ...outputsFromFields });
4671
- const { viewQueries, contentQueries } = parseQueriesOfClassFields(members, reflector, evaluator, isCore);
4675
+ const { viewQueries, contentQueries } = parseQueriesOfClassFields(members, reflector, importTracker, evaluator, isCore);
4672
4676
  if (directive.has("queries")) {
4673
4677
  const signalQueryFields = new Set([...viewQueries, ...contentQueries].filter((q) => q.isSignal).map((q) => q.propertyName));
4674
4678
  const queriesFromDecorator = extractQueriesFromDecorator(directive.get("queries"), reflector, evaluator, isCore);
@@ -5077,11 +5081,11 @@ function tryGetDecoratorOnMember(member, decoratorName, isCore) {
5077
5081
  }
5078
5082
  return null;
5079
5083
  }
5080
- function tryParseInputFieldMapping(clazz, member, evaluator, reflector, isCore, refEmitter, compilationMode) {
5084
+ function tryParseInputFieldMapping(clazz, member, evaluator, reflector, importTracker, isCore, refEmitter, compilationMode) {
5081
5085
  const classPropertyName = member.name;
5082
5086
  const decorator = tryGetDecoratorOnMember(member, "Input", isCore);
5083
- const signalInputMapping = tryParseSignalInputMapping(member, reflector, isCore);
5084
- const modelInputMapping = tryParseSignalModelMapping(member, reflector, isCore);
5087
+ const signalInputMapping = tryParseSignalInputMapping(member, reflector, importTracker);
5088
+ const modelInputMapping = tryParseSignalModelMapping(member, reflector, importTracker);
5085
5089
  if (decorator !== null && signalInputMapping !== null) {
5086
5090
  throw new FatalDiagnosticError(ErrorCode.INITIALIZER_API_WITH_DISALLOWED_DECORATOR, decorator.node, `Using @Input with a signal input is not allowed.`);
5087
5091
  }
@@ -5129,12 +5133,12 @@ function tryParseInputFieldMapping(clazz, member, evaluator, reflector, isCore,
5129
5133
  }
5130
5134
  return null;
5131
5135
  }
5132
- function parseInputFields(clazz, members, evaluator, reflector, refEmitter, isCore, compilationMode, inputsFromClassDecorator, classDecorator) {
5136
+ function parseInputFields(clazz, members, evaluator, reflector, importTracker, refEmitter, isCore, compilationMode, inputsFromClassDecorator, classDecorator) {
5133
5137
  var _a, _b;
5134
5138
  const inputs = {};
5135
5139
  for (const member of members) {
5136
5140
  const classPropertyName = member.name;
5137
- const inputMapping = tryParseInputFieldMapping(clazz, member, evaluator, reflector, isCore, refEmitter, compilationMode);
5141
+ const inputMapping = tryParseInputFieldMapping(clazz, member, evaluator, reflector, importTracker, isCore, refEmitter, compilationMode);
5138
5142
  if (inputMapping === null) {
5139
5143
  continue;
5140
5144
  }
@@ -5214,7 +5218,7 @@ function assertEmittableInputType(type, contextFile, reflector, refEmitter) {
5214
5218
  node.forEachChild(walk);
5215
5219
  })(type);
5216
5220
  }
5217
- function parseQueriesOfClassFields(members, reflector, evaluator, isCore) {
5221
+ function parseQueriesOfClassFields(members, reflector, importTracker, evaluator, isCore) {
5218
5222
  var _a;
5219
5223
  const viewQueries = [];
5220
5224
  const contentQueries = [];
@@ -5224,7 +5228,7 @@ function parseQueriesOfClassFields(members, reflector, evaluator, isCore) {
5224
5228
  const decoratorContentChildren = [];
5225
5229
  for (const member of members) {
5226
5230
  const decoratorQuery = tryGetQueryFromFieldDecorator(member, reflector, evaluator, isCore);
5227
- const signalQuery = tryParseSignalQueryFromInitializer(member, reflector, isCore);
5231
+ const signalQuery = tryParseSignalQueryFromInitializer(member, reflector, importTracker);
5228
5232
  if (decoratorQuery !== null && signalQuery !== null) {
5229
5233
  throw new FatalDiagnosticError(ErrorCode.INITIALIZER_API_WITH_DISALLOWED_DECORATOR, decoratorQuery.decorator.node, `Using @${decoratorQuery.name} with a signal-based query is not allowed.`);
5230
5234
  }
@@ -5269,13 +5273,13 @@ function parseOutputsArray(directive, evaluator) {
5269
5273
  const metaValues = parseFieldStringArrayValue(directive, "outputs", evaluator);
5270
5274
  return metaValues ? parseMappingStringArray(metaValues) : EMPTY_OBJECT;
5271
5275
  }
5272
- function parseOutputFields(clazz, classDecorator, members, isCore, reflector, evaluator, outputsFromMeta) {
5276
+ function parseOutputFields(clazz, classDecorator, members, isCore, reflector, importTracker, evaluator, outputsFromMeta) {
5273
5277
  var _a, _b, _c;
5274
5278
  const outputs = {};
5275
5279
  for (const member of members) {
5276
5280
  const decoratorOutput = tryParseDecoratorOutput(member, evaluator, isCore);
5277
- const initializerOutput = tryParseInitializerBasedOutput(member, reflector, isCore);
5278
- const modelMapping = tryParseSignalModelMapping(member, reflector, isCore);
5281
+ const initializerOutput = tryParseInitializerBasedOutput(member, reflector, importTracker);
5282
+ const modelMapping = tryParseSignalModelMapping(member, reflector, importTracker);
5279
5283
  if (decoratorOutput !== null && initializerOutput !== null) {
5280
5284
  throw new FatalDiagnosticError(ErrorCode.INITIALIZER_API_WITH_DISALLOWED_DECORATOR, decoratorOutput.decorator.node, `Using "@Output" with "output()" is not allowed.`);
5281
5285
  }
@@ -5537,7 +5541,7 @@ var LIFECYCLE_HOOKS = /* @__PURE__ */ new Set([
5537
5541
  "ngAfterContentChecked"
5538
5542
  ]);
5539
5543
  var DirectiveDecoratorHandler = class {
5540
- constructor(reflector, evaluator, metaRegistry, scopeRegistry, metaReader, injectableRegistry, refEmitter, referencesRegistry, isCore, strictCtorDeps, semanticDepGraphUpdater, annotateForClosureCompiler, perf, includeClassMetadata, compilationMode, useTemplatePipeline, generateExtraImportsInLocalMode) {
5544
+ constructor(reflector, evaluator, metaRegistry, scopeRegistry, metaReader, injectableRegistry, refEmitter, referencesRegistry, isCore, strictCtorDeps, semanticDepGraphUpdater, annotateForClosureCompiler, perf, importTracker, includeClassMetadata, compilationMode, useTemplatePipeline, generateExtraImportsInLocalMode) {
5541
5545
  this.reflector = reflector;
5542
5546
  this.evaluator = evaluator;
5543
5547
  this.metaRegistry = metaRegistry;
@@ -5551,6 +5555,7 @@ var DirectiveDecoratorHandler = class {
5551
5555
  this.semanticDepGraphUpdater = semanticDepGraphUpdater;
5552
5556
  this.annotateForClosureCompiler = annotateForClosureCompiler;
5553
5557
  this.perf = perf;
5558
+ this.importTracker = importTracker;
5554
5559
  this.includeClassMetadata = includeClassMetadata;
5555
5560
  this.compilationMode = compilationMode;
5556
5561
  this.useTemplatePipeline = useTemplatePipeline;
@@ -5580,6 +5585,7 @@ var DirectiveDecoratorHandler = class {
5580
5585
  node,
5581
5586
  decorator,
5582
5587
  this.reflector,
5588
+ this.importTracker,
5583
5589
  this.evaluator,
5584
5590
  this.refEmitter,
5585
5591
  this.referencesRegistry,
@@ -6881,7 +6887,7 @@ var EMPTY_ARRAY2 = [];
6881
6887
  var isUsedDirective = (decl) => decl.kind === R3TemplateDependencyKind.Directive;
6882
6888
  var isUsedPipe = (decl) => decl.kind === R3TemplateDependencyKind.Pipe;
6883
6889
  var ComponentDecoratorHandler = class {
6884
- constructor(reflector, evaluator, metaRegistry, metaReader, scopeReader, dtsScopeReader, scopeRegistry, typeCheckScopeRegistry, resourceRegistry, isCore, strictCtorDeps, resourceLoader, rootDirs, defaultPreserveWhitespaces, i18nUseExternalIds, enableI18nLegacyMessageIdFormat, usePoisonedData, i18nNormalizeLineEndingsInICUs, moduleResolver, cycleAnalyzer, cycleHandlingStrategy, refEmitter, referencesRegistry, depTracker, injectableRegistry, semanticDepGraphUpdater, annotateForClosureCompiler, perf, hostDirectivesResolver, includeClassMetadata, compilationMode, deferredSymbolTracker, forbidOrphanRendering, enableBlockSyntax, useTemplatePipeline, localCompilationExtraImportsTracker) {
6890
+ constructor(reflector, evaluator, metaRegistry, metaReader, scopeReader, dtsScopeReader, scopeRegistry, typeCheckScopeRegistry, resourceRegistry, isCore, strictCtorDeps, resourceLoader, rootDirs, defaultPreserveWhitespaces, i18nUseExternalIds, enableI18nLegacyMessageIdFormat, usePoisonedData, i18nNormalizeLineEndingsInICUs, moduleResolver, cycleAnalyzer, cycleHandlingStrategy, refEmitter, referencesRegistry, depTracker, injectableRegistry, semanticDepGraphUpdater, annotateForClosureCompiler, perf, hostDirectivesResolver, importTracker, includeClassMetadata, compilationMode, deferredSymbolTracker, forbidOrphanRendering, enableBlockSyntax, useTemplatePipeline, localCompilationExtraImportsTracker) {
6885
6891
  this.reflector = reflector;
6886
6892
  this.evaluator = evaluator;
6887
6893
  this.metaRegistry = metaRegistry;
@@ -6911,6 +6917,7 @@ var ComponentDecoratorHandler = class {
6911
6917
  this.annotateForClosureCompiler = annotateForClosureCompiler;
6912
6918
  this.perf = perf;
6913
6919
  this.hostDirectivesResolver = hostDirectivesResolver;
6920
+ this.importTracker = importTracker;
6914
6921
  this.includeClassMetadata = includeClassMetadata;
6915
6922
  this.compilationMode = compilationMode;
6916
6923
  this.deferredSymbolTracker = deferredSymbolTracker;
@@ -6994,7 +7001,7 @@ var ComponentDecoratorHandler = class {
6994
7001
  this.literalCache.delete(decorator);
6995
7002
  let diagnostics;
6996
7003
  let isPoisoned = false;
6997
- const directiveResult = extractDirectiveMetadata(node, decorator, this.reflector, this.evaluator, this.refEmitter, this.referencesRegistry, this.isCore, this.annotateForClosureCompiler, this.compilationMode, this.elementSchemaRegistry.getDefaultComponentElementName(), this.useTemplatePipeline);
7004
+ const directiveResult = extractDirectiveMetadata(node, decorator, this.reflector, this.importTracker, this.evaluator, this.refEmitter, this.referencesRegistry, this.isCore, this.annotateForClosureCompiler, this.compilationMode, this.elementSchemaRegistry.getDefaultComponentElementName(), this.useTemplatePipeline);
6998
7005
  if (directiveResult === void 0) {
6999
7006
  return {};
7000
7007
  }
@@ -8262,9 +8269,6 @@ var PipeDecoratorHandler = class {
8262
8269
  };
8263
8270
 
8264
8271
  export {
8265
- DynamicValue,
8266
- StaticInterpreter,
8267
- PartialEvaluator,
8268
8272
  isAngularDecorator,
8269
8273
  getAngularDecorators,
8270
8274
  forwardRefResolver,
@@ -8277,6 +8281,9 @@ export {
8277
8281
  ResourceRegistry,
8278
8282
  ExportedProviderStatusResolver,
8279
8283
  HostDirectivesResolver,
8284
+ DynamicValue,
8285
+ StaticInterpreter,
8286
+ PartialEvaluator,
8280
8287
  CompilationMode,
8281
8288
  aliasTransformFactory,
8282
8289
  TraitCompiler,
@@ -8317,4 +8324,4 @@ export {
8317
8324
  * Use of this source code is governed by an MIT-style license that can be
8318
8325
  * found in the LICENSE file at https://angular.io/license
8319
8326
  */
8320
- //# sourceMappingURL=chunk-SN7STUDB.js.map
8327
+ //# sourceMappingURL=chunk-LVVK56VK.js.map