@angular/core 20.3.1 → 20.3.2
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.d.ts +7 -4
- package/chrome_dev_tools_performance.d.d.ts +1 -1
- package/discovery.d.d.ts +6 -5
- package/effect.d.d.ts +1 -2
- package/event_dispatcher.d.d.ts +1 -1
- package/fesm2022/attribute.mjs +1 -1
- package/fesm2022/core.mjs +4 -4
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/debug_node.mjs +15 -16
- package/fesm2022/debug_node.mjs.map +1 -1
- package/fesm2022/effect.mjs +3 -4
- package/fesm2022/effect.mjs.map +1 -1
- package/fesm2022/not_found.mjs +1 -1
- package/fesm2022/primitives/di.mjs +1 -1
- package/fesm2022/primitives/event-dispatch.mjs +1 -1
- package/fesm2022/primitives/signals.mjs +3 -4
- package/fesm2022/primitives/signals.mjs.map +1 -1
- package/fesm2022/resource.mjs +5 -4
- package/fesm2022/resource.mjs.map +1 -1
- package/fesm2022/root_effect_scheduler.mjs +2 -2
- package/fesm2022/root_effect_scheduler.mjs.map +1 -1
- package/fesm2022/rxjs-interop.mjs +1 -1
- package/fesm2022/signal.mjs +1 -1
- package/fesm2022/testing.mjs +1 -1
- package/fesm2022/weak_ref.mjs +1 -1
- package/graph.d.d.ts +1 -1
- package/index.d.ts +4 -3
- package/package.json +2 -2
- package/primitives/di/index.d.ts +1 -1
- package/primitives/event-dispatch/index.d.ts +1 -1
- package/primitives/signals/index.d.ts +1 -2
- package/rxjs-interop/index.d.ts +1 -1
- package/schematics/bundles/add-bootstrap-context-to-server-main.cjs +5 -5
- package/schematics/bundles/{apply_import_manager-C8vgfoJx.cjs → apply_import_manager-Ch2ALAC9.cjs} +3 -3
- package/schematics/bundles/cleanup-unused-imports.cjs +5 -5
- package/schematics/bundles/{compiler_host-DC7Yquzy.cjs → compiler_host-Jw4hNUf8.cjs} +2 -2
- package/schematics/bundles/control-flow-migration.cjs +70 -38
- package/schematics/bundles/document-core.cjs +5 -5
- package/schematics/bundles/imports-CIX-JgAN.cjs +1 -1
- package/schematics/bundles/{index-Bufm9_1r.cjs → index-DWTTHy-7.cjs} +4 -4
- package/schematics/bundles/{index-B5lv9x1v.cjs → index-Gg0PI_fh.cjs} +35 -21
- package/schematics/bundles/inject-flags.cjs +5 -5
- package/schematics/bundles/inject-migration.cjs +3 -3
- package/schematics/bundles/leading_space-D9nQ8UQC.cjs +1 -1
- package/schematics/bundles/{migrate_ts_type_references-Ctl6-8qO.cjs → migrate_ts_type_references-D_xIwAQ5.cjs} +5 -5
- package/schematics/bundles/ng_decorators-B5HCqr20.cjs +1 -1
- package/schematics/bundles/nodes-B16H9JUd.cjs +1 -1
- package/schematics/bundles/output-migration.cjs +6 -6
- package/schematics/bundles/{project_paths-CIUSEdn4.cjs → project_paths-CfXVBYVk.cjs} +3 -3
- package/schematics/bundles/{project_tsconfig_paths-crm5NKE7.cjs → project_tsconfig_paths-C11WBTJF.cjs} +19 -5
- package/schematics/bundles/property_name-BBwFuqMe.cjs +1 -1
- package/schematics/bundles/route-lazy-loading.cjs +3 -3
- package/schematics/bundles/router-current-navigation.cjs +4 -4
- package/schematics/bundles/self-closing-tags-migration.cjs +4 -4
- package/schematics/bundles/signal-input-migration.cjs +7 -7
- package/schematics/bundles/signal-queries-migration.cjs +7 -7
- package/schematics/bundles/signals.cjs +7 -7
- package/schematics/bundles/standalone-migration.cjs +14 -7
- package/schematics/bundles/symbol-VPWguRxr.cjs +1 -1
- package/schematics/bundles/test-bed-get.cjs +4 -4
- package/testing/index.d.ts +1 -1
- package/weak_ref.d.d.ts +1 -1
package/fesm2022/signal.mjs
CHANGED
package/fesm2022/testing.mjs
CHANGED
package/fesm2022/weak_ref.mjs
CHANGED
package/graph.d.d.ts
CHANGED
package/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v20.3.
|
|
2
|
+
* @license Angular v20.3.2
|
|
3
3
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -2194,6 +2194,7 @@ declare function linkedSignal<S, D>(options: {
|
|
|
2194
2194
|
value: NoInfer<D>;
|
|
2195
2195
|
}) => D;
|
|
2196
2196
|
equal?: ValueEqualityFn<NoInfer<D>>;
|
|
2197
|
+
debugName?: string;
|
|
2197
2198
|
}): WritableSignal<D>;
|
|
2198
2199
|
|
|
2199
2200
|
/**
|
|
@@ -4870,7 +4871,7 @@ declare const enum RuntimeErrorCode {
|
|
|
4870
4871
|
INVALID_BINDING_TARGET = 316,
|
|
4871
4872
|
INVALID_SET_INPUT_CALL = 317,
|
|
4872
4873
|
MULTIPLE_PLATFORMS = 400,
|
|
4873
|
-
PLATFORM_NOT_FOUND = 401,
|
|
4874
|
+
PLATFORM_NOT_FOUND = -401,
|
|
4874
4875
|
MISSING_REQUIRED_INJECTABLE_IN_BOOTSTRAP = 402,
|
|
4875
4876
|
BOOTSTRAP_COMPONENTS_NOT_FOUND = -403,
|
|
4876
4877
|
PLATFORM_ALREADY_DESTROYED = 404,
|
|
@@ -9201,7 +9202,7 @@ declare const depsTracker: DepsTracker;
|
|
|
9201
9202
|
* `[[element1, element2], [element3]]`: projects `element1` and `element2` into one `<ng-content>`,
|
|
9202
9203
|
* and `element3` into a separate `<ng-content>`.
|
|
9203
9204
|
* * `directives` (optional): Directives that should be applied to the component.
|
|
9204
|
-
* * `
|
|
9205
|
+
* * `bindings` (optional): Bindings to apply to the root component.
|
|
9205
9206
|
* @returns ComponentRef instance that represents a given Component.
|
|
9206
9207
|
*
|
|
9207
9208
|
* @publicApi
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@angular/core",
|
|
3
|
-
"version": "20.3.
|
|
3
|
+
"version": "20.3.2",
|
|
4
4
|
"description": "Angular - the core framework",
|
|
5
5
|
"author": "angular",
|
|
6
6
|
"license": "MIT",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"tslib": "^2.3.0"
|
|
47
47
|
},
|
|
48
48
|
"peerDependencies": {
|
|
49
|
-
"@angular/compiler": "20.3.
|
|
49
|
+
"@angular/compiler": "20.3.2",
|
|
50
50
|
"rxjs": "^6.5.3 || ^7.4.0",
|
|
51
51
|
"zone.js": "~0.15.0"
|
|
52
52
|
},
|
package/primitives/di/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v20.3.
|
|
2
|
+
* @license Angular v20.3.2
|
|
3
3
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -106,7 +106,6 @@ interface Watch {
|
|
|
106
106
|
[SIGNAL]: WatchNode;
|
|
107
107
|
}
|
|
108
108
|
interface WatchNode extends ReactiveNode {
|
|
109
|
-
hasRun: boolean;
|
|
110
109
|
fn: ((onCleanup: WatchCleanupRegisterFn) => void) | null;
|
|
111
110
|
schedule: ((watch: Watch) => void) | null;
|
|
112
111
|
cleanupFn: WatchCleanupFn;
|
package/rxjs-interop/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v20.3.
|
|
3
|
+
* @license Angular v20.3.2
|
|
4
4
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
@@ -8,12 +8,12 @@
|
|
|
8
8
|
|
|
9
9
|
require('@angular-devkit/core');
|
|
10
10
|
require('node:path/posix');
|
|
11
|
-
var project_paths = require('./project_paths-
|
|
12
|
-
var project_tsconfig_paths = require('./project_tsconfig_paths-
|
|
11
|
+
var project_paths = require('./project_paths-CfXVBYVk.cjs');
|
|
12
|
+
var project_tsconfig_paths = require('./project_tsconfig_paths-C11WBTJF.cjs');
|
|
13
13
|
var ts = require('typescript');
|
|
14
14
|
require('os');
|
|
15
|
-
var apply_import_manager = require('./apply_import_manager-
|
|
16
|
-
require('./index-
|
|
15
|
+
var apply_import_manager = require('./apply_import_manager-Ch2ALAC9.cjs');
|
|
16
|
+
require('./index-Gg0PI_fh.cjs');
|
|
17
17
|
require('path');
|
|
18
18
|
require('node:path');
|
|
19
19
|
require('@angular-devkit/schematics');
|
package/schematics/bundles/{apply_import_manager-C8vgfoJx.cjs → apply_import_manager-Ch2ALAC9.cjs}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v20.3.
|
|
3
|
+
* @license Angular v20.3.2
|
|
4
4
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
|
|
9
9
|
var ts = require('typescript');
|
|
10
10
|
require('os');
|
|
11
|
-
var project_tsconfig_paths = require('./project_tsconfig_paths-
|
|
12
|
-
var project_paths = require('./project_paths-
|
|
11
|
+
var project_tsconfig_paths = require('./project_tsconfig_paths-C11WBTJF.cjs');
|
|
12
|
+
var project_paths = require('./project_paths-CfXVBYVk.cjs');
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Applies import manager changes, and writes them as replacements the
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v20.3.
|
|
3
|
+
* @license Angular v20.3.2
|
|
4
4
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
@@ -8,14 +8,14 @@
|
|
|
8
8
|
|
|
9
9
|
require('@angular-devkit/core');
|
|
10
10
|
require('node:path/posix');
|
|
11
|
-
var project_paths = require('./project_paths-
|
|
11
|
+
var project_paths = require('./project_paths-CfXVBYVk.cjs');
|
|
12
12
|
var ts = require('typescript');
|
|
13
13
|
require('os');
|
|
14
|
-
var project_tsconfig_paths = require('./project_tsconfig_paths-
|
|
15
|
-
var index = require('./index-
|
|
14
|
+
var project_tsconfig_paths = require('./project_tsconfig_paths-C11WBTJF.cjs');
|
|
15
|
+
var index = require('./index-Gg0PI_fh.cjs');
|
|
16
16
|
require('path');
|
|
17
17
|
require('node:path');
|
|
18
|
-
var apply_import_manager = require('./apply_import_manager-
|
|
18
|
+
var apply_import_manager = require('./apply_import_manager-Ch2ALAC9.cjs');
|
|
19
19
|
require('@angular-devkit/schematics');
|
|
20
20
|
require('fs');
|
|
21
21
|
require('module');
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v20.3.
|
|
3
|
+
* @license Angular v20.3.2
|
|
4
4
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
7
7
|
'use strict';
|
|
8
8
|
|
|
9
9
|
var ts = require('typescript');
|
|
10
|
-
var project_tsconfig_paths = require('./project_tsconfig_paths-
|
|
10
|
+
var project_tsconfig_paths = require('./project_tsconfig_paths-C11WBTJF.cjs');
|
|
11
11
|
require('os');
|
|
12
12
|
var p = require('path');
|
|
13
13
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v20.3.
|
|
3
|
+
* @license Angular v20.3.2
|
|
4
4
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
|
|
9
9
|
var schematics = require('@angular-devkit/schematics');
|
|
10
10
|
var path = require('node:path');
|
|
11
|
-
var compiler_host = require('./compiler_host-
|
|
12
|
-
var project_tsconfig_paths = require('./project_tsconfig_paths-
|
|
11
|
+
var compiler_host = require('./compiler_host-Jw4hNUf8.cjs');
|
|
12
|
+
var project_tsconfig_paths = require('./project_tsconfig_paths-C11WBTJF.cjs');
|
|
13
13
|
var ts = require('typescript');
|
|
14
14
|
var p = require('path');
|
|
15
15
|
require('os');
|
|
@@ -410,6 +410,7 @@ const endMarkerRegex = new RegExp(endMarker, 'gm');
|
|
|
410
410
|
const startI18nMarkerRegex = new RegExp(startI18nMarker, 'gm');
|
|
411
411
|
const endI18nMarkerRegex = new RegExp(endI18nMarker, 'gm');
|
|
412
412
|
const replaceMarkerRegex = new RegExp(`${startMarker}|${endMarker}`, 'gm');
|
|
413
|
+
const PRIORITY_WEIGHT_TEMPLATE_REFERENCE_BY_OUTLET = 2;
|
|
413
414
|
/**
|
|
414
415
|
* Analyzes a source file to find file that need to be migrated and the text ranges within them.
|
|
415
416
|
* @param sourceFile File to be analyzed.
|
|
@@ -718,34 +719,6 @@ function getTemplates(template) {
|
|
|
718
719
|
}
|
|
719
720
|
return new Map();
|
|
720
721
|
}
|
|
721
|
-
function countTemplateUsage(nodes, templateName) {
|
|
722
|
-
let count = 0;
|
|
723
|
-
let isReferencedInTemplateOutlet = false;
|
|
724
|
-
for (const node of nodes) {
|
|
725
|
-
if (node.attrs) {
|
|
726
|
-
for (const attr of node.attrs) {
|
|
727
|
-
if (attr.name === '*ngTemplateOutlet' && attr.value === templateName.slice(1)) {
|
|
728
|
-
isReferencedInTemplateOutlet = true;
|
|
729
|
-
break;
|
|
730
|
-
}
|
|
731
|
-
if (attr.name.trim() === templateName) {
|
|
732
|
-
count++;
|
|
733
|
-
}
|
|
734
|
-
}
|
|
735
|
-
}
|
|
736
|
-
if (node.children) {
|
|
737
|
-
if (node.name === 'for') {
|
|
738
|
-
for (const child of node.children) {
|
|
739
|
-
if (child.value?.includes(templateName.slice(1))) {
|
|
740
|
-
count++;
|
|
741
|
-
}
|
|
742
|
-
}
|
|
743
|
-
}
|
|
744
|
-
count += countTemplateUsage(node.children, templateName);
|
|
745
|
-
}
|
|
746
|
-
}
|
|
747
|
-
return isReferencedInTemplateOutlet ? count + 2 : count;
|
|
748
|
-
}
|
|
749
722
|
function updateTemplates(template, templates) {
|
|
750
723
|
const updatedTemplates = getTemplates(template);
|
|
751
724
|
for (let [key, tmpl] of updatedTemplates) {
|
|
@@ -769,9 +742,10 @@ function processNgTemplates(template, sourceFile) {
|
|
|
769
742
|
try {
|
|
770
743
|
const templates = getTemplates(template);
|
|
771
744
|
// swap placeholders and remove
|
|
772
|
-
for (const [
|
|
773
|
-
const
|
|
774
|
-
const
|
|
745
|
+
for (const [nameWithHash, t] of templates) {
|
|
746
|
+
const name = nameWithHash.slice(1);
|
|
747
|
+
const replaceRegex = new RegExp(getPlaceholder(name), 'g');
|
|
748
|
+
const forRegex = new RegExp(getPlaceholder(nameWithHash.slice(1), PlaceholderKind.Alternate), 'g');
|
|
775
749
|
const forMatches = [...template.matchAll(forRegex)];
|
|
776
750
|
const matches = [...forMatches, ...template.matchAll(replaceRegex)];
|
|
777
751
|
let safeToRemove = true;
|
|
@@ -796,7 +770,12 @@ function processNgTemplates(template, sourceFile) {
|
|
|
796
770
|
template = template.replace(replaceRegex, t.children);
|
|
797
771
|
}
|
|
798
772
|
const dist = matches.filter((obj, index, self) => index === self.findIndex((t) => t.input === obj.input));
|
|
799
|
-
|
|
773
|
+
// Check if template is used by ngTemplateOutlet in addition to control flow
|
|
774
|
+
const hasTemplateOutletUsage = checkForTemplateOutletUsage(template, nameWithHash.slice(1));
|
|
775
|
+
// Only remove template if it's safe to do so AND not used by ngTemplateOutlet
|
|
776
|
+
if ((t.count === dist.length || t.count - matches.length === 1) &&
|
|
777
|
+
safeToRemove &&
|
|
778
|
+
!hasTemplateOutletUsage) {
|
|
800
779
|
const refsInComponentFile = getViewChildOrViewChildrenNames(sourceFile);
|
|
801
780
|
if (refsInComponentFile?.length > 0) {
|
|
802
781
|
const templateRefs = getTemplateReferences(template);
|
|
@@ -826,6 +805,59 @@ function processNgTemplates(template, sourceFile) {
|
|
|
826
805
|
return { migrated: template, err: err };
|
|
827
806
|
}
|
|
828
807
|
}
|
|
808
|
+
function analyzeTemplateUsage(nodes, templateName) {
|
|
809
|
+
let count = 0;
|
|
810
|
+
let isReferencedInTemplateOutlet = false;
|
|
811
|
+
const templateNameWithHash = `#${templateName}`;
|
|
812
|
+
function traverseNodes(nodeList) {
|
|
813
|
+
for (const node of nodeList) {
|
|
814
|
+
if (node.attrs) {
|
|
815
|
+
for (const attr of node.attrs) {
|
|
816
|
+
if ((attr.name === '*ngTemplateOutlet' || attr.name === '[ngTemplateOutlet]') &&
|
|
817
|
+
attr.value === templateName) {
|
|
818
|
+
isReferencedInTemplateOutlet = true;
|
|
819
|
+
}
|
|
820
|
+
if (attr.name.trim() === templateNameWithHash) {
|
|
821
|
+
count++;
|
|
822
|
+
}
|
|
823
|
+
}
|
|
824
|
+
}
|
|
825
|
+
if (node.children) {
|
|
826
|
+
if (node.name === 'for') {
|
|
827
|
+
for (const child of node.children) {
|
|
828
|
+
if (child.value?.includes(templateName)) {
|
|
829
|
+
count++;
|
|
830
|
+
}
|
|
831
|
+
}
|
|
832
|
+
}
|
|
833
|
+
traverseNodes(node.children);
|
|
834
|
+
}
|
|
835
|
+
}
|
|
836
|
+
}
|
|
837
|
+
traverseNodes(nodes);
|
|
838
|
+
return {
|
|
839
|
+
isReferencedInTemplateOutlet,
|
|
840
|
+
totalCount: isReferencedInTemplateOutlet
|
|
841
|
+
? count + PRIORITY_WEIGHT_TEMPLATE_REFERENCE_BY_OUTLET
|
|
842
|
+
: count,
|
|
843
|
+
};
|
|
844
|
+
}
|
|
845
|
+
/**
|
|
846
|
+
* Checks if a template is used by ngTemplateOutlet directive
|
|
847
|
+
*/
|
|
848
|
+
function checkForTemplateOutletUsage(template, templateName) {
|
|
849
|
+
const parsed = parseTemplate(template);
|
|
850
|
+
if (parsed.tree === undefined) {
|
|
851
|
+
return false;
|
|
852
|
+
}
|
|
853
|
+
const result = analyzeTemplateUsage(parsed.tree.rootNodes, templateName);
|
|
854
|
+
return result.isReferencedInTemplateOutlet;
|
|
855
|
+
}
|
|
856
|
+
function countTemplateUsage(nodes, templateNameWithHash) {
|
|
857
|
+
const templateName = templateNameWithHash.slice(1);
|
|
858
|
+
const result = analyzeTemplateUsage(nodes, templateName);
|
|
859
|
+
return result.totalCount;
|
|
860
|
+
}
|
|
829
861
|
function getViewChildOrViewChildrenNames(sourceFile) {
|
|
830
862
|
const names = [];
|
|
831
863
|
function visit(node) {
|
|
@@ -850,11 +882,11 @@ function getTemplateReferences(template) {
|
|
|
850
882
|
if (parsed.tree === undefined) {
|
|
851
883
|
return [];
|
|
852
884
|
}
|
|
853
|
-
const
|
|
885
|
+
const templateNameRefWithoutHash = [];
|
|
854
886
|
function visitNodes(nodes) {
|
|
855
887
|
for (const node of nodes) {
|
|
856
888
|
if (node?.name === 'ng-template') {
|
|
857
|
-
|
|
889
|
+
templateNameRefWithoutHash.push(...node.attrs?.map((ref) => ref?.name?.slice(1)));
|
|
858
890
|
}
|
|
859
891
|
if (node.children) {
|
|
860
892
|
visitNodes(node.children);
|
|
@@ -862,7 +894,7 @@ function getTemplateReferences(template) {
|
|
|
862
894
|
}
|
|
863
895
|
}
|
|
864
896
|
visitNodes(parsed.tree.rootNodes);
|
|
865
|
-
return
|
|
897
|
+
return templateNameRefWithoutHash;
|
|
866
898
|
}
|
|
867
899
|
function replaceRemainingPlaceholders(template) {
|
|
868
900
|
const pattern = '.*';
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v20.3.
|
|
3
|
+
* @license Angular v20.3.2
|
|
4
4
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
7
7
|
'use strict';
|
|
8
8
|
|
|
9
|
-
var project_tsconfig_paths = require('./project_tsconfig_paths-
|
|
9
|
+
var project_tsconfig_paths = require('./project_tsconfig_paths-C11WBTJF.cjs');
|
|
10
10
|
require('typescript');
|
|
11
11
|
require('os');
|
|
12
|
-
var apply_import_manager = require('./apply_import_manager-
|
|
13
|
-
require('./index-
|
|
12
|
+
var apply_import_manager = require('./apply_import_manager-Ch2ALAC9.cjs');
|
|
13
|
+
require('./index-Gg0PI_fh.cjs');
|
|
14
14
|
require('path');
|
|
15
15
|
require('node:path');
|
|
16
|
-
var project_paths = require('./project_paths-
|
|
16
|
+
var project_paths = require('./project_paths-CfXVBYVk.cjs');
|
|
17
17
|
var imports = require('./imports-CIX-JgAN.cjs');
|
|
18
18
|
require('@angular-devkit/core');
|
|
19
19
|
require('node:path/posix');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v20.3.
|
|
3
|
+
* @license Angular v20.3.2
|
|
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 project_tsconfig_paths = require('./project_tsconfig_paths-
|
|
12
|
-
var index = require('./index-
|
|
11
|
+
var project_tsconfig_paths = require('./project_tsconfig_paths-C11WBTJF.cjs');
|
|
12
|
+
var index = require('./index-Gg0PI_fh.cjs');
|
|
13
13
|
require('path');
|
|
14
14
|
require('node:path');
|
|
15
|
-
var project_paths = require('./project_paths-
|
|
15
|
+
var project_paths = require('./project_paths-CfXVBYVk.cjs');
|
|
16
16
|
|
|
17
17
|
function getMemberName(member) {
|
|
18
18
|
if (member.name === undefined) {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v20.3.
|
|
3
|
+
* @license Angular v20.3.2
|
|
4
4
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
7
7
|
'use strict';
|
|
8
8
|
|
|
9
|
-
var project_tsconfig_paths = require('./project_tsconfig_paths-
|
|
9
|
+
var project_tsconfig_paths = require('./project_tsconfig_paths-C11WBTJF.cjs');
|
|
10
10
|
var ts = require('typescript');
|
|
11
11
|
var p = require('path');
|
|
12
12
|
require('os');
|
|
@@ -891,7 +891,7 @@ const MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION = '18.0.0';
|
|
|
891
891
|
function compileDeclareClassMetadata(metadata) {
|
|
892
892
|
const definitionMap = new project_tsconfig_paths.DefinitionMap();
|
|
893
893
|
definitionMap.set('minVersion', project_tsconfig_paths.literal(MINIMUM_PARTIAL_LINKER_VERSION$5));
|
|
894
|
-
definitionMap.set('version', project_tsconfig_paths.literal('20.3.
|
|
894
|
+
definitionMap.set('version', project_tsconfig_paths.literal('20.3.2'));
|
|
895
895
|
definitionMap.set('ngImport', project_tsconfig_paths.importExpr(project_tsconfig_paths.Identifiers.core));
|
|
896
896
|
definitionMap.set('type', metadata.type);
|
|
897
897
|
definitionMap.set('decorators', metadata.decorators);
|
|
@@ -909,7 +909,7 @@ function compileComponentDeclareClassMetadata(metadata, dependencies) {
|
|
|
909
909
|
callbackReturnDefinitionMap.set('ctorParameters', metadata.ctorParameters ?? project_tsconfig_paths.literal(null));
|
|
910
910
|
callbackReturnDefinitionMap.set('propDecorators', metadata.propDecorators ?? project_tsconfig_paths.literal(null));
|
|
911
911
|
definitionMap.set('minVersion', project_tsconfig_paths.literal(MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION));
|
|
912
|
-
definitionMap.set('version', project_tsconfig_paths.literal('20.3.
|
|
912
|
+
definitionMap.set('version', project_tsconfig_paths.literal('20.3.2'));
|
|
913
913
|
definitionMap.set('ngImport', project_tsconfig_paths.importExpr(project_tsconfig_paths.Identifiers.core));
|
|
914
914
|
definitionMap.set('type', metadata.type);
|
|
915
915
|
definitionMap.set('resolveDeferredDeps', compileComponentMetadataAsyncResolver(dependencies));
|
|
@@ -1004,7 +1004,7 @@ function createDirectiveDefinitionMap(meta) {
|
|
|
1004
1004
|
const definitionMap = new project_tsconfig_paths.DefinitionMap();
|
|
1005
1005
|
const minVersion = getMinimumVersionForPartialOutput(meta);
|
|
1006
1006
|
definitionMap.set('minVersion', project_tsconfig_paths.literal(minVersion));
|
|
1007
|
-
definitionMap.set('version', project_tsconfig_paths.literal('20.3.
|
|
1007
|
+
definitionMap.set('version', project_tsconfig_paths.literal('20.3.2'));
|
|
1008
1008
|
// e.g. `type: MyDirective`
|
|
1009
1009
|
definitionMap.set('type', meta.type.value);
|
|
1010
1010
|
if (meta.isStandalone !== undefined) {
|
|
@@ -1420,7 +1420,7 @@ const MINIMUM_PARTIAL_LINKER_VERSION$4 = '12.0.0';
|
|
|
1420
1420
|
function compileDeclareFactoryFunction(meta) {
|
|
1421
1421
|
const definitionMap = new project_tsconfig_paths.DefinitionMap();
|
|
1422
1422
|
definitionMap.set('minVersion', project_tsconfig_paths.literal(MINIMUM_PARTIAL_LINKER_VERSION$4));
|
|
1423
|
-
definitionMap.set('version', project_tsconfig_paths.literal('20.3.
|
|
1423
|
+
definitionMap.set('version', project_tsconfig_paths.literal('20.3.2'));
|
|
1424
1424
|
definitionMap.set('ngImport', project_tsconfig_paths.importExpr(project_tsconfig_paths.Identifiers.core));
|
|
1425
1425
|
definitionMap.set('type', meta.type.value);
|
|
1426
1426
|
definitionMap.set('deps', compileDependencies(meta.deps));
|
|
@@ -1455,7 +1455,7 @@ function compileDeclareInjectableFromMetadata(meta) {
|
|
|
1455
1455
|
function createInjectableDefinitionMap(meta) {
|
|
1456
1456
|
const definitionMap = new project_tsconfig_paths.DefinitionMap();
|
|
1457
1457
|
definitionMap.set('minVersion', project_tsconfig_paths.literal(MINIMUM_PARTIAL_LINKER_VERSION$3));
|
|
1458
|
-
definitionMap.set('version', project_tsconfig_paths.literal('20.3.
|
|
1458
|
+
definitionMap.set('version', project_tsconfig_paths.literal('20.3.2'));
|
|
1459
1459
|
definitionMap.set('ngImport', project_tsconfig_paths.importExpr(project_tsconfig_paths.Identifiers.core));
|
|
1460
1460
|
definitionMap.set('type', meta.type.value);
|
|
1461
1461
|
// Only generate providedIn property if it has a non-null value
|
|
@@ -1506,7 +1506,7 @@ function compileDeclareInjectorFromMetadata(meta) {
|
|
|
1506
1506
|
function createInjectorDefinitionMap(meta) {
|
|
1507
1507
|
const definitionMap = new project_tsconfig_paths.DefinitionMap();
|
|
1508
1508
|
definitionMap.set('minVersion', project_tsconfig_paths.literal(MINIMUM_PARTIAL_LINKER_VERSION$2));
|
|
1509
|
-
definitionMap.set('version', project_tsconfig_paths.literal('20.3.
|
|
1509
|
+
definitionMap.set('version', project_tsconfig_paths.literal('20.3.2'));
|
|
1510
1510
|
definitionMap.set('ngImport', project_tsconfig_paths.importExpr(project_tsconfig_paths.Identifiers.core));
|
|
1511
1511
|
definitionMap.set('type', meta.type.value);
|
|
1512
1512
|
definitionMap.set('providers', meta.providers);
|
|
@@ -1539,7 +1539,7 @@ function createNgModuleDefinitionMap(meta) {
|
|
|
1539
1539
|
throw new Error('Invalid path! Local compilation mode should not get into the partial compilation path');
|
|
1540
1540
|
}
|
|
1541
1541
|
definitionMap.set('minVersion', project_tsconfig_paths.literal(MINIMUM_PARTIAL_LINKER_VERSION$1));
|
|
1542
|
-
definitionMap.set('version', project_tsconfig_paths.literal('20.3.
|
|
1542
|
+
definitionMap.set('version', project_tsconfig_paths.literal('20.3.2'));
|
|
1543
1543
|
definitionMap.set('ngImport', project_tsconfig_paths.importExpr(project_tsconfig_paths.Identifiers.core));
|
|
1544
1544
|
definitionMap.set('type', meta.type.value);
|
|
1545
1545
|
// We only generate the keys in the metadata if the arrays contain values.
|
|
@@ -1590,7 +1590,7 @@ function compileDeclarePipeFromMetadata(meta) {
|
|
|
1590
1590
|
function createPipeDefinitionMap(meta) {
|
|
1591
1591
|
const definitionMap = new project_tsconfig_paths.DefinitionMap();
|
|
1592
1592
|
definitionMap.set('minVersion', project_tsconfig_paths.literal(MINIMUM_PARTIAL_LINKER_VERSION));
|
|
1593
|
-
definitionMap.set('version', project_tsconfig_paths.literal('20.3.
|
|
1593
|
+
definitionMap.set('version', project_tsconfig_paths.literal('20.3.2'));
|
|
1594
1594
|
definitionMap.set('ngImport', project_tsconfig_paths.importExpr(project_tsconfig_paths.Identifiers.core));
|
|
1595
1595
|
// e.g. `type: MyPipe`
|
|
1596
1596
|
definitionMap.set('type', meta.type.value);
|
|
@@ -11523,11 +11523,12 @@ class ComponentDecoratorHandler {
|
|
|
11523
11523
|
for (const [_, deps] of resolution.deferPerBlockDependencies) {
|
|
11524
11524
|
for (const deferBlockDep of deps) {
|
|
11525
11525
|
const node = deferBlockDep.declaration.node;
|
|
11526
|
-
const
|
|
11527
|
-
if (
|
|
11526
|
+
const importInfo = resolution.deferrableDeclToImportDecl.get(node) ?? null;
|
|
11527
|
+
if (importInfo !== null && this.deferredSymbolTracker.canDefer(importInfo.node)) {
|
|
11528
11528
|
deferBlockDep.isDeferrable = true;
|
|
11529
|
-
deferBlockDep.
|
|
11530
|
-
deferBlockDep.
|
|
11529
|
+
deferBlockDep.symbolName = importInfo.name;
|
|
11530
|
+
deferBlockDep.importPath = importInfo.from;
|
|
11531
|
+
deferBlockDep.isDefaultImport = isDefaultImport(importInfo.node);
|
|
11531
11532
|
// The same dependency may be used across multiple deferred blocks. De-duplicate it
|
|
11532
11533
|
// because it can throw off other logic further down the compilation pipeline.
|
|
11533
11534
|
// Note that the logic above needs to run even if the dependency is seen before,
|
|
@@ -11700,9 +11701,10 @@ class ComponentDecoratorHandler {
|
|
|
11700
11701
|
// This is not a directive or a pipe.
|
|
11701
11702
|
return;
|
|
11702
11703
|
}
|
|
11703
|
-
// Keep track of how this class made it into the current source file
|
|
11704
|
-
//
|
|
11705
|
-
|
|
11704
|
+
// Keep track of how this class made it into the current source file.
|
|
11705
|
+
// Store the full `Import` info so that callers can correctly determine the
|
|
11706
|
+
// exported name (handling aliasing) and the module specifier.
|
|
11707
|
+
resolutionData.deferrableDeclToImportDecl.set(decl.node, imp);
|
|
11706
11708
|
this.deferredSymbolTracker.markAsDeferrableCandidate(node, imp.node, componentClassDecl, isDeferredImport);
|
|
11707
11709
|
}
|
|
11708
11710
|
compileDeferBlocks(resolution) {
|
|
@@ -12321,7 +12323,7 @@ class PipeDecoratorHandler {
|
|
|
12321
12323
|
* @description
|
|
12322
12324
|
* Entry point for all public APIs of the compiler-cli package.
|
|
12323
12325
|
*/
|
|
12324
|
-
new project_tsconfig_paths.Version('20.3.
|
|
12326
|
+
new project_tsconfig_paths.Version('20.3.2');
|
|
12325
12327
|
|
|
12326
12328
|
/**
|
|
12327
12329
|
* Whether a given decorator should be treated as an Angular decorator.
|
|
@@ -16777,13 +16779,24 @@ const factory$9 = {
|
|
|
16777
16779
|
* otherwise it would produce inaccurate results.
|
|
16778
16780
|
*/
|
|
16779
16781
|
class OptionalChainNotNullableCheck extends TemplateCheckWithVisitor {
|
|
16782
|
+
noUncheckedIndexedAccess;
|
|
16780
16783
|
canVisitStructuralAttributes = false;
|
|
16781
16784
|
code = project_tsconfig_paths.ErrorCode.OPTIONAL_CHAIN_NOT_NULLABLE;
|
|
16785
|
+
constructor(noUncheckedIndexedAccess) {
|
|
16786
|
+
super();
|
|
16787
|
+
this.noUncheckedIndexedAccess = noUncheckedIndexedAccess;
|
|
16788
|
+
}
|
|
16782
16789
|
visitNode(ctx, component, node) {
|
|
16783
16790
|
if (!(node instanceof project_tsconfig_paths.SafeCall) &&
|
|
16784
16791
|
!(node instanceof project_tsconfig_paths.SafePropertyRead) &&
|
|
16785
|
-
!(node instanceof project_tsconfig_paths.SafeKeyedRead))
|
|
16792
|
+
!(node instanceof project_tsconfig_paths.SafeKeyedRead)) {
|
|
16786
16793
|
return [];
|
|
16794
|
+
}
|
|
16795
|
+
// When `noUncheckedIndexedAccess` is disabled, an indexed access is not checked
|
|
16796
|
+
// and may result in `undefined`.
|
|
16797
|
+
if (node.receiver instanceof project_tsconfig_paths.KeyedRead && !this.noUncheckedIndexedAccess) {
|
|
16798
|
+
return [];
|
|
16799
|
+
}
|
|
16787
16800
|
const symbolLeft = ctx.templateTypeChecker.getSymbolOfNode(node.receiver, component);
|
|
16788
16801
|
if (symbolLeft === null || symbolLeft.kind !== project_tsconfig_paths.SymbolKind.Expression) {
|
|
16789
16802
|
return [];
|
|
@@ -16823,7 +16836,8 @@ const factory$8 = {
|
|
|
16823
16836
|
if (!strictNullChecks) {
|
|
16824
16837
|
return null;
|
|
16825
16838
|
}
|
|
16826
|
-
|
|
16839
|
+
const noUncheckedIndexedAccess = !!options.noUncheckedIndexedAccess;
|
|
16840
|
+
return new OptionalChainNotNullableCheck(noUncheckedIndexedAccess);
|
|
16827
16841
|
},
|
|
16828
16842
|
};
|
|
16829
16843
|
|
|
@@ -20413,7 +20427,7 @@ var semver = /*@__PURE__*/getDefaultExportFromCjs(semverExports);
|
|
|
20413
20427
|
* @param minVersion Minimum required version for the feature.
|
|
20414
20428
|
*/
|
|
20415
20429
|
function coreVersionSupportsFeature(coreVersion, minVersion) {
|
|
20416
|
-
// A version of `20.3.
|
|
20430
|
+
// A version of `20.3.2` usually means that core is at head so it supports
|
|
20417
20431
|
// all features. Use string interpolation prevent the placeholder from being replaced
|
|
20418
20432
|
// with the current version during build time.
|
|
20419
20433
|
if (coreVersion === `0.0.0-${'PLACEHOLDER'}`) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v20.3.
|
|
3
|
+
* @license Angular v20.3.2
|
|
4
4
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
@@ -8,12 +8,12 @@
|
|
|
8
8
|
|
|
9
9
|
var ts = require('typescript');
|
|
10
10
|
require('os');
|
|
11
|
-
var project_tsconfig_paths = require('./project_tsconfig_paths-
|
|
12
|
-
require('./index-
|
|
11
|
+
var project_tsconfig_paths = require('./project_tsconfig_paths-C11WBTJF.cjs');
|
|
12
|
+
require('./index-Gg0PI_fh.cjs');
|
|
13
13
|
require('path');
|
|
14
14
|
require('node:path');
|
|
15
|
-
var project_paths = require('./project_paths-
|
|
16
|
-
var apply_import_manager = require('./apply_import_manager-
|
|
15
|
+
var project_paths = require('./project_paths-CfXVBYVk.cjs');
|
|
16
|
+
var apply_import_manager = require('./apply_import_manager-Ch2ALAC9.cjs');
|
|
17
17
|
var imports = require('./imports-CIX-JgAN.cjs');
|
|
18
18
|
require('@angular-devkit/core');
|
|
19
19
|
require('node:path/posix');
|