@angular/core 19.2.0-next.1 → 19.2.0-next.3
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/fesm2022/core.mjs +865 -805
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/primitives/event-dispatch.mjs +1 -1
- package/fesm2022/primitives/signals.mjs +1 -1
- package/fesm2022/rxjs-interop.mjs +2 -1
- package/fesm2022/rxjs-interop.mjs.map +1 -1
- package/fesm2022/testing.mjs +5 -5
- package/index.d.ts +41 -12
- package/package.json +1 -1
- package/primitives/event-dispatch/index.d.ts +1 -1
- package/primitives/signals/index.d.ts +1 -1
- package/rxjs-interop/index.d.ts +1 -1
- package/schematics/bundles/{apply_import_manager-5ea49df9.js → apply_import_manager-f4d044b2.js} +3 -3
- package/schematics/bundles/{checker-78667e44.js → checker-32db85a6.js} +90 -52
- package/schematics/bundles/cleanup-unused-imports.js +6 -6
- package/schematics/bundles/{compiler_host-b22de7db.js → compiler_host-540e221c.js} +2 -2
- package/schematics/bundles/control-flow-migration.js +10 -3
- package/schematics/bundles/explicit-standalone-flag.js +5 -5
- package/schematics/bundles/{imports-31a38653.js → imports-abe29092.js} +1 -1
- package/schematics/bundles/{index-de135c2f.js → index-7ee8967e.js} +4 -4
- package/schematics/bundles/{index-3e744c38.js → index-d5020c9c.js} +4 -4
- package/schematics/bundles/inject-migration.js +6 -6
- package/schematics/bundles/{leading_space-6e7a8ec6.js → leading_space-d190b83b.js} +1 -1
- package/schematics/bundles/{migrate_ts_type_references-60e2a469.js → migrate_ts_type_references-26986908.js} +6 -6
- package/schematics/bundles/{nodes-88c2157f.js → nodes-a9f0b985.js} +2 -2
- package/schematics/bundles/output-migration.js +6 -6
- package/schematics/bundles/pending-tasks.js +5 -5
- package/schematics/bundles/{program-b0d98952.js → program-507de2f1.js} +124 -36
- package/schematics/bundles/{project_tsconfig_paths-6c9cde78.js → project_tsconfig_paths-e9ccccbf.js} +1 -1
- package/schematics/bundles/provide-initializer.js +5 -5
- package/schematics/bundles/route-lazy-loading.js +4 -4
- package/schematics/bundles/signal-input-migration.js +8 -8
- package/schematics/bundles/signal-queries-migration.js +8 -8
- package/schematics/bundles/signals.js +8 -8
- package/schematics/bundles/standalone-migration.js +8 -8
- package/testing/index.d.ts +1 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v19.2.0-next.
|
|
3
|
+
* @license Angular v19.2.0-next.3
|
|
4
4
|
* (c) 2010-2024 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
7
7
|
'use strict';
|
|
8
8
|
|
|
9
|
-
var checker = require('./checker-
|
|
9
|
+
var checker = require('./checker-32db85a6.js');
|
|
10
10
|
var ts = require('typescript');
|
|
11
11
|
var p = require('path');
|
|
12
12
|
require('os');
|
|
@@ -894,25 +894,32 @@ function compileClassDebugInfo(debugInfo) {
|
|
|
894
894
|
* @param meta HMR metadata extracted from the class.
|
|
895
895
|
*/
|
|
896
896
|
function compileHmrInitializer(meta) {
|
|
897
|
-
const id = encodeURIComponent(`${meta.filePath}@${meta.className}`);
|
|
898
|
-
const urlPartial = `./@ng/component?c=${id}&t=`;
|
|
899
897
|
const moduleName = 'm';
|
|
900
898
|
const dataName = 'd';
|
|
901
899
|
const timestampName = 't';
|
|
900
|
+
const idName = 'id';
|
|
902
901
|
const importCallbackName = `${meta.className}_HmrLoad`;
|
|
903
|
-
const locals = meta.localDependencies.map((localName) => checker.variable(localName));
|
|
904
902
|
const namespaces = meta.namespaceDependencies.map((dep) => {
|
|
905
903
|
return new checker.ExternalExpr({ moduleName: dep.moduleName, name: null });
|
|
906
904
|
});
|
|
907
905
|
// m.default
|
|
908
906
|
const defaultRead = checker.variable(moduleName).prop('default');
|
|
909
|
-
// ɵɵreplaceMetadata(Comp, m.default, [...namespaces], [...locals]);
|
|
907
|
+
// ɵɵreplaceMetadata(Comp, m.default, [...namespaces], [...locals], import.meta, id);
|
|
910
908
|
const replaceCall = checker.importExpr(checker.Identifiers.replaceMetadata)
|
|
911
|
-
.callFn([
|
|
909
|
+
.callFn([
|
|
910
|
+
meta.type,
|
|
911
|
+
defaultRead,
|
|
912
|
+
checker.literalArr(namespaces),
|
|
913
|
+
checker.literalArr(meta.localDependencies.map((l) => l.runtimeRepresentation)),
|
|
914
|
+
checker.variable('import').prop('meta'),
|
|
915
|
+
checker.variable(idName),
|
|
916
|
+
]);
|
|
912
917
|
// (m) => m.default && ɵɵreplaceMetadata(...)
|
|
913
918
|
const replaceCallback = checker.arrowFn([new checker.FnParam(moduleName)], defaultRead.and(replaceCall));
|
|
914
|
-
// '<
|
|
915
|
-
const urlValue = checker.literal(
|
|
919
|
+
// '<url>?c=' + id + '&t=' + encodeURIComponent(t)
|
|
920
|
+
const urlValue = checker.literal(`./@ng/component?c=`)
|
|
921
|
+
.plus(checker.variable(idName))
|
|
922
|
+
.plus(checker.literal('&t='))
|
|
916
923
|
.plus(checker.variable('encodeURIComponent').callFn([checker.variable(timestampName)]));
|
|
917
924
|
// import.meta.url
|
|
918
925
|
const urlBase = checker.variable('import').prop('meta').prop('url');
|
|
@@ -930,10 +937,10 @@ function compileHmrInitializer(meta) {
|
|
|
930
937
|
.callFn([replaceCallback])
|
|
931
938
|
.toStmt(),
|
|
932
939
|
], null, checker.StmtModifier.Final);
|
|
933
|
-
// (d) => d.id ===
|
|
940
|
+
// (d) => d.id === id && Cmp_HmrLoad(d.timestamp)
|
|
934
941
|
const updateCallback = checker.arrowFn([new checker.FnParam(dataName)], checker.variable(dataName)
|
|
935
942
|
.prop('id')
|
|
936
|
-
.identical(checker.
|
|
943
|
+
.identical(checker.variable(idName))
|
|
937
944
|
.and(checker.variable(importCallbackName).callFn([checker.variable(dataName).prop('timestamp')])));
|
|
938
945
|
// Cmp_HmrLoad(Date.now());
|
|
939
946
|
// Initial call to kick off the loading in order to avoid edge cases with components
|
|
@@ -948,6 +955,8 @@ function compileHmrInitializer(meta) {
|
|
|
948
955
|
.prop('on')
|
|
949
956
|
.callFn([checker.literal('angular:component-update'), updateCallback]);
|
|
950
957
|
return checker.arrowFn([], [
|
|
958
|
+
// const id = <id>;
|
|
959
|
+
new checker.DeclareVarStmt(idName, checker.literal(encodeURIComponent(`${meta.filePath}@${meta.className}`)), null, checker.StmtModifier.Final),
|
|
951
960
|
// function Cmp_HmrLoad() {...}.
|
|
952
961
|
importCallback,
|
|
953
962
|
// ngDevMode && Cmp_HmrLoad(Date.now());
|
|
@@ -966,8 +975,11 @@ function compileHmrInitializer(meta) {
|
|
|
966
975
|
*/
|
|
967
976
|
function compileHmrUpdateCallback(definitions, constantStatements, meta) {
|
|
968
977
|
const namespaces = 'ɵɵnamespaces';
|
|
969
|
-
const params = [meta.className, namespaces
|
|
978
|
+
const params = [meta.className, namespaces].map((name) => new checker.FnParam(name, checker.DYNAMIC_TYPE));
|
|
970
979
|
const body = [];
|
|
980
|
+
for (const local of meta.localDependencies) {
|
|
981
|
+
params.push(new checker.FnParam(local.name));
|
|
982
|
+
}
|
|
971
983
|
// Declare variables that read out the individual namespaces.
|
|
972
984
|
for (let i = 0; i < meta.namespaceDependencies.length; i++) {
|
|
973
985
|
body.push(new checker.DeclareVarStmt(meta.namespaceDependencies[i].assignedName, checker.variable(namespaces).key(checker.literal(i)), checker.DYNAMIC_TYPE, checker.StmtModifier.Final));
|
|
@@ -999,7 +1011,7 @@ const MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION = '18.0.0';
|
|
|
999
1011
|
function compileDeclareClassMetadata(metadata) {
|
|
1000
1012
|
const definitionMap = new checker.DefinitionMap();
|
|
1001
1013
|
definitionMap.set('minVersion', checker.literal(MINIMUM_PARTIAL_LINKER_VERSION$5));
|
|
1002
|
-
definitionMap.set('version', checker.literal('19.2.0-next.
|
|
1014
|
+
definitionMap.set('version', checker.literal('19.2.0-next.3'));
|
|
1003
1015
|
definitionMap.set('ngImport', checker.importExpr(checker.Identifiers.core));
|
|
1004
1016
|
definitionMap.set('type', metadata.type);
|
|
1005
1017
|
definitionMap.set('decorators', metadata.decorators);
|
|
@@ -1017,7 +1029,7 @@ function compileComponentDeclareClassMetadata(metadata, dependencies) {
|
|
|
1017
1029
|
callbackReturnDefinitionMap.set('ctorParameters', metadata.ctorParameters ?? checker.literal(null));
|
|
1018
1030
|
callbackReturnDefinitionMap.set('propDecorators', metadata.propDecorators ?? checker.literal(null));
|
|
1019
1031
|
definitionMap.set('minVersion', checker.literal(MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION));
|
|
1020
|
-
definitionMap.set('version', checker.literal('19.2.0-next.
|
|
1032
|
+
definitionMap.set('version', checker.literal('19.2.0-next.3'));
|
|
1021
1033
|
definitionMap.set('ngImport', checker.importExpr(checker.Identifiers.core));
|
|
1022
1034
|
definitionMap.set('type', metadata.type);
|
|
1023
1035
|
definitionMap.set('resolveDeferredDeps', compileComponentMetadataAsyncResolver(dependencies));
|
|
@@ -1112,7 +1124,7 @@ function createDirectiveDefinitionMap(meta) {
|
|
|
1112
1124
|
const definitionMap = new checker.DefinitionMap();
|
|
1113
1125
|
const minVersion = getMinimumVersionForPartialOutput(meta);
|
|
1114
1126
|
definitionMap.set('minVersion', checker.literal(minVersion));
|
|
1115
|
-
definitionMap.set('version', checker.literal('19.2.0-next.
|
|
1127
|
+
definitionMap.set('version', checker.literal('19.2.0-next.3'));
|
|
1116
1128
|
// e.g. `type: MyDirective`
|
|
1117
1129
|
definitionMap.set('type', meta.type.value);
|
|
1118
1130
|
if (meta.isStandalone !== undefined) {
|
|
@@ -1528,7 +1540,7 @@ const MINIMUM_PARTIAL_LINKER_VERSION$4 = '12.0.0';
|
|
|
1528
1540
|
function compileDeclareFactoryFunction(meta) {
|
|
1529
1541
|
const definitionMap = new checker.DefinitionMap();
|
|
1530
1542
|
definitionMap.set('minVersion', checker.literal(MINIMUM_PARTIAL_LINKER_VERSION$4));
|
|
1531
|
-
definitionMap.set('version', checker.literal('19.2.0-next.
|
|
1543
|
+
definitionMap.set('version', checker.literal('19.2.0-next.3'));
|
|
1532
1544
|
definitionMap.set('ngImport', checker.importExpr(checker.Identifiers.core));
|
|
1533
1545
|
definitionMap.set('type', meta.type.value);
|
|
1534
1546
|
definitionMap.set('deps', compileDependencies(meta.deps));
|
|
@@ -1563,7 +1575,7 @@ function compileDeclareInjectableFromMetadata(meta) {
|
|
|
1563
1575
|
function createInjectableDefinitionMap(meta) {
|
|
1564
1576
|
const definitionMap = new checker.DefinitionMap();
|
|
1565
1577
|
definitionMap.set('minVersion', checker.literal(MINIMUM_PARTIAL_LINKER_VERSION$3));
|
|
1566
|
-
definitionMap.set('version', checker.literal('19.2.0-next.
|
|
1578
|
+
definitionMap.set('version', checker.literal('19.2.0-next.3'));
|
|
1567
1579
|
definitionMap.set('ngImport', checker.importExpr(checker.Identifiers.core));
|
|
1568
1580
|
definitionMap.set('type', meta.type.value);
|
|
1569
1581
|
// Only generate providedIn property if it has a non-null value
|
|
@@ -1614,7 +1626,7 @@ function compileDeclareInjectorFromMetadata(meta) {
|
|
|
1614
1626
|
function createInjectorDefinitionMap(meta) {
|
|
1615
1627
|
const definitionMap = new checker.DefinitionMap();
|
|
1616
1628
|
definitionMap.set('minVersion', checker.literal(MINIMUM_PARTIAL_LINKER_VERSION$2));
|
|
1617
|
-
definitionMap.set('version', checker.literal('19.2.0-next.
|
|
1629
|
+
definitionMap.set('version', checker.literal('19.2.0-next.3'));
|
|
1618
1630
|
definitionMap.set('ngImport', checker.importExpr(checker.Identifiers.core));
|
|
1619
1631
|
definitionMap.set('type', meta.type.value);
|
|
1620
1632
|
definitionMap.set('providers', meta.providers);
|
|
@@ -1647,7 +1659,7 @@ function createNgModuleDefinitionMap(meta) {
|
|
|
1647
1659
|
throw new Error('Invalid path! Local compilation mode should not get into the partial compilation path');
|
|
1648
1660
|
}
|
|
1649
1661
|
definitionMap.set('minVersion', checker.literal(MINIMUM_PARTIAL_LINKER_VERSION$1));
|
|
1650
|
-
definitionMap.set('version', checker.literal('19.2.0-next.
|
|
1662
|
+
definitionMap.set('version', checker.literal('19.2.0-next.3'));
|
|
1651
1663
|
definitionMap.set('ngImport', checker.importExpr(checker.Identifiers.core));
|
|
1652
1664
|
definitionMap.set('type', meta.type.value);
|
|
1653
1665
|
// We only generate the keys in the metadata if the arrays contain values.
|
|
@@ -1698,7 +1710,7 @@ function compileDeclarePipeFromMetadata(meta) {
|
|
|
1698
1710
|
function createPipeDefinitionMap(meta) {
|
|
1699
1711
|
const definitionMap = new checker.DefinitionMap();
|
|
1700
1712
|
definitionMap.set('minVersion', checker.literal(MINIMUM_PARTIAL_LINKER_VERSION));
|
|
1701
|
-
definitionMap.set('version', checker.literal('19.2.0-next.
|
|
1713
|
+
definitionMap.set('version', checker.literal('19.2.0-next.3'));
|
|
1702
1714
|
definitionMap.set('ngImport', checker.importExpr(checker.Identifiers.core));
|
|
1703
1715
|
// e.g. `type: MyPipe`
|
|
1704
1716
|
definitionMap.set('type', meta.type.value);
|
|
@@ -10140,7 +10152,7 @@ class TsCreateProgramDriver {
|
|
|
10140
10152
|
* @param classMetadata Compiled `setClassMetadata` expression, if any.
|
|
10141
10153
|
* @param debugInfo Compiled `setClassDebugInfo` expression, if any.
|
|
10142
10154
|
*/
|
|
10143
|
-
function extractHmrDependencies(node, definition, factory, deferBlockMetadata, classMetadata, debugInfo) {
|
|
10155
|
+
function extractHmrDependencies(node, definition, factory, deferBlockMetadata, classMetadata, debugInfo, reflection, evaluator) {
|
|
10144
10156
|
const name = ts__default["default"].isClassDeclaration(node) && node.name ? node.name.text : null;
|
|
10145
10157
|
const visitor = new PotentialTopLevelReadsVisitor();
|
|
10146
10158
|
const sourceFile = node.getSourceFile();
|
|
@@ -10162,14 +10174,64 @@ function extractHmrDependencies(node, definition, factory, deferBlockMetadata, c
|
|
|
10162
10174
|
// variables inside of functions. Note that we filter out the class name since it is always
|
|
10163
10175
|
// defined and it saves us having to repeat this logic wherever the locals are consumed.
|
|
10164
10176
|
const availableTopLevel = getTopLevelDeclarationNames(sourceFile);
|
|
10177
|
+
const local = [];
|
|
10178
|
+
const seenLocals = new Set();
|
|
10179
|
+
for (const readNode of visitor.allReads) {
|
|
10180
|
+
const readName = readNode instanceof checker.ReadVarExpr ? readNode.name : readNode.text;
|
|
10181
|
+
if (readName !== name && !seenLocals.has(readName) && availableTopLevel.has(readName)) {
|
|
10182
|
+
const runtimeRepresentation = getRuntimeRepresentation(readNode, reflection, evaluator);
|
|
10183
|
+
if (runtimeRepresentation === null) {
|
|
10184
|
+
return null;
|
|
10185
|
+
}
|
|
10186
|
+
local.push({ name: readName, runtimeRepresentation });
|
|
10187
|
+
seenLocals.add(readName);
|
|
10188
|
+
}
|
|
10189
|
+
}
|
|
10165
10190
|
return {
|
|
10166
|
-
local
|
|
10191
|
+
local,
|
|
10167
10192
|
external: Array.from(visitor.namespaceReads, (name, index) => ({
|
|
10168
10193
|
moduleName: name,
|
|
10169
10194
|
assignedName: `ɵhmr${index}`,
|
|
10170
10195
|
})),
|
|
10171
10196
|
};
|
|
10172
10197
|
}
|
|
10198
|
+
/**
|
|
10199
|
+
* Gets a node that can be used to represent an identifier in the HMR replacement code at runtime.
|
|
10200
|
+
*/
|
|
10201
|
+
function getRuntimeRepresentation(node, reflection, evaluator) {
|
|
10202
|
+
if (node instanceof checker.ReadVarExpr) {
|
|
10203
|
+
return checker.variable(node.name);
|
|
10204
|
+
}
|
|
10205
|
+
// Const enums can't be passed by reference, because their values are inlined.
|
|
10206
|
+
// Pass in an object literal with all of the values instead.
|
|
10207
|
+
if (isConstEnumReference(node, reflection)) {
|
|
10208
|
+
const evaluated = evaluator.evaluate(node);
|
|
10209
|
+
if (evaluated instanceof Map) {
|
|
10210
|
+
const members = [];
|
|
10211
|
+
for (const [name, value] of evaluated.entries()) {
|
|
10212
|
+
if (value instanceof checker.EnumValue &&
|
|
10213
|
+
(value.resolved == null ||
|
|
10214
|
+
typeof value.resolved === 'string' ||
|
|
10215
|
+
typeof value.resolved === 'boolean' ||
|
|
10216
|
+
typeof value.resolved === 'number')) {
|
|
10217
|
+
members.push({
|
|
10218
|
+
key: name,
|
|
10219
|
+
quoted: false,
|
|
10220
|
+
value: checker.literal(value.resolved),
|
|
10221
|
+
});
|
|
10222
|
+
}
|
|
10223
|
+
else {
|
|
10224
|
+
// TS is pretty restrictive about what values can be in a const enum so our evaluator
|
|
10225
|
+
// should be able to handle them, however if we happen to hit such a case, we return null
|
|
10226
|
+
// so the HMR update can be invalidated.
|
|
10227
|
+
return null;
|
|
10228
|
+
}
|
|
10229
|
+
}
|
|
10230
|
+
return checker.literalMap(members);
|
|
10231
|
+
}
|
|
10232
|
+
}
|
|
10233
|
+
return checker.variable(node.text);
|
|
10234
|
+
}
|
|
10173
10235
|
/**
|
|
10174
10236
|
* Gets the names of all top-level declarations within the file (imports, declared classes etc).
|
|
10175
10237
|
* @param sourceFile File in which to search for locals.
|
|
@@ -10182,8 +10244,7 @@ function getTopLevelDeclarationNames(sourceFile) {
|
|
|
10182
10244
|
// to runtime code. Intentionally excludes interfaces and type declarations.
|
|
10183
10245
|
if (ts__default["default"].isClassDeclaration(node) ||
|
|
10184
10246
|
ts__default["default"].isFunctionDeclaration(node) ||
|
|
10185
|
-
|
|
10186
|
-
!node.modifiers?.some((m) => m.kind === ts__default["default"].SyntaxKind.ConstKeyword))) {
|
|
10247
|
+
ts__default["default"].isEnumDeclaration(node)) {
|
|
10187
10248
|
if (node.name) {
|
|
10188
10249
|
results.add(node.name.text);
|
|
10189
10250
|
}
|
|
@@ -10259,7 +10320,7 @@ class PotentialTopLevelReadsVisitor extends checker.RecursiveAstVisitor {
|
|
|
10259
10320
|
super.visitExternalExpr(ast, context);
|
|
10260
10321
|
}
|
|
10261
10322
|
visitReadVarExpr(ast, context) {
|
|
10262
|
-
this.allReads.add(ast
|
|
10323
|
+
this.allReads.add(ast);
|
|
10263
10324
|
super.visitReadVarExpr(ast, context);
|
|
10264
10325
|
}
|
|
10265
10326
|
visitWrappedNodeExpr(ast, context) {
|
|
@@ -10274,7 +10335,7 @@ class PotentialTopLevelReadsVisitor extends checker.RecursiveAstVisitor {
|
|
|
10274
10335
|
*/
|
|
10275
10336
|
addAllTopLevelIdentifiers = (node) => {
|
|
10276
10337
|
if (ts__default["default"].isIdentifier(node) && this.isTopLevelIdentifierReference(node)) {
|
|
10277
|
-
this.allReads.add(node
|
|
10338
|
+
this.allReads.add(node);
|
|
10278
10339
|
}
|
|
10279
10340
|
else {
|
|
10280
10341
|
ts__default["default"].forEachChild(node, this.addAllTopLevelIdentifiers);
|
|
@@ -10388,6 +10449,21 @@ class PotentialTopLevelReadsVisitor extends checker.RecursiveAstVisitor {
|
|
|
10388
10449
|
return !!value && typeof value.kind === 'number';
|
|
10389
10450
|
}
|
|
10390
10451
|
}
|
|
10452
|
+
/** Checks whether a node is a reference to a const enum. */
|
|
10453
|
+
function isConstEnumReference(node, reflection) {
|
|
10454
|
+
const parent = node.parent;
|
|
10455
|
+
// Only check identifiers that are in the form of `Foo.bar` where `Foo` is the node being checked.
|
|
10456
|
+
if (!parent ||
|
|
10457
|
+
!ts__default["default"].isPropertyAccessExpression(parent) ||
|
|
10458
|
+
parent.expression !== node ||
|
|
10459
|
+
!ts__default["default"].isIdentifier(parent.name)) {
|
|
10460
|
+
return false;
|
|
10461
|
+
}
|
|
10462
|
+
const declaration = reflection.getDeclarationOfIdentifier(node);
|
|
10463
|
+
return (declaration !== null &&
|
|
10464
|
+
ts__default["default"].isEnumDeclaration(declaration.node) &&
|
|
10465
|
+
!!declaration.node.modifiers?.some((m) => m.kind === ts__default["default"].SyntaxKind.ConstKeyword));
|
|
10466
|
+
}
|
|
10391
10467
|
|
|
10392
10468
|
/*!
|
|
10393
10469
|
* @license
|
|
@@ -10408,14 +10484,17 @@ class PotentialTopLevelReadsVisitor extends checker.RecursiveAstVisitor {
|
|
|
10408
10484
|
* @param classMetadata Analyzed `setClassMetadata` expression, if any.
|
|
10409
10485
|
* @param debugInfo Analyzed `setClassDebugInfo` expression, if any.
|
|
10410
10486
|
*/
|
|
10411
|
-
function extractHmrMetatadata(clazz, reflection, compilerHost, rootDirs, definition, factory, deferBlockMetadata, classMetadata, debugInfo) {
|
|
10487
|
+
function extractHmrMetatadata(clazz, reflection, evaluator, compilerHost, rootDirs, definition, factory, deferBlockMetadata, classMetadata, debugInfo) {
|
|
10412
10488
|
if (!reflection.isClass(clazz)) {
|
|
10413
10489
|
return null;
|
|
10414
10490
|
}
|
|
10415
10491
|
const sourceFile = clazz.getSourceFile();
|
|
10416
10492
|
const filePath = getProjectRelativePath(sourceFile.fileName, rootDirs, compilerHost) ||
|
|
10417
10493
|
compilerHost.getCanonicalFileName(sourceFile.fileName);
|
|
10418
|
-
const dependencies = extractHmrDependencies(clazz, definition, factory, deferBlockMetadata, classMetadata, debugInfo);
|
|
10494
|
+
const dependencies = extractHmrDependencies(clazz, definition, factory, deferBlockMetadata, classMetadata, debugInfo, reflection, evaluator);
|
|
10495
|
+
if (dependencies === null) {
|
|
10496
|
+
return null;
|
|
10497
|
+
}
|
|
10419
10498
|
const meta = {
|
|
10420
10499
|
type: new checker.WrappedNodeExpr(clazz.name),
|
|
10421
10500
|
className: clazz.name.text,
|
|
@@ -11552,7 +11631,7 @@ class ComponentDecoratorHandler {
|
|
|
11552
11631
|
? compileClassDebugInfo(analysis.classDebugInfo).toStmt()
|
|
11553
11632
|
: null;
|
|
11554
11633
|
const hmrMeta = this.enableHmr
|
|
11555
|
-
? extractHmrMetatadata(node, this.reflector, this.compilerHost, this.rootDirs, def, fac, defer, classMetadata, debugInfo)
|
|
11634
|
+
? extractHmrMetatadata(node, this.reflector, this.evaluator, this.compilerHost, this.rootDirs, def, fac, defer, classMetadata, debugInfo)
|
|
11556
11635
|
: null;
|
|
11557
11636
|
const hmrInitializer = hmrMeta ? compileHmrInitializer(hmrMeta).toStmt() : null;
|
|
11558
11637
|
const deferrableImports = this.canDeferDeps
|
|
@@ -11588,7 +11667,7 @@ class ComponentDecoratorHandler {
|
|
|
11588
11667
|
? compileComponentDeclareClassMetadata(analysis.classMetadata, perComponentDeferredDeps).toStmt()
|
|
11589
11668
|
: null;
|
|
11590
11669
|
const hmrMeta = this.enableHmr
|
|
11591
|
-
? extractHmrMetatadata(node, this.reflector, this.compilerHost, this.rootDirs, def, fac, defer, classMetadata, null)
|
|
11670
|
+
? extractHmrMetatadata(node, this.reflector, this.evaluator, this.compilerHost, this.rootDirs, def, fac, defer, classMetadata, null)
|
|
11592
11671
|
: null;
|
|
11593
11672
|
const hmrInitializer = hmrMeta ? compileHmrInitializer(hmrMeta).toStmt() : null;
|
|
11594
11673
|
const deferrableImports = this.canDeferDeps
|
|
@@ -11620,7 +11699,7 @@ class ComponentDecoratorHandler {
|
|
|
11620
11699
|
? compileClassDebugInfo(analysis.classDebugInfo).toStmt()
|
|
11621
11700
|
: null;
|
|
11622
11701
|
const hmrMeta = this.enableHmr
|
|
11623
|
-
? extractHmrMetatadata(node, this.reflector, this.compilerHost, this.rootDirs, def, fac, defer, classMetadata, debugInfo)
|
|
11702
|
+
? extractHmrMetatadata(node, this.reflector, this.evaluator, this.compilerHost, this.rootDirs, def, fac, defer, classMetadata, debugInfo)
|
|
11624
11703
|
: null;
|
|
11625
11704
|
const hmrInitializer = hmrMeta ? compileHmrInitializer(hmrMeta).toStmt() : null;
|
|
11626
11705
|
const deferrableImports = this.canDeferDeps
|
|
@@ -11649,7 +11728,7 @@ class ComponentDecoratorHandler {
|
|
|
11649
11728
|
? compileClassDebugInfo(analysis.classDebugInfo).toStmt()
|
|
11650
11729
|
: null;
|
|
11651
11730
|
const hmrMeta = this.enableHmr
|
|
11652
|
-
? extractHmrMetatadata(node, this.reflector, this.compilerHost, this.rootDirs, def, fac, defer, classMetadata, debugInfo)
|
|
11731
|
+
? extractHmrMetatadata(node, this.reflector, this.evaluator, this.compilerHost, this.rootDirs, def, fac, defer, classMetadata, debugInfo)
|
|
11653
11732
|
: null;
|
|
11654
11733
|
const res = checker.compileResults(fac, def, classMetadata, 'ɵcmp', null, null, debugInfo, null);
|
|
11655
11734
|
return hmrMeta === null || res.length === 0
|
|
@@ -11676,18 +11755,27 @@ class ComponentDecoratorHandler {
|
|
|
11676
11755
|
* the `@Component.imports` field and their usage in `@defer` blocks.
|
|
11677
11756
|
*/
|
|
11678
11757
|
resolveAllDeferredDependencies(resolution) {
|
|
11758
|
+
const seenDeps = new Set();
|
|
11679
11759
|
const deferrableTypes = [];
|
|
11680
11760
|
// Go over all dependencies of all defer blocks and update the value of
|
|
11681
11761
|
// the `isDeferrable` flag and the `importPath` to reflect the current
|
|
11682
11762
|
// state after visiting all components during the `resolve` phase.
|
|
11683
11763
|
for (const [_, deps] of resolution.deferPerBlockDependencies) {
|
|
11684
11764
|
for (const deferBlockDep of deps) {
|
|
11685
|
-
const
|
|
11765
|
+
const node = deferBlockDep.declaration.node;
|
|
11766
|
+
const importDecl = resolution.deferrableDeclToImportDecl.get(node) ?? null;
|
|
11686
11767
|
if (importDecl !== null && this.deferredSymbolTracker.canDefer(importDecl)) {
|
|
11687
11768
|
deferBlockDep.isDeferrable = true;
|
|
11688
11769
|
deferBlockDep.importPath = importDecl.moduleSpecifier.text;
|
|
11689
11770
|
deferBlockDep.isDefaultImport = isDefaultImport(importDecl);
|
|
11690
|
-
|
|
11771
|
+
// The same dependency may be used across multiple deferred blocks. De-duplicate it
|
|
11772
|
+
// because it can throw off other logic further down the compilation pipeline.
|
|
11773
|
+
// Note that the logic above needs to run even if the dependency is seen before,
|
|
11774
|
+
// because the object literals are different between each block.
|
|
11775
|
+
if (!seenDeps.has(node)) {
|
|
11776
|
+
seenDeps.add(node);
|
|
11777
|
+
deferrableTypes.push(deferBlockDep);
|
|
11778
|
+
}
|
|
11691
11779
|
}
|
|
11692
11780
|
}
|
|
11693
11781
|
}
|
|
@@ -13352,7 +13440,7 @@ const MIN_TS_VERSION = '5.5.0';
|
|
|
13352
13440
|
* Note: this check is disabled in g3, search for
|
|
13353
13441
|
* `angularCompilerOptions.disableTypeScriptVersionCheck` config param value in g3.
|
|
13354
13442
|
*/
|
|
13355
|
-
const MAX_TS_VERSION = '5.
|
|
13443
|
+
const MAX_TS_VERSION = '5.9.0';
|
|
13356
13444
|
/**
|
|
13357
13445
|
* The currently used version of TypeScript, which can be adjusted for testing purposes using
|
|
13358
13446
|
* `setTypeScriptVersionForTesting` and `restoreTypeScriptVersionForTesting` below.
|
|
@@ -20256,7 +20344,7 @@ var semver = /*@__PURE__*/getDefaultExportFromCjs(semverExports);
|
|
|
20256
20344
|
* @param minVersion Minimum required version for the feature.
|
|
20257
20345
|
*/
|
|
20258
20346
|
function coreVersionSupportsFeature(coreVersion, minVersion) {
|
|
20259
|
-
// A version of `19.2.0-next.
|
|
20347
|
+
// A version of `19.2.0-next.3` usually means that core is at head so it supports
|
|
20260
20348
|
// all features. Use string interpolation prevent the placeholder from being replaced
|
|
20261
20349
|
// with the current version during build time.
|
|
20262
20350
|
if (coreVersion === `0.0.0-${'PLACEHOLDER'}`) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v19.2.0-next.
|
|
3
|
+
* @license Angular v19.2.0-next.3
|
|
4
4
|
* (c) 2010-2024 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
@@ -10,12 +10,12 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
10
10
|
|
|
11
11
|
var schematics = require('@angular-devkit/schematics');
|
|
12
12
|
var p = require('path');
|
|
13
|
-
var project_tsconfig_paths = require('./project_tsconfig_paths-
|
|
14
|
-
var compiler_host = require('./compiler_host-
|
|
13
|
+
var project_tsconfig_paths = require('./project_tsconfig_paths-e9ccccbf.js');
|
|
14
|
+
var compiler_host = require('./compiler_host-540e221c.js');
|
|
15
15
|
var ts = require('typescript');
|
|
16
|
-
var imports = require('./imports-
|
|
16
|
+
var imports = require('./imports-abe29092.js');
|
|
17
17
|
require('@angular-devkit/core');
|
|
18
|
-
require('./checker-
|
|
18
|
+
require('./checker-32db85a6.js');
|
|
19
19
|
require('os');
|
|
20
20
|
require('fs');
|
|
21
21
|
require('module');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v19.2.0-next.
|
|
3
|
+
* @license Angular v19.2.0-next.3
|
|
4
4
|
* (c) 2010-2024 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
@@ -11,10 +11,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
11
11
|
var schematics = require('@angular-devkit/schematics');
|
|
12
12
|
var fs = require('fs');
|
|
13
13
|
var p = require('path');
|
|
14
|
-
var compiler_host = require('./compiler_host-
|
|
15
|
-
var project_tsconfig_paths = require('./project_tsconfig_paths-
|
|
14
|
+
var compiler_host = require('./compiler_host-540e221c.js');
|
|
15
|
+
var project_tsconfig_paths = require('./project_tsconfig_paths-e9ccccbf.js');
|
|
16
16
|
var ts = require('typescript');
|
|
17
|
-
var checker = require('./checker-
|
|
17
|
+
var checker = require('./checker-32db85a6.js');
|
|
18
18
|
require('os');
|
|
19
19
|
require('@angular-devkit/core');
|
|
20
20
|
require('module');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v19.2.0-next.
|
|
3
|
+
* @license Angular v19.2.0-next.3
|
|
4
4
|
* (c) 2010-2024 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
@@ -9,17 +9,17 @@
|
|
|
9
9
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
10
10
|
|
|
11
11
|
var schematics = require('@angular-devkit/schematics');
|
|
12
|
-
var migrate_ts_type_references = require('./migrate_ts_type_references-
|
|
12
|
+
var migrate_ts_type_references = require('./migrate_ts_type_references-26986908.js');
|
|
13
13
|
var ts = require('typescript');
|
|
14
14
|
require('os');
|
|
15
|
-
var checker = require('./checker-
|
|
16
|
-
var program = require('./program-
|
|
15
|
+
var checker = require('./checker-32db85a6.js');
|
|
16
|
+
var program = require('./program-507de2f1.js');
|
|
17
17
|
require('path');
|
|
18
|
-
var apply_import_manager = require('./apply_import_manager-
|
|
19
|
-
var index = require('./index-
|
|
18
|
+
var apply_import_manager = require('./apply_import_manager-f4d044b2.js');
|
|
19
|
+
var index = require('./index-d5020c9c.js');
|
|
20
20
|
var assert = require('assert');
|
|
21
|
-
var project_tsconfig_paths = require('./project_tsconfig_paths-
|
|
22
|
-
require('./leading_space-
|
|
21
|
+
var project_tsconfig_paths = require('./project_tsconfig_paths-e9ccccbf.js');
|
|
22
|
+
require('./leading_space-d190b83b.js');
|
|
23
23
|
require('fs');
|
|
24
24
|
require('module');
|
|
25
25
|
require('url');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v19.2.0-next.
|
|
3
|
+
* @license Angular v19.2.0-next.3
|
|
4
4
|
* (c) 2010-2024 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
@@ -9,22 +9,22 @@
|
|
|
9
9
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
10
10
|
|
|
11
11
|
var schematics = require('@angular-devkit/schematics');
|
|
12
|
-
var project_tsconfig_paths = require('./project_tsconfig_paths-
|
|
13
|
-
var apply_import_manager = require('./apply_import_manager-
|
|
12
|
+
var project_tsconfig_paths = require('./project_tsconfig_paths-e9ccccbf.js');
|
|
13
|
+
var apply_import_manager = require('./apply_import_manager-f4d044b2.js');
|
|
14
14
|
require('os');
|
|
15
15
|
var ts = require('typescript');
|
|
16
|
-
var checker = require('./checker-
|
|
17
|
-
var program = require('./program-
|
|
16
|
+
var checker = require('./checker-32db85a6.js');
|
|
17
|
+
var program = require('./program-507de2f1.js');
|
|
18
18
|
require('path');
|
|
19
|
-
var migrate_ts_type_references = require('./migrate_ts_type_references-
|
|
19
|
+
var migrate_ts_type_references = require('./migrate_ts_type_references-26986908.js');
|
|
20
20
|
var assert = require('assert');
|
|
21
|
-
var index = require('./index-
|
|
21
|
+
var index = require('./index-d5020c9c.js');
|
|
22
22
|
require('@angular-devkit/core');
|
|
23
23
|
require('node:path/posix');
|
|
24
24
|
require('fs');
|
|
25
25
|
require('module');
|
|
26
26
|
require('url');
|
|
27
|
-
require('./leading_space-
|
|
27
|
+
require('./leading_space-d190b83b.js');
|
|
28
28
|
|
|
29
29
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
30
30
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v19.2.0-next.
|
|
3
|
+
* @license Angular v19.2.0-next.3
|
|
4
4
|
* (c) 2010-2024 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
@@ -12,22 +12,22 @@ var schematics = require('@angular-devkit/schematics');
|
|
|
12
12
|
var signalQueriesMigration = require('./signal-queries-migration.js');
|
|
13
13
|
var signalInputMigration = require('./signal-input-migration.js');
|
|
14
14
|
var outputMigration = require('./output-migration.js');
|
|
15
|
-
require('./project_tsconfig_paths-
|
|
15
|
+
require('./project_tsconfig_paths-e9ccccbf.js');
|
|
16
16
|
require('@angular-devkit/core');
|
|
17
|
-
require('./apply_import_manager-
|
|
17
|
+
require('./apply_import_manager-f4d044b2.js');
|
|
18
18
|
require('node:path/posix');
|
|
19
19
|
require('os');
|
|
20
20
|
require('typescript');
|
|
21
|
-
require('./checker-
|
|
21
|
+
require('./checker-32db85a6.js');
|
|
22
22
|
require('fs');
|
|
23
23
|
require('module');
|
|
24
24
|
require('path');
|
|
25
25
|
require('url');
|
|
26
|
-
require('./program-
|
|
27
|
-
require('./migrate_ts_type_references-
|
|
26
|
+
require('./program-507de2f1.js');
|
|
27
|
+
require('./migrate_ts_type_references-26986908.js');
|
|
28
28
|
require('assert');
|
|
29
|
-
require('./index-
|
|
30
|
-
require('./leading_space-
|
|
29
|
+
require('./index-d5020c9c.js');
|
|
30
|
+
require('./leading_space-d190b83b.js');
|
|
31
31
|
|
|
32
32
|
function migrate(options) {
|
|
33
33
|
// The migrations are independent so we can run them in any order, but we sort them here
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v19.2.0-next.
|
|
3
|
+
* @license Angular v19.2.0-next.3
|
|
4
4
|
* (c) 2010-2024 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
@@ -9,17 +9,17 @@
|
|
|
9
9
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
10
10
|
|
|
11
11
|
var schematics = require('@angular-devkit/schematics');
|
|
12
|
-
require('./index-
|
|
12
|
+
require('./index-7ee8967e.js');
|
|
13
13
|
var fs = require('fs');
|
|
14
14
|
var p = require('path');
|
|
15
15
|
var ts = require('typescript');
|
|
16
|
-
var compiler_host = require('./compiler_host-
|
|
17
|
-
var project_tsconfig_paths = require('./project_tsconfig_paths-
|
|
18
|
-
var nodes = require('./nodes-
|
|
19
|
-
var imports = require('./imports-
|
|
20
|
-
var checker = require('./checker-
|
|
16
|
+
var compiler_host = require('./compiler_host-540e221c.js');
|
|
17
|
+
var project_tsconfig_paths = require('./project_tsconfig_paths-e9ccccbf.js');
|
|
18
|
+
var nodes = require('./nodes-a9f0b985.js');
|
|
19
|
+
var imports = require('./imports-abe29092.js');
|
|
20
|
+
var checker = require('./checker-32db85a6.js');
|
|
21
21
|
require('os');
|
|
22
|
-
var program = require('./program-
|
|
22
|
+
var program = require('./program-507de2f1.js');
|
|
23
23
|
require('@angular-devkit/core');
|
|
24
24
|
require('module');
|
|
25
25
|
require('url');
|
package/testing/index.d.ts
CHANGED