@angular-eslint/bundled-angular-compiler 16.0.4-alpha.9 → 16.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +356 -134
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  /**
4
- * @license Angular v16.0.3
4
+ * @license Angular v16.1.4
5
5
  * (c) 2010-2022 Google LLC. https://angular.io/
6
6
  * License: MIT
7
7
  */
@@ -2274,6 +2274,7 @@ class ConstantPool {
2274
2274
  this.statements = [];
2275
2275
  this.literals = new Map();
2276
2276
  this.literalFactories = new Map();
2277
+ this.sharedConstants = new Map();
2277
2278
  this.nextNameIndex = 0;
2278
2279
  }
2279
2280
  getConstLiteral(literal, forceShared) {
@@ -2283,7 +2284,7 @@ class ConstantPool {
2283
2284
  // reference to a constant.
2284
2285
  return literal;
2285
2286
  }
2286
- const key = this.keyOf(literal);
2287
+ const key = GenericKeyFn.INSTANCE.keyOf(literal);
2287
2288
  let fixup = this.literals.get(key);
2288
2289
  let newValue = false;
2289
2290
  if (!fixup) {
@@ -2328,11 +2329,20 @@ class ConstantPool {
2328
2329
  }
2329
2330
  return fixup;
2330
2331
  }
2332
+ getSharedConstant(def, expr) {
2333
+ const key = def.keyOf(expr);
2334
+ if (!this.sharedConstants.has(key)) {
2335
+ const id = this.freshName();
2336
+ this.sharedConstants.set(key, variable(id));
2337
+ this.statements.push(def.toSharedConstantDeclaration(id, expr));
2338
+ }
2339
+ return this.sharedConstants.get(key);
2340
+ }
2331
2341
  getLiteralFactory(literal) {
2332
2342
  // Create a pure function that builds an array of a mix of constant and variable expressions
2333
2343
  if (literal instanceof LiteralArrayExpr) {
2334
2344
  const argumentsForKey = literal.entries.map(e => e.isConstant() ? e : UNKNOWN_VALUE_KEY);
2335
- const key = this.keyOf(literalArr(argumentsForKey));
2345
+ const key = GenericKeyFn.INSTANCE.keyOf(literalArr(argumentsForKey));
2336
2346
  return this._getLiteralFactory(key, literal.entries, entries => literalArr(entries));
2337
2347
  }
2338
2348
  else {
@@ -2341,7 +2351,7 @@ class ConstantPool {
2341
2351
  value: e.value.isConstant() ? e.value : UNKNOWN_VALUE_KEY,
2342
2352
  quoted: e.quoted
2343
2353
  })));
