@angular/core 19.1.4 → 19.1.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 (35) hide show
  1. package/fesm2022/core.mjs +635 -597
  2. package/fesm2022/core.mjs.map +1 -1
  3. package/fesm2022/primitives/event-dispatch.mjs +1 -1
  4. package/fesm2022/primitives/signals.mjs +1 -1
  5. package/fesm2022/rxjs-interop.mjs +1 -1
  6. package/fesm2022/testing.mjs +4 -4
  7. package/index.d.ts +13 -2
  8. package/package.json +1 -1
  9. package/primitives/event-dispatch/index.d.ts +1 -1
  10. package/primitives/signals/index.d.ts +1 -1
  11. package/rxjs-interop/index.d.ts +1 -1
  12. package/schematics/bundles/{apply_import_manager-3ba5d1bb.js → apply_import_manager-61eb7e4a.js} +3 -3
  13. package/schematics/bundles/{checker-ca858016.js → checker-58684f3f.js} +90 -52
  14. package/schematics/bundles/cleanup-unused-imports.js +5 -5
  15. package/schematics/bundles/{compiler_host-c26ed2d0.js → compiler_host-dff4346e.js} +2 -2
  16. package/schematics/bundles/control-flow-migration.js +10 -3
  17. package/schematics/bundles/explicit-standalone-flag.js +3 -3
  18. package/schematics/bundles/imports-31a38653.js +1 -1
  19. package/schematics/bundles/{index-aa0e0065.js → index-027c9191.js} +4 -4
  20. package/schematics/bundles/{index-761b9f6f.js → index-4bb9c755.js} +4 -4
  21. package/schematics/bundles/inject-migration.js +3 -3
  22. package/schematics/bundles/leading_space-6e7a8ec6.js +1 -1
  23. package/schematics/bundles/{migrate_ts_type_references-c6d4443c.js → migrate_ts_type_references-f48f6ec0.js} +5 -5
  24. package/schematics/bundles/nodes-88c2157f.js +1 -1
  25. package/schematics/bundles/output-migration.js +5 -5
  26. package/schematics/bundles/pending-tasks.js +3 -3
  27. package/schematics/bundles/{program-8e222816.js → program-721d697e.js} +123 -35
  28. package/schematics/bundles/project_tsconfig_paths-6c9cde78.js +1 -1
  29. package/schematics/bundles/provide-initializer.js +3 -3
  30. package/schematics/bundles/route-lazy-loading.js +3 -3
  31. package/schematics/bundles/signal-input-migration.js +6 -6
  32. package/schematics/bundles/signal-queries-migration.js +6 -6
  33. package/schematics/bundles/signals.js +6 -6
  34. package/schematics/bundles/standalone-migration.js +5 -5
  35. package/testing/index.d.ts +1 -1
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v19.1.4
2
+ * @license Angular v19.1.6
3
3
  * (c) 2010-2024 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v19.1.4
2
+ * @license Angular v19.1.6
3
3
  * (c) 2010-2024 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v19.1.4
2
+ * @license Angular v19.1.6
3
3
  * (c) 2010-2024 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v19.1.4
2
+ * @license Angular v19.1.6
3
3
  * (c) 2010-2024 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -175,10 +175,10 @@ class TestBedApplicationErrorHandler {
175
175
  throw e;
176
176
  }
177
177
  }
178
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: TestBedApplicationErrorHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
179
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: TestBedApplicationErrorHandler });
178
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: TestBedApplicationErrorHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
179
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: TestBedApplicationErrorHandler });
180
180
  }
181
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: TestBedApplicationErrorHandler, decorators: [{
181
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: TestBedApplicationErrorHandler, decorators: [{
182
182
  type: Injectable
183
183
  }] });
184
184
 
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v19.1.4
2
+ * @license Angular v19.1.6
3
3
  * (c) 2010-2024 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -5583,6 +5583,13 @@ declare const ID = 19;
5583
5583
  */
5584
5584
  export declare type ImportedNgModuleProviders = EnvironmentProviders;
5585
5585
 
