@angular/core 20.0.0-next.5 → 20.0.0-next.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{api.d-mxcXqDpA.d.ts → api.d-DQLNOR5l.d.ts} +4 -4
- package/{discovery.d-CyYpOJ7j.d.ts → discovery.d-CFs2MaLO.d.ts} +7 -17
- package/{event_dispatcher.d-PWnbqZDx.d.ts → event_dispatcher.d-DlbccpYq.d.ts} +3 -3
- package/fesm2022/{attribute-B17mgaqe.mjs → attribute-BWp59EjE.mjs} +3 -3
- package/fesm2022/{attribute-B17mgaqe.mjs.map → attribute-BWp59EjE.mjs.map} +1 -1
- package/fesm2022/core.mjs +20 -18
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/{debug_node-xKpCIZm-.mjs → debug_node-z_3NG8qT.mjs} +77 -68
- package/fesm2022/{debug_node-xKpCIZm-.mjs.map → debug_node-z_3NG8qT.mjs.map} +1 -1
- package/fesm2022/primitives/di.mjs +1 -1
- package/fesm2022/primitives/event-dispatch.mjs +2 -2
- package/fesm2022/primitives/signals.mjs +5 -5
- package/fesm2022/{resource-BPpYEDic.mjs → resource-CPPwEcg7.mjs} +6 -8
- package/fesm2022/resource-CPPwEcg7.mjs.map +1 -0
- package/fesm2022/{root_effect_scheduler-D0_b1cf_.mjs → root_effect_scheduler-VSXfCzDX.mjs} +46 -15
- package/fesm2022/root_effect_scheduler-VSXfCzDX.mjs.map +1 -0
- package/fesm2022/rxjs-interop.mjs +7 -84
- package/fesm2022/rxjs-interop.mjs.map +1 -1
- package/fesm2022/{signal-DhRAAi7R.mjs → signal-B6pMq7KS.mjs} +3 -3
- package/fesm2022/{signal-DhRAAi7R.mjs.map → signal-B6pMq7KS.mjs.map} +1 -1
- package/fesm2022/testing.mjs +165 -103
- package/fesm2022/testing.mjs.map +1 -1
- package/fesm2022/{untracked-DaaW3JJm.mjs → untracked-Bz5WMeU1.mjs} +4 -4
- package/fesm2022/{untracked-DaaW3JJm.mjs.map → untracked-Bz5WMeU1.mjs.map} +1 -1
- package/fesm2022/{weak_ref-DrMdAIDh.mjs → weak_ref-BaIq-pgY.mjs} +3 -3
- package/fesm2022/{weak_ref-DrMdAIDh.mjs.map → weak_ref-BaIq-pgY.mjs.map} +1 -1
- package/{graph.d-StYigYp1.d.ts → graph.d-BcIOep_B.d.ts} +3 -3
- package/index.d.ts +18 -20
- package/{ng_i18n_closure_mode.d-DLxSUiDr.d.ts → ng_i18n_closure_mode.d-C9d2CaSt.d.ts} +5 -5
- package/package.json +2 -2
- package/primitives/di/index.d.ts +1 -1
- package/primitives/event-dispatch/index.d.ts +3 -3
- package/primitives/signals/index.d.ts +6 -6
- package/rxjs-interop/index.d.ts +8 -17
- package/schematics/bundles/{apply_import_manager-C-ysxahq.js → apply_import_manager-DnMqg1pY.js} +6 -6
- package/schematics/bundles/{change_tracker-0Ktek5Xl.js → change_tracker-UMPkv-eH.js} +3 -3
- package/schematics/bundles/{checker-DqUKCGda.js → checker-BFBQyesT.js} +20 -3
- package/schematics/bundles/cleanup-unused-imports.js +25 -20
- package/schematics/bundles/{compiler-CuoiHqkc.js → compiler-BQ7R7w2v.js} +962 -297
- package/schematics/bundles/compiler_host-CAfDJO3W.js +1 -1
- package/schematics/bundles/control-flow-migration.js +2 -2
- package/schematics/bundles/document-core.js +12 -12
- package/schematics/bundles/imports-CIX-JgAN.js +1 -1
- package/schematics/bundles/{index-WFXCe5Q0.js → index-Cv4Q415G.js} +127 -36
- package/schematics/bundles/{index-CwFQSYXZ.js → index-D8tMJPKa.js} +10 -10
- package/schematics/bundles/inject-flags.js +14 -14
- package/schematics/bundles/inject-migration.js +4 -4
- package/schematics/bundles/leading_space-D9nQ8UQC.js +1 -1
- package/schematics/bundles/{migrate_ts_type_references-BNuHufqZ.js → migrate_ts_type_references-Cq_ZBuT4.js} +21 -21
- package/schematics/bundles/ng_decorators-DznZ5jMl.js +1 -1
- package/schematics/bundles/nodes-B16H9JUd.js +1 -1
- package/schematics/bundles/output-migration.js +80 -22
- package/schematics/bundles/{run_in_devkit-CmHxABFr.js → project_paths-ql6qcf_c.js} +254 -244
- package/schematics/bundles/project_tsconfig_paths-CDVxT6Ov.js +1 -1
- package/schematics/bundles/property_name-BBwFuqMe.js +1 -1
- package/schematics/bundles/route-lazy-loading.js +4 -4
- package/schematics/bundles/self-closing-tags-migration.js +20 -15
- package/schematics/bundles/signal-input-migration.js +26 -21
- package/schematics/bundles/signal-queries-migration.js +32 -27
- package/schematics/bundles/signals.js +8 -8
- package/schematics/bundles/standalone-migration.js +5 -5
- package/schematics/bundles/symbol-VPWguRxr.js +1 -1
- package/schematics/bundles/test-bed-get.js +13 -13
- package/{signal.d-BeaTIeOE.d.ts → signal.d-E0e5nW1p.d.ts} +4 -4
- package/testing/index.d.ts +9 -25
- package/{weak_ref.d-ttyj86RV.d.ts → weak_ref.d-eGOEP9S1.d.ts} +2 -2
- package/fesm2022/resource-BPpYEDic.mjs.map +0 -1
- package/fesm2022/root_effect_scheduler-D0_b1cf_.mjs.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v20.0.0-next.
|
|
3
|
+
* @license Angular v20.0.0-next.6
|
|
4
4
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
var schematics = require('@angular-devkit/schematics');
|
|
10
10
|
var p = require('path');
|
|
11
11
|
var compiler_host = require('./compiler_host-CAfDJO3W.js');
|
|
12
|
-
var compiler = require('./compiler-
|
|
12
|
+
var compiler = require('./compiler-BQ7R7w2v.js');
|
|
13
13
|
var ts = require('typescript');
|
|
14
14
|
var project_tsconfig_paths = require('./project_tsconfig_paths-CDVxT6Ov.js');
|
|
15
15
|
require('@angular-devkit/core');
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v20.0.0-next.
|
|
3
|
+
* @license Angular v20.0.0-next.6
|
|
4
4
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
7
7
|
'use strict';
|
|
8
8
|
|
|
9
|
-
require('./compiler-
|
|
9
|
+
require('./compiler-BQ7R7w2v.js');
|
|
10
10
|
require('typescript');
|
|
11
|
-
var checker = require('./checker-
|
|
11
|
+
var checker = require('./checker-BFBQyesT.js');
|
|
12
12
|
require('os');
|
|
13
|
-
var apply_import_manager = require('./apply_import_manager-
|
|
14
|
-
require('./index-
|
|
13
|
+
var apply_import_manager = require('./apply_import_manager-DnMqg1pY.js');
|
|
14
|
+
require('./index-Cv4Q415G.js');
|
|
15
15
|
require('path');
|
|
16
|
-
var
|
|
16
|
+
var project_paths = require('./project_paths-ql6qcf_c.js');
|
|
17
17
|
var imports = require('./imports-CIX-JgAN.js');
|
|
18
18
|
require('@angular-devkit/core');
|
|
19
19
|
require('node:path/posix');
|
|
@@ -24,7 +24,7 @@ require('@angular-devkit/schematics');
|
|
|
24
24
|
require('./project_tsconfig_paths-CDVxT6Ov.js');
|
|
25
25
|
|
|
26
26
|
/** Migration that moves the import of `DOCUMENT` from `core` to `common`. */
|
|
27
|
-
class DocumentCoreMigration extends
|
|
27
|
+
class DocumentCoreMigration extends project_paths.TsurgeFunnelMigration {
|
|
28
28
|
async analyze(info) {
|
|
29
29
|
const replacements = [];
|
|
30
30
|
let importManager = null;
|
|
@@ -49,10 +49,10 @@ class DocumentCoreMigration extends run_in_devkit.TsurgeFunnelMigration {
|
|
|
49
49
|
if (importManager !== null) {
|
|
50
50
|
apply_import_manager.applyImportManagerChanges(importManager, replacements, info.sourceFiles, info);
|
|
51
51
|
}
|
|
52
|
-
return
|
|
52
|
+
return project_paths.confirmAsSerializable({ replacements });
|
|
53
53
|
}
|
|
54
54
|
async migrate(globalData) {
|
|
55
|
-
return
|
|
55
|
+
return project_paths.confirmAsSerializable(globalData);
|
|
56
56
|
}
|
|
57
57
|
async combine(unitA, unitB) {
|
|
58
58
|
const seen = new Set();
|
|
@@ -67,10 +67,10 @@ class DocumentCoreMigration extends run_in_devkit.TsurgeFunnelMigration {
|
|
|
67
67
|
}
|
|
68
68
|
});
|
|
69
69
|
});
|
|
70
|
-
return
|
|
70
|
+
return project_paths.confirmAsSerializable({ replacements: combined });
|
|
71
71
|
}
|
|
72
72
|
async globalMeta(combinedData) {
|
|
73
|
-
return
|
|
73
|
+
return project_paths.confirmAsSerializable(combinedData);
|
|
74
74
|
}
|
|
75
75
|
async stats() {
|
|
76
76
|
return { counters: {} };
|
|
@@ -86,7 +86,7 @@ class DocumentCoreMigration extends run_in_devkit.TsurgeFunnelMigration {
|
|
|
86
86
|
*/
|
|
87
87
|
function migrate() {
|
|
88
88
|
return async (tree) => {
|
|
89
|
-
await
|
|
89
|
+
await project_paths.runMigrationInDevkit({
|
|
90
90
|
tree,
|
|
91
91
|
getMigration: () => new DocumentCoreMigration(),
|
|
92
92
|
});
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v20.0.0-next.
|
|
3
|
+
* @license Angular v20.0.0-next.6
|
|
4
4
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
7
7
|
'use strict';
|
|
8
8
|
|
|
9
|
-
var compiler = require('./compiler-
|
|
9
|
+
var compiler = require('./compiler-BQ7R7w2v.js');
|
|
10
10
|
var ts = require('typescript');
|
|
11
11
|
var p = require('path');
|
|
12
|
-
var checker = require('./checker-
|
|
12
|
+
var checker = require('./checker-BFBQyesT.js');
|
|
13
13
|
require('os');
|
|
14
14
|
|
|
15
15
|
function _interopNamespaceDefault(e) {
|
|
@@ -59,7 +59,12 @@ class XmlParser extends compiler.Parser {
|
|
|
59
59
|
}
|
|
60
60
|
parse(source, url, options = {}) {
|
|
61
61
|
// Blocks and let declarations aren't supported in an XML context.
|
|
62
|
-
return super.parse(source, url, {
|
|
62
|
+
return super.parse(source, url, {
|
|
63
|
+
...options,
|
|
64
|
+
tokenizeBlocks: false,
|
|
65
|
+
tokenizeLet: false,
|
|
66
|
+
selectorlessEnabled: false,
|
|
67
|
+
});
|
|
63
68
|
}
|
|
64
69
|
}
|
|
65
70
|
|
|
@@ -283,6 +288,8 @@ class XliffParser {
|
|
|
283
288
|
visitBlock(block, context) { }
|
|
284
289
|
visitBlockParameter(parameter, context) { }
|
|
285
290
|
visitLetDeclaration(decl, context) { }
|
|
291
|
+
visitComponent(component, context) { }
|
|
292
|
+
visitDirective(directive, context) { }
|
|
286
293
|
_addError(node, message) {
|
|
287
294
|
this._errors.push(new compiler.I18nError(node.sourceSpan, message));
|
|
288
295
|
}
|
|
@@ -338,6 +345,12 @@ let XmlToI18n$1 = class XmlToI18n {
|
|
|
338
345
|
visitBlock(block, context) { }
|
|
339
346
|
visitBlockParameter(parameter, context) { }
|
|
340
347
|
visitLetDeclaration(decl, context) { }
|
|
348
|
+
visitComponent(component, context) {
|
|
349
|
+
this._addError(component, 'Unexpected node');
|
|
350
|
+
}
|
|
351
|
+
visitDirective(directive, context) {
|
|
352
|
+
this._addError(directive, 'Unexpected node');
|
|
353
|
+
}
|
|
341
354
|
_addError(node, message) {
|
|
342
355
|
this._errors.push(new compiler.I18nError(node.sourceSpan, message));
|
|
343
356
|
}
|
|
@@ -598,6 +611,8 @@ class Xliff2Parser {
|
|
|
598
611
|
visitBlock(block, context) { }
|
|
599
612
|
visitBlockParameter(parameter, context) { }
|
|
600
613
|
visitLetDeclaration(decl, context) { }
|
|
614
|
+
visitComponent(component, context) { }
|
|
615
|
+
visitDirective(directive, context) { }
|
|
601
616
|
_addError(node, message) {
|
|
602
617
|
this._errors.push(new compiler.I18nError(node.sourceSpan, message));
|
|
603
618
|
}
|
|
@@ -670,6 +685,12 @@ class XmlToI18n {
|
|
|
670
685
|
visitBlock(block, context) { }
|
|
671
686
|
visitBlockParameter(parameter, context) { }
|
|
672
687
|
visitLetDeclaration(decl, context) { }
|
|
688
|
+
visitComponent(component, context) {
|
|
689
|
+
this._addError(component, 'Unexpected node');
|
|
690
|
+
}
|
|
691
|
+
visitDirective(directive, context) {
|
|
692
|
+
this._addError(directive, 'Unexpected node');
|
|
693
|
+
}
|
|
673
694
|
_addError(node, message) {
|
|
674
695
|
this._errors.push(new compiler.I18nError(node.sourceSpan, message));
|
|
675
696
|
}
|
|
@@ -871,7 +892,7 @@ const MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION = '18.0.0';
|
|
|
871
892
|
function compileDeclareClassMetadata(metadata) {
|
|
872
893
|
const definitionMap = new compiler.DefinitionMap();
|
|
873
894
|
definitionMap.set('minVersion', compiler.literal(MINIMUM_PARTIAL_LINKER_VERSION$5));
|
|
874
|
-
definitionMap.set('version', compiler.literal('20.0.0-next.
|
|
895
|
+
definitionMap.set('version', compiler.literal('20.0.0-next.6'));
|
|
875
896
|
definitionMap.set('ngImport', compiler.importExpr(compiler.Identifiers.core));
|
|
876
897
|
definitionMap.set('type', metadata.type);
|
|
877
898
|
definitionMap.set('decorators', metadata.decorators);
|
|
@@ -889,7 +910,7 @@ function compileComponentDeclareClassMetadata(metadata, dependencies) {
|
|
|
889
910
|
callbackReturnDefinitionMap.set('ctorParameters', metadata.ctorParameters ?? compiler.literal(null));
|
|
890
911
|
callbackReturnDefinitionMap.set('propDecorators', metadata.propDecorators ?? compiler.literal(null));
|
|
891
912
|
definitionMap.set('minVersion', compiler.literal(MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION));
|
|
892
|
-
definitionMap.set('version', compiler.literal('20.0.0-next.
|
|
913
|
+
definitionMap.set('version', compiler.literal('20.0.0-next.6'));
|
|
893
914
|
definitionMap.set('ngImport', compiler.importExpr(compiler.Identifiers.core));
|
|
894
915
|
definitionMap.set('type', metadata.type);
|
|
895
916
|
definitionMap.set('resolveDeferredDeps', compileComponentMetadataAsyncResolver(dependencies));
|
|
@@ -984,7 +1005,7 @@ function createDirectiveDefinitionMap(meta) {
|
|
|
984
1005
|
const definitionMap = new compiler.DefinitionMap();
|
|
985
1006
|
const minVersion = getMinimumVersionForPartialOutput(meta);
|
|
986
1007
|
definitionMap.set('minVersion', compiler.literal(minVersion));
|
|
987
|
-
definitionMap.set('version', compiler.literal('20.0.0-next.
|
|
1008
|
+
definitionMap.set('version', compiler.literal('20.0.0-next.6'));
|
|
988
1009
|
// e.g. `type: MyDirective`
|
|
989
1010
|
definitionMap.set('type', meta.type.value);
|
|
990
1011
|
if (meta.isStandalone !== undefined) {
|
|
@@ -1400,7 +1421,7 @@ const MINIMUM_PARTIAL_LINKER_VERSION$4 = '12.0.0';
|
|
|
1400
1421
|
function compileDeclareFactoryFunction(meta) {
|
|
1401
1422
|
const definitionMap = new compiler.DefinitionMap();
|
|
1402
1423
|
definitionMap.set('minVersion', compiler.literal(MINIMUM_PARTIAL_LINKER_VERSION$4));
|
|
1403
|
-
definitionMap.set('version', compiler.literal('20.0.0-next.
|
|
1424
|
+
definitionMap.set('version', compiler.literal('20.0.0-next.6'));
|
|
1404
1425
|
definitionMap.set('ngImport', compiler.importExpr(compiler.Identifiers.core));
|
|
1405
1426
|
definitionMap.set('type', meta.type.value);
|
|
1406
1427
|
definitionMap.set('deps', compileDependencies(meta.deps));
|
|
@@ -1435,7 +1456,7 @@ function compileDeclareInjectableFromMetadata(meta) {
|
|
|
1435
1456
|
function createInjectableDefinitionMap(meta) {
|
|
1436
1457
|
const definitionMap = new compiler.DefinitionMap();
|
|
1437
1458
|
definitionMap.set('minVersion', compiler.literal(MINIMUM_PARTIAL_LINKER_VERSION$3));
|
|
1438
|
-
definitionMap.set('version', compiler.literal('20.0.0-next.
|
|
1459
|
+
definitionMap.set('version', compiler.literal('20.0.0-next.6'));
|
|
1439
1460
|
definitionMap.set('ngImport', compiler.importExpr(compiler.Identifiers.core));
|
|
1440
1461
|
definitionMap.set('type', meta.type.value);
|
|
1441
1462
|
// Only generate providedIn property if it has a non-null value
|
|
@@ -1486,7 +1507,7 @@ function compileDeclareInjectorFromMetadata(meta) {
|
|
|
1486
1507
|
function createInjectorDefinitionMap(meta) {
|
|
1487
1508
|
const definitionMap = new compiler.DefinitionMap();
|
|
1488
1509
|
definitionMap.set('minVersion', compiler.literal(MINIMUM_PARTIAL_LINKER_VERSION$2));
|
|
1489
|
-
definitionMap.set('version', compiler.literal('20.0.0-next.
|
|
1510
|
+
definitionMap.set('version', compiler.literal('20.0.0-next.6'));
|
|
1490
1511
|
definitionMap.set('ngImport', compiler.importExpr(compiler.Identifiers.core));
|
|
1491
1512
|
definitionMap.set('type', meta.type.value);
|
|
1492
1513
|
definitionMap.set('providers', meta.providers);
|
|
@@ -1519,7 +1540,7 @@ function createNgModuleDefinitionMap(meta) {
|
|
|
1519
1540
|
throw new Error('Invalid path! Local compilation mode should not get into the partial compilation path');
|
|
1520
1541
|
}
|
|
1521
1542
|
definitionMap.set('minVersion', compiler.literal(MINIMUM_PARTIAL_LINKER_VERSION$1));
|
|
1522
|
-
definitionMap.set('version', compiler.literal('20.0.0-next.
|
|
1543
|
+
definitionMap.set('version', compiler.literal('20.0.0-next.6'));
|
|
1523
1544
|
definitionMap.set('ngImport', compiler.importExpr(compiler.Identifiers.core));
|
|
1524
1545
|
definitionMap.set('type', meta.type.value);
|
|
1525
1546
|
// We only generate the keys in the metadata if the arrays contain values.
|
|
@@ -1570,7 +1591,7 @@ function compileDeclarePipeFromMetadata(meta) {
|
|
|
1570
1591
|
function createPipeDefinitionMap(meta) {
|
|
1571
1592
|
const definitionMap = new compiler.DefinitionMap();
|
|
1572
1593
|
definitionMap.set('minVersion', compiler.literal(MINIMUM_PARTIAL_LINKER_VERSION));
|
|
1573
|
-
definitionMap.set('version', compiler.literal('20.0.0-next.
|
|
1594
|
+
definitionMap.set('version', compiler.literal('20.0.0-next.6'));
|
|
1574
1595
|
definitionMap.set('ngImport', compiler.importExpr(compiler.Identifiers.core));
|
|
1575
1596
|
// e.g. `type: MyPipe`
|
|
1576
1597
|
definitionMap.set('type', meta.type.value);
|
|
@@ -10849,7 +10870,7 @@ class PipeDecoratorHandler {
|
|
|
10849
10870
|
* @description
|
|
10850
10871
|
* Entry point for all public APIs of the compiler-cli package.
|
|
10851
10872
|
*/
|
|
10852
|
-
new compiler.Version('20.0.0-next.
|
|
10873
|
+
new compiler.Version('20.0.0-next.6');
|
|
10853
10874
|
|
|
10854
10875
|
/**
|
|
10855
10876
|
* Whether a given decorator should be treated as an Angular decorator.
|
|
@@ -14059,6 +14080,7 @@ let TemplateVisitor$1 = class TemplateVisitor extends compiler.RecursiveVisitor
|
|
|
14059
14080
|
this.visitAll(element.references);
|
|
14060
14081
|
this.visitAll(element.inputs);
|
|
14061
14082
|
this.visitAll(element.attributes);
|
|
14083
|
+
this.visitAll(element.directives);
|
|
14062
14084
|
this.visitAll(element.children);
|
|
14063
14085
|
this.visitAll(element.outputs);
|
|
14064
14086
|
}
|
|
@@ -14067,6 +14089,7 @@ let TemplateVisitor$1 = class TemplateVisitor extends compiler.RecursiveVisitor
|
|
|
14067
14089
|
if (templateIdentifier !== null) {
|
|
14068
14090
|
this.identifiers.add(templateIdentifier);
|
|
14069
14091
|
}
|
|
14092
|
+
this.visitAll(template.directives);
|
|
14070
14093
|
this.visitAll(template.variables);
|
|
14071
14094
|
this.visitAll(template.attributes);
|
|
14072
14095
|
this.visitAll(template.templateAttrs);
|
|
@@ -14152,6 +14175,12 @@ let TemplateVisitor$1 = class TemplateVisitor extends compiler.RecursiveVisitor
|
|
|
14152
14175
|
}
|
|
14153
14176
|
this.visitExpression(decl.value);
|
|
14154
14177
|
}
|
|
14178
|
+
visitComponent(component) {
|
|
14179
|
+
throw new Error('TODO');
|
|
14180
|
+
}
|
|
14181
|
+
visitDirective(directive) {
|
|
14182
|
+
throw new Error('TODO');
|
|
14183
|
+
}
|
|
14155
14184
|
/** Creates an identifier for a template element or template node. */
|
|
14156
14185
|
elementOrTemplateToIdentifier(node) {
|
|
14157
14186
|
// If this node has already been seen, return the cached result.
|
|
@@ -14900,6 +14929,7 @@ class TemplateVisitor extends compiler.RecursiveAstVisitor {
|
|
|
14900
14929
|
this.visitAllNodes(element.attributes);
|
|
14901
14930
|
this.visitAllNodes(element.inputs);
|
|
14902
14931
|
this.visitAllNodes(element.outputs);
|
|
14932
|
+
this.visitAllNodes(element.directives);
|
|
14903
14933
|
this.visitAllNodes(element.references);
|
|
14904
14934
|
this.visitAllNodes(element.children);
|
|
14905
14935
|
}
|
|
@@ -14913,6 +14943,7 @@ class TemplateVisitor extends compiler.RecursiveAstVisitor {
|
|
|
14913
14943
|
this.visitAllNodes(template.inputs);
|
|
14914
14944
|
this.visitAllNodes(template.outputs);
|
|
14915
14945
|
}
|
|
14946
|
+
this.visitAllNodes(template.directives);
|
|
14916
14947
|
// TODO(crisbeto): remove this condition when deleting `canVisitStructuralAttributes`.
|
|
14917
14948
|
if (this.check.canVisitStructuralAttributes || isInlineTemplate) {
|
|
14918
14949
|
// `templateAttrs` aren't transferred over to the inner element so we always have to visit them.
|
|
@@ -14989,6 +15020,20 @@ class TemplateVisitor extends compiler.RecursiveAstVisitor {
|
|
|
14989
15020
|
visitLetDeclaration(decl) {
|
|
14990
15021
|
this.visitAst(decl.value);
|
|
14991
15022
|
}
|
|
15023
|
+
visitComponent(component) {
|
|
15024
|
+
this.visitAllNodes(component.attributes);
|
|
15025
|
+
this.visitAllNodes(component.inputs);
|
|
15026
|
+
this.visitAllNodes(component.outputs);
|
|
15027
|
+
this.visitAllNodes(component.directives);
|
|
15028
|
+
this.visitAllNodes(component.references);
|
|
15029
|
+
this.visitAllNodes(component.children);
|
|
15030
|
+
}
|
|
15031
|
+
visitDirective(directive) {
|
|
15032
|
+
this.visitAllNodes(directive.attributes);
|
|
15033
|
+
this.visitAllNodes(directive.inputs);
|
|
15034
|
+
this.visitAllNodes(directive.outputs);
|
|
15035
|
+
this.visitAllNodes(directive.references);
|
|
15036
|
+
}
|
|
14992
15037
|
getDiagnostics(template) {
|
|
14993
15038
|
this.diagnostics = [];
|
|
14994
15039
|
this.visitAllNodes(template);
|
|
@@ -15075,7 +15120,7 @@ function buildDiagnosticForSignal(ctx, node, component) {
|
|
|
15075
15120
|
}
|
|
15076
15121
|
return [];
|
|
15077
15122
|
}
|
|
15078
|
-
const factory$
|
|
15123
|
+
const factory$c = {
|
|
15079
15124
|
code: checker.ErrorCode.INTERPOLATED_SIGNAL_NOT_INVOKED,
|
|
15080
15125
|
name: checker.ExtendedTemplateDiagnosticName.INTERPOLATED_SIGNAL_NOT_INVOKED,
|
|
15081
15126
|
create: () => new InterpolatedSignalCheck(),
|
|
@@ -15101,7 +15146,7 @@ class InvalidBananaInBoxCheck extends TemplateCheckWithVisitor {
|
|
|
15101
15146
|
return [diagnostic];
|
|
15102
15147
|
}
|
|
15103
15148
|
}
|
|
15104
|
-
const factory$
|
|
15149
|
+
const factory$b = {
|
|
15105
15150
|
code: checker.ErrorCode.INVALID_BANANA_IN_BOX,
|
|
15106
15151
|
name: checker.ExtendedTemplateDiagnosticName.INVALID_BANANA_IN_BOX,
|
|
15107
15152
|
create: () => new InvalidBananaInBoxCheck(),
|
|
@@ -15162,7 +15207,7 @@ class MissingControlFlowDirectiveCheck extends TemplateCheckWithVisitor {
|
|
|
15162
15207
|
return [diagnostic];
|
|
15163
15208
|
}
|
|
15164
15209
|
}
|
|
15165
|
-
const factory$
|
|
15210
|
+
const factory$a = {
|
|
15166
15211
|
code: checker.ErrorCode.MISSING_CONTROL_FLOW_DIRECTIVE,
|
|
15167
15212
|
name: checker.ExtendedTemplateDiagnosticName.MISSING_CONTROL_FLOW_DIRECTIVE,
|
|
15168
15213
|
create: (options) => {
|
|
@@ -15195,7 +15240,7 @@ class MissingNgForOfLetCheck extends TemplateCheckWithVisitor {
|
|
|
15195
15240
|
return [diagnostic];
|
|
15196
15241
|
}
|
|
15197
15242
|
}
|
|
15198
|
-
const factory$
|
|
15243
|
+
const factory$9 = {
|
|
15199
15244
|
code: checker.ErrorCode.MISSING_NGFOROF_LET,
|
|
15200
15245
|
name: checker.ExtendedTemplateDiagnosticName.MISSING_NGFOROF_LET,
|
|
15201
15246
|
create: () => new MissingNgForOfLetCheck(),
|
|
@@ -15240,7 +15285,7 @@ class NullishCoalescingNotNullableCheck extends TemplateCheckWithVisitor {
|
|
|
15240
15285
|
return [diagnostic];
|
|
15241
15286
|
}
|
|
15242
15287
|
}
|
|
15243
|
-
const factory$
|
|
15288
|
+
const factory$8 = {
|
|
15244
15289
|
code: checker.ErrorCode.NULLISH_COALESCING_NOT_NULLABLE,
|
|
15245
15290
|
name: checker.ExtendedTemplateDiagnosticName.NULLISH_COALESCING_NOT_NULLABLE,
|
|
15246
15291
|
create: (options) => {
|
|
@@ -15297,7 +15342,7 @@ class OptionalChainNotNullableCheck extends TemplateCheckWithVisitor {
|
|
|
15297
15342
|
return [diagnostic];
|
|
15298
15343
|
}
|
|
15299
15344
|
}
|
|
15300
|
-
const factory$
|
|
15345
|
+
const factory$7 = {
|
|
15301
15346
|
code: checker.ErrorCode.OPTIONAL_CHAIN_NOT_NULLABLE,
|
|
15302
15347
|
name: checker.ExtendedTemplateDiagnosticName.OPTIONAL_CHAIN_NOT_NULLABLE,
|
|
15303
15348
|
create: (options) => {
|
|
@@ -15337,7 +15382,7 @@ class NgSkipHydrationSpec extends TemplateCheckWithVisitor {
|
|
|
15337
15382
|
return [];
|
|
15338
15383
|
}
|
|
15339
15384
|
}
|
|
15340
|
-
const factory$
|
|
15385
|
+
const factory$6 = {
|
|
15341
15386
|
code: checker.ErrorCode.SKIP_HYDRATION_NOT_STATIC,
|
|
15342
15387
|
name: checker.ExtendedTemplateDiagnosticName.SKIP_HYDRATION_NOT_STATIC,
|
|
15343
15388
|
create: () => new NgSkipHydrationSpec(),
|
|
@@ -15361,7 +15406,7 @@ class SuffixNotSupportedCheck extends TemplateCheckWithVisitor {
|
|
|
15361
15406
|
return [diagnostic];
|
|
15362
15407
|
}
|
|
15363
15408
|
}
|
|
15364
|
-
const factory$
|
|
15409
|
+
const factory$5 = {
|
|
15365
15410
|
code: checker.ErrorCode.SUFFIX_NOT_SUPPORTED,
|
|
15366
15411
|
name: checker.ExtendedTemplateDiagnosticName.SUFFIX_NOT_SUPPORTED,
|
|
15367
15412
|
create: () => new SuffixNotSupportedCheck(),
|
|
@@ -15406,7 +15451,7 @@ class TextAttributeNotBindingSpec extends TemplateCheckWithVisitor {
|
|
|
15406
15451
|
return [diagnostic];
|
|
15407
15452
|
}
|
|
15408
15453
|
}
|
|
15409
|
-
const factory$
|
|
15454
|
+
const factory$4 = {
|
|
15410
15455
|
code: checker.ErrorCode.TEXT_ATTRIBUTE_NOT_BINDING,
|
|
15411
15456
|
name: checker.ExtendedTemplateDiagnosticName.TEXT_ATTRIBUTE_NOT_BINDING,
|
|
15412
15457
|
create: () => new TextAttributeNotBindingSpec(),
|
|
@@ -15456,17 +15501,17 @@ function assertExpressionInvoked(expression, component, node, expressionText, ct
|
|
|
15456
15501
|
const symbol = ctx.templateTypeChecker.getSymbolOfNode(expression, component);
|
|
15457
15502
|
if (symbol !== null && symbol.kind === checker.SymbolKind.Expression) {
|
|
15458
15503
|
if (symbol.tsType.getCallSignatures()?.length > 0) {
|
|
15459
|
-
const fullExpressionText = generateStringFromExpression(expression, expressionText);
|
|
15504
|
+
const fullExpressionText = generateStringFromExpression$1(expression, expressionText);
|
|
15460
15505
|
const errorString = `Function in event binding should be invoked: ${fullExpressionText}()`;
|
|
15461
15506
|
return [ctx.makeTemplateDiagnostic(node.sourceSpan, errorString)];
|
|
15462
15507
|
}
|
|
15463
15508
|
}
|
|
15464
15509
|
return [];
|
|
15465
15510
|
}
|
|
15466
|
-
function generateStringFromExpression(expression, source) {
|
|
15511
|
+
function generateStringFromExpression$1(expression, source) {
|
|
15467
15512
|
return source.substring(expression.span.start, expression.span.end);
|
|
15468
15513
|
}
|
|
15469
|
-
const factory$
|
|
15514
|
+
const factory$3 = {
|
|
15470
15515
|
code: checker.ErrorCode.UNINVOKED_FUNCTION_IN_EVENT_BINDING,
|
|
15471
15516
|
name: checker.ExtendedTemplateDiagnosticName.UNINVOKED_FUNCTION_IN_EVENT_BINDING,
|
|
15472
15517
|
create: () => new UninvokedFunctionInEventBindingSpec(),
|
|
@@ -15499,7 +15544,7 @@ class UnparenthesizedNullishCoalescing extends TemplateCheckWithVisitor {
|
|
|
15499
15544
|
return [];
|
|
15500
15545
|
}
|
|
15501
15546
|
}
|
|
15502
|
-
const factory$
|
|
15547
|
+
const factory$2 = {
|
|
15503
15548
|
code: checker.ErrorCode.UNPARENTHESIZED_NULLISH_COALESCING,
|
|
15504
15549
|
name: checker.ExtendedTemplateDiagnosticName.UNPARENTHESIZED_NULLISH_COALESCING,
|
|
15505
15550
|
create: () => new UnparenthesizedNullishCoalescing(),
|
|
@@ -15543,12 +15588,50 @@ class UnusedLetDeclarationCheck extends TemplateCheckWithVisitor {
|
|
|
15543
15588
|
return this.analysis.get(node);
|
|
15544
15589
|
}
|
|
15545
15590
|
}
|
|
15546
|
-
const factory = {
|
|
15591
|
+
const factory$1 = {
|
|
15547
15592
|
code: checker.ErrorCode.UNUSED_LET_DECLARATION,
|
|
15548
15593
|
name: checker.ExtendedTemplateDiagnosticName.UNUSED_LET_DECLARATION,
|
|
15549
15594
|
create: () => new UnusedLetDeclarationCheck(),
|
|
15550
15595
|
};
|
|
15551
15596
|
|
|
15597
|
+
/**
|
|
15598
|
+
* Ensures that track functions in @for loops are invoked.
|
|
15599
|
+
*/
|
|
15600
|
+
class UninvokedTrackFunctionCheck extends TemplateCheckWithVisitor {
|
|
15601
|
+
code = checker.ErrorCode.UNINVOKED_TRACK_FUNCTION;
|
|
15602
|
+
visitNode(ctx, component, node) {
|
|
15603
|
+
if (!(node instanceof compiler.ForLoopBlock) || !node.trackBy) {
|
|
15604
|
+
return [];
|
|
15605
|
+
}
|
|
15606
|
+
if (node.trackBy.ast instanceof compiler.Call || node.trackBy.ast instanceof compiler.SafeCall) {
|
|
15607
|
+
// If the method is called, skip it.
|
|
15608
|
+
return [];
|
|
15609
|
+
}
|
|
15610
|
+
if (!(node.trackBy.ast instanceof compiler.PropertyRead) &&
|
|
15611
|
+
!(node.trackBy.ast instanceof compiler.SafePropertyRead)) {
|
|
15612
|
+
// If the expression is not a property read, skip it.
|
|
15613
|
+
return [];
|
|
15614
|
+
}
|
|
15615
|
+
const symbol = ctx.templateTypeChecker.getSymbolOfNode(node.trackBy.ast, component);
|
|
15616
|
+
if (symbol !== null &&
|
|
15617
|
+
symbol.kind === checker.SymbolKind.Expression &&
|
|
15618
|
+
symbol.tsType.getCallSignatures()?.length > 0) {
|
|
15619
|
+
const fullExpressionText = generateStringFromExpression(node.trackBy.ast, node.trackBy.source || '');
|
|
15620
|
+
const errorString = `The track function in the @for block should be invoked: ${fullExpressionText}(/* arguments */)`;
|
|
15621
|
+
return [ctx.makeTemplateDiagnostic(node.sourceSpan, errorString)];
|
|
15622
|
+
}
|
|
15623
|
+
return [];
|
|
15624
|
+
}
|
|
15625
|
+
}
|
|
15626
|
+
function generateStringFromExpression(expression, source) {
|
|
15627
|
+
return source.substring(expression.span.start, expression.span.end);
|
|
15628
|
+
}
|
|
15629
|
+
const factory = {
|
|
15630
|
+
code: checker.ErrorCode.UNINVOKED_TRACK_FUNCTION,
|
|
15631
|
+
name: checker.ExtendedTemplateDiagnosticName.UNINVOKED_TRACK_FUNCTION,
|
|
15632
|
+
create: () => new UninvokedTrackFunctionCheck(),
|
|
15633
|
+
};
|
|
15634
|
+
|
|
15552
15635
|
/**
|
|
15553
15636
|
* A label referring to a `ts.DiagnosticCategory` or `'suppress'`, meaning the associated diagnostic
|
|
15554
15637
|
* should not be displayed at all.
|
|
@@ -15636,18 +15719,19 @@ function assertNever(value) {
|
|
|
15636
15719
|
}
|
|
15637
15720
|
|
|
15638
15721
|
const ALL_DIAGNOSTIC_FACTORIES = [
|
|
15639
|
-
factory$
|
|
15722
|
+
factory$b,
|
|
15723
|
+
factory$8,
|
|
15640
15724
|
factory$7,
|
|
15641
|
-
factory$
|
|
15725
|
+
factory$a,
|
|
15726
|
+
factory$4,
|
|
15642
15727
|
factory$9,
|
|
15728
|
+
factory$5,
|
|
15729
|
+
factory$c,
|
|
15643
15730
|
factory$3,
|
|
15644
|
-
factory$
|
|
15645
|
-
factory$
|
|
15646
|
-
factory$b,
|
|
15731
|
+
factory$1,
|
|
15732
|
+
factory$6,
|
|
15647
15733
|
factory$2,
|
|
15648
15734
|
factory,
|
|
15649
|
-
factory$5,
|
|
15650
|
-
factory$1,
|
|
15651
15735
|
];
|
|
15652
15736
|
const SUPPORTED_DIAGNOSTIC_NAMES = new Set([
|
|
15653
15737
|
checker.ExtendedTemplateDiagnosticName.CONTROL_FLOW_PREVENTING_CONTENT_PROJECTION,
|
|
@@ -18717,7 +18801,7 @@ var semver = /*@__PURE__*/getDefaultExportFromCjs(semverExports);
|
|
|
18717
18801
|
* @param minVersion Minimum required version for the feature.
|
|
18718
18802
|
*/
|
|
18719
18803
|
function coreVersionSupportsFeature(coreVersion, minVersion) {
|
|
18720
|
-
// A version of `20.0.0-next.
|
|
18804
|
+
// A version of `20.0.0-next.6` usually means that core is at head so it supports
|
|
18721
18805
|
// all features. Use string interpolation prevent the placeholder from being replaced
|
|
18722
18806
|
// with the current version during build time.
|
|
18723
18807
|
if (coreVersion === `0.0.0-${'PLACEHOLDER'}`) {
|
|
@@ -19265,7 +19349,14 @@ class NgCompiler {
|
|
|
19265
19349
|
const printer = ts.createPrinter();
|
|
19266
19350
|
const nodeText = printer.printNode(ts.EmitHint.Unspecified, callback, sourceFile);
|
|
19267
19351
|
return ts.transpileModule(nodeText, {
|
|
19268
|
-
compilerOptions:
|
|
19352
|
+
compilerOptions: {
|
|
19353
|
+
...this.options,
|
|
19354
|
+
// Some module types can produce additional code (see #60795) whereas we need the
|
|
19355
|
+
// HMR update module to use a native `export`. Override the `target` and `module`
|
|
19356
|
+
// to ensure that it looks as expected.
|
|
19357
|
+
module: ts.ModuleKind.ES2022,
|
|
19358
|
+
target: ts.ScriptTarget.ES2022,
|
|
19359
|
+
},
|
|
19269
19360
|
fileName: sourceFile.fileName,
|
|
19270
19361
|
reportDiagnostics: false,
|
|
19271
19362
|
}).outputText;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v20.0.0-next.
|
|
3
|
+
* @license Angular v20.0.0-next.6
|
|
4
4
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
|
|
9
9
|
var ts = require('typescript');
|
|
10
10
|
require('os');
|
|
11
|
-
var checker = require('./checker-
|
|
12
|
-
var compiler = require('./compiler-
|
|
13
|
-
var index = require('./index-
|
|
11
|
+
var checker = require('./checker-BFBQyesT.js');
|
|
12
|
+
var compiler = require('./compiler-BQ7R7w2v.js');
|
|
13
|
+
var index = require('./index-Cv4Q415G.js');
|
|
14
14
|
require('path');
|
|
15
|
-
var
|
|
15
|
+
var project_paths = require('./project_paths-ql6qcf_c.js');
|
|
16
16
|
|
|
17
17
|
function getMemberName(member) {
|
|
18
18
|
if (member.name === undefined) {
|
|
@@ -612,7 +612,7 @@ function identifyHostBindingReferences(node, programInfo, checker$1, reflector,
|
|
|
612
612
|
readAstPath: ref.readAstPath,
|
|
613
613
|
isObjectShorthandExpression: ref.isObjectShorthandExpression,
|
|
614
614
|
isWrite: ref.isWrite,
|
|
615
|
-
file:
|
|
615
|
+
file: project_paths.projectFile(ref.context.getSourceFile(), programInfo),
|
|
616
616
|
hostPropertyNode: ref.context,
|
|
617
617
|
},
|
|
618
618
|
target: ref.targetField,
|
|
@@ -712,8 +712,8 @@ function identifyTemplateReferences(programInfo, node, reflector, checker$1, eva
|
|
|
712
712
|
readAstPath: res.readAstPath,
|
|
713
713
|
node: res.context,
|
|
714
714
|
isObjectShorthandExpression: res.isObjectShorthandExpression,
|
|
715
|
-
originatingTsFile:
|
|
716
|
-
templateFile:
|
|
715
|
+
originatingTsFile: project_paths.projectFile(node.getSourceFile(), programInfo),
|
|
716
|
+
templateFile: project_paths.projectFile(checker.absoluteFrom(templateFilePath), programInfo),
|
|
717
717
|
isLikelyPartOfNarrowing: res.isLikelyNarrowed,
|
|
718
718
|
isWrite: res.isWrite,
|
|
719
719
|
},
|
|
@@ -895,7 +895,7 @@ function identifyPotentialTypeScriptReference(node, programInfo, checker, knownF
|
|
|
895
895
|
kind: exports.ReferenceKind.TsReference,
|
|
896
896
|
from: {
|
|
897
897
|
node,
|
|
898
|
-
file:
|
|
898
|
+
file: project_paths.projectFile(node.getSourceFile(), programInfo),
|
|
899
899
|
isWrite: isWriteReference,
|
|
900
900
|
isPartOfElementBinding: ts.isBindingElement(node.parent),
|
|
901
901
|
},
|
|
@@ -959,7 +959,7 @@ function createFindAllSourceFileReferencesVisitor(programInfo, checker, reflecto
|
|
|
959
959
|
result.references.push({
|
|
960
960
|
kind: exports.ReferenceKind.TsClassTypeReference,
|
|
961
961
|
from: {
|
|
962
|
-
file:
|
|
962
|
+
file: project_paths.projectFile(partialDirectiveInCatalyst.referenceNode.getSourceFile(), programInfo),
|
|
963
963
|
node: partialDirectiveInCatalyst.referenceNode,
|
|
964
964
|
},
|
|
965
965
|
isPartialReference: true,
|