@angular/compiler 20.0.0 → 20.0.1

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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v20.0.0
2
+ * @license Angular v20.0.1
3
3
  * (c) 2010-2025 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -19411,8 +19411,13 @@ class _ParseAST {
19411
19411
  if (this.consumeOptionalCharacter($LPAREN)) {
19412
19412
  this.rparensExpected++;
19413
19413
  const result = this.parsePipe();
19414
+ if (!this.consumeOptionalCharacter($RPAREN)) {
19415
+ this.error('Missing closing parentheses');
19416
+ // Calling into `error` above will attempt to recover up until the next closing paren.
19417
+ // If that's the case, consume it so we can partially recover the expression.
19418
+ this.consumeOptionalCharacter($RPAREN);
19419
+ }
19414
19420
  this.rparensExpected--;
19415
- this.expectCharacter($RPAREN);
19416
19421
  return new ParenthesizedExpression(this.span(start), this.sourceSpan(start), result);
19417
19422
  }
19418
19423
  else if (this.next.isKeywordNull()) {
@@ -23776,10 +23781,9 @@ function reifyCreateOperations(unit, ops) {
23776
23781
  args = [];
23777
23782
  }
23778
23783
  else {
23779
- if (op.trigger.targetSlot?.slot == null || op.trigger.targetSlotViewSteps === null) {
23780
- throw new Error(`Slot or view steps not set in trigger reification for trigger kind ${op.trigger.kind}`);
23781
- }
23782
- args = [op.trigger.targetSlot.slot];
23784
+ // The slots not being defined at this point is invalid, however we
23785
+ // catch it during type checking. Pass in null in such cases.
23786
+ args = [op.trigger.targetSlot?.slot ?? null];
23783
23787
  if (op.trigger.targetSlotViewSteps !== 0) {
23784
23788
  args.push(op.trigger.targetSlotViewSteps);
23785
23789
  }
@@ -28514,7 +28518,7 @@ class OnTriggerParser {
28514
28518
  this.trackTrigger('timer', createTimerTrigger(parameters, nameSpan, sourceSpan, this.prefetchSpan, this.onSourceSpan, this.hydrateSpan));
28515
28519
  break;
28516
28520
  case OnTriggerType.INTERACTION:
28517
- this.trackTrigger('interaction', createInteractionTrigger(parameters, nameSpan, sourceSpan, this.prefetchSpan, this.onSourceSpan, this.hydrateSpan, this.placeholder, this.validator));
28521
+ this.trackTrigger('interaction', createInteractionTrigger(parameters, nameSpan, sourceSpan, this.prefetchSpan, this.onSourceSpan, this.hydrateSpan, this.validator));
28518
28522
  break;
28519
28523
  case OnTriggerType.IMMEDIATE:
28520
28524
  this.trackTrigger('immediate', createImmediateTrigger(parameters, nameSpan, sourceSpan, this.prefetchSpan, this.onSourceSpan, this.hydrateSpan));
@@ -28523,7 +28527,7 @@ class OnTriggerParser {
28523
28527
  this.trackTrigger('hover', createHoverTrigger(parameters, nameSpan, sourceSpan, this.prefetchSpan, this.onSourceSpan, this.hydrateSpan, this.placeholder, this.validator));
28524
28528
  break;
28525
28529
  case OnTriggerType.VIEWPORT:
28526
- this.trackTrigger('viewport', createViewportTrigger(parameters, nameSpan, sourceSpan, this.prefetchSpan, this.onSourceSpan, this.hydrateSpan, this.placeholder, this.validator));
28530
+ this.trackTrigger('viewport', createViewportTrigger(parameters, nameSpan, sourceSpan, this.prefetchSpan, this.onSourceSpan, this.hydrateSpan, this.validator));
28527
28531
  break;
28528
28532
  default:
28529
28533
  throw new Error(`Unrecognized trigger type "${identifier}"`);
@@ -28636,36 +28640,26 @@ function createImmediateTrigger(parameters, nameSpan, sourceSpan, prefetchSpan,
28636
28640
  return new ImmediateDeferredTrigger(nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan);
28637
28641
  }
28638
28642
  function createHoverTrigger(parameters, nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan, placeholder, validator) {
28639
- validator(OnTriggerType.HOVER, parameters, placeholder);
28643
+ validator(OnTriggerType.HOVER, parameters);
28640
28644
  return new HoverDeferredTrigger(parameters[0] ?? null, nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan);
28641
28645
  }
28642
- function createInteractionTrigger(parameters, nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan, placeholder, validator) {
28643
- validator(OnTriggerType.INTERACTION, parameters, placeholder);
28646
+ function createInteractionTrigger(parameters, nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan, validator) {
28647
+ validator(OnTriggerType.INTERACTION, parameters);
28644
28648
  return new InteractionDeferredTrigger(parameters[0] ?? null, nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan);
28645
28649
  }
28646
- function createViewportTrigger(parameters, nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan, placeholder, validator) {
28647
- validator(OnTriggerType.VIEWPORT, parameters, placeholder);
28650
+ function createViewportTrigger(parameters, nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan, validator) {
28651
+ validator(OnTriggerType.VIEWPORT, parameters);
28648
28652
  return new ViewportDeferredTrigger(parameters[0] ?? null, nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan);
28649
28653
  }
28650
28654
  /**
28651
28655
  * Checks whether the structure of a non-hydrate reference-based trigger is valid.
28652
28656
  * @param type Type of the trigger being validated.
28653
28657
  * @param parameters Parameters of the trigger.
28654
- * @param placeholder Placeholder of the defer block.
28655
28658
  */
28656
- function validatePlainReferenceBasedTrigger(type, parameters, placeholder) {
28659
+ function validatePlainReferenceBasedTrigger(type, parameters) {
28657
28660
  if (parameters.length > 1) {
28658
28661
  throw new Error(`"${type}" trigger can only have zero or one parameters`);
28659
28662
  }
28660
- if (parameters.length === 0) {
28661
- if (placeholder === null) {
28662
- throw new Error(`"${type}" trigger with no parameters can only be placed on an @defer that has a @placeholder block`);
28663
- }
28664
- if (placeholder.children.length !== 1 || !(placeholder.children[0] instanceof Element$1)) {
28665
- throw new Error(`"${type}" trigger with no parameters can only be placed on an @defer that has a ` +
28666
- `@placeholder block with exactly one root element node`);
28667
- }
28668
- }
28669
28663
  }
28670
28664
  /**
28671
28665
  * Checks whether the structure of a hydrate trigger is valid.
@@ -31102,7 +31096,7 @@ class R3BoundTarget {
31102
31096
  }
31103
31097
  const name = trigger.reference;
31104
31098
  if (name === null) {
31105
- let trigger = null;
31099
+ let target = null;
31106
31100
  if (block.placeholder !== null) {
31107
31101
  for (const child of block.placeholder.children) {
31108
31102
  // Skip over comment nodes. Currently by default the template parser doesn't capture
@@ -31112,15 +31106,15 @@ class R3BoundTarget {
31112
31106
  }
31113
31107
  // We can only infer the trigger if there's one root element node. Any other
31114
31108
  // nodes at the root make it so that we can't infer the trigger anymore.
31115
- if (trigger !== null) {
31109
+ if (target !== null) {
31116
31110
  return null;
31117
31111
  }
31118
31112
  if (child instanceof Element$1) {
31119
- trigger = child;
31113
+ target = child;
31120
31114
  }
31121
31115
  }
31122
31116
  }
31123
- return trigger;
31117
+ return target;
31124
31118
  }
31125
31119
  const outsideRef = this.findEntityInScope(block, name);
31126
31120
  // First try to resolve the target in the scope of the main deferred block. Note that we
@@ -33653,7 +33647,7 @@ const MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION = '18.0.0';
33653
33647
  function compileDeclareClassMetadata(metadata) {
33654
33648
  const definitionMap = new DefinitionMap();
33655
33649
  definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$5));
33656
- definitionMap.set('version', literal('20.0.0'));
33650
+ definitionMap.set('version', literal('20.0.1'));
33657
33651
  definitionMap.set('ngImport', importExpr(Identifiers.core));
33658
33652
  definitionMap.set('type', metadata.type);
33659
33653
  definitionMap.set('decorators', metadata.decorators);
@@ -33671,7 +33665,7 @@ function compileComponentDeclareClassMetadata(metadata, dependencies) {
33671
33665
  callbackReturnDefinitionMap.set('ctorParameters', metadata.ctorParameters ?? literal(null));
33672
33666
  callbackReturnDefinitionMap.set('propDecorators', metadata.propDecorators ?? literal(null));
33673
33667
  definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION));
33674
- definitionMap.set('version', literal('20.0.0'));
33668
+ definitionMap.set('version', literal('20.0.1'));
33675
33669
  definitionMap.set('ngImport', importExpr(Identifiers.core));
33676
33670
  definitionMap.set('type', metadata.type);
33677
33671
  definitionMap.set('resolveDeferredDeps', compileComponentMetadataAsyncResolver(dependencies));
@@ -33766,7 +33760,7 @@ function createDirectiveDefinitionMap(meta) {
33766
33760
  const definitionMap = new DefinitionMap();
33767
33761
  const minVersion = getMinimumVersionForPartialOutput(meta);
33768
33762
  definitionMap.set('minVersion', literal(minVersion));
33769
- definitionMap.set('version', literal('20.0.0'));
33763
+ definitionMap.set('version', literal('20.0.1'));
33770
33764
  // e.g. `type: MyDirective`
33771
33765
  definitionMap.set('type', meta.type.value);
33772
33766
  if (meta.isStandalone !== undefined) {
@@ -34182,7 +34176,7 @@ const MINIMUM_PARTIAL_LINKER_VERSION$4 = '12.0.0';
34182
34176
  function compileDeclareFactoryFunction(meta) {
34183
34177
  const definitionMap = new DefinitionMap();
34184
34178
  definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$4));
34185
- definitionMap.set('version', literal('20.0.0'));
34179
+ definitionMap.set('version', literal('20.0.1'));
34186
34180
  definitionMap.set('ngImport', importExpr(Identifiers.core));
34187
34181
  definitionMap.set('type', meta.type.value);
34188
34182
  definitionMap.set('deps', compileDependencies(meta.deps));
@@ -34217,7 +34211,7 @@ function compileDeclareInjectableFromMetadata(meta) {
34217
34211
  function createInjectableDefinitionMap(meta) {
34218
34212
  const definitionMap = new DefinitionMap();
34219
34213
  definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$3));
34220
- definitionMap.set('version', literal('20.0.0'));
34214
+ definitionMap.set('version', literal('20.0.1'));
34221
34215
  definitionMap.set('ngImport', importExpr(Identifiers.core));
34222
34216
  definitionMap.set('type', meta.type.value);
34223
34217
  // Only generate providedIn property if it has a non-null value
@@ -34268,7 +34262,7 @@ function compileDeclareInjectorFromMetadata(meta) {
34268
34262
  function createInjectorDefinitionMap(meta) {
34269
34263
  const definitionMap = new DefinitionMap();
34270
34264
  definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$2));
34271
- definitionMap.set('version', literal('20.0.0'));
34265
+ definitionMap.set('version', literal('20.0.1'));
34272
34266
  definitionMap.set('ngImport', importExpr(Identifiers.core));
34273
34267
  definitionMap.set('type', meta.type.value);
34274
34268
  definitionMap.set('providers', meta.providers);
@@ -34301,7 +34295,7 @@ function createNgModuleDefinitionMap(meta) {
34301
34295
  throw new Error('Invalid path! Local compilation mode should not get into the partial compilation path');
34302
34296
  }
34303
34297
  definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$1));
34304
- definitionMap.set('version', literal('20.0.0'));
34298
+ definitionMap.set('version', literal('20.0.1'));
34305
34299
  definitionMap.set('ngImport', importExpr(Identifiers.core));
34306
34300
  definitionMap.set('type', meta.type.value);
34307
34301
  // We only generate the keys in the metadata if the arrays contain values.
@@ -34352,7 +34346,7 @@ function compileDeclarePipeFromMetadata(meta) {
34352
34346
  function createPipeDefinitionMap(meta) {
34353
34347
  const definitionMap = new DefinitionMap();
34354
34348
  definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION));
34355
- definitionMap.set('version', literal('20.0.0'));
34349
+ definitionMap.set('version', literal('20.0.1'));
34356
34350
  definitionMap.set('ngImport', importExpr(Identifiers.core));
34357
34351
  // e.g. `type: MyPipe`
34358
34352
  definitionMap.set('type', meta.type.value);
@@ -34508,7 +34502,7 @@ function compileHmrUpdateCallback(definitions, constantStatements, meta) {
34508
34502
  * @description
34509
34503
  * Entry point for all public APIs of the compiler package.
34510
34504
  */
34511
- const VERSION = new Version('20.0.0');
34505
+ const VERSION = new Version('20.0.1');
34512
34506
 
34513
34507
  //////////////////////////////////////
34514
34508
  // THIS FILE HAS GLOBAL SIDE EFFECT //