5586
+ /** Represents `import.meta` plus some information that's not in the built-in types. */
5587
+ declare type ImportMetaExtended = ImportMeta & {
5588
+ hot?: {
5589
+ send?: (name: string, payload: unknown) => void;
5590
+ };
5591
+ };
5592
+
5586
5593
  /**
5587
5594
  * Collects providers from all NgModules and standalone components, including transitively imported
5588
5595
  * ones.
@@ -17867,9 +17874,13 @@ export declare function ɵɵrepeaterTrackByIndex(index: number): number;
17867
17874
  * @param applyMetadata Callback that will apply a new set of metadata on the `type` when invoked.
17868
17875
  * @param environment Syntehtic namespace imports that need to be passed along to the callback.
17869
17876
  * @param locals Local symbols from the source location that have to be exposed to the callback.
17877
+ * @param importMeta `import.meta` from the call site of the replacement function. Optional since
17878
+ * it isn't used internally.
17879
+ * @param id ID to the class being replaced. **Not** the same as the component definition ID.
17880
+ * Optional since the ID might not be available internally.
17870
17881
  * @codeGenApi
17871
17882
  */
17872
- export declare function ɵɵreplaceMetadata(type: Type<unknown>, applyMetadata: (...args: [Type<unknown>, unknown[], ...unknown[]]) => void, namespaces: unknown[], locals: unknown[]): void;
17883
+ export declare function ɵɵreplaceMetadata(type: Type<unknown>, applyMetadata: (...args: [Type<unknown>, unknown[], ...unknown[]]) => void, namespaces: unknown[], locals: unknown[], importMeta?: ImportMetaExtended | null, id?: string | null): void;
17873
17884
 
