@angular/compiler 19.1.0-next.4 → 19.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.
- package/LICENSE +1 -1
- package/fesm2022/compiler.mjs +38 -282
- package/fesm2022/compiler.mjs.map +1 -1
- package/index.d.ts +22 -73
- package/package.json +2 -2
package/LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
The MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2010-
|
|
3
|
+
Copyright (c) 2010-2025 Google LLC. https://angular.dev/license
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
package/fesm2022/compiler.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v19.1.0
|
|
2
|
+
* @license Angular v19.1.0
|
|
3
3
|
* (c) 2010-2024 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -4445,7 +4445,7 @@ class TypeofExpression extends AST {
|
|
|
4445
4445
|
this.expression = expression;
|
|
4446
4446
|
}
|
|
4447
4447
|
visit(visitor, context = null) {
|
|
4448
|
-
return visitor.
|
|
4448
|
+
return visitor.visitTypeofExpression(this, context);
|
|
4449
4449
|
}
|
|
4450
4450
|
}
|
|
4451
4451
|
class NonNullAssert extends AST {
|
|
@@ -4605,7 +4605,7 @@ class RecursiveAstVisitor {
|
|
|
4605
4605
|
visitPrefixNot(ast, context) {
|
|
4606
4606
|
this.visit(ast.expression, context);
|
|
4607
4607
|
}
|
|
4608
|
-
|
|
4608
|
+
visitTypeofExpression(ast, context) {
|
|
4609
4609
|
this.visit(ast.expression, context);
|
|
4610
4610
|
}
|
|
4611
4611
|
visitNonNullAssert(ast, context) {
|
|
@@ -4640,262 +4640,6 @@ class RecursiveAstVisitor {
|
|
|
4640
4640
|
}
|
|
4641
4641
|
}
|
|
4642
4642
|
}
|
|
4643
|
-
class AstTransformer {
|
|
4644
|
-
visitImplicitReceiver(ast, context) {
|
|
4645
|
-
return ast;
|
|
4646
|
-
}
|
|
4647
|
-
visitThisReceiver(ast, context) {
|
|
4648
|
-
return ast;
|
|
4649
|
-
}
|
|
4650
|
-
visitInterpolation(ast, context) {
|
|
4651
|
-
return new Interpolation$1(ast.span, ast.sourceSpan, ast.strings, this.visitAll(ast.expressions));
|
|
4652
|
-
}
|
|
4653
|
-
visitLiteralPrimitive(ast, context) {
|
|
4654
|
-
return new LiteralPrimitive(ast.span, ast.sourceSpan, ast.value);
|
|
4655
|
-
}
|
|
4656
|
-
visitPropertyRead(ast, context) {
|
|
4657
|
-
return new PropertyRead(ast.span, ast.sourceSpan, ast.nameSpan, ast.receiver.visit(this), ast.name);
|
|
4658
|
-
}
|
|
4659
|
-
visitPropertyWrite(ast, context) {
|
|
4660
|
-
return new PropertyWrite(ast.span, ast.sourceSpan, ast.nameSpan, ast.receiver.visit(this), ast.name, ast.value.visit(this));
|
|
4661
|
-
}
|
|
4662
|
-
visitSafePropertyRead(ast, context) {
|
|
4663
|
-
return new SafePropertyRead(ast.span, ast.sourceSpan, ast.nameSpan, ast.receiver.visit(this), ast.name);
|
|
4664
|
-
}
|
|
4665
|
-
visitLiteralArray(ast, context) {
|
|
4666
|
-
return new LiteralArray(ast.span, ast.sourceSpan, this.visitAll(ast.expressions));
|
|
4667
|
-
}
|
|
4668
|
-
visitLiteralMap(ast, context) {
|
|
4669
|
-
return new LiteralMap(ast.span, ast.sourceSpan, ast.keys, this.visitAll(ast.values));
|
|
4670
|
-
}
|
|
4671
|
-
visitUnary(ast, context) {
|
|
4672
|
-
switch (ast.operator) {
|
|
4673
|
-
case '+':
|
|
4674
|
-
return Unary.createPlus(ast.span, ast.sourceSpan, ast.expr.visit(this));
|
|
4675
|
-
case '-':
|
|
4676
|
-
return Unary.createMinus(ast.span, ast.sourceSpan, ast.expr.visit(this));
|
|
4677
|
-
default:
|
|
4678
|
-
throw new Error(`Unknown unary operator ${ast.operator}`);
|
|
4679
|
-
}
|
|
4680
|
-
}
|
|
4681
|
-
visitBinary(ast, context) {
|
|
4682
|
-
return new Binary(ast.span, ast.sourceSpan, ast.operation, ast.left.visit(this), ast.right.visit(this));
|
|
4683
|
-
}
|
|
4684
|
-
visitPrefixNot(ast, context) {
|
|
4685
|
-
return new PrefixNot(ast.span, ast.sourceSpan, ast.expression.visit(this));
|
|
4686
|
-
}
|
|
4687
|
-
visitTypeofExpresion(ast, context) {
|
|
4688
|
-
return new TypeofExpression(ast.span, ast.sourceSpan, ast.expression.visit(this));
|
|
4689
|
-
}
|
|
4690
|
-
visitNonNullAssert(ast, context) {
|
|
4691
|
-
return new NonNullAssert(ast.span, ast.sourceSpan, ast.expression.visit(this));
|
|
4692
|
-
}
|
|
4693
|
-
visitConditional(ast, context) {
|
|
4694
|
-
return new Conditional(ast.span, ast.sourceSpan, ast.condition.visit(this), ast.trueExp.visit(this), ast.falseExp.visit(this));
|
|
4695
|
-
}
|
|
4696
|
-
visitPipe(ast, context) {
|
|
4697
|
-
return new BindingPipe(ast.span, ast.sourceSpan, ast.exp.visit(this), ast.name, this.visitAll(ast.args), ast.nameSpan);
|
|
4698
|
-
}
|
|
4699
|
-
visitKeyedRead(ast, context) {
|
|
4700
|
-
return new KeyedRead(ast.span, ast.sourceSpan, ast.receiver.visit(this), ast.key.visit(this));
|
|
4701
|
-
}
|
|
4702
|
-
visitKeyedWrite(ast, context) {
|
|
4703
|
-
return new KeyedWrite(ast.span, ast.sourceSpan, ast.receiver.visit(this), ast.key.visit(this), ast.value.visit(this));
|
|
4704
|
-
}
|
|
4705
|
-
visitCall(ast, context) {
|
|
4706
|
-
return new Call(ast.span, ast.sourceSpan, ast.receiver.visit(this), this.visitAll(ast.args), ast.argumentSpan);
|
|
4707
|
-
}
|
|
4708
|
-
visitSafeCall(ast, context) {
|
|
4709
|
-
return new SafeCall(ast.span, ast.sourceSpan, ast.receiver.visit(this), this.visitAll(ast.args), ast.argumentSpan);
|
|
4710
|
-
}
|
|
4711
|
-
visitAll(asts) {
|
|
4712
|
-
const res = [];
|
|
4713
|
-
for (let i = 0; i < asts.length; ++i) {
|
|
4714
|
-
res[i] = asts[i].visit(this);
|
|
4715
|
-
}
|
|
4716
|
-
return res;
|
|
4717
|
-
}
|
|
4718
|
-
visitChain(ast, context) {
|
|
4719
|
-
return new Chain(ast.span, ast.sourceSpan, this.visitAll(ast.expressions));
|
|
4720
|
-
}
|
|
4721
|
-
visitSafeKeyedRead(ast, context) {
|
|
4722
|
-
return new SafeKeyedRead(ast.span, ast.sourceSpan, ast.receiver.visit(this), ast.key.visit(this));
|
|
4723
|
-
}
|
|
4724
|
-
}
|
|
4725
|
-
// A transformer that only creates new nodes if the transformer makes a change or
|
|
4726
|
-
// a change is made a child node.
|
|
4727
|
-
class AstMemoryEfficientTransformer {
|
|
4728
|
-
visitImplicitReceiver(ast, context) {
|
|
4729
|
-
return ast;
|
|
4730
|
-
}
|
|
4731
|
-
visitThisReceiver(ast, context) {
|
|
4732
|
-
return ast;
|
|
4733
|
-
}
|
|
4734
|
-
visitInterpolation(ast, context) {
|
|
4735
|
-
const expressions = this.visitAll(ast.expressions);
|
|
4736
|
-
if (expressions !== ast.expressions)
|
|
4737
|
-
return new Interpolation$1(ast.span, ast.sourceSpan, ast.strings, expressions);
|
|
4738
|
-
return ast;
|
|
4739
|
-
}
|
|
4740
|
-
visitLiteralPrimitive(ast, context) {
|
|
4741
|
-
return ast;
|
|
4742
|
-
}
|
|
4743
|
-
visitPropertyRead(ast, context) {
|
|
4744
|
-
const receiver = ast.receiver.visit(this);
|
|
4745
|
-
if (receiver !== ast.receiver) {
|
|
4746
|
-
return new PropertyRead(ast.span, ast.sourceSpan, ast.nameSpan, receiver, ast.name);
|
|
4747
|
-
}
|
|
4748
|
-
return ast;
|
|
4749
|
-
}
|
|
4750
|
-
visitPropertyWrite(ast, context) {
|
|
4751
|
-
const receiver = ast.receiver.visit(this);
|
|
4752
|
-
const value = ast.value.visit(this);
|
|
4753
|
-
if (receiver !== ast.receiver || value !== ast.value) {
|
|
4754
|
-
return new PropertyWrite(ast.span, ast.sourceSpan, ast.nameSpan, receiver, ast.name, value);
|
|
4755
|
-
}
|
|
4756
|
-
return ast;
|
|
4757
|
-
}
|
|
4758
|
-
visitSafePropertyRead(ast, context) {
|
|
4759
|
-
const receiver = ast.receiver.visit(this);
|
|
4760
|
-
if (receiver !== ast.receiver) {
|
|
4761
|
-
return new SafePropertyRead(ast.span, ast.sourceSpan, ast.nameSpan, receiver, ast.name);
|
|
4762
|
-
}
|
|
4763
|
-
return ast;
|
|
4764
|
-
}
|
|
4765
|
-
visitLiteralArray(ast, context) {
|
|
4766
|
-
const expressions = this.visitAll(ast.expressions);
|
|
4767
|
-
if (expressions !== ast.expressions) {
|
|
4768
|
-
return new LiteralArray(ast.span, ast.sourceSpan, expressions);
|
|
4769
|
-
}
|
|
4770
|
-
return ast;
|
|
4771
|
-
}
|
|
4772
|
-
visitLiteralMap(ast, context) {
|
|
4773
|
-
const values = this.visitAll(ast.values);
|
|
4774
|
-
if (values !== ast.values) {
|
|
4775
|
-
return new LiteralMap(ast.span, ast.sourceSpan, ast.keys, values);
|
|
4776
|
-
}
|
|
4777
|
-
return ast;
|
|
4778
|
-
}
|
|
4779
|
-
visitUnary(ast, context) {
|
|
4780
|
-
const expr = ast.expr.visit(this);
|
|
4781
|
-
if (expr !== ast.expr) {
|
|
4782
|
-
switch (ast.operator) {
|
|
4783
|
-
case '+':
|
|
4784
|
-
return Unary.createPlus(ast.span, ast.sourceSpan, expr);
|
|
4785
|
-
case '-':
|
|
4786
|
-
return Unary.createMinus(ast.span, ast.sourceSpan, expr);
|
|
4787
|
-
default:
|
|
4788
|
-
throw new Error(`Unknown unary operator ${ast.operator}`);
|
|
4789
|
-
}
|
|
4790
|
-
}
|
|
4791
|
-
return ast;
|
|
4792
|
-
}
|
|
4793
|
-
visitBinary(ast, context) {
|
|
4794
|
-
const left = ast.left.visit(this);
|
|
4795
|
-
const right = ast.right.visit(this);
|
|
4796
|
-
if (left !== ast.left || right !== ast.right) {
|
|
4797
|
-
return new Binary(ast.span, ast.sourceSpan, ast.operation, left, right);
|
|
4798
|
-
}
|
|
4799
|
-
return ast;
|
|
4800
|
-
}
|
|
4801
|
-
visitPrefixNot(ast, context) {
|
|
4802
|
-
const expression = ast.expression.visit(this);
|
|
4803
|
-
if (expression !== ast.expression) {
|
|
4804
|
-
return new PrefixNot(ast.span, ast.sourceSpan, expression);
|
|
4805
|
-
}
|
|
4806
|
-
return ast;
|
|
4807
|
-
}
|
|
4808
|
-
visitTypeofExpresion(ast, context) {
|
|
4809
|
-
const expression = ast.expression.visit(this);
|
|
4810
|
-
if (expression !== ast.expression) {
|
|
4811
|
-
return new TypeofExpression(ast.span, ast.sourceSpan, expression);
|
|
4812
|
-
}
|
|
4813
|
-
return ast;
|
|
4814
|
-
}
|
|
4815
|
-
visitNonNullAssert(ast, context) {
|
|
4816
|
-
const expression = ast.expression.visit(this);
|
|
4817
|
-
if (expression !== ast.expression) {
|
|
4818
|
-
return new NonNullAssert(ast.span, ast.sourceSpan, expression);
|
|
4819
|
-
}
|
|
4820
|
-
return ast;
|
|
4821
|
-
}
|
|
4822
|
-
visitConditional(ast, context) {
|
|
4823
|
-
const condition = ast.condition.visit(this);
|
|
4824
|
-
const trueExp = ast.trueExp.visit(this);
|
|
4825
|
-
const falseExp = ast.falseExp.visit(this);
|
|
4826
|
-
if (condition !== ast.condition || trueExp !== ast.trueExp || falseExp !== ast.falseExp) {
|
|
4827
|
-
return new Conditional(ast.span, ast.sourceSpan, condition, trueExp, falseExp);
|
|
4828
|
-
}
|
|
4829
|
-
return ast;
|
|
4830
|
-
}
|
|
4831
|
-
visitPipe(ast, context) {
|
|
4832
|
-
const exp = ast.exp.visit(this);
|
|
4833
|
-
const args = this.visitAll(ast.args);
|
|
4834
|
-
if (exp !== ast.exp || args !== ast.args) {
|
|
4835
|
-
return new BindingPipe(ast.span, ast.sourceSpan, exp, ast.name, args, ast.nameSpan);
|
|
4836
|
-
}
|
|
4837
|
-
return ast;
|
|
4838
|
-
}
|
|
4839
|
-
visitKeyedRead(ast, context) {
|
|
4840
|
-
const obj = ast.receiver.visit(this);
|
|
4841
|
-
const key = ast.key.visit(this);
|
|
4842
|
-
if (obj !== ast.receiver || key !== ast.key) {
|
|
4843
|
-
return new KeyedRead(ast.span, ast.sourceSpan, obj, key);
|
|
4844
|
-
}
|
|
4845
|
-
return ast;
|
|
4846
|
-
}
|
|
4847
|
-
visitKeyedWrite(ast, context) {
|
|
4848
|
-
const obj = ast.receiver.visit(this);
|
|
4849
|
-
const key = ast.key.visit(this);
|
|
4850
|
-
const value = ast.value.visit(this);
|
|
4851
|
-
if (obj !== ast.receiver || key !== ast.key || value !== ast.value) {
|
|
4852
|
-
return new KeyedWrite(ast.span, ast.sourceSpan, obj, key, value);
|
|
4853
|
-
}
|
|
4854
|
-
return ast;
|
|
4855
|
-
}
|
|
4856
|
-
visitAll(asts) {
|
|
4857
|
-
const res = [];
|
|
4858
|
-
let modified = false;
|
|
4859
|
-
for (let i = 0; i < asts.length; ++i) {
|
|
4860
|
-
const original = asts[i];
|
|
4861
|
-
const value = original.visit(this);
|
|
4862
|
-
res[i] = value;
|
|
4863
|
-
modified = modified || value !== original;
|
|
4864
|
-
}
|
|
4865
|
-
return modified ? res : asts;
|
|
4866
|
-
}
|
|
4867
|
-
visitChain(ast, context) {
|
|
4868
|
-
const expressions = this.visitAll(ast.expressions);
|
|
4869
|
-
if (expressions !== ast.expressions) {
|
|
4870
|
-
return new Chain(ast.span, ast.sourceSpan, expressions);
|
|
4871
|
-
}
|
|
4872
|
-
return ast;
|
|
4873
|
-
}
|
|
4874
|
-
visitCall(ast, context) {
|
|
4875
|
-
const receiver = ast.receiver.visit(this);
|
|
4876
|
-
const args = this.visitAll(ast.args);
|
|
4877
|
-
if (receiver !== ast.receiver || args !== ast.args) {
|
|
4878
|
-
return new Call(ast.span, ast.sourceSpan, receiver, args, ast.argumentSpan);
|
|
4879
|
-
}
|
|
4880
|
-
return ast;
|
|
4881
|
-
}
|
|
4882
|
-
visitSafeCall(ast, context) {
|
|
4883
|
-
const receiver = ast.receiver.visit(this);
|
|
4884
|
-
const args = this.visitAll(ast.args);
|
|
4885
|
-
if (receiver !== ast.receiver || args !== ast.args) {
|
|
4886
|
-
return new SafeCall(ast.span, ast.sourceSpan, receiver, args, ast.argumentSpan);
|
|
4887
|
-
}
|
|
4888
|
-
return ast;
|
|
4889
|
-
}
|
|
4890
|
-
visitSafeKeyedRead(ast, context) {
|
|
4891
|
-
const obj = ast.receiver.visit(this);
|
|
4892
|
-
const key = ast.key.visit(this);
|
|
4893
|
-
if (obj !== ast.receiver || key !== ast.key) {
|
|
4894
|
-
return new SafeKeyedRead(ast.span, ast.sourceSpan, obj, key);
|
|
4895
|
-
}
|
|
4896
|
-
return ast;
|
|
4897
|
-
}
|
|
4898
|
-
}
|
|
4899
4643
|
// Bindings
|
|
4900
4644
|
class ParsedProperty {
|
|
4901
4645
|
name;
|
|
@@ -7780,7 +7524,7 @@ class ShadowCss {
|
|
|
7780
7524
|
*
|
|
7781
7525
|
* For example, we convert this css:
|
|
7782
7526
|
*
|
|
7783
|
-
* ```
|
|
7527
|
+
* ```scss
|
|
7784
7528
|
* .box {
|
|
7785
7529
|
* animation: box-animation 1s forwards;
|
|
7786
7530
|
* }
|
|
@@ -7794,7 +7538,7 @@ class ShadowCss {
|
|
|
7794
7538
|
*
|
|
7795
7539
|
* to this:
|
|
7796
7540
|
*
|
|
7797
|
-
* ```
|
|
7541
|
+
* ```scss
|
|
7798
7542
|
* .box {
|
|
7799
7543
|
* animation: scopeName_box-animation 1s forwards;
|
|
7800
7544
|
* }
|
|
@@ -7823,7 +7567,7 @@ class ShadowCss {
|
|
|
7823
7567
|
*
|
|
7824
7568
|
* For example, it takes a rule such as:
|
|
7825
7569
|
*
|
|
7826
|
-
* ```
|
|
7570
|
+
* ```scss
|
|
7827
7571
|
* @keyframes box-animation {
|
|
7828
7572
|
* to {
|
|
7829
7573
|
* background-color: green;
|
|
@@ -7833,7 +7577,7 @@ class ShadowCss {
|
|
|
7833
7577
|
*
|
|
7834
7578
|
* and returns:
|
|
7835
7579
|
*
|
|
7836
|
-
* ```
|
|
7580
|
+
* ```scss
|
|
7837
7581
|
* @keyframes scopeName_box-animation {
|
|
7838
7582
|
* to {
|
|
7839
7583
|
* background-color: green;
|
|
@@ -18211,7 +17955,7 @@ class Parser {
|
|
|
18211
17955
|
* parsing errors in case the given expression is invalid.
|
|
18212
17956
|
*
|
|
18213
17957
|
* For example,
|
|
18214
|
-
* ```
|
|
17958
|
+
* ```html
|
|
18215
17959
|
* <div *ngFor="let item of items">
|
|
18216
17960
|
* ^ ^ absoluteValueOffset for `templateValue`
|
|
18217
17961
|
* absoluteKeyOffset for `templateKey`
|
|
@@ -18222,7 +17966,7 @@ class Parser {
|
|
|
18222
17966
|
* 3. ngForOf -> items
|
|
18223
17967
|
*
|
|
18224
17968
|
* This is apparent from the de-sugared template:
|
|
18225
|
-
* ```
|
|
17969
|
+
* ```html
|
|
18226
17970
|
* <ng-template ngFor let-item [ngForOf]="items">
|
|
18227
17971
|
* ```
|
|
18228
17972
|
*
|
|
@@ -19079,7 +18823,7 @@ class _ParseAST {
|
|
|
19079
18823
|
* parsing errors in case the given expression is invalid.
|
|
19080
18824
|
*
|
|
19081
18825
|
* For example,
|
|
19082
|
-
* ```
|
|
18826
|
+
* ```html
|
|
19083
18827
|
* <div *ngFor="let item of items; index as i; trackBy: func">
|
|
19084
18828
|
* ```
|
|
19085
18829
|
* contains five bindings:
|
|
@@ -19470,7 +19214,7 @@ class SerializeExpressionVisitor {
|
|
|
19470
19214
|
.map((e) => e.visit(this, context))
|
|
19471
19215
|
.join(', ')})`;
|
|
19472
19216
|
}
|
|
19473
|
-
|
|
19217
|
+
visitTypeofExpression(ast, context) {
|
|
19474
19218
|
return `typeof ${ast.expression.visit(this, context)}`;
|
|
19475
19219
|
}
|
|
19476
19220
|
visitASTWithSource(ast, context) {
|
|
@@ -26860,7 +26604,7 @@ class BindingParser {
|
|
|
26860
26604
|
}
|
|
26861
26605
|
/**
|
|
26862
26606
|
* Parses the bindings in a microsyntax expression, e.g.
|
|
26863
|
-
* ```
|
|
26607
|
+
* ```html
|
|
26864
26608
|
* <tag *tplKey="let value1 = prop; let value2 = localVar">
|
|
26865
26609
|
* ```
|
|
26866
26610
|
*
|
|
@@ -27120,6 +26864,14 @@ class BindingParser {
|
|
|
27120
26864
|
if (ast instanceof NonNullAssert) {
|
|
27121
26865
|
return this._isAllowedAssignmentEvent(ast.expression);
|
|
27122
26866
|
}
|
|
26867
|
+
if (ast instanceof Call &&
|
|
26868
|
+
ast.args.length === 1 &&
|
|
26869
|
+
ast.receiver instanceof PropertyRead &&
|
|
26870
|
+
ast.receiver.name === '$any' &&
|
|
26871
|
+
ast.receiver.receiver instanceof ImplicitReceiver &&
|
|
26872
|
+
!(ast.receiver.receiver instanceof ThisReceiver)) {
|
|
26873
|
+
return this._isAllowedAssignmentEvent(ast.args[0]);
|
|
26874
|
+
}
|
|
27123
26875
|
if (ast instanceof PropertyRead || ast instanceof KeyedRead) {
|
|
27124
26876
|
return true;
|
|
27125
26877
|
}
|
|
@@ -27455,7 +27207,7 @@ function parseForLoopParameters(block, errors, bindingParser) {
|
|
|
27455
27207
|
}
|
|
27456
27208
|
continue;
|
|
27457
27209
|
}
|
|
27458
|
-
errors.push(new ParseError(param.sourceSpan, `Unrecognized @for loop
|
|
27210
|
+
errors.push(new ParseError(param.sourceSpan, `Unrecognized @for loop parameter "${param.expression}"`));
|
|
27459
27211
|
}
|
|
27460
27212
|
return result;
|
|
27461
27213
|
}
|
|
@@ -27602,7 +27354,7 @@ function parseConditionalBlockParameters(block, errors, bindingParser) {
|
|
|
27602
27354
|
// For now conditionals can only have an `as` parameter.
|
|
27603
27355
|
// We may want to rework this later if we add more.
|
|
27604
27356
|
if (aliasMatch === null) {
|
|
27605
|
-
errors.push(new ParseError(param.sourceSpan, `Unrecognized conditional
|
|
27357
|
+
errors.push(new ParseError(param.sourceSpan, `Unrecognized conditional parameter "${param.expression}"`));
|
|
27606
27358
|
}
|
|
27607
27359
|
else if (block.name !== 'if') {
|
|
27608
27360
|
errors.push(new ParseError(param.sourceSpan, '"as" expression is only allowed on the primary @if block'));
|
|
@@ -30978,7 +30730,7 @@ function publishFacade(global) {
|
|
|
30978
30730
|
* @description
|
|
30979
30731
|
* Entry point for all public APIs of the compiler package.
|
|
30980
30732
|
*/
|
|
30981
|
-
const VERSION = new Version('19.1.0
|
|
30733
|
+
const VERSION = new Version('19.1.0');
|
|
30982
30734
|
|
|
30983
30735
|
class CompilerConfig {
|
|
30984
30736
|
defaultEncapsulation;
|
|
@@ -32749,14 +32501,18 @@ function compileHmrInitializer(meta) {
|
|
|
32749
32501
|
// '<urlPartial>' + encodeURIComponent(t)
|
|
32750
32502
|
const urlValue = literal(urlPartial)
|
|
32751
32503
|
.plus(variable('encodeURIComponent').callFn([variable(timestampName)]));
|
|
32504
|
+
// import.meta.url
|
|
32505
|
+
const urlBase = variable('import').prop('meta').prop('url');
|
|
32506
|
+
// new URL(urlValue, urlBase).href
|
|
32507
|
+
const urlHref = new InstantiateExpr(variable('URL'), [urlValue, urlBase]).prop('href');
|
|
32752
32508
|
// function Cmp_HmrLoad(t) {
|
|
32753
|
-
// import(/* @vite-ignore */
|
|
32509
|
+
// import(/* @vite-ignore */ urlHref).then((m) => m.default && replaceMetadata(...));
|
|
32754
32510
|
// }
|
|
32755
32511
|
const importCallback = new DeclareFunctionStmt(importCallbackName, [new FnParam(timestampName)], [
|
|
32756
32512
|
// The vite-ignore special comment is required to prevent Vite from generating a superfluous
|
|
32757
32513
|
// warning for each usage within the development code. If Vite provides a method to
|
|
32758
32514
|
// programmatically avoid this warning in the future, this added comment can be removed here.
|
|
32759
|
-
new DynamicImportExpr(
|
|
32515
|
+
new DynamicImportExpr(urlHref, null, '@vite-ignore')
|
|
32760
32516
|
.prop('then')
|
|
32761
32517
|
.callFn([replaceCallback])
|
|
32762
32518
|
.toStmt(),
|
|
@@ -32830,7 +32586,7 @@ const MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION = '18.0.0';
|
|
|
32830
32586
|
function compileDeclareClassMetadata(metadata) {
|
|
32831
32587
|
const definitionMap = new DefinitionMap();
|
|
32832
32588
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$5));
|
|
32833
|
-
definitionMap.set('version', literal('19.1.0
|
|
32589
|
+
definitionMap.set('version', literal('19.1.0'));
|
|
32834
32590
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
32835
32591
|
definitionMap.set('type', metadata.type);
|
|
32836
32592
|
definitionMap.set('decorators', metadata.decorators);
|
|
@@ -32848,7 +32604,7 @@ function compileComponentDeclareClassMetadata(metadata, dependencies) {
|
|
|
32848
32604
|
callbackReturnDefinitionMap.set('ctorParameters', metadata.ctorParameters ?? literal(null));
|
|
32849
32605
|
callbackReturnDefinitionMap.set('propDecorators', metadata.propDecorators ?? literal(null));
|
|
32850
32606
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION));
|
|
32851
|
-
definitionMap.set('version', literal('19.1.0
|
|
32607
|
+
definitionMap.set('version', literal('19.1.0'));
|
|
32852
32608
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
32853
32609
|
definitionMap.set('type', metadata.type);
|
|
32854
32610
|
definitionMap.set('resolveDeferredDeps', compileComponentMetadataAsyncResolver(dependencies));
|
|
@@ -32943,7 +32699,7 @@ function createDirectiveDefinitionMap(meta) {
|
|
|
32943
32699
|
const definitionMap = new DefinitionMap();
|
|
32944
32700
|
const minVersion = getMinimumVersionForPartialOutput(meta);
|
|
32945
32701
|
definitionMap.set('minVersion', literal(minVersion));
|
|
32946
|
-
definitionMap.set('version', literal('19.1.0
|
|
32702
|
+
definitionMap.set('version', literal('19.1.0'));
|
|
32947
32703
|
// e.g. `type: MyDirective`
|
|
32948
32704
|
definitionMap.set('type', meta.type.value);
|
|
32949
32705
|
if (meta.isStandalone !== undefined) {
|
|
@@ -33362,7 +33118,7 @@ const MINIMUM_PARTIAL_LINKER_VERSION$4 = '12.0.0';
|
|
|
33362
33118
|
function compileDeclareFactoryFunction(meta) {
|
|
33363
33119
|
const definitionMap = new DefinitionMap();
|
|
33364
33120
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$4));
|
|
33365
|
-
definitionMap.set('version', literal('19.1.0
|
|
33121
|
+
definitionMap.set('version', literal('19.1.0'));
|
|
33366
33122
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
33367
33123
|
definitionMap.set('type', meta.type.value);
|
|
33368
33124
|
definitionMap.set('deps', compileDependencies(meta.deps));
|
|
@@ -33397,7 +33153,7 @@ function compileDeclareInjectableFromMetadata(meta) {
|
|
|
33397
33153
|
function createInjectableDefinitionMap(meta) {
|
|
33398
33154
|
const definitionMap = new DefinitionMap();
|
|
33399
33155
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$3));
|
|
33400
|
-
definitionMap.set('version', literal('19.1.0
|
|
33156
|
+
definitionMap.set('version', literal('19.1.0'));
|
|
33401
33157
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
33402
33158
|
definitionMap.set('type', meta.type.value);
|
|
33403
33159
|
// Only generate providedIn property if it has a non-null value
|
|
@@ -33448,7 +33204,7 @@ function compileDeclareInjectorFromMetadata(meta) {
|
|
|
33448
33204
|
function createInjectorDefinitionMap(meta) {
|
|
33449
33205
|
const definitionMap = new DefinitionMap();
|
|
33450
33206
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$2));
|
|
33451
|
-
definitionMap.set('version', literal('19.1.0
|
|
33207
|
+
definitionMap.set('version', literal('19.1.0'));
|
|
33452
33208
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
33453
33209
|
definitionMap.set('type', meta.type.value);
|
|
33454
33210
|
definitionMap.set('providers', meta.providers);
|
|
@@ -33481,7 +33237,7 @@ function createNgModuleDefinitionMap(meta) {
|
|
|
33481
33237
|
throw new Error('Invalid path! Local compilation mode should not get into the partial compilation path');
|
|
33482
33238
|
}
|
|
33483
33239
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$1));
|
|
33484
|
-
definitionMap.set('version', literal('19.1.0
|
|
33240
|
+
definitionMap.set('version', literal('19.1.0'));
|
|
33485
33241
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
33486
33242
|
definitionMap.set('type', meta.type.value);
|
|
33487
33243
|
// We only generate the keys in the metadata if the arrays contain values.
|
|
@@ -33532,7 +33288,7 @@ function compileDeclarePipeFromMetadata(meta) {
|
|
|
33532
33288
|
function createPipeDefinitionMap(meta) {
|
|
33533
33289
|
const definitionMap = new DefinitionMap();
|
|
33534
33290
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION));
|
|
33535
|
-
definitionMap.set('version', literal('19.1.0
|
|
33291
|
+
definitionMap.set('version', literal('19.1.0'));
|
|
33536
33292
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
33537
33293
|
// e.g. `type: MyPipe`
|
|
33538
33294
|
definitionMap.set('type', meta.type.value);
|
|
@@ -33565,5 +33321,5 @@ publishFacade(_global);
|
|
|
33565
33321
|
|
|
33566
33322
|
// This file is not used to build this module. It is only used during editing
|
|
33567
33323
|
|
|
33568
|
-
export { AST, ASTWithName, ASTWithSource, AbsoluteSourceSpan, ArrayType, ArrowFunctionExpr,
|
|
33324
|
+
export { AST, ASTWithName, ASTWithSource, AbsoluteSourceSpan, ArrayType, ArrowFunctionExpr, Attribute, Binary, BinaryOperator, BinaryOperatorExpr, BindingPipe, BindingType, Block, BlockParameter, BoundElementProperty, BuiltinType, BuiltinTypeName, CUSTOM_ELEMENTS_SCHEMA, Call, Chain, ChangeDetectionStrategy, CommaExpr, Comment, CompilerConfig, Conditional, ConditionalExpr, ConstantPool, CssSelector, DEFAULT_INTERPOLATION_CONFIG, DYNAMIC_TYPE, DeclareFunctionStmt, DeclareVarStmt, DomElementSchemaRegistry, DynamicImportExpr, EOF, Element, ElementSchemaRegistry, EmitterVisitorContext, EmptyExpr$1 as EmptyExpr, Expansion, ExpansionCase, Expression, ExpressionBinding, ExpressionStatement, ExpressionType, ExternalExpr, ExternalReference, FactoryTarget$1 as FactoryTarget, FunctionExpr, HtmlParser, HtmlTagDefinition, I18NHtmlParser, IfStmt, ImplicitReceiver, InstantiateExpr, Interpolation$1 as Interpolation, InterpolationConfig, InvokeFunctionExpr, JSDocComment, JitEvaluator, KeyedRead, KeyedWrite, LeadingComment, LetDeclaration, Lexer, LiteralArray, LiteralArrayExpr, LiteralExpr, LiteralMap, LiteralMapExpr, LiteralPrimitive, LocalizedString, MapType, MessageBundle, NONE_TYPE, NO_ERRORS_SCHEMA, NodeWithI18n, NonNullAssert, NotExpr, ParseError, ParseErrorLevel, ParseLocation, ParseSourceFile, ParseSourceSpan, ParseSpan, ParseTreeResult, ParsedEvent, ParsedEventType, ParsedProperty, ParsedPropertyType, ParsedVariable, Parser, ParserError, PrefixNot, PropertyRead, PropertyWrite, R3BoundTarget, Identifiers as R3Identifiers, R3NgModuleMetadataKind, R3SelectorScopeMode, R3TargetBinder, R3TemplateDependencyKind, ReadKeyExpr, ReadPropExpr, ReadVarExpr, RecursiveAstVisitor, RecursiveVisitor, ResourceLoader, ReturnStatement, STRING_TYPE, SafeCall, SafeKeyedRead, SafePropertyRead, SelectorContext, SelectorListContext, SelectorMatcher, Serializer, SplitInterpolation, Statement, StmtModifier, TagContentType, TaggedTemplateExpr, TemplateBindingParseResult, TemplateLiteral, TemplateLiteralElement, Text, ThisReceiver, BlockNode as TmplAstBlockNode, BoundAttribute as TmplAstBoundAttribute, BoundDeferredTrigger as TmplAstBoundDeferredTrigger, BoundEvent as TmplAstBoundEvent, BoundText as TmplAstBoundText, Content as TmplAstContent, DeferredBlock as TmplAstDeferredBlock, DeferredBlockError as TmplAstDeferredBlockError, DeferredBlockLoading as TmplAstDeferredBlockLoading, DeferredBlockPlaceholder as TmplAstDeferredBlockPlaceholder, DeferredTrigger as TmplAstDeferredTrigger, Element$1 as TmplAstElement, ForLoopBlock as TmplAstForLoopBlock, ForLoopBlockEmpty as TmplAstForLoopBlockEmpty, 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, WrappedNodeExpr, WriteKeyExpr, WritePropExpr, WriteVarExpr, Xliff, Xliff2, Xmb, XmlParser, Xtb, 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, findMatchingDirectivesAndPipes, getHtmlTagDefinition, getNsPrefix, getSafePropertyAccessString, identifierName, isNgContainer, isNgContent, isNgTemplate, jsDocComment, leadingComment, literal, literalMap, makeBindingParser, mergeNsAndName, output_ast as outputAst, parseHostBindings, parseTemplate, preserveWhitespacesDefault, publishFacade, r3JitTypeSourceSpan, sanitizeIdentifier, splitNsName, visitAll$1 as tmplAstVisitAll, verifyHostBindings, visitAll };
|
|
33569
33325
|
//# sourceMappingURL=compiler.mjs.map
|