@angular/core 21.0.0-next.8 → 21.0.0-next.9
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/_attribute-chunk.mjs +1 -1
- package/fesm2022/_debug_node-chunk.mjs +481 -438
- package/fesm2022/_debug_node-chunk.mjs.map +1 -1
- package/fesm2022/_effect-chunk.mjs +512 -48
- package/fesm2022/_effect-chunk.mjs.map +1 -1
- package/fesm2022/{_root_effect_scheduler-chunk.mjs → _effect-chunk2.mjs} +197 -19
- package/fesm2022/_effect-chunk2.mjs.map +1 -0
- package/fesm2022/_not_found-chunk.mjs +1 -1
- package/fesm2022/_resource-chunk.mjs +5 -173
- package/fesm2022/_resource-chunk.mjs.map +1 -1
- package/fesm2022/_untracked-chunk.mjs +117 -0
- package/fesm2022/_untracked-chunk.mjs.map +1 -0
- package/fesm2022/_weak_ref-chunk.mjs +1 -1
- package/fesm2022/core.mjs +8 -7
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/primitives-di.mjs +1 -1
- package/fesm2022/primitives-event-dispatch.mjs +1 -1
- package/fesm2022/primitives-signals.mjs +4 -4
- package/fesm2022/primitives-signals.mjs.map +1 -1
- package/fesm2022/rxjs-interop.mjs +5 -5
- package/fesm2022/testing.mjs +3 -3
- package/package.json +2 -2
- package/schematics/bundles/add-bootstrap-context-to-server-main.cjs +5 -5
- package/schematics/bundles/application-config-core.cjs +5 -5
- package/schematics/bundles/{apply_import_manager-CBLmogDD.cjs → apply_import_manager-CoeTX_Ob.cjs} +3 -3
- package/schematics/bundles/bootstrap-options-migration.cjs +5 -5
- package/schematics/bundles/cleanup-unused-imports.cjs +5 -5
- package/schematics/bundles/common-to-standalone-migration.cjs +385 -0
- package/schematics/bundles/{compiler_host-T6xncpiw.cjs → compiler_host-emLDwK2U.cjs} +2 -2
- package/schematics/bundles/control-flow-migration.cjs +4 -4
- package/schematics/bundles/imports-DwPXlGFl.cjs +1 -1
- package/schematics/bundles/{index-DWSaRJdz.cjs → index-CLxYZ09c.cjs} +4 -4
- package/schematics/bundles/{index-BnmACOsq.cjs → index-Dvqnp6JS.cjs} +166 -66
- package/schematics/bundles/inject-migration.cjs +3 -3
- package/schematics/bundles/leading_space-D9nQ8UQC.cjs +1 -1
- package/schematics/bundles/{migrate_ts_type_references-Cu-FR4L5.cjs → migrate_ts_type_references-CpM5FPGa.cjs} +5 -5
- package/schematics/bundles/{ng_component_template-BkWiUuGG.cjs → ng_component_template-BRbBIAUX.cjs} +2 -2
- package/schematics/bundles/ng_decorators-BI0uV7KI.cjs +1 -1
- package/schematics/bundles/ngclass-to-class-migration.cjs +7 -7
- package/schematics/bundles/ngstyle-to-style-migration.cjs +7 -7
- package/schematics/bundles/nodes-B16H9JUd.cjs +1 -1
- package/schematics/bundles/output-migration.cjs +6 -6
- package/schematics/bundles/{parse_html-C97tKKp3.cjs → parse_html-CPWfkfhR.cjs} +2 -2
- package/schematics/bundles/{project_paths-C6g3lqjX.cjs → project_paths-C8H7KDJ3.cjs} +3 -3
- package/schematics/bundles/{project_tsconfig_paths-CdhVNYMk.cjs → project_tsconfig_paths-CiBzGSIa.cjs} +12 -4
- 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/router-last-successful-navigation.cjs +4 -4
- package/schematics/bundles/router-testing-module-migration.cjs +5 -5
- package/schematics/bundles/self-closing-tags-migration.cjs +6 -6
- 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 +4 -4
- package/schematics/bundles/symbol-BObKoqes.cjs +1 -1
- package/schematics/collection.json +6 -0
- package/schematics/migrations/common-to-standalone-migration/schema.json +14 -0
- package/types/_api-chunk.d.ts +1 -1
- package/types/_chrome_dev_tools_performance-chunk.d.ts +20 -12
- package/types/_discovery-chunk.d.ts +12 -6
- package/types/_effect-chunk.d.ts +1 -1
- package/types/_event_dispatcher-chunk.d.ts +1 -1
- package/types/_formatter-chunk.d.ts +4 -3
- package/types/_weak_ref-chunk.d.ts +1 -1
- package/types/core.d.ts +49 -20
- package/types/primitives-di.d.ts +1 -1
- package/types/primitives-event-dispatch.d.ts +1 -1
- package/types/primitives-signals.d.ts +2 -2
- package/types/rxjs-interop.d.ts +1 -1
- package/types/testing.d.ts +1 -1
- package/fesm2022/_root_effect_scheduler-chunk.mjs.map +0 -1
- package/fesm2022/_signal-chunk.mjs +0 -581
- package/fesm2022/_signal-chunk.mjs.map +0 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v21.0.0-next.
|
|
3
|
+
* @license Angular v21.0.0-next.9
|
|
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-CiBzGSIa.cjs');
|
|
10
10
|
var ts = require('typescript');
|
|
11
11
|
var p = require('path');
|
|
12
12
|
require('os');
|
|
@@ -888,7 +888,7 @@ const MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION = '18.0.0';
|
|
|
888
888
|
function compileDeclareClassMetadata(metadata) {
|
|
889
889
|
const definitionMap = new project_tsconfig_paths.DefinitionMap();
|
|
890
890
|
definitionMap.set('minVersion', project_tsconfig_paths.literal(MINIMUM_PARTIAL_LINKER_VERSION$5));
|
|
891
|
-
definitionMap.set('version', project_tsconfig_paths.literal('21.0.0-next.
|
|
891
|
+
definitionMap.set('version', project_tsconfig_paths.literal('21.0.0-next.9'));
|
|
892
892
|
definitionMap.set('ngImport', project_tsconfig_paths.importExpr(project_tsconfig_paths.Identifiers.core));
|
|
893
893
|
definitionMap.set('type', metadata.type);
|
|
894
894
|
definitionMap.set('decorators', metadata.decorators);
|
|
@@ -906,7 +906,7 @@ function compileComponentDeclareClassMetadata(metadata, dependencies) {
|
|
|
906
906
|
callbackReturnDefinitionMap.set('ctorParameters', metadata.ctorParameters ?? project_tsconfig_paths.literal(null));
|
|
907
907
|
callbackReturnDefinitionMap.set('propDecorators', metadata.propDecorators ?? project_tsconfig_paths.literal(null));
|
|
908
908
|
definitionMap.set('minVersion', project_tsconfig_paths.literal(MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION));
|
|
909
|
-
definitionMap.set('version', project_tsconfig_paths.literal('21.0.0-next.
|
|
909
|
+
definitionMap.set('version', project_tsconfig_paths.literal('21.0.0-next.9'));
|
|
910
910
|
definitionMap.set('ngImport', project_tsconfig_paths.importExpr(project_tsconfig_paths.Identifiers.core));
|
|
911
911
|
definitionMap.set('type', metadata.type);
|
|
912
912
|
definitionMap.set('resolveDeferredDeps', compileComponentMetadataAsyncResolver(dependencies));
|
|
@@ -1001,7 +1001,7 @@ function createDirectiveDefinitionMap(meta) {
|
|
|
1001
1001
|
const definitionMap = new project_tsconfig_paths.DefinitionMap();
|
|
1002
1002
|
const minVersion = getMinimumVersionForPartialOutput(meta);
|
|
1003
1003
|
definitionMap.set('minVersion', project_tsconfig_paths.literal(minVersion));
|
|
1004
|
-
definitionMap.set('version', project_tsconfig_paths.literal('21.0.0-next.
|
|
1004
|
+
definitionMap.set('version', project_tsconfig_paths.literal('21.0.0-next.9'));
|
|
1005
1005
|
// e.g. `type: MyDirective`
|
|
1006
1006
|
definitionMap.set('type', meta.type.value);
|
|
1007
1007
|
if (meta.isStandalone !== undefined) {
|
|
@@ -1414,7 +1414,7 @@ const MINIMUM_PARTIAL_LINKER_VERSION$4 = '12.0.0';
|
|
|
1414
1414
|
function compileDeclareFactoryFunction(meta) {
|
|
1415
1415
|
const definitionMap = new project_tsconfig_paths.DefinitionMap();
|
|
1416
1416
|
definitionMap.set('minVersion', project_tsconfig_paths.literal(MINIMUM_PARTIAL_LINKER_VERSION$4));
|
|
1417
|
-
definitionMap.set('version', project_tsconfig_paths.literal('21.0.0-next.
|
|
1417
|
+
definitionMap.set('version', project_tsconfig_paths.literal('21.0.0-next.9'));
|
|
1418
1418
|
definitionMap.set('ngImport', project_tsconfig_paths.importExpr(project_tsconfig_paths.Identifiers.core));
|
|
1419
1419
|
definitionMap.set('type', meta.type.value);
|
|
1420
1420
|
definitionMap.set('deps', compileDependencies(meta.deps));
|
|
@@ -1449,7 +1449,7 @@ function compileDeclareInjectableFromMetadata(meta) {
|
|
|
1449
1449
|
function createInjectableDefinitionMap(meta) {
|
|
1450
1450
|
const definitionMap = new project_tsconfig_paths.DefinitionMap();
|
|
1451
1451
|
definitionMap.set('minVersion', project_tsconfig_paths.literal(MINIMUM_PARTIAL_LINKER_VERSION$3));
|
|
1452
|
-
definitionMap.set('version', project_tsconfig_paths.literal('21.0.0-next.
|
|
1452
|
+
definitionMap.set('version', project_tsconfig_paths.literal('21.0.0-next.9'));
|
|
1453
1453
|
definitionMap.set('ngImport', project_tsconfig_paths.importExpr(project_tsconfig_paths.Identifiers.core));
|
|
1454
1454
|
definitionMap.set('type', meta.type.value);
|
|
1455
1455
|
// Only generate providedIn property if it has a non-null value
|
|
@@ -1500,7 +1500,7 @@ function compileDeclareInjectorFromMetadata(meta) {
|
|
|
1500
1500
|
function createInjectorDefinitionMap(meta) {
|
|
1501
1501
|
const definitionMap = new project_tsconfig_paths.DefinitionMap();
|
|
1502
1502
|
definitionMap.set('minVersion', project_tsconfig_paths.literal(MINIMUM_PARTIAL_LINKER_VERSION$2));
|
|
1503
|
-
definitionMap.set('version', project_tsconfig_paths.literal('21.0.0-next.
|
|
1503
|
+
definitionMap.set('version', project_tsconfig_paths.literal('21.0.0-next.9'));
|
|
1504
1504
|
definitionMap.set('ngImport', project_tsconfig_paths.importExpr(project_tsconfig_paths.Identifiers.core));
|
|
1505
1505
|
definitionMap.set('type', meta.type.value);
|
|
1506
1506
|
definitionMap.set('providers', meta.providers);
|
|
@@ -1533,7 +1533,7 @@ function createNgModuleDefinitionMap(meta) {
|
|
|
1533
1533
|
throw new Error('Invalid path! Local compilation mode should not get into the partial compilation path');
|
|
1534
1534
|
}
|
|
1535
1535
|
definitionMap.set('minVersion', project_tsconfig_paths.literal(MINIMUM_PARTIAL_LINKER_VERSION$1));
|
|
1536
|
-
definitionMap.set('version', project_tsconfig_paths.literal('21.0.0-next.
|
|
1536
|
+
definitionMap.set('version', project_tsconfig_paths.literal('21.0.0-next.9'));
|
|
1537
1537
|
definitionMap.set('ngImport', project_tsconfig_paths.importExpr(project_tsconfig_paths.Identifiers.core));
|
|
1538
1538
|
definitionMap.set('type', meta.type.value);
|
|
1539
1539
|
// We only generate the keys in the metadata if the arrays contain values.
|
|
@@ -1584,7 +1584,7 @@ function compileDeclarePipeFromMetadata(meta) {
|
|
|
1584
1584
|
function createPipeDefinitionMap(meta) {
|
|
1585
1585
|
const definitionMap = new project_tsconfig_paths.DefinitionMap();
|
|
1586
1586
|
definitionMap.set('minVersion', project_tsconfig_paths.literal(MINIMUM_PARTIAL_LINKER_VERSION));
|
|
1587
|
-
definitionMap.set('version', project_tsconfig_paths.literal('21.0.0-next.
|
|
1587
|
+
definitionMap.set('version', project_tsconfig_paths.literal('21.0.0-next.9'));
|
|
1588
1588
|
definitionMap.set('ngImport', project_tsconfig_paths.importExpr(project_tsconfig_paths.Identifiers.core));
|
|
1589
1589
|
// e.g. `type: MyPipe`
|
|
1590
1590
|
definitionMap.set('type', meta.type.value);
|
|
@@ -10183,6 +10183,45 @@ class SelectorlessDirectivesAnalyzer extends project_tsconfig_paths.CombinedRecu
|
|
|
10183
10183
|
}
|
|
10184
10184
|
}
|
|
10185
10185
|
|
|
10186
|
+
/*!
|
|
10187
|
+
* @license
|
|
10188
|
+
* Copyright Google LLC All Rights Reserved.
|
|
10189
|
+
*
|
|
10190
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
10191
|
+
* found in the LICENSE file at https://angular.dev/license
|
|
10192
|
+
*/
|
|
10193
|
+
const ANIMATE_ENTER = 'animate.enter';
|
|
10194
|
+
const ANIMATE_LEAVE = `animate.leave`;
|
|
10195
|
+
/**
|
|
10196
|
+
* Analyzes a component's template to determine if it's using animate.enter
|
|
10197
|
+
* or animate.leave syntax.
|
|
10198
|
+
*/
|
|
10199
|
+
function analyzeTemplateForAnimations(template) {
|
|
10200
|
+
const analyzer = new AnimationsAnalyzer();
|
|
10201
|
+
project_tsconfig_paths.visitAll(analyzer, template);
|
|
10202
|
+
return { hasAnimations: analyzer.hasAnimations };
|
|
10203
|
+
}
|
|
10204
|
+
/**
|
|
10205
|
+
* Visitor that traverses all the template nodes and
|
|
10206
|
+
* expressions to look for animation references.
|
|
10207
|
+
*/
|
|
10208
|
+
class AnimationsAnalyzer extends project_tsconfig_paths.CombinedRecursiveAstVisitor {
|
|
10209
|
+
hasAnimations = false;
|
|
10210
|
+
visitElement(element) {
|
|
10211
|
+
for (const attr of element.attributes) {
|
|
10212
|
+
if (attr.name === ANIMATE_LEAVE || attr.name === ANIMATE_ENTER) {
|
|
10213
|
+
this.hasAnimations = true;
|
|
10214
|
+
}
|
|
10215
|
+
}
|
|
10216
|
+
for (const input of element.inputs) {
|
|
10217
|
+
if (input.name === ANIMATE_LEAVE || input.name === ANIMATE_ENTER) {
|
|
10218
|
+
this.hasAnimations = true;
|
|
10219
|
+
}
|
|
10220
|
+
}
|
|
10221
|
+
super.visitElement(element);
|
|
10222
|
+
}
|
|
10223
|
+
}
|
|
10224
|
+
|
|
10186
10225
|
const EMPTY_ARRAY = [];
|
|
10187
10226
|
const isUsedDirective = (decl) => decl.kind === project_tsconfig_paths.R3TemplateDependencyKind.Directive;
|
|
10188
10227
|
const isUsedPipe = (decl) => decl.kind === project_tsconfig_paths.R3TemplateDependencyKind.Pipe;
|
|
@@ -10595,6 +10634,16 @@ class ComponentDecoratorHandler {
|
|
|
10595
10634
|
}
|
|
10596
10635
|
}
|
|
10597
10636
|
}
|
|
10637
|
+
if (component.has('animations')) {
|
|
10638
|
+
const { hasAnimations } = analyzeTemplateForAnimations(template.nodes);
|
|
10639
|
+
if (hasAnimations) {
|
|
10640
|
+
if (diagnostics === undefined) {
|
|
10641
|
+
diagnostics = [];
|
|
10642
|
+
}
|
|
10643
|
+
diagnostics.push(project_tsconfig_paths.makeDiagnostic(project_tsconfig_paths.ErrorCode.COMPONENT_ANIMATIONS_CONFLICT, component.get('animations'), `A component cannot have both the '@Component.animations' property (legacy animations) and use 'animate.enter' or 'animate.leave' in the template.`));
|
|
10644
|
+
isPoisoned = true;
|
|
10645
|
+
}
|
|
10646
|
+
}
|
|
10598
10647
|
const templateResource = template.declaration.isInline
|
|
10599
10648
|
? { path: null, node: component.get('template') }
|
|
10600
10649
|
: {
|
|
@@ -12350,7 +12399,7 @@ class PipeDecoratorHandler {
|
|
|
12350
12399
|
* @description
|
|
12351
12400
|
* Entry point for all public APIs of the compiler-cli package.
|
|
12352
12401
|
*/
|
|
12353
|
-
new project_tsconfig_paths.Version('21.0.0-next.
|
|
12402
|
+
new project_tsconfig_paths.Version('21.0.0-next.9');
|
|
12354
12403
|
|
|
12355
12404
|
/**
|
|
12356
12405
|
* Whether a given decorator should be treated as an Angular decorator.
|
|
@@ -13540,21 +13589,6 @@ var MemberTags;
|
|
|
13540
13589
|
MemberTags["Inherited"] = "override";
|
|
13541
13590
|
})(MemberTags || (MemberTags = {}));
|
|
13542
13591
|
|
|
13543
|
-
/** Gets whether a symbol's name indicates it is an Angular-private API. */
|
|
13544
|
-
function isAngularPrivateName(name) {
|
|
13545
|
-
const firstChar = name[0] ?? '';
|
|
13546
|
-
return firstChar === 'ɵ' || firstChar === '_';
|
|
13547
|
-
}
|
|
13548
|
-
|
|
13549
|
-
/** Gets a list of all the generic type parameters for a declaration. */
|
|
13550
|
-
function extractGenerics(declaration) {
|
|
13551
|
-
return (declaration.typeParameters?.map((typeParam) => ({
|
|
13552
|
-
name: typeParam.name.getText(),
|
|
13553
|
-
constraint: typeParam.constraint?.getText(),
|
|
13554
|
-
default: typeParam.default?.getText(),
|
|
13555
|
-
})) ?? []);
|
|
13556
|
-
}
|
|
13557
|
-
|
|
13558
13592
|
/**
|
|
13559
13593
|
* RegExp to match the `@` character follow by any Angular decorator, used to escape Angular
|
|
13560
13594
|
* decorators in JsDoc blocks so that they're not parsed as JsDoc tags.
|
|
@@ -13621,6 +13655,21 @@ function unescapeAngularDecorators(comment) {
|
|
|
13621
13655
|
return comment.replace(/_NG_AT_/g, '@');
|
|
13622
13656
|
}
|
|
13623
13657
|
|
|
13658
|
+
/** Gets whether a symbol's name indicates it is an Angular-private API. */
|
|
13659
|
+
function isAngularPrivateName(name) {
|
|
13660
|
+
const firstChar = name[0] ?? '';
|
|
13661
|
+
return firstChar === 'ɵ' || firstChar === '_';
|
|
13662
|
+
}
|
|
13663
|
+
|
|
13664
|
+
/** Gets a list of all the generic type parameters for a declaration. */
|
|
13665
|
+
function extractGenerics(declaration) {
|
|
13666
|
+
return (declaration.typeParameters?.map((typeParam) => ({
|
|
13667
|
+
name: typeParam.name.getText(),
|
|
13668
|
+
constraint: typeParam.constraint?.getText(),
|
|
13669
|
+
default: typeParam.default?.getText(),
|
|
13670
|
+
})) ?? []);
|
|
13671
|
+
}
|
|
13672
|
+
|
|
13624
13673
|
/** Gets the string representation of a node's resolved type. */
|
|
13625
13674
|
function extractResolvedTypeString(node, checker) {
|
|
13626
13675
|
return checker.typeToString(checker.getTypeAtLocation(node), undefined, ts.TypeFormatFlags.NoTruncation);
|
|
@@ -13765,7 +13814,7 @@ function hasLeadingInternalComment(member) {
|
|
|
13765
13814
|
}
|
|
13766
13815
|
|
|
13767
13816
|
/** Extractor to pull info for API reference documentation for a TypeScript class or interface. */
|
|
13768
|
-
class
|
|
13817
|
+
class PropertiesExtractor {
|
|
13769
13818
|
declaration;
|
|
13770
13819
|
typeChecker;
|
|
13771
13820
|
constructor(declaration, typeChecker) {
|
|
@@ -13775,18 +13824,8 @@ class ClassExtractor {
|
|
|
13775
13824
|
/** Extract docs info specific to classes. */
|
|
13776
13825
|
extract() {
|
|
13777
13826
|
return {
|
|
13778
|
-
name: this.declaration.name.text,
|
|
13779
|
-
isAbstract: this.isAbstract(),
|
|
13780
|
-
entryType: ts.isInterfaceDeclaration(this.declaration)
|
|
13781
|
-
? EntryType.Interface
|
|
13782
|
-
: EntryType.UndecoratedClass,
|
|
13783
13827
|
members: this.extractSignatures().concat(this.extractAllClassMembers()),
|
|
13784
13828
|
generics: extractGenerics(this.declaration),
|
|
13785
|
-
description: extractJsDocDescription(this.declaration),
|
|
13786
|
-
jsdocTags: extractJsDocTags(this.declaration),
|
|
13787
|
-
rawComment: extractRawJsDoc(this.declaration),
|
|
13788
|
-
extends: this.extractInheritance(this.declaration),
|
|
13789
|
-
implements: this.extractInterfaceConformance(this.declaration),
|
|
13790
13829
|
};
|
|
13791
13830
|
}
|
|
13792
13831
|
/** Extracts doc info for a class's members. */
|
|
@@ -13873,22 +13912,6 @@ class ClassExtractor {
|
|
|
13873
13912
|
memberTags: this.getMemberTags(constructorDeclaration),
|
|
13874
13913
|
};
|
|
13875
13914
|
}
|
|
13876
|
-
extractInheritance(declaration) {
|
|
13877
|
-
if (!declaration.heritageClauses) {
|
|
13878
|
-
return undefined;
|
|
13879
|
-
}
|
|
13880
|
-
for (const clause of declaration.heritageClauses) {
|
|
13881
|
-
if (clause.token === ts.SyntaxKind.ExtendsKeyword) {
|
|
13882
|
-
// We are assuming a single class can only extend one class.
|
|
13883
|
-
const types = clause.types;
|
|
13884
|
-
if (types.length > 0) {
|
|
13885
|
-
const baseClass = types[0];
|
|
13886
|
-
return baseClass.getText();
|
|
13887
|
-
}
|
|
13888
|
-
}
|
|
13889
|
-
}
|
|
13890
|
-
return undefined;
|
|
13891
|
-
}
|
|
13892
13915
|
extractInterfaceConformance(declaration) {
|
|
13893
13916
|
const implementClause = declaration.heritageClauses?.find((clause) => clause.token === ts.SyntaxKind.ImplementsKeyword);
|
|
13894
13917
|
return implementClause?.types.map((m) => m.getText()) ?? [];
|
|
@@ -14042,11 +14065,6 @@ class ClassExtractor {
|
|
|
14042
14065
|
isDocumentableSignature(signature) {
|
|
14043
14066
|
return (ts.isConstructSignatureDeclaration(signature) || ts.isCallSignatureDeclaration(signature));
|
|
14044
14067
|
}
|
|
14045
|
-
/** Gets whether the declaration for this extractor is abstract. */
|
|
14046
|
-
isAbstract() {
|
|
14047
|
-
const modifiers = this.declaration.modifiers ?? [];
|
|
14048
|
-
return modifiers.some((mod) => mod.kind === ts.SyntaxKind.AbstractKeyword);
|
|
14049
|
-
}
|
|
14050
14068
|
/**
|
|
14051
14069
|
* Check wether a member has a private computed property name like [ɵWRITABLE_SIGNAL]
|
|
14052
14070
|
*
|
|
@@ -14056,6 +14074,48 @@ class ClassExtractor {
|
|
|
14056
14074
|
return (ts.isComputedPropertyName(property.name) && property.name.expression.getText().startsWith('ɵ'));
|
|
14057
14075
|
}
|
|
14058
14076
|
}
|
|
14077
|
+
|
|
14078
|
+
/** Extractor to pull info for API reference documentation for a TypeScript class or interface. */
|
|
14079
|
+
class ClassExtractor extends PropertiesExtractor {
|
|
14080
|
+
constructor(declaration, typeChecker) {
|
|
14081
|
+
super(declaration, typeChecker);
|
|
14082
|
+
}
|
|
14083
|
+
/** Extract docs info specific to classes. */
|
|
14084
|
+
extract() {
|
|
14085
|
+
return {
|
|
14086
|
+
name: this.declaration.name.text,
|
|
14087
|
+
isAbstract: this.isAbstract(),
|
|
14088
|
+
entryType: EntryType.UndecoratedClass,
|
|
14089
|
+
...super.extract(),
|
|
14090
|
+
description: extractJsDocDescription(this.declaration),
|
|
14091
|
+
jsdocTags: extractJsDocTags(this.declaration),
|
|
14092
|
+
rawComment: extractRawJsDoc(this.declaration),
|
|
14093
|
+
extends: this.extractInheritance(this.declaration),
|
|
14094
|
+
implements: this.extractInterfaceConformance(this.declaration),
|
|
14095
|
+
};
|
|
14096
|
+
}
|
|
14097
|
+
/** Gets whether the declaration for this extractor is abstract. */
|
|
14098
|
+
isAbstract() {
|
|
14099
|
+
const modifiers = this.declaration.modifiers ?? [];
|
|
14100
|
+
return modifiers.some((mod) => mod.kind === ts.SyntaxKind.AbstractKeyword);
|
|
14101
|
+
}
|
|
14102
|
+
extractInheritance(declaration) {
|
|
14103
|
+
if (!declaration.heritageClauses) {
|
|
14104
|
+
return undefined;
|
|
14105
|
+
}
|
|
14106
|
+
for (const clause of declaration.heritageClauses) {
|
|
14107
|
+
if (clause.token === ts.SyntaxKind.ExtendsKeyword) {
|
|
14108
|
+
// We are assuming a single class can only extend one class.
|
|
14109
|
+
const types = clause.types;
|
|
14110
|
+
if (types.length > 0) {
|
|
14111
|
+
const baseClass = types[0];
|
|
14112
|
+
return baseClass.getText();
|
|
14113
|
+
}
|
|
14114
|
+
}
|
|
14115
|
+
}
|
|
14116
|
+
return undefined;
|
|
14117
|
+
}
|
|
14118
|
+
}
|
|
14059
14119
|
/** Extractor to pull info for API reference documentation for an Angular directive. */
|
|
14060
14120
|
class DirectiveExtractor extends ClassExtractor {
|
|
14061
14121
|
reference;
|
|
@@ -14159,11 +14219,6 @@ function extractClass(classDeclaration, metadataReader, typeChecker) {
|
|
|
14159
14219
|
}
|
|
14160
14220
|
return extractor.extract();
|
|
14161
14221
|
}
|
|
14162
|
-
/** Extracts documentation info for an interface. */
|
|
14163
|
-
function extractInterface(declaration, typeChecker) {
|
|
14164
|
-
const extractor = new ClassExtractor(declaration, typeChecker);
|
|
14165
|
-
return extractor.extract();
|
|
14166
|
-
}
|
|
14167
14222
|
function extractPipeSyntax(metadata, classDeclaration) {
|
|
14168
14223
|
const transformParams = classDeclaration.members.find((member) => {
|
|
14169
14224
|
return (ts.isMethodDeclaration(member) &&
|
|
@@ -14255,6 +14310,46 @@ function extractLiteralPropertiesAsEnumMembers(declaration) {
|
|
|
14255
14310
|
});
|
|
14256
14311
|
}
|
|
14257
14312
|
|
|
14313
|
+
/** Extractor to pull info for API reference documentation for a TypeScript class or interface. */
|
|
14314
|
+
class InterfaceExtractor extends PropertiesExtractor {
|
|
14315
|
+
constructor(declaration, typeChecker) {
|
|
14316
|
+
super(declaration, typeChecker);
|
|
14317
|
+
}
|
|
14318
|
+
/** Extract docs info specific to classes. */
|
|
14319
|
+
extract() {
|
|
14320
|
+
return {
|
|
14321
|
+
name: this.declaration.name.text,
|
|
14322
|
+
entryType: EntryType.Interface,
|
|
14323
|
+
...super.extract(),
|
|
14324
|
+
description: extractJsDocDescription(this.declaration),
|
|
14325
|
+
jsdocTags: extractJsDocTags(this.declaration),
|
|
14326
|
+
rawComment: extractRawJsDoc(this.declaration),
|
|
14327
|
+
extends: this.extractInheritance(this.declaration),
|
|
14328
|
+
implements: this.extractInterfaceConformance(this.declaration),
|
|
14329
|
+
};
|
|
14330
|
+
}
|
|
14331
|
+
extractInheritance(declaration) {
|
|
14332
|
+
if (!declaration.heritageClauses) {
|
|
14333
|
+
return [];
|
|
14334
|
+
}
|
|
14335
|
+
for (const clause of declaration.heritageClauses) {
|
|
14336
|
+
if (clause.token === ts.SyntaxKind.ExtendsKeyword) {
|
|
14337
|
+
// We are assuming a single class can only extend one class.
|
|
14338
|
+
const types = clause.types;
|
|
14339
|
+
if (types.length > 0) {
|
|
14340
|
+
return types.map((t) => t.getText());
|
|
14341
|
+
}
|
|
14342
|
+
}
|
|
14343
|
+
}
|
|
14344
|
+
return [];
|
|
14345
|
+
}
|
|
14346
|
+
}
|
|
14347
|
+
/** Extracts documentation info for an interface. */
|
|
14348
|
+
function extractInterface(declaration, typeChecker) {
|
|
14349
|
+
const extractor = new InterfaceExtractor(declaration, typeChecker);
|
|
14350
|
+
return extractor.extract();
|
|
14351
|
+
}
|
|
14352
|
+
|
|
14258
14353
|
/** Extracts an API documentation entry for an Angular decorator. */
|
|
14259
14354
|
function extractorDecorator(declaration, typeChecker) {
|
|
14260
14355
|
const documentedNode = getDecoratorJsDocNode(declaration, typeChecker);
|
|
@@ -16710,6 +16805,8 @@ const KNOWN_CONTROL_FLOW_DIRECTIVES = new Set([
|
|
|
16710
16805
|
'ngForTrackBy',
|
|
16711
16806
|
'ngSwitchCase',
|
|
16712
16807
|
'ngSwitchDefault',
|
|
16808
|
+
'ngIfThen',
|
|
16809
|
+
'ngIfElse',
|
|
16713
16810
|
]);
|
|
16714
16811
|
/**
|
|
16715
16812
|
* Ensures that there are no structural directives (something like *select or *featureFlag)
|
|
@@ -16737,9 +16834,12 @@ class MissingStructuralDirectiveCheck extends TemplateCheckWithVisitor {
|
|
|
16737
16834
|
if (!customStructuralDirective)
|
|
16738
16835
|
return [];
|
|
16739
16836
|
const symbol = ctx.templateTypeChecker.getSymbolOfNode(node, component);
|
|
16740
|
-
if
|
|
16837
|
+
// Check if there's a directive that matches the structural directive we're checking.
|
|
16838
|
+
// The structural directive *foo desugars to [foo], so we need to check if any
|
|
16839
|
+
// directive's selector would match the attribute [foo].
|
|
16840
|
+
const hasStructuralDirective = symbol?.directives.some((dir) => dir.selector?.includes(`[${customStructuralDirective.name}]`));
|
|
16841
|
+
if (hasStructuralDirective)
|
|
16741
16842
|
return [];
|
|
16742
|
-
}
|
|
16743
16843
|
const sourceSpan = customStructuralDirective.keySpan || customStructuralDirective.sourceSpan;
|
|
16744
16844
|
const errorMessage = `A structural directive \`${customStructuralDirective.name}\` was used in the template ` +
|
|
16745
16845
|
`without a corresponding import in the component. ` +
|
|
@@ -20564,7 +20664,7 @@ var semver = /*@__PURE__*/getDefaultExportFromCjs(semverExports);
|
|
|
20564
20664
|
* @param minVersion Minimum required version for the feature.
|
|
20565
20665
|
*/
|
|
20566
20666
|
function coreVersionSupportsFeature(coreVersion, minVersion) {
|
|
20567
|
-
// A version of `21.0.0-next.
|
|
20667
|
+
// A version of `21.0.0-next.9` usually means that core is at head so it supports
|
|
20568
20668
|
// all features. Use string interpolation prevent the placeholder from being replaced
|
|
20569
20669
|
// with the current version during build time.
|
|
20570
20670
|
if (coreVersion === `0.0.0-${'PLACEHOLDER'}`) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v21.0.0-next.
|
|
3
|
+
* @license Angular v21.0.0-next.9
|
|
4
4
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
@@ -8,13 +8,13 @@
|
|
|
8
8
|
|
|
9
9
|
var schematics = require('@angular-devkit/schematics');
|
|
10
10
|
var p = require('path');
|
|
11
|
-
var compiler_host = require('./compiler_host-
|
|
11
|
+
var compiler_host = require('./compiler_host-emLDwK2U.cjs');
|
|
12
12
|
var ts = require('typescript');
|
|
13
13
|
var ng_decorators = require('./ng_decorators-BI0uV7KI.cjs');
|
|
14
14
|
var imports = require('./imports-DwPXlGFl.cjs');
|
|
15
15
|
var nodes = require('./nodes-B16H9JUd.cjs');
|
|
16
16
|
var leading_space = require('./leading_space-D9nQ8UQC.cjs');
|
|
17
|
-
var project_tsconfig_paths = require('./project_tsconfig_paths-
|
|
17
|
+
var project_tsconfig_paths = require('./project_tsconfig_paths-CiBzGSIa.cjs');
|
|
18
18
|
require('os');
|
|
19
19
|
require('fs');
|
|
20
20
|
require('module');
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v21.0.0-next.
|
|
3
|
+
* @license Angular v21.0.0-next.9
|
|
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-CiBzGSIa.cjs');
|
|
10
10
|
var ts = require('typescript');
|
|
11
11
|
require('os');
|
|
12
12
|
var assert = require('assert');
|
|
13
|
-
var index = require('./index-
|
|
14
|
-
var project_paths = require('./project_paths-
|
|
13
|
+
var index = require('./index-CLxYZ09c.cjs');
|
|
14
|
+
var project_paths = require('./project_paths-C8H7KDJ3.cjs');
|
|
15
15
|
var leading_space = require('./leading_space-D9nQ8UQC.cjs');
|
|
16
|
-
require('./index-
|
|
16
|
+
require('./index-Dvqnp6JS.cjs');
|
|
17
17
|
require('path');
|
|
18
18
|
require('node:path');
|
|
19
19
|
|
package/schematics/bundles/{ng_component_template-BkWiUuGG.cjs → ng_component_template-BRbBIAUX.cjs}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v21.0.0-next.
|
|
3
|
+
* @license Angular v21.0.0-next.9
|
|
4
4
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
@@ -10,7 +10,7 @@ var ts = require('typescript');
|
|
|
10
10
|
var ng_decorators = require('./ng_decorators-BI0uV7KI.cjs');
|
|
11
11
|
var property_name = require('./property_name-BBwFuqMe.cjs');
|
|
12
12
|
require('os');
|
|
13
|
-
var project_tsconfig_paths = require('./project_tsconfig_paths-
|
|
13
|
+
var project_tsconfig_paths = require('./project_tsconfig_paths-CiBzGSIa.cjs');
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* Unwraps a given expression TypeScript node. Expressions can be wrapped within multiple
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v21.0.0-next.
|
|
3
|
+
* @license Angular v21.0.0-next.9
|
|
4
4
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
@@ -8,15 +8,15 @@
|
|
|
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-CiBzGSIa.cjs');
|
|
12
|
+
var index = require('./index-Dvqnp6JS.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-C8H7KDJ3.cjs');
|
|
16
|
+
var apply_import_manager = require('./apply_import_manager-CoeTX_Ob.cjs');
|
|
17
17
|
var imports = require('./imports-DwPXlGFl.cjs');
|
|
18
|
-
var parse_html = require('./parse_html-
|
|
19
|
-
var ng_component_template = require('./ng_component_template-
|
|
18
|
+
var parse_html = require('./parse_html-CPWfkfhR.cjs');
|
|
19
|
+
var ng_component_template = require('./ng_component_template-BRbBIAUX.cjs');
|
|
20
20
|
require('@angular-devkit/core');
|
|
21
21
|
require('node:path/posix');
|
|
22
22
|
require('fs');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v21.0.0-next.
|
|
3
|
+
* @license Angular v21.0.0-next.9
|
|
4
4
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
@@ -8,15 +8,15 @@
|
|
|
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-CiBzGSIa.cjs');
|
|
12
|
+
require('./index-Dvqnp6JS.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-C8H7KDJ3.cjs');
|
|
16
|
+
var apply_import_manager = require('./apply_import_manager-CoeTX_Ob.cjs');
|
|
17
17
|
var imports = require('./imports-DwPXlGFl.cjs');
|
|
18
|
-
var parse_html = require('./parse_html-
|
|
19
|
-
var ng_component_template = require('./ng_component_template-
|
|
18
|
+
var parse_html = require('./parse_html-CPWfkfhR.cjs');
|
|
19
|
+
var ng_component_template = require('./ng_component_template-BRbBIAUX.cjs');
|
|
20
20
|
require('@angular-devkit/core');
|
|
21
21
|
require('node:path/posix');
|
|
22
22
|
require('fs');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v21.0.0-next.
|
|
3
|
+
* @license Angular v21.0.0-next.9
|
|
4
4
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
@@ -8,13 +8,13 @@
|
|
|
8
8
|
|
|
9
9
|
var ts = require('typescript');
|
|
10
10
|
require('os');
|
|
11
|
-
var project_tsconfig_paths = require('./project_tsconfig_paths-
|
|
12
|
-
var index$1 = require('./index-
|
|
11
|
+
var project_tsconfig_paths = require('./project_tsconfig_paths-CiBzGSIa.cjs');
|
|
12
|
+
var index$1 = require('./index-Dvqnp6JS.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-
|
|
17
|
-
var index = require('./index-
|
|
15
|
+
var project_paths = require('./project_paths-C8H7KDJ3.cjs');
|
|
16
|
+
var apply_import_manager = require('./apply_import_manager-CoeTX_Ob.cjs');
|
|
17
|
+
var index = require('./index-CLxYZ09c.cjs');
|
|
18
18
|
require('@angular-devkit/core');
|
|
19
19
|
require('node:path/posix');
|
|
20
20
|
require('fs');
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v21.0.0-next.
|
|
3
|
+
* @license Angular v21.0.0-next.9
|
|
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-CiBzGSIa.cjs');
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* parses the template string into the Html AST
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v21.0.0-next.
|
|
3
|
+
* @license Angular v21.0.0-next.9
|
|
4
4
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
7
7
|
'use strict';
|
|
8
8
|
|
|
9
|
-
var index = require('./index-
|
|
9
|
+
var index = require('./index-Dvqnp6JS.cjs');
|
|
10
10
|
var schematics = require('@angular-devkit/schematics');
|
|
11
11
|
var core = require('@angular-devkit/core');
|
|
12
12
|
var posixPath = require('node:path/posix');
|
|
13
13
|
var os = require('os');
|
|
14
14
|
var ts = require('typescript');
|
|
15
|
-
var project_tsconfig_paths = require('./project_tsconfig_paths-
|
|
15
|
+
var project_tsconfig_paths = require('./project_tsconfig_paths-CiBzGSIa.cjs');
|
|
16
16
|
require('path');
|
|
17
17
|
var path = require('node:path');
|
|
18
18
|
|