17874
17885
  /**
17875
17886
  * Clears the view set in `ɵɵrestoreView` from memory. Returns the passed in
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@angular/core",
3
- "version": "19.1.4",
3
+ "version": "19.1.6",
4
4
  "description": "Angular - the core framework",
5
5
  "author": "angular",
6
6
  "license": "MIT",
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v19.1.4
2
+ * @license Angular v19.1.6
3
3
  * (c) 2010-2024 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v19.1.4
2
+ * @license Angular v19.1.6
3
3
  * (c) 2010-2024 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v19.1.4
2
+ * @license Angular v19.1.6
3
3
  * (c) 2010-2024 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v19.1.4
3
+ * @license Angular v19.1.6
4
4
  * (c) 2010-2024 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -10,8 +10,8 @@ var core = require('@angular-devkit/core');
10
10
  var posixPath = require('node:path/posix');
11
11
  var os = require('os');
12
12
  var ts = require('typescript');
13
- var checker = require('./checker-ca858016.js');
14
- var program = require('./program-8e222816.js');
13
+ var checker = require('./checker-58684f3f.js');
14
+ var program = require('./program-721d697e.js');
15
15
  require('path');
16
16
 
17
17
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v19.1.4
3
+ * @license Angular v19.1.6
4
4
  * (c) 2010-2024 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -10030,7 +10030,14 @@ function transformExpressionsInOp(op, transform, flags) {
10030
10030
  op.trustedValueFn && transformExpressionsInExpression(op.trustedValueFn, transform, flags);
10031
10031
  break;
10032
10032
  case OpKind.RepeaterCreate:
10033
- op.track = transformExpressionsInExpression(op.track, transform, flags);
10033
+ if (op.trackByOps === null) {
10034
+ op.track = transformExpressionsInExpression(op.track, transform, flags);
10035
+ }
10036
+ else {
10037
+ for (const innerOp of op.trackByOps) {
10038
+ transformExpressionsInOp(innerOp, transform, flags | VisitorContextFlag.InChildOperation);
10039
+ }
10040
+ }
10034
10041
  if (op.trackByFn !== null) {
10035
10042
  op.trackByFn = transformExpressionsInExpression(op.trackByFn, transform, flags);
10036
10043
  }
@@ -10554,6 +10561,7 @@ function createRepeaterCreateOp(primaryView, emptyView, tag, track, varNames, em
10554
10561
  emptyView,
10555
10562
  track,
10556
10563
  trackByFn: null,
10564
+ trackByOps: null,
10557
10565
  tag,
10558
10566
  emptyTag,
10559
10567
  emptyAttributes: null,
@@ -11054,6 +11062,11 @@ class CompilationUnit {
11054
11062
  yield listenerOp;
11055
11063
  }
11056
11064
  }
11065
+ else if (op.kind === OpKind.RepeaterCreate && op.trackByOps !== null) {
11066
+ for (const trackOp of op.trackByOps) {
11067
+ yield trackOp;
11068
+ }
11069
+ }
11057
11070
  }
11058
11071
  for (const op of this.update) {
11059
11072
  yield op;
@@ -12781,6 +12794,9 @@ function recursivelyProcessView(view, parentScope) {
12781
12794
  if (op.emptyView) {
12782
12795
  recursivelyProcessView(view.job.views.get(op.emptyView), scope);
12783
12796
  }
12797
+ if (op.trackByOps !== null) {
12798
+ op.trackByOps.prepend(generateVariablesInScopeForView(view, scope, false));
12799
+ }
12784
12800
  break;
12785
12801
  case OpKind.Listener:
12786
12802
  case OpKind.TwoWayListener:
@@ -22863,7 +22879,7 @@ function reifyCreateOperations(unit, ops) {
22863
22879
  emptyDecls = emptyView.decls;
22864
22880
  emptyVars = emptyView.vars;
22865
22881
  }
22866
- OpList.replace(op, repeaterCreate(op.handle.slot, repeaterView.fnName, op.decls, op.vars, op.tag, op.attributes, op.trackByFn, op.usesComponentInstance, emptyViewFnName, emptyDecls, emptyVars, op.emptyTag, op.emptyAttributes, op.wholeSourceSpan));
22882
+ OpList.replace(op, repeaterCreate(op.handle.slot, repeaterView.fnName, op.decls, op.vars, op.tag, op.attributes, reifyTrackBy(unit, op), op.usesComponentInstance, emptyViewFnName, emptyDecls, emptyVars, op.emptyTag, op.emptyAttributes, op.wholeSourceSpan));
22867
22883
  break;
22868
22884
  case OpKind.SourceLocation:
22869
22885
  const locationsLiteral = literalArr(op.locations.map(({ targetSlot, offset, line, column }) => {
@@ -23044,6 +23060,8 @@ function reifyIrExpression(expr) {
23044
23060
  return readContextLet(expr.targetSlot.slot);
23045
23061
  case ExpressionKind.StoreLet:
23046
23062
  return storeLet(expr.value, expr.sourceSpan);
23063
+ case ExpressionKind.TrackContext:
23064
+ return variable('this');
23047
23065
  default:
23048
23066
  throw new Error(`AssertionError: Unsupported reification of ir.Expression kind: ${ExpressionKind[expr.kind]}`);
23049
23067
  }
@@ -23072,6 +23090,42 @@ function reifyListenerHandler(unit, name, handlerOps, consumesDollarEvent) {
23072
23090
  }
23073
23091
  return fn(params, handlerStmts, undefined, undefined, name);
23074
23092
  }
23093
+ /** Reifies the tracking expression of a `RepeaterCreateOp`. */
23094
+ function reifyTrackBy(unit, op) {
23095
+ // If the tracking function was created already, there's nothing left to do.
23096
+ if (op.trackByFn !== null) {
23097
+ return op.trackByFn;
23098
+ }
23099
+ const params = [new FnParam('$index'), new FnParam('$item')];
23100
+ let fn$1;
23101
+ if (op.trackByOps === null) {
23102
+ // If there are no additional ops related to the tracking function, we just need
23103
+ // to turn it into a function that returns the result of the expression.
23104
+ fn$1 = op.usesComponentInstance
23105
+ ? fn(params, [new ReturnStatement(op.track)])
23106
+ : arrowFn(params, op.track);
23107
+ }
23108
+ else {
23109
+ // Otherwise first we need to reify the track-related ops.
23110
+ reifyUpdateOperations(unit, op.trackByOps);
23111
+ const statements = [];
23112
+ for (const trackOp of op.trackByOps) {
23113
+ if (trackOp.kind !== OpKind.Statement) {
23114
+ throw new Error(`AssertionError: expected reified statements, but found op ${OpKind[trackOp.kind]}`);
23115
+ }
23116
+ statements.push(trackOp.statement);
23117
+ }
23118
+ // Afterwards we can create the function from those ops.
23119
+ fn$1 =
23120
+ op.usesComponentInstance ||
23121
+ statements.length !== 1 ||
23122
+ !(statements[0] instanceof ReturnStatement)
23123
+ ? fn(params, statements)
23124
+ : arrowFn(params, statements[0].value);
23125
+ }
23126
+ op.trackByFn = unit.job.pool.getSharedFunctionReference(fn$1, '_forTrack');
23127
+ return op.trackByFn;
23128
+ }
23075
23129
 