2344
- const key = this.keyOf(expressionForKey);
2354
+ const key = GenericKeyFn.INSTANCE.keyOf(expressionForKey);
2345
2355
  return this._getLiteralFactory(key, literal.entries.map(e => e.value), entries => literalMap(entries.map((value, index) => ({
2346
2356
  key: literal.entries[index].key,
2347
2357
  value,
@@ -2378,65 +2388,48 @@ class ConstantPool {
2378
2388
  freshName() {
2379
2389
  return this.uniqueName(CONSTANT_PREFIX);
2380
2390
  }
2381
- keyOf(expression) {
2382
- return expression.visitExpression(new KeyVisitor(), KEY_CONTEXT);
2383
- }
2384
2391
  }
2385
- /**
2386
- * Visitor used to determine if 2 expressions are equivalent and can be shared in the
2387
- * `ConstantPool`.
2388
- *
2389
- * When the id (string) generated by the visitor is equal, expressions are considered equivalent.
2390
- */
2391
- class KeyVisitor {
2392
- constructor() {
2393
- this.visitWrappedNodeExpr = invalid$1;
2394
- this.visitWriteVarExpr = invalid$1;
2395
- this.visitWriteKeyExpr = invalid$1;
2396
- this.visitWritePropExpr = invalid$1;
2397
- this.visitInvokeFunctionExpr = invalid$1;
2398
- this.visitTaggedTemplateExpr = invalid$1;
2399
- this.visitInstantiateExpr = invalid$1;
2400
- this.visitConditionalExpr = invalid$1;
2401
- this.visitNotExpr = invalid$1;
2402
- this.visitAssertNotNullExpr = invalid$1;
2403
- this.visitCastExpr = invalid$1;
2404
- this.visitFunctionExpr = invalid$1;
2405
- this.visitUnaryOperatorExpr = invalid$1;
2406
- this.visitBinaryOperatorExpr = invalid$1;
2407
- this.visitReadPropExpr = invalid$1;
2408
- this.visitReadKeyExpr = invalid$1;
2409
- this.visitCommaExpr = invalid$1;
2410
- this.visitLocalizedString = invalid$1;
2411
- }
2412
- visitLiteralExpr(ast) {
2413
- return `${typeof ast.value === 'string' ? '"' + ast.value + '"' : ast.value}`;
2414
- }
2415
- visitLiteralArrayExpr(ast, context) {
2416
- return `[${ast.entries.map(entry => entry.visitExpression(this, context)).join(',')}]`;
2417
- }
2418
- visitLiteralMapExpr(ast, context) {
2419
- const mapKey = (entry) => {
2420
- const quote = entry.quoted ? '"' : '';
2421
- return `${quote}${entry.key}${quote}`;
2422
- };
2423
- const mapEntry = (entry) => `${mapKey(entry)}:${entry.value.visitExpression(this, context)}`;
2424
- return `{${ast.entries.map(mapEntry).join(',')}`;
2425
- }
2426
- visitExternalExpr(ast) {
2427
- return ast.value.moduleName ? `EX:${ast.value.moduleName}:${ast.value.name}` :
2428
- `EX:${ast.value.runtime.name}`;
2429
- }
2430
- visitReadVarExpr(node) {
2431
- return `VAR:${node.name}`;
2432
- }
2433
- visitTypeofExpr(node, context) {
2434
- return `TYPEOF:${node.expr.visitExpression(this, context)}`;
2392
+ class GenericKeyFn {
2393
+ static { this.INSTANCE = new GenericKeyFn(); }
2394
+ keyOf(expr) {
2395
+ if (expr instanceof LiteralExpr && typeof expr.value === 'string') {
2396
+ return `"${expr.value}"`;
2397
+ }
2398
+ else if (expr instanceof LiteralExpr) {
2399
+ return String(expr.value);
2400
+ }
2401
+ else if (expr instanceof LiteralArrayExpr) {
2402
+ const entries = [];
2403
+ for (const entry of expr.entries) {
2404
+ entries.push(this.keyOf(entry));
2405
+ }
2406
+ return `[${entries.join(',')}]`;
2407
+ }
2408
+ else if (expr instanceof LiteralMapExpr) {
2409
+ const entries = [];
2410
+ for (const entry of expr.entries) {
2411
+ let key = entry.key;
2412
+ if (entry.quoted) {
2413
+ key = `"${key}"`;
2414
+ }
2415
+ entries.push(key + ':' + this.keyOf(entry.value));
2416
+ }
2417
+ return `{${entries.join(',')}}`;
2418
+ }
2419
+ else if (expr instanceof ExternalExpr) {
2420
+ return `import("${expr.value.moduleName}", ${expr.value.name})`;
2421
+ }
2422
+ else if (expr instanceof ReadVarExpr) {
2423
+ return `read(${expr.name})`;
2424
+ }
2425
+ else if (expr instanceof TypeofExpr) {
2426
+ return `typeof(${this.keyOf(expr.expr)})`;
2427
+ }
2428
+ else {
2429
+ throw new Error(`${this.constructor.name} does not handle expressions of type ${expr.constructor.name}`);
2430
+ }
2435
2431
  }
2436
2432
  }
2437
- function invalid$1(arg) {
2438
- throw new Error(`Invalid state: Visitor ${this.constructor.name} doesn't handle ${arg.constructor.name}`);
2439
- }
2440
2433
  function isVariable(e) {
2441
2434
  return e instanceof ReadVarExpr;
2442
2435
  }
@@ -2634,6 +2627,7 @@ class Identifiers {
2634
2627
  static { this.StandaloneFeature = { name: 'ɵɵStandaloneFeature', moduleName: CORE }; }
2635
2628
  static { this.ProvidersFeature = { name: 'ɵɵProvidersFeature', moduleName: CORE }; }
2636
2629
  static { this.HostDirectivesFeature = { name: 'ɵɵHostDirectivesFeature', moduleName: CORE }; }
2630
+ static { this.InputTransformsFeatureFeature = { name: 'ɵɵInputTransformsFeature', moduleName: CORE }; }
2637
2631
  static { this.listener = { name: 'ɵɵlistener', moduleName: CORE }; }
2638
2632
  static { this.getInheritedFactory = {
2639
2633
  name: 'ɵɵgetInheritedFactory',
@@ -4646,27 +4640,34 @@ function conditionallyCreateDirectiveBindingLiteral(map, keepDeclared) {
4646
4640
  let declaredName;
4647
4641
  let publicName;
4648
4642
  let minifiedName;
4649
- let needsDeclaredName;
4643
+ let expressionValue;
4650
4644
  if (typeof value === 'string') {
4651
4645
  // canonical syntax: `dirProp: publicProp`
4652
4646
  declaredName = key;
4653
4647
  minifiedName = key;
4654
4648
  publicName = value;
4655
- needsDeclaredName = false;
4649
+ expressionValue = asLiteral(publicName);
4656
4650
  }
4657
4651
  else {
4658
4652
  minifiedName = key;
4659
4653
  declaredName = value.classPropertyName;
4660
4654
  publicName = value.bindingPropertyName;
4661
- needsDeclaredName = publicName !== declaredName;
4655
+ if (keepDeclared && (publicName !== declaredName || value.transformFunction != null)) {
4656
+ const expressionKeys = [asLiteral(publicName), asLiteral(declaredName)];
4657
+ if (value.transformFunction != null) {
4658
+ expressionKeys.push(value.transformFunction);
4659
+ }
4660
+ expressionValue = literalArr(expressionKeys);
4661
+ }
4662
+ else {
4663
+ expressionValue = asLiteral(publicName);
4664
+ }
4662
4665
  }
4663
4666
  return {
4664
4667
  key: minifiedName,
4665
4668
  // put quotes around keys that contain potentially unsafe characters
4666
4669
  quoted: UNSAFE_OBJECT_KEY_NAME_REGEXP.test(minifiedName),
4667
- value: (keepDeclared && needsDeclaredName) ?
4668
- literalArr([asLiteral(publicName), asLiteral(declaredName)]) :
4669
- asLiteral(publicName)
4670
+ value: expressionValue,
4670
4671
  };
4671
4672
  }));
4672
4673
  }
@@ -5582,31 +5583,49 @@ exports.R3SelectorScopeMode = void 0;
5582
5583
  */
5583
5584
  R3SelectorScopeMode[R3SelectorScopeMode["Omit"] = 2] = "Omit";
5584
5585
  })(exports.R3SelectorScopeMode || (exports.R3SelectorScopeMode = {}));
5586
+ /**
5587
+ * The type of the NgModule meta data.
5588
+ * - Global: Used for full and partial compilation modes which mainly includes R3References.
5589
+ * - Local: Used for the local compilation mode which mainly includes the raw expressions as appears
5590
+ * in the NgModule decorator.
5591
+ */
5592
+ exports.R3NgModuleMetadataKind = void 0;
5593
+ (function (R3NgModuleMetadataKind) {
5594
+ R3NgModuleMetadataKind[R3NgModuleMetadataKind["Global"] = 0] = "Global";
5595
+ R3NgModuleMetadataKind[R3NgModuleMetadataKind["Local"] = 1] = "Local";
5596
+ })(exports.R3NgModuleMetadataKind || (exports.R3NgModuleMetadataKind = {}));
5585
5597
  /**
5586
5598
  * Construct an `R3NgModuleDef` for the given `R3NgModuleMetadata`.
5587
5599
  */
5588
5600
  function compileNgModule(meta) {
5589
- const { type: moduleType, bootstrap, declarations, imports, exports: exports$1, schemas, containsForwardDecls, selectorScopeMode, id } = meta;
5590
5601
  const statements = [];
5591
5602
  const definitionMap = new DefinitionMap();
5592
- definitionMap.set('type', moduleType.value);
5593
- if (bootstrap.length > 0) {
5594
- definitionMap.set('bootstrap', refsToArray(bootstrap, containsForwardDecls));
5603
+ definitionMap.set('type', meta.type.value);
5604
+ // Assign bootstrap definition
5605
+ if (meta.kind === exports.R3NgModuleMetadataKind.Global) {
5606
+ if (meta.bootstrap.length > 0) {
5607
+ definitionMap.set('bootstrap', refsToArray(meta.bootstrap, meta.containsForwardDecls));
5608
+ }
5595
5609
  }
5596
- if (selectorScopeMode === exports.R3SelectorScopeMode.Inline) {
5610
+ else {
5611
+ if (meta.bootstrapExpression) {
5612
+ definitionMap.set('bootstrap', meta.bootstrapExpression);
5613
+ }
5614
+ }
5615
+ if (meta.selectorScopeMode === exports.R3SelectorScopeMode.Inline) {
5597
5616
  // If requested to emit scope information inline, pass the `declarations`, `imports` and
5598
5617
  // `exports` to the `ɵɵdefineNgModule()` call directly.
5599
- if (declarations.length > 0) {
5600
- definitionMap.set('declarations', refsToArray(declarations, containsForwardDecls));
5618
+ if (meta.declarations.length > 0) {
5619
+ definitionMap.set('declarations', refsToArray(meta.declarations, meta.containsForwardDecls));
5601
5620
  }
5602
- if (imports.length > 0) {
5603
- definitionMap.set('imports', refsToArray(imports, containsForwardDecls));
5621
+ if (meta.imports.length > 0) {
5622
+ definitionMap.set('imports', refsToArray(meta.imports, meta.containsForwardDecls));
5604
5623
  }
5605
- if (exports$1.length > 0) {
5606
- definitionMap.set('exports', refsToArray(exports$1, containsForwardDecls));
5624
+ if (meta.exports.length > 0) {
5625
+ definitionMap.set('exports', refsToArray(meta.exports, meta.containsForwardDecls));
5607
5626
  }
5608
5627
  }
5609
- else if (selectorScopeMode === exports.R3SelectorScopeMode.SideEffect) {
5628
+ else if (meta.selectorScopeMode === exports.R3SelectorScopeMode.SideEffect) {
5610
5629
  // In this mode, scope information is not passed into `ɵɵdefineNgModule` as it
5611
5630
  // would prevent tree-shaking of the declarations, imports and exports references. Instead, it's
5612
5631
  // patched onto the NgModule definition with a `ɵɵsetNgModuleScope` call that's guarded by the
@@ -5617,14 +5636,14 @@ function compileNgModule(meta) {
5617
5636
  }
5618
5637
  }
5619
5638
  else ;
5620
- if (schemas !== null && schemas.length > 0) {
5621
- definitionMap.set('schemas', literalArr(schemas.map(ref => ref.value)));
5639
+ if (meta.schemas !== null && meta.schemas.length > 0) {
5640
+ definitionMap.set('schemas', literalArr(meta.schemas.map(ref => ref.value)));
5622
5641
  }
5623
- if (id !== null) {
5624
- definitionMap.set('id', id);
5642
+ if (meta.id !== null) {
5643
+ definitionMap.set('id', meta.id);
5625
5644
  // Generate a side-effectful call to register this NgModule by its id, as per the semantics of
5626
5645
  // NgModule ids.
5627
- statements.push(importExpr(Identifiers.registerNgModuleType).callFn([moduleType.value, id]).toStmt());
5646
+ statements.push(importExpr(Identifiers.registerNgModuleType).callFn([meta.type.value, meta.id]).toStmt());
5628
5647
  }
5629
5648
  const expression = importExpr(Identifiers.defineNgModule).callFn([definitionMap.toLiteralMap()], undefined, true);
5630
5649
  const type = createNgModuleType(meta);
@@ -5657,13 +5676,17 @@ function compileNgModuleDeclarationExpression(meta) {
5657
5676
  }
5658
5677
  return importExpr(Identifiers.defineNgModule).callFn([definitionMap.toLiteralMap()]);
5659
5678
  }
5660
- function createNgModuleType({ type: moduleType, declarations, exports, imports, includeImportTypes, publicDeclarationTypes }) {
5679
+ function createNgModuleType(meta) {
5680
+ if (meta.kind === exports.R3NgModuleMetadataKind.Local) {
5681
+ return new ExpressionType(meta.type.value);
5682
+ }
5683
+ const { type: moduleType, declarations, exports: exports$1, imports, includeImportTypes, publicDeclarationTypes } = meta;
5661
5684
  return new ExpressionType(importExpr(Identifiers.NgModuleDeclaration, [
5662
5685
  new ExpressionType(moduleType.type),
5663
5686
  publicDeclarationTypes === null ? tupleTypeOf(declarations) :
5664
5687
  tupleOfTypes(publicDeclarationTypes),
5665
5688
  includeImportTypes ? tupleTypeOf(imports) : NONE_TYPE,
5666
- tupleTypeOf(exports),
5689
+ tupleTypeOf(exports$1),
5667
5690
  ]));
5668
5691
  }
5669
5692
  /**
@@ -5673,16 +5696,36 @@ function createNgModuleType({ type: moduleType, declarations, exports, imports,
5673
5696
  * symbols to become tree-shakeable.
5674
5697
  */
5675
5698
  function generateSetNgModuleScopeCall(meta) {
5676
- const { type: moduleType, declarations, imports, exports, containsForwardDecls } = meta;
5677
5699
  const scopeMap = new DefinitionMap();
5678
- if (declarations.length > 0) {
5679
- scopeMap.set('declarations', refsToArray(declarations, containsForwardDecls));
5700
+ if (meta.kind === exports.R3NgModuleMetadataKind.Global) {
5701
+ if (meta.declarations.length > 0) {
5702
+ scopeMap.set('declarations', refsToArray(meta.declarations, meta.containsForwardDecls));
5703
+ }
5704
+ }
5705
+ else {
5706
+ if (meta.declarationsExpression) {
5707
+ scopeMap.set('declarations', meta.declarationsExpression);
5708
+ }
5680
5709
  }
5681
- if (imports.length > 0) {
5682
- scopeMap.set('imports', refsToArray(imports, containsForwardDecls));
5710
+ if (meta.kind === exports.R3NgModuleMetadataKind.Global) {
5711
+ if (meta.imports.length > 0) {
5712
+ scopeMap.set('imports', refsToArray(meta.imports, meta.containsForwardDecls));
5713
+ }
5683
5714
  }
5684
- if (exports.length > 0) {
5685
- scopeMap.set('exports', refsToArray(exports, containsForwardDecls));
5715
+ else {
5716
+ if (meta.importsExpression) {
5717
+ scopeMap.set('imports', meta.importsExpression);
5718
+ }
5719
+ }
5720
+ if (meta.kind === exports.R3NgModuleMetadataKind.Global) {
5721
+ if (meta.exports.length > 0) {
5722
+ scopeMap.set('exports', refsToArray(meta.exports, meta.containsForwardDecls));
5723
+ }
5724
+ }
5725
+ else {
5726
+ if (meta.exportsExpression) {
5727
+ scopeMap.set('exports', meta.exportsExpression);
5728
+ }
5686
5729
  }
5687
5730
  if (Object.keys(scopeMap.values).length === 0) {
5688
5731
  return null;
@@ -5690,7 +5733,7 @@ function generateSetNgModuleScopeCall(meta) {
5690
5733
  // setNgModuleScope(...)
5691
5734
  const fnCall = new InvokeFunctionExpr(
5692
5735
  /* fn */ importExpr(Identifiers.setNgModuleScope),
5693
- /* args */ [moduleType.value, scopeMap.toLiteralMap()]);
5736
+ /* args */ [meta.type.value, scopeMap.toLiteralMap()]);
5694
5737
  // (ngJitMode guard) && setNgModuleScope(...)
5695
5738
  const guardedCall = jitOnlyGuardedExpression(fnCall);
5696
5739
  // function() { (ngJitMode guard) && setNgModuleScope(...); }
@@ -7447,11 +7490,28 @@ class ShadowCss {
7447
7490
  * The hostSelector is the attribute added to the host itself.
7448
7491
  */
7449
7492
  shimCssText(cssText, selector, hostSelector = '') {
7450
- const commentsWithHash = extractCommentsWithHash(cssText);
7451
- cssText = stripComments(cssText);
7493
+ // **NOTE**: Do not strip comments as this will cause component sourcemaps to break
7494
+ // due to shift in lines.
7495
+ // Collect comments and replace them with a placeholder, this is done to avoid complicating
7496
+ // the rule parsing RegExp and keep it safer.
7497
+ const comments = [];
7498
+ cssText = cssText.replace(_commentRe, (m) => {
7499
+ if (m.match(_commentWithHashRe)) {
7500
+ comments.push(m);
7501
+ }
7502
+ else {
7503
+ // Replace non hash comments with empty lines.
7504
+ // This is done so that we do not leak any senstive data in comments.
7505
+ const newLinesMatches = m.match(_newLinesRe);
7506
+ comments.push((newLinesMatches?.join('') ?? '') + '\n');
7507
+ }
7508
+ return COMMENT_PLACEHOLDER;
7509
+ });
7452
7510
  cssText = this._insertDirectives(cssText);
7453
7511
  const scopedCssText = this._scopeCssText(cssText, selector, hostSelector);
7454
- return [scopedCssText, ...commentsWithHash].join('\n');
7512
+ // Add back comments at the original position.
7513
+ let commentIdx = 0;
7514
+ return scopedCssText.replace(_commentWithHashPlaceHolderRe, () => comments[commentIdx++]);
7455
7515
  }
7456
7516
  _insertDirectives(cssText) {
7457
7517
  cssText = this._insertPolyfillDirectivesInCssText(cssText);
@@ -7692,7 +7752,7 @@ class ShadowCss {
7692
7752
  return cssText.replace(_cssColonHostRe, (_, hostSelectors, otherSelectors) => {
7693
7753
  if (hostSelectors) {
7694
7754
  const convertedSelectors = [];
7695
- const hostSelectorArray = hostSelectors.split(',').map(p => p.trim());
7755
+ const hostSelectorArray = hostSelectors.split(',').map((p) => p.trim());
7696
7756
  for (const hostSelector of hostSelectorArray) {
7697
7757
  if (!hostSelector)
7698
7758
  break;
@@ -7722,7 +7782,7 @@ class ShadowCss {
7722
7782
  * .foo<scopeName> .bar { ... }
7723
7783
  */
7724
7784
  _convertColonHostContext(cssText) {
7725
- return cssText.replace(_cssColonHostContextReGlobal, selectorText => {
7785
+ return cssText.replace(_cssColonHostContextReGlobal, (selectorText) => {
7726
7786
  // We have captured a selector that contains a `:host-context` rule.
7727
7787
  // For backward compatibility `:host-context` may contain a comma separated list of selectors.
7728
7788
  // Each context selector group will contain a list of host-context selectors that must match
@@ -7734,10 +7794,10 @@ class ShadowCss {
7734
7794
  // Execute `_cssColonHostContextRe` over and over until we have extracted all the
7735
7795
  // `:host-context` selectors from this selector.
7736
7796
  let match;
7737
- while (match = _cssColonHostContextRe.exec(selectorText)) {
7797
+ while ((match = _cssColonHostContextRe.exec(selectorText))) {
7738
7798
  // `match` = [':host-context(<selectors>)<rest>', <selectors>, <rest>]
7739
7799
  // The `<selectors>` could actually be a comma separated list: `:host-context(.one, .two)`.
7740
- const newContextSelectors = (match[1] ?? '').trim().split(',').map(m => m.trim()).filter(m => m !== '');
7800
+ const newContextSelectors = (match[1] ?? '').trim().split(',').map((m) => m.trim()).filter((m) => m !== '');
7741
7801
  // We must duplicate the current selector group for each of these new selectors.
7742
7802
  // For example if the current groups are:
7743
7803
  // ```
@@ -7760,7 +7820,7 @@ class ShadowCss {
7760
7820
  repeatGroups(contextSelectorGroups, newContextSelectors.length);
7761
7821
  for (let i = 0; i < newContextSelectors.length; i++) {
7762
7822
  for (let j = 0; j < contextSelectorGroupsLength; j++) {
7763
- contextSelectorGroups[j + (i * contextSelectorGroupsLength)].push(newContextSelectors[i]);
7823
+ contextSelectorGroups[j + i * contextSelectorGroupsLength].push(newContextSelectors[i]);
7764
7824
  }
7765
7825
  }
7766
7826
  // Update the `selectorText` and see repeat to see if there are more `:host-context`s.
@@ -7770,7 +7830,7 @@ class ShadowCss {
7770
7830
  // selectors that `:host-context` can match. See `combineHostContextSelectors()` for more
7771
7831
  // info about how this is done.
7772
7832
  return contextSelectorGroups
7773
- .map(contextSelectors => combineHostContextSelectors(contextSelectors, selectorText))
7833
+ .map((contextSelectors) => combineHostContextSelectors(contextSelectors, selectorText))
7774
7834
  .join(', ');
7775
7835
  });
7776
7836
  }
@@ -7822,7 +7882,7 @@ class ShadowCss {
7822
7882
  * ```
7823
7883
  */
7824
7884
  _stripScopingSelectors(cssText) {
7825
- return processRules(cssText, rule => {
7885
+ return processRules(cssText, (rule) => {
7826
7886
  const selector = rule.selector.replace(_shadowDeepSelectors, ' ')
7827
7887
  .replace(_polyfillHostNoCombinatorRe, ' ');
7828
7888
  return new CssRule(selector, rule.content);
@@ -7830,7 +7890,7 @@ class ShadowCss {
7830
7890
  }
7831
7891
  _scopeSelector(selector, scopeSelector, hostSelector) {
7832
7892
  return selector.split(',')
7833
- .map(part => part.trim().split(_shadowDeepSelectors))
7893
+ .map((part) => part.trim().split(_shadowDeepSelectors))
7834
7894
  .map((deepParts) => {
7835
7895
  const [shallowPart, ...otherParts] = deepParts;
7836
7896
  const applyScope = (shallowPart) => {
@@ -8013,17 +8073,14 @@ const _selectorReSuffix = '([>\\s~+[.,{:][\\s\\S]*)?$';
8013
8073
  const _polyfillHostRe = /-shadowcsshost/gim;
8014
8074
  const _colonHostRe = /:host/gim;
8015
8075
  const _colonHostContextRe = /:host-context/gim;
8076
+ const _newLinesRe = /\r?\n/g;
8016
8077
  const _commentRe = /\/\*[\s\S]*?\*\//g;
8078
+ const _commentWithHashRe = /\/\*\s*#\s*source(Mapping)?URL=/g;
8079
+ const COMMENT_PLACEHOLDER = '%COMMENT%';
8080
+ const _commentWithHashPlaceHolderRe = new RegExp(COMMENT_PLACEHOLDER, 'g');
8017
8081
  const _placeholderRe = /__ph-(\d+)__/g;
8018
- function stripComments(input) {
8019
- return input.replace(_commentRe, '');
8020
- }
8021
- const _commentWithHashRe = /\/\*\s*#\s*source(Mapping)?URL=[\s\S]+?\*\//g;
8022
- function extractCommentsWithHash(input) {
8023
- return input.match(_commentWithHashRe) || [];
8024
- }
8025
8082
  const BLOCK_PLACEHOLDER = '%BLOCK%';
8026
- const _ruleRe = /(\s*)([^;\{\}]+?)(\s*)((?:{%BLOCK%}?\s*;?)|(?:\s*;))/g;
8083
+ const _ruleRe = new RegExp(`(\\s*(?:${COMMENT_PLACEHOLDER}\\s*)*)([^;\\{\\}]+?)(\\s*)((?:{%BLOCK%}?\\s*;?)|(?:\\s*;))`, 'g');
8027
8084
  const CONTENT_PAIRS = new Map([['{', '}']]);
8028
8085
  const COMMA_IN_PLACEHOLDER = '%COMMA_IN_PLACEHOLDER%';
8029
8086
  const SEMI_IN_PLACEHOLDER = '%SEMI_IN_PLACEHOLDER%';
@@ -8232,7 +8289,6 @@ function unescapeQuotes(str, isQuoted) {
8232
8289
  *
8233
8290
  * And so on...
8234
8291
  *
8235
- * @param hostMarker the string that selects the host element.
8236
8292
  * @param contextSelectors an array of context selectors that will be combined.
8237
8293
  * @param otherSelectors the rest of the selectors that are not context selectors.
8238
8294
  */
@@ -8388,26 +8444,46 @@ var OpKind;
8388
8444
  * An operation to end rendering of an element previously started with `ElementStart`.
8389
8445
  */
8390
8446
  OpKind[OpKind["ElementEnd"] = 6] = "ElementEnd";
8447
+ /**
8448
+ * An operation to begin an `ng-container`.
8449
+ */
8450
+ OpKind[OpKind["ContainerStart"] = 7] = "ContainerStart";
8451
+ /**
8452
+ * An operation for an `ng-container` with no children.
8453
+ */
8454
+ OpKind[OpKind["Container"] = 8] = "Container";
8455
+ /**
8456
+ * An operation to end an `ng-container`.
8457
+ */
8458
+ OpKind[OpKind["ContainerEnd"] = 9] = "ContainerEnd";
8391
8459
  /**
8392
8460
  * An operation to render a text node.
8393
8461
  */
8394
- OpKind[OpKind["Text"] = 7] = "Text";
8462
+ OpKind[OpKind["Text"] = 10] = "Text";
8395
8463
  /**
8396
8464
  * An operation declaring an event listener for an element.
8397
8465
  */
8398
- OpKind[OpKind["Listener"] = 8] = "Listener";
8466
+ OpKind[OpKind["Listener"] = 11] = "Listener";
8399
8467
  /**
8400
8468
  * An operation to interpolate text into a text node.
8401
8469
  */
8402
- OpKind[OpKind["InterpolateText"] = 9] = "InterpolateText";
8470
+ OpKind[OpKind["InterpolateText"] = 12] = "InterpolateText";
8403
8471
  /**
8404
8472
  * An operation to bind an expression to a property of an element.
8405
8473
  */
8406
- OpKind[OpKind["Property"] = 10] = "Property";
8474
+ OpKind[OpKind["Property"] = 13] = "Property";
8475
+ /**
8476
+ * An operation to interpolate text into a property binding.
8477
+ */
8478
+ OpKind[OpKind["InterpolateProperty"] = 14] = "InterpolateProperty";
8407
8479
  /**
8408
8480
  * An operation to advance the runtime's implicit slot context during the update phase of a view.
8409
8481
  */
8410
- OpKind[OpKind["Advance"] = 11] = "Advance";
8482
+ OpKind[OpKind["Advance"] = 15] = "Advance";
8483
+ /**
8484
+ * An operation to instantiate a pipe.
8485
+ */
8486
+ OpKind[OpKind["Pipe"] = 16] = "Pipe";
8411
8487
  })(OpKind || (OpKind = {}));
8412
8488
  /**
8413
8489
  * Distinguishes different kinds of IR expressions.
@@ -8446,6 +8522,22 @@ var ExpressionKind;
8446
8522
  * Runtime operation to reset the current view context after `RestoreView`.
8447
8523
  */
8448
8524
  ExpressionKind[ExpressionKind["ResetView"] = 7] = "ResetView";
8525
+ /**
8526
+ * Defines and calls a function with change-detected arguments.
8527
+ */
8528
+ ExpressionKind[ExpressionKind["PureFunctionExpr"] = 8] = "PureFunctionExpr";
8529
+ /**
8530
+ * Indicates a positional parameter to a pure function definition.
8531
+ */
8532
+ ExpressionKind[ExpressionKind["PureFunctionParameterExpr"] = 9] = "PureFunctionParameterExpr";
8533
+ /**
8534
+ * Binding to a pipe transformation.
8535
+ */
8536
+ ExpressionKind[ExpressionKind["PipeBinding"] = 10] = "PipeBinding";
8537
+ /**
8538
+ * Binding to a pipe transformation with a variable number of arguments.
8539
+ */
8540
+ ExpressionKind[ExpressionKind["PipeBindingVariadic"] = 11] = "PipeBindingVariadic";
8449
8541
  })(ExpressionKind || (ExpressionKind = {}));
8450
8542
  /**
8451
8543
  * Distinguishes between different kinds of `SemanticVariable`s.
@@ -8652,10 +8744,12 @@ class OpList {
8652
8744
  * Insert `op` before `before`.
8653
8745
  */
8654
8746
  static insertBefore(op, before) {
8655
- OpList.assertIsNotEnd(before);
8747
+ OpList.assertIsOwned(before);
8748
+ if (before.prev === null) {
8749
+ throw new Error(`AssertionError: illegal operation on list start`);
8750
+ }
8656
8751
  OpList.assertIsNotEnd(op);
8657
8752
  OpList.assertIsUnowned(op);
8658
- OpList.assertIsOwned(before);
8659
8753
  op.debugListId = before.debugListId;
8660
8754
  // Just in case.
8661
8755
  op.prev = null;
@@ -8693,6 +8787,17 @@ class OpList {
8693
8787
  }
8694
8788
  }
8695
8789
  }
8790
+
8791
+ new Map([
8792
+ [OpKind.ElementEnd, [OpKind.ElementStart, OpKind.Element]],
8793
+ [OpKind.ContainerEnd, [OpKind.ContainerStart, OpKind.Container]],
8794
+ ]);
8795
+ [
8796
+ Identifiers.pipeBind1,
8797
+ Identifiers.pipeBind2,
8798
+ Identifiers.pipeBind3,
8799
+ Identifiers.pipeBind4,
8800
+ ];
8696
8801
  /**
8697
8802
  * `InterpolationConfig` for the `textInterpolate` instruction.
8698
8803
  */
@@ -8709,6 +8814,50 @@ class OpList {
8709
8814
  Identifiers.textInterpolate8,
8710
8815
  ],
8711
8816
  variable: Identifiers.textInterpolateV,
8817
+ mapping: n => {
8818
+ if (n % 2 === 0) {
8819
+ throw new Error(`Expected odd number of arguments`);
8820
+ }
8821
+ return (n - 1) / 2;
8822
+ },
8823
+ });
8824
+ /**
8825
+ * `InterpolationConfig` for the `propertyInterpolate` instruction.
8826
+ */
8827
+ ({
8828
+ constant: [
8829
+ Identifiers.propertyInterpolate,
8830
+ Identifiers.propertyInterpolate1,
8831
+ Identifiers.propertyInterpolate2,
8832
+ Identifiers.propertyInterpolate3,
8833
+ Identifiers.propertyInterpolate4,
8834
+ Identifiers.propertyInterpolate5,
8835
+ Identifiers.propertyInterpolate6,
8836
+ Identifiers.propertyInterpolate7,
8837
+ Identifiers.propertyInterpolate8,
8838
+ ],
8839
+ variable: Identifiers.propertyInterpolateV,
8840
+ mapping: n => {
8841
+ if (n % 2 === 0) {
8842
+ throw new Error(`Expected odd number of arguments`);
8843
+ }
8844
+ return (n - 1) / 2;
8845
+ },
8846
+ });
8847
+ ({
8848
+ constant: [
8849
+ Identifiers.pureFunction0,
8850
+ Identifiers.pureFunction1,
8851
+ Identifiers.pureFunction2,
8852
+ Identifiers.pureFunction3,
8853
+ Identifiers.pureFunction4,
8854
+ Identifiers.pureFunction5,
8855
+ Identifiers.pureFunction6,
8856
+ Identifiers.pureFunction7,
8857
+ Identifiers.pureFunction8,
8858
+ ],
8859
+ variable: Identifiers.pureFunctionV,
8860
+ mapping: n => n,
8712
8861
  });
8713
8862
  /**
8714
8863
  * A [fence](https://en.wikipedia.org/wiki/Memory_barrier) flag for an expression which indicates
@@ -8748,6 +8897,29 @@ new Set([
8748
8897
  Identifiers.elementStart,
8749
8898
  Identifiers.elementEnd,
8750
8899
  Identifiers.property,
8900
+ Identifiers.elementContainerStart,
8901
+ Identifiers.elementContainerEnd,
8902
+ Identifiers.elementContainer,
8903
+ ]);
8904
+
8905
+ new Map([
8906
+ ['&&', exports.BinaryOperator.And],
8907
+ ['>', exports.BinaryOperator.Bigger],
8908
+ ['>=', exports.BinaryOperator.BiggerEquals],
8909
+ ['&', exports.BinaryOperator.BitwiseAnd],
8910
+ ['/', exports.BinaryOperator.Divide],
8911
+ ['==', exports.BinaryOperator.Equals],
8912
+ ['===', exports.BinaryOperator.Identical],
8913
+ ['<', exports.BinaryOperator.Lower],
8914
+ ['<=', exports.BinaryOperator.LowerEquals],
8915
+ ['-', exports.BinaryOperator.Minus],
8916
+ ['%', exports.BinaryOperator.Modulo],
8917
+ ['*', exports.BinaryOperator.Multiply],
8918
+ ['!=', exports.BinaryOperator.NotEquals],
8919
+ ['!==', exports.BinaryOperator.NotIdentical],
8920
+ ['??', exports.BinaryOperator.NullishCoalesce],
8921
+ ['||', exports.BinaryOperator.Or],
8922
+ ['+', exports.BinaryOperator.Plus],
8751
8923
  ]);
8752
8924
 
8753
8925
  /**
@@ -18968,6 +19140,9 @@ function baseDirectiveFields(meta, constantPool, bindingParser) {
18968
19140
  if (meta.isStandalone) {
18969
19141
  definitionMap.set('standalone', literal(true));
18970
19142
  }
19143
+ if (meta.isSignal) {
19144
+ definitionMap.set('signals', literal(true));
19145
+ }
18971
19146
  return definitionMap;
18972
19147
  }
18973
19148
  /**
@@ -18978,6 +19153,7 @@ function addFeatures(definitionMap, meta) {
18978
19153
  const features = [];
18979
19154
  const providers = meta.providers;
18980
19155
  const viewProviders = meta.viewProviders;
19156
+ const inputKeys = Object.keys(meta.inputs);
18981
19157
  if (providers || viewProviders) {
18982
19158
  const args = [providers || new LiteralArrayExpr([])];
18983
19159
  if (viewProviders) {
@@ -18985,6 +19161,12 @@ function addFeatures(definitionMap, meta) {
18985
19161
  }
18986
19162
  features.push(importExpr(Identifiers.ProvidersFeature).callFn(args));
18987
19163
  }
19164
+ for (const key of inputKeys) {
19165
+ if (meta.inputs[key].transformFunction !== null) {
19166
+ features.push(importExpr(Identifiers.InputTransformsFeatureFeature));
19167
+ break;
19168
+ }
19169
+ }
18988
19170
  if (meta.usesInheritance) {
18989
19171
  features.push(importExpr(Identifiers.InheritDefinitionFeature));
18990
19172
  }
@@ -19123,6 +19305,12 @@ function createComponentType(meta) {
19123
19305
  typeParams.push(stringArrayAsType(meta.template.ngContentSelectors));
19124
19306
  typeParams.push(expressionType(literal(meta.isStandalone)));
19125
19307
  typeParams.push(createHostDirectivesType(meta));
19308
+ // TODO(signals): Always include this metadata starting with v17. Right
19309
+ // now Angular v16.0.x does not support this field and library distributions
19310
+ // would then be incompatible with v16.0.x framework users.
19311
+ if (meta.isSignal) {
19312
+ typeParams.push(expressionType(literal(meta.isSignal)));
19313
+ }
19126
19314
  return expressionType(importExpr(Identifiers.ComponentDeclaration, typeParams));
19127
19315
  }
19128
19316
  /**
@@ -19250,6 +19438,12 @@ function createDirectiveType(meta) {
19250
19438
  typeParams.push(NONE_TYPE);
19251
19439
  typeParams.push(expressionType(literal(meta.isStandalone)));
19252
19440
  typeParams.push(createHostDirectivesType(meta));
19441
+ // TODO(signals): Always include this metadata starting with v17. Right
19442
+ // now Angular v16.0.x does not support this field and library distributions
19443
+ // would then be incompatible with v16.0.x framework users.
19444
+ if (meta.isSignal) {
19445
+ typeParams.push(expressionType(literal(meta.isSignal)));
19446
+ }
19253
19447
  return expressionType(importExpr(Identifiers.DirectiveDeclaration, typeParams));
19254
19448
  }
19255
19449
  // Define and update any view queries
@@ -19714,6 +19908,7 @@ class CompilerFacadeImpl {
19714
19908
  }
19715
19909
  compileNgModule(angularCoreEnv, sourceMapUrl, facade) {
19716
19910
  const meta = {
19911
+ kind: exports.R3NgModuleMetadataKind.Global,
19717
19912
  type: wrapReference(facade.type),
19718
19913
  bootstrap: facade.bootstrap.map(wrapReference),
19719
19914
  declarations: facade.declarations.map(wrapReference),
@@ -19868,7 +20063,8 @@ function convertDirectiveFacadeToMetadata(facade) {
19868
20063
  inputsFromType[field] = {
19869
20064
  bindingPropertyName: ann.alias || field,
19870
20065
  classPropertyName: field,
19871
- required: ann.required || false
20066
+ required: ann.required || false,
20067
+ transformFunction: ann.transform != null ? new WrappedNodeExpr(ann.transform) : null,
19872
20068
  };
19873
20069
  }
19874
20070
  else if (isOutput(ann)) {
@@ -19913,6 +20109,7 @@ function convertDeclareDirectiveFacadeToMetadata(declaration, typeSourceSpan) {
19913
20109
  typeArgumentCount: 0,
19914
20110
  fullInheritance: false,
19915
20111
  isStandalone: declaration.isStandalone ?? false,
20112
+ isSignal: declaration.isSignal ?? false,
19916
20113
  hostDirectives: convertHostDirectivesToMetadata(declaration),
19917
20114
  };
19918
20115
  }
@@ -20136,9 +20333,22 @@ function isOutput(value) {
20136
20333
  function inputsMappingToInputMetadata(inputs) {
20137
20334
  return Object.keys(inputs).reduce((result, key) => {
20138
20335
  const value = inputs[key];
20139
- result[key] = typeof value === 'string' ?
20140
- { bindingPropertyName: value, classPropertyName: value, required: false } :
20141
- { bindingPropertyName: value[0], classPropertyName: value[1], required: false };
20336
+ if (typeof value === 'string') {
20337
+ result[key] = {
20338
+ bindingPropertyName: value,
20339
+ classPropertyName: value,
20340
+ transformFunction: null,
20341
+ required: false,
20342
+ };
20343
+ }
20344
+ else {
20345
+ result[key] = {
20346
+ bindingPropertyName: value[0],
20347
+ classPropertyName: value[1],
20348
+ transformFunction: value[2] ? new WrappedNodeExpr(value[2]) : null,
20349
+ required: false,
20350
+ };
20351
+ }
20142
20352
  return result;
20143
20353
  }, {});
20144
20354
  }
@@ -20146,13 +20356,19 @@ function parseInputsArray(values) {
20146
20356
  return values.reduce((results, value) => {
20147
20357
  if (typeof value === 'string') {
20148
20358
  const [bindingPropertyName, classPropertyName] = parseMappingString(value);
20149
- results[classPropertyName] = { bindingPropertyName, classPropertyName, required: false };
20359
+ results[classPropertyName] = {
20360
+ bindingPropertyName,
20361
+ classPropertyName,
20362
+ required: false,
20363
+ transformFunction: null,
20364
+ };
20150
20365
  }
20151
20366
  else {
20152
20367
  results[value.name] = {
20153
20368
  bindingPropertyName: value.alias || value.name,
20154
20369
  classPropertyName: value.name,
20155
- required: value.required || false
20370
+ required: value.required || false,
20371
+ transformFunction: value.transform != null ? new WrappedNodeExpr(value.transform) : null,
20156
20372
  };
20157
20373
  }
20158
20374
  return results;
@@ -20204,7 +20420,7 @@ function publishFacade(global) {
20204
20420
  * @description
20205
20421
  * Entry point for all public APIs of the compiler package.
20206
20422
  */
20207
- const VERSION = new Version('16.0.3');
20423
+ const VERSION = new Version('16.1.4');
20208
20424
 
20209
20425
  class CompilerConfig {
20210
20426
  constructor({ defaultEncapsulation = exports.ViewEncapsulation.Emulated, useJit = true, missingTranslation = null, preserveWhitespaces, strictInjectionParameters } = {}) {
@@ -22132,7 +22348,7 @@ const MINIMUM_PARTIAL_LINKER_VERSION$6 = '12.0.0';
22132
22348
  function compileDeclareClassMetadata(metadata) {
22133
22349
  const definitionMap = new DefinitionMap();
22134
22350
  definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$6));
22135
- definitionMap.set('version', literal('16.0.3'));
22351
+ definitionMap.set('version', literal('16.1.4'));
22136
22352
  definitionMap.set('ngImport', importExpr(Identifiers.core));
22137
22353
  definitionMap.set('type', metadata.type);
22138
22354
  definitionMap.set('decorators', metadata.decorators);
@@ -22235,12 +22451,15 @@ function compileDeclareDirectiveFromMetadata(meta) {
22235
22451
  function createDirectiveDefinitionMap(meta) {
22236
22452
  const definitionMap = new DefinitionMap();
22237
22453
  definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$5));
22238
- definitionMap.set('version', literal('16.0.3'));
22454
+ definitionMap.set('version', literal('16.1.4'));
22239
22455
  // e.g. `type: MyDirective`
22240
22456
  definitionMap.set('type', meta.type.value);
22241
22457
  if (meta.isStandalone) {
22242
22458
  definitionMap.set('isStandalone', literal(meta.isStandalone));
22243
22459
  }
22460
+ if (meta.isSignal) {
22461
+ definitionMap.set('isSignal', literal(meta.isSignal));
22462
+ }
22244
22463
  // e.g. `selector: 'some-dir'`
22245
22464
  if (meta.selector !== null) {
22246
22465
  definitionMap.set('selector', literal(meta.selector));
@@ -22457,7 +22676,7 @@ const MINIMUM_PARTIAL_LINKER_VERSION$4 = '12.0.0';
22457
22676
  function compileDeclareFactoryFunction(meta) {
22458
22677
  const definitionMap = new DefinitionMap();
22459
22678
  definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$4));
22460
- definitionMap.set('version', literal('16.0.3'));
22679
+ definitionMap.set('version', literal('16.1.4'));
22461
22680
  definitionMap.set('ngImport', importExpr(Identifiers.core));
22462
22681
  definitionMap.set('type', meta.type.value);
22463
22682
  definitionMap.set('deps', compileDependencies(meta.deps));
@@ -22492,7 +22711,7 @@ function compileDeclareInjectableFromMetadata(meta) {
22492
22711
  function createInjectableDefinitionMap(meta) {
22493
22712
  const definitionMap = new DefinitionMap();
22494
22713
  definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$3));
22495
- definitionMap.set('version', literal('16.0.3'));
22714
+ definitionMap.set('version', literal('16.1.4'));
22496
22715
  definitionMap.set('ngImport', importExpr(Identifiers.core));
22497
22716
  definitionMap.set('type', meta.type.value);
22498
22717
  // Only generate providedIn property if it has a non-null value
@@ -22543,7 +22762,7 @@ function compileDeclareInjectorFromMetadata(meta) {
22543
22762
  function createInjectorDefinitionMap(meta) {
22544
22763
  const definitionMap = new DefinitionMap();
22545
22764
  definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$2));
22546
- definitionMap.set('version', literal('16.0.3'));
22765
+ definitionMap.set('version', literal('16.1.4'));
22547
22766
  definitionMap.set('ngImport', importExpr(Identifiers.core));
22548
22767
  definitionMap.set('type', meta.type.value);
22549
22768
  definitionMap.set('providers', meta.providers);
@@ -22572,8 +22791,11 @@ function compileDeclareNgModuleFromMetadata(meta) {
22572
22791
  */
22573
22792
  function createNgModuleDefinitionMap(meta) {
22574
22793
  const definitionMap = new DefinitionMap();
22794
+ if (meta.kind === exports.R3NgModuleMetadataKind.Local) {
22795
+ throw new Error('Invalid path! Local compilation mode should not get into the partial compilation path');
22796
+ }
22575
22797
  definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$1));
22576
- definitionMap.set('version', literal('16.0.3'));
22798
+ definitionMap.set('version', literal('16.1.4'));
22577
22799
  definitionMap.set('ngImport', importExpr(Identifiers.core));
22578
22800
  definitionMap.set('type', meta.type.value);
22579
22801
  // We only generate the keys in the metadata if the arrays contain values.
@@ -22624,7 +22846,7 @@ function compileDeclarePipeFromMetadata(meta) {
22624
22846
  function createPipeDefinitionMap(meta) {
22625
22847
  const definitionMap = new DefinitionMap();
22626
22848
  definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION));
22627
- definitionMap.set('version', literal('16.0.3'));
22849
+ definitionMap.set('version', literal('16.1.4'));
22628
22850
  definitionMap.set('ngImport', importExpr(Identifiers.core));
22629
22851
  // e.g. `type: MyPipe`
22630
22852
  definitionMap.set('type', meta.type.value);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@angular-eslint/bundled-angular-compiler",
3
- "version": "16.0.4-alpha.9+6d26c59",
3
+ "version": "16.1.0",
4
4
  "description": "A CJS bundled version of @angular/compiler",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
@@ -15,5 +15,5 @@
15
15
  "package.json",
16
16
  "README.md"
17
17
  ],
18
- "gitHead": "6d26c590e4b15e0b28a6ff7467560537e2b9b92d"
18
+ "gitHead": "dce6381cafcbe2de109d0a53b4c9c3e3bf1ae569"
19
19
  }