@angular/compiler 21.0.0-next.4 → 21.0.0-next.5

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 v21.0.0-next.4
2
+ * @license Angular v21.0.0-next.5
3
3
  * (c) 2010-2025 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -1237,6 +1237,27 @@ class InstantiateExpr extends Expression {
1237
1237
  return new InstantiateExpr(this.classExpr.clone(), this.args.map((arg) => arg.clone()), this.type, this.sourceSpan);
1238
1238
  }
1239
1239
  }
1240
+ let RegularExpressionLiteral$1 = class RegularExpressionLiteral extends Expression {
1241
+ body;
1242
+ flags;
1243
+ constructor(body, flags, sourceSpan) {
1244
+ super(null, sourceSpan);
1245
+ this.body = body;
1246
+ this.flags = flags;
1247
+ }
1248
+ isEquivalent(e) {
1249
+ return e instanceof RegularExpressionLiteral && this.body === e.body && this.flags === e.flags;
1250
+ }
1251
+ isConstant() {
1252
+ return true;
1253
+ }
1254
+ visitExpression(visitor, context) {
1255
+ return visitor.visitRegularExpressionLiteral(this, context);
1256
+ }
1257
+ clone() {
1258
+ return new RegularExpressionLiteral(this.body, this.flags, this.sourceSpan);
1259
+ }
1260
+ };
1240
1261
  class LiteralExpr extends Expression {
1241
1262
  value;
1242
1263
  constructor(value, type, sourceSpan) {
@@ -2030,6 +2051,9 @@ let RecursiveAstVisitor$1 = class RecursiveAstVisitor {
2030
2051
  visitLiteralExpr(ast, context) {
2031
2052
  return this.visitExpression(ast, context);
2032
2053
  }
2054
+ visitRegularExpressionLiteral(ast, context) {
2055
+ return this.visitExpression(ast, context);
2056
+ }
2033
2057
  visitLocalizedString(ast, context) {
2034
2058
  return this.visitExpression(ast, context);
2035
2059
  }
@@ -2290,6 +2314,7 @@ var output_ast = /*#__PURE__*/Object.freeze({
2290
2314
  ReadPropExpr: ReadPropExpr,
2291
2315
  ReadVarExpr: ReadVarExpr,
2292
2316
  RecursiveAstVisitor: RecursiveAstVisitor$1,
2317
+ RegularExpressionLiteral: RegularExpressionLiteral$1,
2293
2318
  ReturnStatement: ReturnStatement,
2294
2319
  STRING_TYPE: STRING_TYPE,
2295
2320
  Statement: Statement,
@@ -2565,6 +2590,9 @@ class GenericKeyFn {
2565
2590
  else if (expr instanceof LiteralExpr) {
2566
2591
  return String(expr.value);
2567
2592
  }
2593
+ else if (expr instanceof RegularExpressionLiteral$1) {
2594
+ return `/${expr.body}/${expr.flags ?? ''}`;
2595
+ }
2568
2596
  else if (expr instanceof LiteralArrayExpr) {
2569
2597
  const entries = [];
2570
2598
  for (const entry of expr.entries) {
@@ -3566,6 +3594,10 @@ class AbstractEmitterVisitor {
3566
3594
  }
3567
3595
  return null;
3568
3596
  }
3597
+ visitRegularExpressionLiteral(ast, ctx) {
3598
+ ctx.print(ast, `/${ast.body}/${ast.flags || ''}`);
3599
+ return null;
3600
+ }
3569
3601
  visitLocalizedString(ast, ctx) {
3570
3602
  const head = ast.serializeI18nHead();
3571
3603
  ctx.print(ast, '$localize `' + head.raw);
@@ -4374,6 +4406,18 @@ class ParenthesizedExpression extends AST {
4374
4406
  return visitor.visitParenthesizedExpression(this, context);
4375
4407
  }
4376
4408
  }
4409
+ class RegularExpressionLiteral extends AST {
4410
+ body;
4411
+ flags;
4412
+ constructor(span, sourceSpan, body, flags) {
4413
+ super(span, sourceSpan);
4414
+ this.body = body;
4415
+ this.flags = flags;
4416
+ }
4417
+ visit(visitor, context) {
4418
+ return visitor.visitRegularExpressionLiteral(this, context);
4419
+ }
4420
+ }
4377
4421
  /**
4378
4422
  * Records the absolute position of a text span in a source file, where `start` and `end` are the
4379
4423
  * starting and ending byte offsets, respectively, of the text span in a source file.
@@ -4534,6 +4578,7 @@ class RecursiveAstVisitor {
4534
4578
  visitParenthesizedExpression(ast, context) {
4535
4579
  this.visit(ast.expression, context);
4536
4580
  }
4581
+ visitRegularExpressionLiteral(ast, context) { }
4537
4582
  // This is not part of the AstVisitor interface, just a helper method
4538
4583
  visitAll(asts, context) {
4539
4584
  for (const ast of asts) {
@@ -10449,7 +10494,8 @@ function transformExpressionsInExpression(expr, transform, flags) {
10449
10494
  }
10450
10495
  else if (expr instanceof ReadVarExpr ||
10451
10496
  expr instanceof ExternalExpr ||
10452
- expr instanceof LiteralExpr) ;
10497
+ expr instanceof LiteralExpr ||
10498
+ expr instanceof RegularExpressionLiteral$1) ;
10453
10499
  else {
10454
10500
  throw new Error(`Unhandled expression kind: ${expr.constructor.name}`);
10455
10501
  }
@@ -11827,6 +11873,16 @@ function extractAttributeOp(unit, op, elements) {
11827
11873
  }
11828
11874
  }
11829
11875
 
11876
+ const ARIA_PREFIX = 'aria-';
11877
+ /**
11878
+ * Returns whether `name` is an ARIA attribute name.
11879
+ *
11880
+ * This is a heuristic based on whether name begins with and is longer than `aria-`.
11881
+ */
11882
+ function isAriaAttribute(name) {
11883
+ return name.startsWith(ARIA_PREFIX) && name.length > ARIA_PREFIX.length;
11884
+ }
11885
+
11830
11886
  /**
11831
11887
  * Looks up an element in the given map by xref ID.
11832
11888
  */
@@ -11872,7 +11928,15 @@ function specializeBindings(job) {
11872
11928
  break;
11873
11929
  case BindingKind.Property:
11874
11930
  case BindingKind.LegacyAnimation:
11875
- if (job.kind === CompilationJobKind.Host) {
11931
+ // Convert a property binding targeting an ARIA attribute (e.g. [aria-label]) into an
11932
+ // attribute binding when we know it can't also target an input. Note that a `Host` job is
11933
+ // always `DomOnly`, so this condition must be checked first.
11934
+ if (job.mode === TemplateCompilationMode.DomOnly && isAriaAttribute(op.name)) {
11935
+ OpList.replace(op, createAttributeOp(op.target,
11936
+ /* namespace= */ null, op.name, op.expression, op.securityContext,
11937
+ /* isTextAttribute= */ false, op.isStructuralTemplateAttribute, op.templateKind, op.i18nMessage, op.sourceSpan));
11938
+ }
11939
+ else if (job.kind === CompilationJobKind.Host) {
11876
11940
  OpList.replace(op, createDomPropertyOp(op.name, op.expression, op.bindingKind, op.i18nContext, op.securityContext, op.sourceSpan));
11877
11941
  }
11878
11942
  else {
@@ -18249,7 +18313,9 @@ var TokenType;
18249
18313
  TokenType[TokenType["String"] = 4] = "String";
18250
18314
  TokenType[TokenType["Operator"] = 5] = "Operator";
18251
18315
  TokenType[TokenType["Number"] = 6] = "Number";
18252
- TokenType[TokenType["Error"] = 7] = "Error";
18316
+ TokenType[TokenType["RegExpBody"] = 7] = "RegExpBody";
18317
+ TokenType[TokenType["RegExpFlags"] = 8] = "RegExpFlags";
18318
+ TokenType[TokenType["Error"] = 9] = "Error";
18253
18319
  })(TokenType || (TokenType = {}));
18254
18320
  var StringTokenKind;
18255
18321
  (function (StringTokenKind) {
@@ -18344,6 +18410,12 @@ class Token {
18344
18410
  isError() {
18345
18411
  return this.type === TokenType.Error;
18346
18412
  }
18413
+ isRegExpBody() {
18414
+ return this.type === TokenType.RegExpBody;
18415
+ }
18416
+ isRegExpFlags() {
18417
+ return this.type === TokenType.RegExpFlags;
18418
+ }
18347
18419
  toNumber() {
18348
18420
  return this.type === TokenType.Number ? this.numValue : -1;
18349
18421
  }
@@ -18370,6 +18442,8 @@ class Token {
18370
18442
  case TokenType.PrivateIdentifier:
18371
18443
  case TokenType.String:
18372
18444
  case TokenType.Error:
18445
+ case TokenType.RegExpBody:
18446
+ case TokenType.RegExpFlags:
18373
18447
  return this.strValue;
18374
18448
  case TokenType.Number:
18375
18449
  return this.numValue.toString();
@@ -18406,6 +18480,12 @@ function newNumberToken(index, end, n) {
18406
18480
  function newErrorToken(index, end, message) {
18407
18481
  return new Token(index, end, TokenType.Error, 0, message);
18408
18482
  }
18483
+ function newRegExpBodyToken(index, end, text) {
18484
+ return new Token(index, end, TokenType.RegExpBody, 0, text);
18485
+ }
18486
+ function newRegExpFlagsToken(index, end, text) {
18487
+ return new Token(index, end, TokenType.RegExpFlags, 0, text);
18488
+ }
18409
18489
  const EOF = new Token(-1, -1, TokenType.Character, 0, '');
18410
18490
  class _Scanner {
18411
18491
  input;
@@ -18489,7 +18569,9 @@ class _Scanner {
18489
18569
  case $MINUS:
18490
18570
  return this.scanComplexOperator(start, '-', $EQ, '=');
18491
18571
  case $SLASH:
18492
- return this.scanComplexOperator(start, '/', $EQ, '=');
18572
+ return this.isStartOfRegex()
18573
+ ? this.scanRegex(index)
18574
+ : this.scanComplexOperator(start, '/', $EQ, '=');
18493
18575
  case $PERCENT:
18494
18576
  return this.scanComplexOperator(start, '%', $EQ, '=');
18495
18577
  case $CARET:
@@ -18752,6 +18834,81 @@ class _Scanner {
18752
18834
  }
18753
18835
  return newOperatorToken(start, this.index, operator);
18754
18836
  }
18837
+ isStartOfRegex() {
18838
+ if (this.tokens.length === 0) {
18839
+ return true;
18840
+ }
18841
+ const prevToken = this.tokens[this.tokens.length - 1];
18842
+ // If a slash is preceded by a `!` operator, we need to distinguish whether it's a
18843
+ // negation or a non-null assertion. Regexes can only be precded by negations.
18844
+ if (prevToken.isOperator('!')) {
18845
+ const beforePrevToken = this.tokens.length > 1 ? this.tokens[this.tokens.length - 2] : null;
18846
+ const isNegation = beforePrevToken === null ||
18847
+ (beforePrevToken.type !== TokenType.Identifier &&
18848
+ !beforePrevToken.isCharacter($RPAREN) &&
18849
+ !beforePrevToken.isCharacter($RBRACKET));
18850
+ return isNegation;
18851
+ }
18852
+ // Only consider the slash a regex if it's preceded either by:
18853
+ // - Any operator, aside from `!` which is special-cased above.
18854
+ // - Opening paren (e.g. `(/a/)`).
18855
+ // - Opening bracket (e.g. `[/a/]`).
18856
+ // - A comma (e.g. `[1, /a/]`).
18857
+ // - A colon (e.g. `{foo: /a/}`).
18858
+ return (prevToken.type === TokenType.Operator ||
18859
+ prevToken.isCharacter($LPAREN) ||
18860
+ prevToken.isCharacter($LBRACKET) ||
18861
+ prevToken.isCharacter($COMMA) ||
18862
+ prevToken.isCharacter($COLON));
18863
+ }
18864
+ scanRegex(tokenStart) {
18865
+ this.advance();
18866
+ const textStart = this.index;
18867
+ let inEscape = false;
18868
+ let inCharacterClass = false;
18869
+ while (true) {
18870
+ const peek = this.peek;
18871
+ if (peek === $EOF) {
18872
+ return this.error('Unterminated regular expression', 0);
18873
+ }
18874
+ if (inEscape) {
18875
+ inEscape = false;
18876
+ }
18877
+ else if (peek === $BACKSLASH) {
18878
+ inEscape = true;
18879
+ }
18880
+ else if (peek === $LBRACKET) {
18881
+ inCharacterClass = true;
18882
+ }
18883
+ else if (peek === $RBRACKET) {
18884
+ inCharacterClass = false;
18885
+ }
18886
+ else if (peek === $SLASH && !inCharacterClass) {
18887
+ break;
18888
+ }
18889
+ this.advance();
18890
+ }
18891
+ // Note that we want the text without the slashes,
18892
+ // but we still want the slashes to be part of the span.
18893
+ const value = this.input.substring(textStart, this.index);
18894
+ this.advance();
18895
+ const bodyToken = newRegExpBodyToken(tokenStart, this.index, value);
18896
+ const flagsToken = this.scanRegexFlags(this.index);
18897
+ if (flagsToken !== null) {
18898
+ this.tokens.push(bodyToken);
18899
+ return flagsToken;
18900
+ }
18901
+ return bodyToken;
18902
+ }
18903
+ scanRegexFlags(start) {
18904
+ if (!isAsciiLetter(this.peek)) {
18905
+ return null;
18906
+ }
18907
+ while (isAsciiLetter(this.peek)) {
18908
+ this.advance();
18909
+ }
18910
+ return newRegExpFlagsToken(start, this.index, this.input.substring(start, this.index));
18911
+ }
18755
18912
  }
18756
18913
  function isIdentifierStart(code) {
18757
18914
  return (($a <= code && code <= $z) ||
@@ -19103,6 +19260,8 @@ var ParseContextFlags;
19103
19260
  */
19104
19261
  ParseContextFlags[ParseContextFlags["Writable"] = 1] = "Writable";
19105
19262
  })(ParseContextFlags || (ParseContextFlags = {}));
19263
+ /** Possible flags that can be used in a regex literal. */
19264
+ const SUPPORTED_REGEX_FLAGS = new Set(['d', 'g', 'i', 'm', 's', 'u', 'v', 'y']);
19106
19265
  class _ParseAST {
19107
19266
  input;
19108
19267
  parseSourceSpan;
@@ -19672,6 +19831,9 @@ class _ParseAST {
19672
19831
  this._reportErrorForPrivateIdentifier(this.next, null);
19673
19832
  return new EmptyExpr$1(this.span(start), this.sourceSpan(start));
19674
19833
  }
19834
+ else if (this.next.isRegExpBody()) {
19835
+ return this.parseRegularExpressionLiteral();
19836
+ }
19675
19837
  else if (this.index >= this.tokens.length) {
19676
19838
  this.error(`Unexpected end of expression: ${this.input}`);
19677
19839
  return new EmptyExpr$1(this.span(start), this.sourceSpan(start));
@@ -20041,6 +20203,35 @@ class _ParseAST {
20041
20203
  }
20042
20204
  return new TemplateLiteral(this.span(start), this.sourceSpan(start), elements, expressions);
20043
20205
  }
20206
+ parseRegularExpressionLiteral() {
20207
+ const bodyToken = this.next;
20208
+ this.advance();
20209
+ if (!bodyToken.isRegExpBody()) {
20210
+ return new EmptyExpr$1(this.span(this.inputIndex), this.sourceSpan(this.inputIndex));
20211
+ }
20212
+ let flagsToken = null;
20213
+ if (this.next.isRegExpFlags()) {
20214
+ flagsToken = this.next;
20215
+ this.advance();
20216
+ const seenFlags = new Set();
20217
+ for (let i = 0; i < flagsToken.strValue.length; i++) {
20218
+ const char = flagsToken.strValue[i];
20219
+ if (!SUPPORTED_REGEX_FLAGS.has(char)) {
20220
+ this.error(`Unsupported regular expression flag "${char}". The supported flags are: ` +
20221
+ Array.from(SUPPORTED_REGEX_FLAGS, (f) => `"${f}"`).join(', '), flagsToken.index + i);
20222
+ }
20223
+ else if (seenFlags.has(char)) {
20224
+ this.error(`Duplicate regular expression flag "${char}"`, flagsToken.index + i);
20225
+ }
20226
+ else {
20227
+ seenFlags.add(char);
20228
+ }
20229
+ }
20230
+ }
20231
+ const start = bodyToken.index;
20232
+ const end = flagsToken ? flagsToken.end : bodyToken.end;
20233
+ return new RegularExpressionLiteral(this.span(start, end), this.sourceSpan(start, end), bodyToken.strValue, flagsToken ? flagsToken.strValue : null);
20234
+ }
20044
20235
  /**
20045
20236
  * Consume the optional statement terminator: semicolon or comma.
20046
20237
  */
@@ -20254,6 +20445,9 @@ class SerializeExpressionVisitor {
20254
20445
  visitVoidExpression(ast, context) {
20255
20446
  return `void ${ast.expression.visit(this, context)}`;
20256
20447
  }
20448
+ visitRegularExpressionLiteral(ast, context) {
20449
+ return `/${ast.body}/${ast.flags || ''}`;
20450
+ }
20257
20451
  visitASTWithSource(ast, context) {
20258
20452
  return ast.ast.visit(this, context);
20259
20453
  }
@@ -23356,6 +23550,27 @@ function transformLiteralMap(expr) {
23356
23550
  return new PureFunctionExpr(literalMap(derivedEntries), nonConstantArgs);
23357
23551
  }
23358
23552
 
23553
+ /** Optimizes regular expressions used in expressions. */
23554
+ function optimizeRegularExpressions(job) {
23555
+ for (const view of job.units) {
23556
+ for (const op of view.ops()) {
23557
+ transformExpressionsInOp(op, (expr) => {
23558
+ if (expr instanceof RegularExpressionLiteral$1 &&
23559
+ // We can't optimize global regexes, because they're stateful.
23560
+ (expr.flags === null || !expr.flags.includes('g'))) {
23561
+ return job.pool.getSharedConstant(new RegularExpressionConstant(), expr);
23562
+ }
23563
+ return expr;
23564
+ }, VisitorContextFlag.None);
23565
+ }
23566
+ }
23567
+ }
23568
+ class RegularExpressionConstant extends GenericKeyFn {
23569
+ toSharedConstantDeclaration(declName, keyExpr) {
23570
+ return new DeclareVarStmt(declName, keyExpr, undefined, StmtModifier.Final);
23571
+ }
23572
+ }
23573
+
23359
23574
  // This file contains helpers for generating calls to Ivy instructions. In particular, each
23360
23575
  // instruction type is represented as a function, which may select a specific instruction variant
23361
23576
  // depending on the exact arguments.
@@ -23969,7 +24184,6 @@ function callVariadicInstruction(config, baseArgs, interpolationArgs, extraArgs,
23969
24184
  return createStatementOp(callVariadicInstructionExpr(config, baseArgs, interpolationArgs, extraArgs, sourceSpan).toStmt());
23970
24185
  }
23971
24186
 
23972
- const ARIA_PREFIX = 'aria';
23973
24187
  /**
23974
24188
  * Map of target resolvers for event listeners.
23975
24189
  */
@@ -24348,33 +24562,6 @@ function reifyUpdateOperations(unit, ops) {
24348
24562
  }
24349
24563
  }
24350
24564
  }
24351
- /**
24352
- * Converts an ARIA property name to its corresponding attribute name, if necessary.
24353
- *
24354
- * For example, converts `ariaLabel` to `aria-label`.
24355
- *
24356
- * https://www.w3.org/TR/wai-aria-1.2/#accessibilityroleandproperties-correspondence
24357
- *
24358
- * This must be kept in sync with the the function of the same name in
24359
- * packages/core/src/render3/instructions/aria_property.ts.
24360
- *
24361
- * @param name A property name that starts with `aria`.
24362
- * @returns The corresponding attribute name.
24363
- */
24364
- function ariaAttrName(name) {
24365
- return name.charAt(ARIA_PREFIX.length) !== '-'
24366
- ? ARIA_PREFIX + '-' + name.slice(ARIA_PREFIX.length).toLowerCase()
24367
- : name; // Property already has attribute name.
24368
- }
24369
- /**
24370
- * Returns whether `name` is an ARIA property (or attribute) name.
24371
- *
24372
- * This is a heuristic based on whether name begins with and is longer than `aria`. For example,
24373
- * this returns true for both `ariaLabel` and `aria-label`.
24374
- */
24375
- function isAriaProperty(name) {
24376
- return name.startsWith(ARIA_PREFIX) && name.length > ARIA_PREFIX.length;
24377
- }
24378
24565
  /**
24379
24566
  * Reifies a DOM property binding operation.
24380
24567
  *
@@ -24385,9 +24572,7 @@ function isAriaProperty(name) {
24385
24572
  * @returns A statement to update the property at runtime.
24386
24573
  */
24387
24574
  function reifyDomProperty(op) {
24388
- return isAriaProperty(op.name)
24389
- ? attribute(ariaAttrName(op.name), op.expression, null, null, op.sourceSpan)
24390
- : domProperty(DOM_PROPERTY_REMAPPING.get(op.name) ?? op.name, op.expression, op.sanitizer, op.sourceSpan);
24575
+ return domProperty(DOM_PROPERTY_REMAPPING.get(op.name) ?? op.name, op.expression, op.sanitizer, op.sourceSpan);
24391
24576
  }
24392
24577
  /**
24393
24578
  * Reifies a property binding operation.
@@ -24399,7 +24584,7 @@ function reifyDomProperty(op) {
24399
24584
  * @returns A statement to update the property at runtime.
24400
24585
  */
24401
24586
  function reifyProperty(op) {
24402
- return isAriaProperty(op.name)
24587
+ return isAriaAttribute(op.name)
24403
24588
  ? ariaProperty(op.name, op.expression, op.sourceSpan)
24404
24589
  : property(op.name, op.expression, op.sanitizer, op.sourceSpan);
24405
24590
  }
@@ -26447,6 +26632,7 @@ function wrapI18nIcus(job) {
26447
26632
  */
26448
26633
  const phases = [
26449
26634
  { kind: CompilationJobKind.Tmpl, fn: removeContentSelectors },
26635
+ { kind: CompilationJobKind.Both, fn: optimizeRegularExpressions },
26450
26636
  { kind: CompilationJobKind.Host, fn: parseHostStyleProperties },
26451
26637
  { kind: CompilationJobKind.Tmpl, fn: emitNamespaceChanges },
26452
26638
  { kind: CompilationJobKind.Tmpl, fn: propagateI18nBlocks },
@@ -27293,6 +27479,9 @@ function convertAst(ast, job, baseSourceSpan) {
27293
27479
  else if (ast instanceof ParenthesizedExpression) {
27294
27480
  return new ParenthesizedExpr(convertAst(ast.expression, job, baseSourceSpan), undefined, convertSourceSpan(ast.span, baseSourceSpan));
27295
27481
  }
27482
+ else if (ast instanceof RegularExpressionLiteral) {
27483
+ return new RegularExpressionLiteral$1(ast.body, ast.flags, baseSourceSpan);
27484
+ }
27296
27485
  else {
27297
27486
  throw new Error(`Unhandled expression type "${ast.constructor.name}" in file "${baseSourceSpan?.start.file.url}"`);
27298
27487
  }
@@ -34261,7 +34450,7 @@ const MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION = '18.0.0';
34261
34450
  function compileDeclareClassMetadata(metadata) {
34262
34451
  const definitionMap = new DefinitionMap();
34263
34452
  definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$5));
34264
- definitionMap.set('version', literal('21.0.0-next.4'));
34453
+ definitionMap.set('version', literal('21.0.0-next.5'));
34265
34454
  definitionMap.set('ngImport', importExpr(Identifiers.core));
34266
34455
  definitionMap.set('type', metadata.type);
34267
34456
  definitionMap.set('decorators', metadata.decorators);
@@ -34279,7 +34468,7 @@ function compileComponentDeclareClassMetadata(metadata, dependencies) {
34279
34468
  callbackReturnDefinitionMap.set('ctorParameters', metadata.ctorParameters ?? literal(null));
34280
34469
  callbackReturnDefinitionMap.set('propDecorators', metadata.propDecorators ?? literal(null));
34281
34470
  definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION));
34282
- definitionMap.set('version', literal('21.0.0-next.4'));
34471
+ definitionMap.set('version', literal('21.0.0-next.5'));
34283
34472
  definitionMap.set('ngImport', importExpr(Identifiers.core));
34284
34473
  definitionMap.set('type', metadata.type);
34285
34474
  definitionMap.set('resolveDeferredDeps', compileComponentMetadataAsyncResolver(dependencies));
@@ -34374,7 +34563,7 @@ function createDirectiveDefinitionMap(meta) {
34374
34563
  const definitionMap = new DefinitionMap();
34375
34564
  const minVersion = getMinimumVersionForPartialOutput(meta);
34376
34565
  definitionMap.set('minVersion', literal(minVersion));
34377
- definitionMap.set('version', literal('21.0.0-next.4'));
34566
+ definitionMap.set('version', literal('21.0.0-next.5'));
34378
34567
  // e.g. `type: MyDirective`
34379
34568
  definitionMap.set('type', meta.type.value);
34380
34569
  if (meta.isStandalone !== undefined) {
@@ -34790,7 +34979,7 @@ const MINIMUM_PARTIAL_LINKER_VERSION$4 = '12.0.0';
34790
34979
  function compileDeclareFactoryFunction(meta) {
34791
34980
  const definitionMap = new DefinitionMap();
34792
34981
  definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$4));
34793
- definitionMap.set('version', literal('21.0.0-next.4'));
34982
+ definitionMap.set('version', literal('21.0.0-next.5'));
34794
34983
  definitionMap.set('ngImport', importExpr(Identifiers.core));
34795
34984
  definitionMap.set('type', meta.type.value);
34796
34985
  definitionMap.set('deps', compileDependencies(meta.deps));
@@ -34825,7 +35014,7 @@ function compileDeclareInjectableFromMetadata(meta) {
34825
35014
  function createInjectableDefinitionMap(meta) {
34826
35015
  const definitionMap = new DefinitionMap();
34827
35016
  definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$3));
34828
- definitionMap.set('version', literal('21.0.0-next.4'));
35017
+ definitionMap.set('version', literal('21.0.0-next.5'));
34829
35018
  definitionMap.set('ngImport', importExpr(Identifiers.core));
34830
35019
  definitionMap.set('type', meta.type.value);
34831
35020
  // Only generate providedIn property if it has a non-null value
@@ -34876,7 +35065,7 @@ function compileDeclareInjectorFromMetadata(meta) {
34876
35065
  function createInjectorDefinitionMap(meta) {
34877
35066
  const definitionMap = new DefinitionMap();
34878
35067
  definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$2));
34879
- definitionMap.set('version', literal('21.0.0-next.4'));
35068
+ definitionMap.set('version', literal('21.0.0-next.5'));
34880
35069
  definitionMap.set('ngImport', importExpr(Identifiers.core));
34881
35070
  definitionMap.set('type', meta.type.value);
34882
35071
  definitionMap.set('providers', meta.providers);
@@ -34909,7 +35098,7 @@ function createNgModuleDefinitionMap(meta) {
34909
35098
  throw new Error('Invalid path! Local compilation mode should not get into the partial compilation path');
34910
35099
  }
34911
35100
  definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$1));
34912
- definitionMap.set('version', literal('21.0.0-next.4'));
35101
+ definitionMap.set('version', literal('21.0.0-next.5'));
34913
35102
  definitionMap.set('ngImport', importExpr(Identifiers.core));
34914
35103
  definitionMap.set('type', meta.type.value);
34915
35104
  // We only generate the keys in the metadata if the arrays contain values.
@@ -34960,7 +35149,7 @@ function compileDeclarePipeFromMetadata(meta) {
34960
35149
  function createPipeDefinitionMap(meta) {
34961
35150
  const definitionMap = new DefinitionMap();
34962
35151
  definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION));
34963
- definitionMap.set('version', literal('21.0.0-next.4'));
35152
+ definitionMap.set('version', literal('21.0.0-next.5'));
34964
35153
  definitionMap.set('ngImport', importExpr(Identifiers.core));
34965
35154
  // e.g. `type: MyPipe`
34966
35155
  definitionMap.set('type', meta.type.value);
@@ -35116,7 +35305,7 @@ function compileHmrUpdateCallback(definitions, constantStatements, meta) {
35116
35305
  * @description
35117
35306
  * Entry point for all public APIs of the compiler package.
35118
35307
  */
35119
- const VERSION = new Version('21.0.0-next.4');
35308
+ const VERSION = new Version('21.0.0-next.5');
35120
35309
 
35121
35310
  //////////////////////////////////////
35122
35311
  // THIS FILE HAS GLOBAL SIDE EFFECT //
@@ -35142,5 +35331,5 @@ const VERSION = new Version('21.0.0-next.4');
35142
35331
  // the late binding of the Compiler to the @angular/core for jit compilation.
35143
35332
  publishFacade(_global);
35144
35333
 
35145
- export { AST, ASTWithName, ASTWithSource, AbsoluteSourceSpan, ArrayType, ArrowFunctionExpr, Attribute, Binary, BinaryOperator, BinaryOperatorExpr, BindingPipe, BindingPipeType, BindingType, Block, BlockParameter, BoundElementProperty, BuiltinType, BuiltinTypeName, CUSTOM_ELEMENTS_SCHEMA, Call, Chain, ChangeDetectionStrategy, CombinedRecursiveAstVisitor, CommaExpr, Comment, CompilerConfig, CompilerFacadeImpl, Component, Conditional, ConditionalExpr, ConstantPool, CssSelector, DEFAULT_INTERPOLATION_CONFIG, DYNAMIC_TYPE, DeclareFunctionStmt, DeclareVarStmt, Directive, DomElementSchemaRegistry, DynamicImportExpr, EOF, Element, ElementSchemaRegistry, EmitterVisitorContext, EmptyExpr$1 as EmptyExpr, Expansion, ExpansionCase, Expression, ExpressionBinding, ExpressionStatement, ExpressionType, ExternalExpr, ExternalReference, FactoryTarget, FunctionExpr, HtmlParser, HtmlTagDefinition, I18NHtmlParser, IfStmt, ImplicitReceiver, InstantiateExpr, Interpolation$1 as Interpolation, InterpolationConfig, InvokeFunctionExpr, JSDocComment, JitEvaluator, KeyedRead, LeadingComment, LetDeclaration, Lexer, LiteralArray, LiteralArrayExpr, LiteralExpr, LiteralMap, LiteralMapExpr, LiteralPrimitive, LocalizedString, MapType, MessageBundle, NONE_TYPE, NO_ERRORS_SCHEMA, NodeWithI18n, NonNullAssert, NotExpr, ParenthesizedExpr, ParenthesizedExpression, ParseError, ParseErrorLevel, ParseLocation, ParseSourceFile, ParseSourceSpan, ParseSpan, ParseTreeResult, ParsedEvent, ParsedEventType, ParsedProperty, ParsedPropertyType, ParsedVariable, Parser, PrefixNot, PropertyRead, Identifiers as R3Identifiers, R3NgModuleMetadataKind, R3SelectorScopeMode, R3TargetBinder, R3TemplateDependencyKind, ReadKeyExpr, ReadPropExpr, ReadVarExpr, RecursiveAstVisitor, RecursiveVisitor, ResourceLoader, ReturnStatement, SCHEMA, SECURITY_SCHEMA, STRING_TYPE, SafeCall, SafeKeyedRead, SafePropertyRead, SelectorContext, SelectorListContext, SelectorMatcher, SelectorlessMatcher, Serializer, SplitInterpolation, Statement, StmtModifier, StringToken, StringTokenKind, TagContentType, TaggedTemplateLiteral, TaggedTemplateLiteralExpr, TemplateBindingParseResult, TemplateLiteral, TemplateLiteralElement, TemplateLiteralElementExpr, TemplateLiteralExpr, Text, ThisReceiver, BlockNode as TmplAstBlockNode, BoundAttribute as TmplAstBoundAttribute, BoundDeferredTrigger as TmplAstBoundDeferredTrigger, BoundEvent as TmplAstBoundEvent, BoundText as TmplAstBoundText, Component$1 as TmplAstComponent, Content as TmplAstContent, DeferredBlock as TmplAstDeferredBlock, DeferredBlockError as TmplAstDeferredBlockError, DeferredBlockLoading as TmplAstDeferredBlockLoading, DeferredBlockPlaceholder as TmplAstDeferredBlockPlaceholder, DeferredTrigger as TmplAstDeferredTrigger, Directive$1 as TmplAstDirective, Element$1 as TmplAstElement, ForLoopBlock as TmplAstForLoopBlock, ForLoopBlockEmpty as TmplAstForLoopBlockEmpty, HostElement as TmplAstHostElement, HoverDeferredTrigger as TmplAstHoverDeferredTrigger, Icu$1 as TmplAstIcu, IdleDeferredTrigger as TmplAstIdleDeferredTrigger, IfBlock as TmplAstIfBlock, IfBlockBranch as TmplAstIfBlockBranch, ImmediateDeferredTrigger as TmplAstImmediateDeferredTrigger, InteractionDeferredTrigger as TmplAstInteractionDeferredTrigger, LetDeclaration$1 as TmplAstLetDeclaration, NeverDeferredTrigger as TmplAstNeverDeferredTrigger, RecursiveVisitor$1 as TmplAstRecursiveVisitor, Reference as TmplAstReference, SwitchBlock as TmplAstSwitchBlock, SwitchBlockCase as TmplAstSwitchBlockCase, Template as TmplAstTemplate, Text$3 as TmplAstText, TextAttribute as TmplAstTextAttribute, TimerDeferredTrigger as TmplAstTimerDeferredTrigger, UnknownBlock as TmplAstUnknownBlock, Variable as TmplAstVariable, ViewportDeferredTrigger as TmplAstViewportDeferredTrigger, Token, TokenType, TransplantedType, TreeError, Type, TypeModifier, TypeofExpr, TypeofExpression, Unary, UnaryOperator, UnaryOperatorExpr, VERSION, VariableBinding, Version, ViewEncapsulation$1 as ViewEncapsulation, VoidExpr, VoidExpression, WrappedNodeExpr, Xliff, Xliff2, Xmb, XmlParser, Xtb, _ATTR_TO_PROP, compileClassDebugInfo, compileClassMetadata, compileComponentClassMetadata, compileComponentDeclareClassMetadata, compileComponentFromMetadata, compileDeclareClassMetadata, compileDeclareComponentFromMetadata, compileDeclareDirectiveFromMetadata, compileDeclareFactoryFunction, compileDeclareInjectableFromMetadata, compileDeclareInjectorFromMetadata, compileDeclareNgModuleFromMetadata, compileDeclarePipeFromMetadata, compileDeferResolverFunction, compileDirectiveFromMetadata, compileFactoryFunction, compileHmrInitializer, compileHmrUpdateCallback, compileInjectable, compileInjector, compileNgModule, compileOpaqueAsyncClassMetadata, compilePipeFromMetadata, computeMsgId, core, createCssSelectorFromNode, createInjectableType, createMayBeForwardRefExpression, devOnlyGuardedExpression, emitDistinctChangesOnlyDefaultValue, encapsulateStyle, escapeRegExp, findMatchingDirectivesAndPipes, getHtmlTagDefinition, getNsPrefix, getSafePropertyAccessString, identifierName, isNgContainer, isNgContent, isNgTemplate, jsDocComment, leadingComment, literal, literalMap, makeBindingParser, mergeNsAndName, output_ast as outputAst, parseHostBindings, parseTemplate, preserveWhitespacesDefault, publishFacade, r3JitTypeSourceSpan, sanitizeIdentifier, setEnableTemplateSourceLocations, splitNsName, visitAll$1 as tmplAstVisitAll, verifyHostBindings, visitAll };
35334
+ export { AST, ASTWithName, ASTWithSource, AbsoluteSourceSpan, ArrayType, ArrowFunctionExpr, Attribute, Binary, BinaryOperator, BinaryOperatorExpr, BindingPipe, BindingPipeType, BindingType, Block, BlockParameter, BoundElementProperty, BuiltinType, BuiltinTypeName, CUSTOM_ELEMENTS_SCHEMA, Call, Chain, ChangeDetectionStrategy, CombinedRecursiveAstVisitor, CommaExpr, Comment, CompilerConfig, CompilerFacadeImpl, Component, Conditional, ConditionalExpr, ConstantPool, CssSelector, DEFAULT_INTERPOLATION_CONFIG, DYNAMIC_TYPE, DeclareFunctionStmt, DeclareVarStmt, Directive, DomElementSchemaRegistry, DynamicImportExpr, EOF, Element, ElementSchemaRegistry, EmitterVisitorContext, EmptyExpr$1 as EmptyExpr, Expansion, ExpansionCase, Expression, ExpressionBinding, ExpressionStatement, ExpressionType, ExternalExpr, ExternalReference, FactoryTarget, FunctionExpr, HtmlParser, HtmlTagDefinition, I18NHtmlParser, IfStmt, ImplicitReceiver, InstantiateExpr, Interpolation$1 as Interpolation, InterpolationConfig, InvokeFunctionExpr, JSDocComment, JitEvaluator, KeyedRead, LeadingComment, LetDeclaration, Lexer, LiteralArray, LiteralArrayExpr, LiteralExpr, LiteralMap, LiteralMapExpr, LiteralPrimitive, LocalizedString, MapType, MessageBundle, NONE_TYPE, NO_ERRORS_SCHEMA, NodeWithI18n, NonNullAssert, NotExpr, ParenthesizedExpr, ParenthesizedExpression, ParseError, ParseErrorLevel, ParseLocation, ParseSourceFile, ParseSourceSpan, ParseSpan, ParseTreeResult, ParsedEvent, ParsedEventType, ParsedProperty, ParsedPropertyType, ParsedVariable, Parser, PrefixNot, PropertyRead, Identifiers as R3Identifiers, R3NgModuleMetadataKind, R3SelectorScopeMode, R3TargetBinder, R3TemplateDependencyKind, ReadKeyExpr, ReadPropExpr, ReadVarExpr, RecursiveAstVisitor, RecursiveVisitor, RegularExpressionLiteral, ResourceLoader, ReturnStatement, SCHEMA, SECURITY_SCHEMA, STRING_TYPE, SafeCall, SafeKeyedRead, SafePropertyRead, SelectorContext, SelectorListContext, SelectorMatcher, SelectorlessMatcher, Serializer, SplitInterpolation, Statement, StmtModifier, StringToken, StringTokenKind, TagContentType, TaggedTemplateLiteral, TaggedTemplateLiteralExpr, TemplateBindingParseResult, TemplateLiteral, TemplateLiteralElement, TemplateLiteralElementExpr, TemplateLiteralExpr, Text, ThisReceiver, BlockNode as TmplAstBlockNode, BoundAttribute as TmplAstBoundAttribute, BoundDeferredTrigger as TmplAstBoundDeferredTrigger, BoundEvent as TmplAstBoundEvent, BoundText as TmplAstBoundText, Component$1 as TmplAstComponent, Content as TmplAstContent, DeferredBlock as TmplAstDeferredBlock, DeferredBlockError as TmplAstDeferredBlockError, DeferredBlockLoading as TmplAstDeferredBlockLoading, DeferredBlockPlaceholder as TmplAstDeferredBlockPlaceholder, DeferredTrigger as TmplAstDeferredTrigger, Directive$1 as TmplAstDirective, Element$1 as TmplAstElement, ForLoopBlock as TmplAstForLoopBlock, ForLoopBlockEmpty as TmplAstForLoopBlockEmpty, HostElement as TmplAstHostElement, HoverDeferredTrigger as TmplAstHoverDeferredTrigger, Icu$1 as TmplAstIcu, IdleDeferredTrigger as TmplAstIdleDeferredTrigger, IfBlock as TmplAstIfBlock, IfBlockBranch as TmplAstIfBlockBranch, ImmediateDeferredTrigger as TmplAstImmediateDeferredTrigger, InteractionDeferredTrigger as TmplAstInteractionDeferredTrigger, LetDeclaration$1 as TmplAstLetDeclaration, NeverDeferredTrigger as TmplAstNeverDeferredTrigger, RecursiveVisitor$1 as TmplAstRecursiveVisitor, Reference as TmplAstReference, SwitchBlock as TmplAstSwitchBlock, SwitchBlockCase as TmplAstSwitchBlockCase, Template as TmplAstTemplate, Text$3 as TmplAstText, TextAttribute as TmplAstTextAttribute, TimerDeferredTrigger as TmplAstTimerDeferredTrigger, UnknownBlock as TmplAstUnknownBlock, Variable as TmplAstVariable, ViewportDeferredTrigger as TmplAstViewportDeferredTrigger, Token, TokenType, TransplantedType, TreeError, Type, TypeModifier, TypeofExpr, TypeofExpression, Unary, UnaryOperator, UnaryOperatorExpr, VERSION, VariableBinding, Version, ViewEncapsulation$1 as ViewEncapsulation, VoidExpr, VoidExpression, WrappedNodeExpr, Xliff, Xliff2, Xmb, XmlParser, Xtb, _ATTR_TO_PROP, compileClassDebugInfo, compileClassMetadata, compileComponentClassMetadata, compileComponentDeclareClassMetadata, compileComponentFromMetadata, compileDeclareClassMetadata, compileDeclareComponentFromMetadata, compileDeclareDirectiveFromMetadata, compileDeclareFactoryFunction, compileDeclareInjectableFromMetadata, compileDeclareInjectorFromMetadata, compileDeclareNgModuleFromMetadata, compileDeclarePipeFromMetadata, compileDeferResolverFunction, compileDirectiveFromMetadata, compileFactoryFunction, compileHmrInitializer, compileHmrUpdateCallback, compileInjectable, compileInjector, compileNgModule, compileOpaqueAsyncClassMetadata, compilePipeFromMetadata, computeMsgId, core, createCssSelectorFromNode, createInjectableType, createMayBeForwardRefExpression, devOnlyGuardedExpression, emitDistinctChangesOnlyDefaultValue, encapsulateStyle, escapeRegExp, findMatchingDirectivesAndPipes, getHtmlTagDefinition, getNsPrefix, getSafePropertyAccessString, identifierName, isNgContainer, isNgContent, isNgTemplate, jsDocComment, leadingComment, literal, literalMap, makeBindingParser, mergeNsAndName, output_ast as outputAst, parseHostBindings, parseTemplate, preserveWhitespacesDefault, publishFacade, r3JitTypeSourceSpan, sanitizeIdentifier, setEnableTemplateSourceLocations, splitNsName, visitAll$1 as tmplAstVisitAll, verifyHostBindings, visitAll };
35146
35335
  //# sourceMappingURL=compiler.mjs.map