23076
23130
  /**
23077
23131
  * Binding with no content can be safely deleted.
@@ -23170,6 +23224,11 @@ function processLexicalScope$1(view, ops) {
23170
23224
  case OpKind.TwoWayListener:
23171
23225
  processLexicalScope$1(view, op.handlerOps);
23172
23226
  break;
23227
+ case OpKind.RepeaterCreate:
23228
+ if (op.trackByOps !== null) {
23229
+ processLexicalScope$1(view, op.trackByOps);
23230
+ }
23231
+ break;
23173
23232
  }
23174
23233
  }
23175
23234
  if (view === view.job.root) {
@@ -23602,6 +23661,11 @@ function processLexicalScope(unit, ops, savedView) {
23602
23661
  // lexical scope.
23603
23662
  processLexicalScope(unit, op.handlerOps, savedView);
23604
23663
  break;
23664
+ case OpKind.RepeaterCreate:
23665
+ if (op.trackByOps !== null) {
23666
+ processLexicalScope(unit, op.trackByOps, savedView);
23667
+ }
23668
+ break;
23605
23669
  }
23606
23670
  }
23607
23671
  // Next, use the `scope` mapping to match `ir.LexicalReadExpr` with defined names in the lexical
@@ -24002,6 +24066,9 @@ function generateTemporaries(ops) {
24002
24066
  if (op.kind === OpKind.Listener || op.kind === OpKind.TwoWayListener) {
24003
24067
  op.handlerOps.prepend(generateTemporaries(op.handlerOps));
24004
24068
  }
24069
+ else if (op.kind === OpKind.RepeaterCreate && op.trackByOps !== null) {
24070
+ op.trackByOps.prepend(generateTemporaries(op.trackByOps));
24071
+ }
24005
24072
  }
24006
24073
  return generatedStatements;
24007
24074
  }
@@ -24016,49 +24083,6 @@ function assignName(names, expr) {
24016
24083
  expr.name = name;
24017
24084
  }
24018
24085
 
24019
- /**
24020
- * Generate track functions that need to be extracted to the constant pool. This entails wrapping
24021
- * them in an arrow (or traditional) function, replacing context reads with `this.`, and storing
24022
- * them in the constant pool.
24023
- *
24024
- * Note that, if a track function was previously optimized, it will not need to be extracted, and
24025
- * this phase is a no-op.
24026
- */
24027
- function generateTrackFns(job) {
24028
- for (const unit of job.units) {
24029
- for (const op of unit.create) {
24030
- if (op.kind !== OpKind.RepeaterCreate) {
24031
- continue;
24032
- }
24033
- if (op.trackByFn !== null) {
24034
- // The final track function was already set, probably because it was optimized.
24035
- continue;
24036
- }
24037
- // Find all component context reads.
24038
- let usesComponentContext = false;
24039
- op.track = transformExpressionsInExpression(op.track, (expr) => {
24040
- if (expr instanceof PipeBindingExpr || expr instanceof PipeBindingVariadicExpr) {
24041
- throw new Error(`Illegal State: Pipes are not allowed in this context`);
24042
- }
24043
- if (expr instanceof TrackContextExpr) {
24044
- usesComponentContext = true;
24045
- return variable('this');
24046
- }
24047
- return expr;
24048
- }, VisitorContextFlag.None);
24049
- let fn;
24050
- const fnParams = [new FnParam('$index'), new FnParam('$item')];
24051
- if (usesComponentContext) {
24052
- fn = new FunctionExpr(fnParams, [new ReturnStatement(op.track)]);
24053
- }
24054
- else {
24055
- fn = arrowFn(fnParams, op.track);
24056
- }
24057
- op.trackByFn = job.pool.getSharedFunctionReference(fn, '_forTrack');
24058
- }
24059
- }
24060
- }
24061
-
24062
24086
  /**
24063
24087
  * `track` functions in `for` repeaters can sometimes be "optimized," i.e. transformed into inline
24064
24088
  * expressions, in lieu of an external function call. For example, tracking by `$index` can be be
@@ -24105,12 +24129,20 @@ function optimizeTrackFns(job) {
24105
24129
  // Replace context reads with a special IR expression, since context reads in a track
24106
24130
  // function are emitted specially.
24107
24131
  op.track = transformExpressionsInExpression(op.track, (expr) => {
24108
- if (expr instanceof ContextExpr) {
24132
+ if (expr instanceof PipeBindingExpr || expr instanceof PipeBindingVariadicExpr) {
24133
+ throw new Error(`Illegal State: Pipes are not allowed in this context`);
24134
+ }
24135
+ else if (expr instanceof ContextExpr) {
24109
24136
  op.usesComponentInstance = true;
24110
24137
  return new TrackContextExpr(expr.view);
24111
24138
  }
24112
24139
  return expr;
24113
24140
  }, VisitorContextFlag.None);
24141
+ // Also create an OpList for the tracking expression since it may need
24142
+ // additional ops when generating the final code (e.g. temporary variables).
24143
+ const trackOpList = new OpList();
24144
+ trackOpList.push(createStatementOp(new ReturnStatement(op.track, op.track.sourceSpan)));
24145
+ op.trackByOps = trackOpList;
24114
24146
  }
24115
24147
  }
24116
24148
  }
@@ -24335,6 +24367,9 @@ function optimizeVariables(job) {
24335
24367
  if (op.kind === OpKind.Listener || op.kind === OpKind.TwoWayListener) {
24336
24368
  inlineAlwaysInlineVariables(op.handlerOps);
24337
24369
  }
24370
+ else if (op.kind === OpKind.RepeaterCreate && op.trackByOps !== null) {
24371
+ inlineAlwaysInlineVariables(op.trackByOps);
24372
+ }
24338
24373
  }
24339
24374
  optimizeVariablesInOpList(unit.create, job.compatibility);
24340
24375
  optimizeVariablesInOpList(unit.update, job.compatibility);
@@ -24342,6 +24377,9 @@ function optimizeVariables(job) {
24342
24377
  if (op.kind === OpKind.Listener || op.kind === OpKind.TwoWayListener) {
24343
24378
  optimizeVariablesInOpList(op.handlerOps, job.compatibility);
24344
24379
  }
24380
+ else if (op.kind === OpKind.RepeaterCreate && op.trackByOps !== null) {
24381
+ optimizeVariablesInOpList(op.trackByOps, job.compatibility);
24382
+ }
24345
24383
  }
24346
24384
  }
24347
24385
  }
@@ -24922,7 +24960,6 @@ const phases = [
24922
24960
  { kind: CompilationJobKind.Tmpl, fn: resolveI18nElementPlaceholders },
24923
24961
  { kind: CompilationJobKind.Tmpl, fn: resolveI18nExpressionPlaceholders },
24924
24962
  { kind: CompilationJobKind.Tmpl, fn: extractI18nMessages },
24925
- { kind: CompilationJobKind.Tmpl, fn: generateTrackFns },
24926
24963
  { kind: CompilationJobKind.Tmpl, fn: collectI18nConsts },
24927
24964
  { kind: CompilationJobKind.Tmpl, fn: collectConstExpressions },
24928
24965
  { kind: CompilationJobKind.Both, fn: collectElementConsts },
@@ -30451,7 +30488,7 @@ function publishFacade(global) {
30451
30488
  * @description
30452
30489
  * Entry point for all public APIs of the compiler package.
30453
30490
  */
30454
- new Version('19.1.4');
30491
+ new Version('19.1.6');
30455
30492
 
30456
30493
  const _I18N_ATTR = 'i18n';
30457
30494
  const _I18N_ATTR_PREFIX = 'i18n-';
@@ -31859,7 +31896,7 @@ class NodeJSPathManipulation {
31859
31896
  // G3-ESM-MARKER: G3 uses CommonJS, but externally everything in ESM.
31860
31897
  // CommonJS/ESM interop for determining the current file name and containing dir.
31861
31898
  const isCommonJS = typeof __filename !== 'undefined';
31862
- const currentFileUrl = isCommonJS ? null : (typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT' && document.currentScript.src || new URL('checker-ca858016.js', document.baseURI).href));
31899
+ const currentFileUrl = isCommonJS ? null : (typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT' && document.currentScript.src || new URL('checker-58684f3f.js', document.baseURI).href));
31863
31900
  const currentFileName = isCommonJS ? __filename : url.fileURLToPath(currentFileUrl);
31864
31901
  /**
31865
31902
  * A wrapper around the Node.js file-system that supports readonly operations and path manipulation.
@@ -34910,10 +34947,10 @@ class StaticInterpreter {
34910
34947
  visitEnumDeclaration(node, context) {
34911
34948
  const enumRef = this.getReference(node, context);
34912
34949
  const map = new Map();
34913
- node.members.forEach((member) => {
34950
+ node.members.forEach((member, index) => {
34914
34951
  const name = this.stringNameFromPropertyName(member.name, context);
34915
34952
  if (name !== undefined) {
34916
- const resolved = member.initializer && this.visit(member.initializer, context);
34953
+ const resolved = member.initializer ? this.visit(member.initializer, context) : index;
34917
34954
  map.set(name, new EnumValue(enumRef, name, resolved));
34918
34955
  }
34919
34956
  });
@@ -46046,6 +46083,7 @@ exports.PropertyRead = PropertyRead;
46046
46083
  exports.PropertyWrite = PropertyWrite;
46047
46084
  exports.QUERY_INITIALIZER_FNS = QUERY_INITIALIZER_FNS;
46048
46085
  exports.R3TargetBinder = R3TargetBinder;
46086
+ exports.ReadVarExpr = ReadVarExpr;
46049
46087
  exports.RecursiveAstVisitor = RecursiveAstVisitor$1;
46050
46088
  exports.RecursiveAstVisitor$1 = RecursiveAstVisitor;
46051
46089
  exports.RecursiveVisitor = RecursiveVisitor;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v19.1.4
3
+ * @license Angular v19.1.6
4
4
  * (c) 2010-2024 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -10,13 +10,13 @@ Object.defineProperty(exports, '__esModule', { value: true });
10
10
 
11
11
  var schematics = require('@angular-devkit/schematics');
12
12
  var project_tsconfig_paths = require('./project_tsconfig_paths-6c9cde78.js');
13
- var apply_import_manager = require('./apply_import_manager-3ba5d1bb.js');
13
+ var apply_import_manager = require('./apply_import_manager-61eb7e4a.js');
14
14
  require('os');
15
15
  var ts = require('typescript');
16
- var checker = require('./checker-ca858016.js');
17
- var program = require('./program-8e222816.js');
16
+ var checker = require('./checker-58684f3f.js');
17
+ var program = require('./program-721d697e.js');
18
18
  require('path');
19
- require('./index-761b9f6f.js');
19
+ require('./index-4bb9c755.js');
20
20
  require('@angular-devkit/core');
21
21
  require('node:path/posix');
22
22
  require('fs');
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v19.1.4
3
+ * @license Angular v19.1.6
4
4
  * (c) 2010-2024 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
7
7
  'use strict';
8
8
 
9
9
  var ts = require('typescript');
10
- var checker = require('./checker-ca858016.js');
10
+ var checker = require('./checker-58684f3f.js');
11
11
  require('os');
12
12
  var p = require('path');
13
13
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v19.1.4
3
+ * @license Angular v19.1.6
4
4
  * (c) 2010-2024 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -10,8 +10,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
10
10
 
11
11
  var schematics = require('@angular-devkit/schematics');
12
12
  var p = require('path');
13
- var compiler_host = require('./compiler_host-c26ed2d0.js');
14
- var checker = require('./checker-ca858016.js');
13
+ var compiler_host = require('./compiler_host-dff4346e.js');
14
+ var checker = require('./checker-58684f3f.js');
15
15
  var ts = require('typescript');
16
16
  require('os');
17
17
  require('fs');
@@ -297,12 +297,19 @@ class CommonCollector extends checker.RecursiveVisitor {
297
297
  this.count++;
298
298
  }
299
299
  }
300
+ super.visitBlock(ast, null);
300
301
  }
301
302
  visitText(ast) {
302
303
  if (this.hasPipes(ast.value)) {
303
304
  this.count++;
304
305
  }
305
306
  }
307
+ visitLetDeclaration(decl) {
308
+ if (this.hasPipes(decl.value)) {
309
+ this.count++;
310
+ }
311
+ super.visitLetDeclaration(decl, null);
312
+ }
306
313
  hasDirectives(input) {
307
314
  return commonModuleDirectives.has(input);
308
315
  }
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v19.1.4
3
+ * @license Angular v19.1.6
4
4
  * (c) 2010-2024 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -11,11 +11,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
11
11
  var schematics = require('@angular-devkit/schematics');
12
12
  var p = require('path');
13
13
  var project_tsconfig_paths = require('./project_tsconfig_paths-6c9cde78.js');
14
- var compiler_host = require('./compiler_host-c26ed2d0.js');
14
+ var compiler_host = require('./compiler_host-dff4346e.js');
15
15
  var ts = require('typescript');
16
16
  var imports = require('./imports-31a38653.js');
17
17
  require('@angular-devkit/core');
18
- require('./checker-ca858016.js');
18
+ require('./checker-58684f3f.js');
19
19
  require('os');
20
20
  require('fs');
21
21
  require('module');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v19.1.4
3
+ * @license Angular v19.1.6
4
4
  * (c) 2010-2024 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v19.1.4
3
+ * @license Angular v19.1.6
4
4
  * (c) 2010-2024 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -8,10 +8,10 @@
8
8
 
9
9
  var ts = require('typescript');
10
10
  require('os');
11
- var checker = require('./checker-ca858016.js');
12
- var program = require('./program-8e222816.js');
11
+ var checker = require('./checker-58684f3f.js');
12
+ var program = require('./program-721d697e.js');
13
13
  require('path');
14
- var apply_import_manager = require('./apply_import_manager-3ba5d1bb.js');
14
+ var apply_import_manager = require('./apply_import_manager-61eb7e4a.js');
15
15
 
16
16
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
17
17
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v19.1.4
3
+ * @license Angular v19.1.6
4
4
  * (c) 2010-2024 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -8,8 +8,8 @@
8
8
 
9
9
  require('os');
10
10
  require('typescript');
11
- var checker = require('./checker-ca858016.js');
12
- require('./program-8e222816.js');
11
+ var checker = require('./checker-58684f3f.js');
12
+ require('./program-721d697e.js');
13
13
  require('path');
14
14
 
15
15
  /**
@@ -17,7 +17,7 @@ require('path');
17
17
  * @description
18
18
  * Entry point for all public APIs of the compiler-cli package.
19
19
  */
20
- new checker.Version('19.1.4');
20
+ new checker.Version('19.1.6');
21
21
 
22
22
  var LogLevel;
23
23
  (function (LogLevel) {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v19.1.4
3
+ * @license Angular v19.1.6
4
4
  * (c) 2010-2024 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -10,12 +10,12 @@ Object.defineProperty(exports, '__esModule', { value: true });
10
10
 
11
11
  var schematics = require('@angular-devkit/schematics');
12
12
  var p = require('path');
13
- var compiler_host = require('./compiler_host-c26ed2d0.js');
13
+ var compiler_host = require('./compiler_host-dff4346e.js');
14
14
  var ts = require('typescript');
15
15
  var nodes = require('./nodes-88c2157f.js');
16
16
  var imports = require('./imports-31a38653.js');
17
17
  var leading_space = require('./leading_space-6e7a8ec6.js');
18
- require('./checker-ca858016.js');
18
+ require('./checker-58684f3f.js');
19
19
  require('os');
20
20
  require('fs');
21
21
  require('module');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v19.1.4
3
+ * @license Angular v19.1.6
4
4
  * (c) 2010-2024 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -1,19 +1,19 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v19.1.4
3
+ * @license Angular v19.1.6
4
4
  * (c) 2010-2024 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
7
7
  'use strict';
8
8
 
9
- var checker = require('./checker-ca858016.js');
9
+ var checker = require('./checker-58684f3f.js');
10
10
  var ts = require('typescript');
11
11
  require('os');
12
12
  var assert = require('assert');
13
- var index = require('./index-aa0e0065.js');
14
- var apply_import_manager = require('./apply_import_manager-3ba5d1bb.js');
13
+ var index = require('./index-027c9191.js');
14
+ var apply_import_manager = require('./apply_import_manager-61eb7e4a.js');
15
15
  var leading_space = require('./leading_space-6e7a8ec6.js');
16
- require('./program-8e222816.js');
16
+ require('./program-721d697e.js');
17
17
  require('path');
18
18
 
19
19
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v19.1.4
3
+ * @license Angular v19.1.6
4
4
  * (c) 2010-2024 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */