@angular/core 20.3.1 → 20.3.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/api.d.d.ts +7 -4
- package/chrome_dev_tools_performance.d.d.ts +2 -2
- package/discovery.d.d.ts +7 -6
- package/effect.d.d.ts +2 -3
- package/event_dispatcher.d.d.ts +1 -1
- package/fesm2022/attribute.mjs +1 -1
- package/fesm2022/attribute.mjs.map +1 -1
- package/fesm2022/core.mjs +4 -4
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/debug_node.mjs +31 -42
- 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/not_found.mjs.map +1 -1
- package/fesm2022/primitives/di.mjs +1 -1
- package/fesm2022/primitives/di.mjs.map +1 -1
- package/fesm2022/primitives/event-dispatch.mjs +1 -1
- package/fesm2022/primitives/event-dispatch.mjs.map +1 -1
- package/fesm2022/primitives/signals.mjs +138 -6
- 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/rxjs-interop.mjs.map +1 -1
- package/fesm2022/signal.mjs +8 -8
- package/fesm2022/signal.mjs.map +1 -1
- package/fesm2022/testing.mjs +1 -1
- package/fesm2022/testing.mjs.map +1 -1
- package/fesm2022/weak_ref.mjs +1 -1
- package/fesm2022/weak_ref.mjs.map +1 -1
- package/{graph.d.d.ts → formatter.d.d.ts} +14 -2
- package/index.d.ts +10 -8
- 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 +3 -4
- package/rxjs-interop/index.d.ts +2 -2
- package/schematics/bundles/add-bootstrap-context-to-server-main.cjs +5 -5
- package/schematics/bundles/{apply_import_manager-C8vgfoJx.cjs → apply_import_manager-CUBvPp_2.cjs} +3 -3
- package/schematics/bundles/cleanup-unused-imports.cjs +5 -5
- package/schematics/bundles/{compiler_host-DC7Yquzy.cjs → compiler_host-DJHZ7M9N.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-B5lv9x1v.cjs → index-BZJ8bv9v.cjs} +50 -26
- package/schematics/bundles/{index-Bufm9_1r.cjs → index-DU_evmAi.cjs} +4 -4
- 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-58gA72Ti.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-DcM18127.cjs} +3 -3
- package/schematics/bundles/{project_tsconfig_paths-crm5NKE7.cjs → project_tsconfig_paths-Dqd0J7st.cjs} +50 -42
- 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 +67 -8
- package/schematics/bundles/signal-queries-migration.cjs +7 -7
- package/schematics/bundles/signals.cjs +7 -7
- package/schematics/bundles/standalone-migration.cjs +70 -43
- package/schematics/bundles/symbol-VPWguRxr.cjs +1 -1
- package/schematics/bundles/test-bed-get.cjs +4 -4
- package/testing/index.d.ts +2 -2
- package/weak_ref.d.d.ts +1 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v20.3.
|
|
3
|
+
* @license Angular v20.3.3
|
|
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-Dqd0J7st.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.3'));
|
|
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.3'));
|
|
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.3'));
|
|
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.3'));
|
|
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.3'));
|
|
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.3'));
|
|
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.3'));
|
|
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.3'));
|
|
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);
|
|
@@ -5128,16 +5128,22 @@ function nodeArrayFromDecoratorsArray(decorators) {
|
|
|
5128
5128
|
}
|
|
5129
5129
|
|
|
5130
5130
|
function insertDebugNameIntoCallExpression(callExpression, debugName) {
|
|
5131
|
-
const signalExpressionHasNoArguments = callExpression.arguments.length === 0;
|
|
5132
5131
|
const signalExpressionIsRequired = isRequiredSignalFunction(callExpression.expression);
|
|
5133
5132
|
let configPosition = signalExpressionIsRequired ? 0 : 1;
|
|
5134
|
-
|
|
5133
|
+
const nodeArgs = Array.from(callExpression.arguments);
|
|
5134
|
+
// 1. If the call expression has no arguments, we pretend that the config object is at position 0.
|
|
5135
5135
|
// We do this so that we can insert a spread element at the start of the args list in a way where
|
|
5136
5136
|
// undefined can be the first argument but still get tree-shaken out in production builds.
|
|
5137
|
-
|
|
5137
|
+
// or
|
|
5138
|
+
// 2. Since `linkedSignal` with computation uses a single object for both computation logic
|
|
5139
|
+
// and options (unlike other signal-based primitives), we set the argument position to 0, i.e.
|
|
5140
|
+
// reusing the computation logic object.
|
|
5141
|
+
const signalExpressionHasNoArguments = callExpression.arguments.length === 0;
|
|
5142
|
+
const isLinkedSignal = callExpression.expression.getText() === 'linkedSignal';
|
|
5143
|
+
const isComputationLinkedSignal = isLinkedSignal && nodeArgs[0].kind === ts.SyntaxKind.ObjectLiteralExpression;
|
|
5144
|
+
if (signalExpressionHasNoArguments || isComputationLinkedSignal) {
|
|
5138
5145
|
configPosition = 0;
|
|
5139
5146
|
}
|
|
5140
|
-
const nodeArgs = Array.from(callExpression.arguments);
|
|
5141
5147
|
let existingArgument = nodeArgs[configPosition];
|
|
5142
5148
|
if (existingArgument === undefined) {
|
|
5143
5149
|
existingArgument = ts.factory.createObjectLiteralExpression([]);
|
|
@@ -5186,12 +5192,15 @@ function insertDebugNameIntoCallExpression(callExpression, debugName) {
|
|
|
5186
5192
|
/* question token */ undefined, devModeCase,
|
|
5187
5193
|
/* colon token */ undefined, nonDevModeCase)));
|
|
5188
5194
|
let transformedSignalArgs;
|
|
5189
|
-
if (signalExpressionIsRequired || signalExpressionHasNoArguments) {
|
|
5195
|
+
if (signalExpressionIsRequired || signalExpressionHasNoArguments || isComputationLinkedSignal) {
|
|
5190
5196
|
// 1. If the call expression is a required signal function, there is no args other than the config object.
|
|
5191
5197
|
// So we just use the spread element as the only argument.
|
|
5192
5198
|
// or
|
|
5193
5199
|
// 2. If the call expression has no arguments (ex. input(), model(), etc), we already added the undefined
|
|
5194
5200
|
// identifier in the spread element above. So we use that spread Element as is.
|
|
5201
|
+
// or
|
|
5202
|
+
// 3. We are transforming a `linkedSignal` with computation (i.e. we have a single object for both
|
|
5203
|
+
// logic and options).
|
|
5195
5204
|
transformedSignalArgs = ts.factory.createNodeArray([spreadElementContainingUpdatedOptions]);
|
|
5196
5205
|
}
|
|
5197
5206
|
else {
|
|
@@ -5329,6 +5338,7 @@ function expressionIsUsingAngularCoreImportedSymbol(program, expression) {
|
|
|
5329
5338
|
const signalFunctions = new Set([
|
|
5330
5339
|
'signal',
|
|
5331
5340
|
'computed',
|
|
5341
|
+
'linkedSignal',
|
|
5332
5342
|
'input',
|
|
5333
5343
|
'model',
|
|
5334
5344
|
'viewChild',
|
|
@@ -11523,11 +11533,12 @@ class ComponentDecoratorHandler {
|
|
|
11523
11533
|
for (const [_, deps] of resolution.deferPerBlockDependencies) {
|
|
11524
11534
|
for (const deferBlockDep of deps) {
|
|
11525
11535
|
const node = deferBlockDep.declaration.node;
|
|
11526
|
-
const
|
|
11527
|
-
if (
|
|
11536
|
+
const importInfo = resolution.deferrableDeclToImportDecl.get(node) ?? null;
|
|
11537
|
+
if (importInfo !== null && this.deferredSymbolTracker.canDefer(importInfo.node)) {
|
|
11528
11538
|
deferBlockDep.isDeferrable = true;
|
|
11529
|
-
deferBlockDep.
|
|
11530
|
-
deferBlockDep.
|
|
11539
|
+
deferBlockDep.symbolName = importInfo.name;
|
|
11540
|
+
deferBlockDep.importPath = importInfo.from;
|
|
11541
|
+
deferBlockDep.isDefaultImport = isDefaultImport(importInfo.node);
|
|
11531
11542
|
// The same dependency may be used across multiple deferred blocks. De-duplicate it
|
|
11532
11543
|
// because it can throw off other logic further down the compilation pipeline.
|
|
11533
11544
|
// Note that the logic above needs to run even if the dependency is seen before,
|
|
@@ -11700,9 +11711,10 @@ class ComponentDecoratorHandler {
|
|
|
11700
11711
|
// This is not a directive or a pipe.
|
|
11701
11712
|
return;
|
|
11702
11713
|
}
|
|
11703
|
-
// Keep track of how this class made it into the current source file
|
|
11704
|
-
//
|
|
11705
|
-
|
|
11714
|
+
// Keep track of how this class made it into the current source file.
|
|
11715
|
+
// Store the full `Import` info so that callers can correctly determine the
|
|
11716
|
+
// exported name (handling aliasing) and the module specifier.
|
|
11717
|
+
resolutionData.deferrableDeclToImportDecl.set(decl.node, imp);
|
|
11706
11718
|
this.deferredSymbolTracker.markAsDeferrableCandidate(node, imp.node, componentClassDecl, isDeferredImport);
|
|
11707
11719
|
}
|
|
11708
11720
|
compileDeferBlocks(resolution) {
|
|
@@ -12321,7 +12333,7 @@ class PipeDecoratorHandler {
|
|
|
12321
12333
|
* @description
|
|
12322
12334
|
* Entry point for all public APIs of the compiler-cli package.
|
|
12323
12335
|
*/
|
|
12324
|
-
new project_tsconfig_paths.Version('20.3.
|
|
12336
|
+
new project_tsconfig_paths.Version('20.3.3');
|
|
12325
12337
|
|
|
12326
12338
|
/**
|
|
12327
12339
|
* Whether a given decorator should be treated as an Angular decorator.
|
|
@@ -16777,13 +16789,24 @@ const factory$9 = {
|
|
|
16777
16789
|
* otherwise it would produce inaccurate results.
|
|
16778
16790
|
*/
|
|
16779
16791
|
class OptionalChainNotNullableCheck extends TemplateCheckWithVisitor {
|
|
16792
|
+
noUncheckedIndexedAccess;
|
|
16780
16793
|
canVisitStructuralAttributes = false;
|
|
16781
16794
|
code = project_tsconfig_paths.ErrorCode.OPTIONAL_CHAIN_NOT_NULLABLE;
|
|
16795
|
+
constructor(noUncheckedIndexedAccess) {
|
|
16796
|
+
super();
|
|
16797
|
+
this.noUncheckedIndexedAccess = noUncheckedIndexedAccess;
|
|
16798
|
+
}
|
|
16782
16799
|
visitNode(ctx, component, node) {
|
|
16783
16800
|
if (!(node instanceof project_tsconfig_paths.SafeCall) &&
|
|
16784
16801
|
!(node instanceof project_tsconfig_paths.SafePropertyRead) &&
|
|
16785
|
-
!(node instanceof project_tsconfig_paths.SafeKeyedRead))
|
|
16802
|
+
!(node instanceof project_tsconfig_paths.SafeKeyedRead)) {
|
|
16786
16803
|
return [];
|
|
16804
|
+
}
|
|
16805
|
+
// When `noUncheckedIndexedAccess` is disabled, an indexed access is not checked
|
|
16806
|
+
// and may result in `undefined`.
|
|
16807
|
+
if (node.receiver instanceof project_tsconfig_paths.KeyedRead && !this.noUncheckedIndexedAccess) {
|
|
16808
|
+
return [];
|
|
16809
|
+
}
|
|
16787
16810
|
const symbolLeft = ctx.templateTypeChecker.getSymbolOfNode(node.receiver, component);
|
|
16788
16811
|
if (symbolLeft === null || symbolLeft.kind !== project_tsconfig_paths.SymbolKind.Expression) {
|
|
16789
16812
|
return [];
|
|
@@ -16823,7 +16846,8 @@ const factory$8 = {
|
|
|
16823
16846
|
if (!strictNullChecks) {
|
|
16824
16847
|
return null;
|
|
16825
16848
|
}
|
|
16826
|
-
|
|
16849
|
+
const noUncheckedIndexedAccess = !!options.noUncheckedIndexedAccess;
|
|
16850
|
+
return new OptionalChainNotNullableCheck(noUncheckedIndexedAccess);
|
|
16827
16851
|
},
|
|
16828
16852
|
};
|
|
16829
16853
|
|
|
@@ -20413,7 +20437,7 @@ var semver = /*@__PURE__*/getDefaultExportFromCjs(semverExports);
|
|
|
20413
20437
|
* @param minVersion Minimum required version for the feature.
|
|
20414
20438
|
*/
|
|
20415
20439
|
function coreVersionSupportsFeature(coreVersion, minVersion) {
|
|
20416
|
-
// A version of `20.3.
|
|
20440
|
+
// A version of `20.3.3` usually means that core is at head so it supports
|
|
20417
20441
|
// all features. Use string interpolation prevent the placeholder from being replaced
|
|
20418
20442
|
// with the current version during build time.
|
|
20419
20443
|
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.3
|
|
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-Dqd0J7st.cjs');
|
|
12
|
+
var index = require('./index-BZJ8bv9v.cjs');
|
|
13
13
|
require('path');
|
|
14
14
|
require('node:path');
|
|
15
|
-
var project_paths = require('./project_paths-
|
|
15
|
+
var project_paths = require('./project_paths-DcM18127.cjs');
|
|
16
16
|
|
|
17
17
|
function getMemberName(member) {
|
|
18
18
|
if (member.name === undefined) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v20.3.
|
|
3
|
+
* @license Angular v20.3.3
|
|
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-Dqd0J7st.cjs');
|
|
12
|
+
require('./index-BZJ8bv9v.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-DcM18127.cjs');
|
|
16
|
+
var apply_import_manager = require('./apply_import_manager-CUBvPp_2.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.3
|
|
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-DJHZ7M9N.cjs');
|
|
12
12
|
var ts = require('typescript');
|
|
13
13
|
var ng_decorators = require('./ng_decorators-B5HCqr20.cjs');
|
|
14
14
|
var imports = require('./imports-CIX-JgAN.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-Dqd0J7st.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 v20.3.
|
|
3
|
+
* @license Angular v20.3.3
|
|
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-Dqd0J7st.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-DU_evmAi.cjs');
|
|
14
|
+
var project_paths = require('./project_paths-DcM18127.cjs');
|
|
15
15
|
var leading_space = require('./leading_space-D9nQ8UQC.cjs');
|
|
16
|
-
require('./index-
|
|
16
|
+
require('./index-BZJ8bv9v.cjs');
|
|
17
17
|
require('path');
|
|
18
18
|
require('node:path');
|
|
19
19
|
var assert$1 = require('node:assert');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v20.3.
|
|
3
|
+
* @license Angular v20.3.3
|
|
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-Dqd0J7st.cjs');
|
|
12
|
+
var index$1 = require('./index-BZJ8bv9v.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-DcM18127.cjs');
|
|
16
|
+
var apply_import_manager = require('./apply_import_manager-CUBvPp_2.cjs');
|
|
17
|
+
var index = require('./index-DU_evmAi.cjs');
|
|
18
18
|
require('@angular-devkit/core');
|
|
19
19
|
require('node:path/posix');
|
|
20
20
|
require('fs');
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v20.3.
|
|
3
|
+
* @license Angular v20.3.3
|
|
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-BZJ8bv9v.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-Dqd0J7st.cjs');
|
|
16
16
|
require('path');
|
|
17
17
|
var path = require('node:path');
|
|
18
18
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v20.3.
|
|
3
|
+
* @license Angular v20.3.3
|
|
4
4
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
@@ -11700,6 +11700,16 @@ function extractAttributeOp(unit, op, elements) {
|
|
|
11700
11700
|
}
|
|
11701
11701
|
}
|
|
11702
11702
|
|
|
11703
|
+
const ARIA_PREFIX = 'aria-';
|
|
11704
|
+
/**
|
|
11705
|
+
* Returns whether `name` is an ARIA attribute name.
|
|
11706
|
+
*
|
|
11707
|
+
* This is a heuristic based on whether name begins with and is longer than `aria-`.
|
|
11708
|
+
*/
|
|
11709
|
+
function isAriaAttribute(name) {
|
|
11710
|
+
return name.startsWith(ARIA_PREFIX) && name.length > ARIA_PREFIX.length;
|
|
11711
|
+
}
|
|
11712
|
+
|
|
11703
11713
|
/**
|
|
11704
11714
|
* Looks up an element in the given map by xref ID.
|
|
11705
11715
|
*/
|
|
@@ -11745,7 +11755,15 @@ function specializeBindings(job) {
|
|
|
11745
11755
|
break;
|
|
11746
11756
|
case BindingKind.Property:
|
|
11747
11757
|
case BindingKind.LegacyAnimation:
|
|
11748
|
-
|
|
11758
|
+
// Convert a property binding targeting an ARIA attribute (e.g. [aria-label]) into an
|
|
11759
|
+
// attribute binding when we know it can't also target an input. Note that a `Host` job is
|
|
11760
|
+
// always `DomOnly`, so this condition must be checked first.
|
|
11761
|
+
if (job.mode === TemplateCompilationMode.DomOnly && isAriaAttribute(op.name)) {
|
|
11762
|
+
OpList.replace(op, createAttributeOp(op.target,
|
|
11763
|
+
/* namespace= */ null, op.name, op.expression, op.securityContext,
|
|
11764
|
+
/* isTextAttribute= */ false, op.isStructuralTemplateAttribute, op.templateKind, op.i18nMessage, op.sourceSpan));
|
|
11765
|
+
}
|
|
11766
|
+
else if (job.kind === CompilationJobKind.Host) {
|
|
11749
11767
|
OpList.replace(op, createDomPropertyOp(op.name, op.expression, op.bindingKind, op.i18nContext, op.securityContext, op.sourceSpan));
|
|
11750
11768
|
}
|
|
11751
11769
|
else {
|
|
@@ -18240,9 +18258,6 @@ class Token {
|
|
|
18240
18258
|
isTemplateLiteralInterpolationStart() {
|
|
18241
18259
|
return this.isOperator('${');
|
|
18242
18260
|
}
|
|
18243
|
-
isTemplateLiteralInterpolationEnd() {
|
|
18244
|
-
return this.isOperator('}');
|
|
18245
|
-
}
|
|
18246
18261
|
toString() {
|
|
18247
18262
|
switch (this.type) {
|
|
18248
18263
|
case TokenType.Character:
|
|
@@ -18415,7 +18430,7 @@ class _Scanner {
|
|
|
18415
18430
|
this.advance();
|
|
18416
18431
|
const currentBrace = this.braceStack.pop();
|
|
18417
18432
|
if (currentBrace === 'interpolation') {
|
|
18418
|
-
this.tokens.push(
|
|
18433
|
+
this.tokens.push(newCharacterToken(start, this.index, $RBRACE));
|
|
18419
18434
|
return this.scanTemplateLiteralPart(this.index);
|
|
18420
18435
|
}
|
|
18421
18436
|
return newCharacterToken(start, this.index, code);
|
|
@@ -19909,6 +19924,7 @@ class _ParseAST {
|
|
|
19909
19924
|
}
|
|
19910
19925
|
else if (token.isTemplateLiteralInterpolationStart()) {
|
|
19911
19926
|
this.advance();
|
|
19927
|
+
this.rbracesExpected++;
|
|
19912
19928
|
const expression = this.parsePipe();
|
|
19913
19929
|
if (expression instanceof EmptyExpr$1) {
|
|
19914
19930
|
this.error('Template literal interpolation cannot be empty');
|
|
@@ -19916,6 +19932,7 @@ class _ParseAST {
|
|
|
19916
19932
|
else {
|
|
19917
19933
|
expressions.push(expression);
|
|
19918
19934
|
}
|
|
19935
|
+
this.rbracesExpected--;
|
|
19919
19936
|
}
|
|
19920
19937
|
else {
|
|
19921
19938
|
this.advance();
|
|
@@ -23851,7 +23868,6 @@ function callVariadicInstruction(config, baseArgs, interpolationArgs, extraArgs,
|
|
|
23851
23868
|
return createStatementOp(callVariadicInstructionExpr(config, baseArgs, interpolationArgs, extraArgs, sourceSpan).toStmt());
|
|
23852
23869
|
}
|
|
23853
23870
|
|
|
23854
|
-
const ARIA_PREFIX = 'aria';
|
|
23855
23871
|
/**
|
|
23856
23872
|
* Map of target resolvers for event listeners.
|
|
23857
23873
|
*/
|
|
@@ -24230,33 +24246,6 @@ function reifyUpdateOperations(unit, ops) {
|
|
|
24230
24246
|
}
|
|
24231
24247
|
}
|
|
24232
24248
|
}
|
|
24233
|
-
/**
|
|
24234
|
-
* Converts an ARIA property name to its corresponding attribute name, if necessary.
|
|
24235
|
-
*
|
|
24236
|
-
* For example, converts `ariaLabel` to `aria-label`.
|
|
24237
|
-
*
|
|
24238
|
-
* https://www.w3.org/TR/wai-aria-1.2/#accessibilityroleandproperties-correspondence
|
|
24239
|
-
*
|
|
24240
|
-
* This must be kept in sync with the the function of the same name in
|
|
24241
|
-
* packages/core/src/render3/instructions/aria_property.ts.
|
|
24242
|
-
*
|
|
24243
|
-
* @param name A property name that starts with `aria`.
|
|
24244
|
-
* @returns The corresponding attribute name.
|
|
24245
|
-
*/
|
|
24246
|
-
function ariaAttrName(name) {
|
|
24247
|
-
return name.charAt(ARIA_PREFIX.length) !== '-'
|
|
24248
|
-
? ARIA_PREFIX + '-' + name.slice(ARIA_PREFIX.length).toLowerCase()
|
|
24249
|
-
: name; // Property already has attribute name.
|
|
24250
|
-
}
|
|
24251
|
-
/**
|
|
24252
|
-
* Returns whether `name` is an ARIA property (or attribute) name.
|
|
24253
|
-
*
|
|
24254
|
-
* This is a heuristic based on whether name begins with and is longer than `aria`. For example,
|
|
24255
|
-
* this returns true for both `ariaLabel` and `aria-label`.
|
|
24256
|
-
*/
|
|
24257
|
-
function isAriaProperty(name) {
|
|
24258
|
-
return name.startsWith(ARIA_PREFIX) && name.length > ARIA_PREFIX.length;
|
|
24259
|
-
}
|
|
24260
24249
|
/**
|
|
24261
24250
|
* Reifies a DOM property binding operation.
|
|
24262
24251
|
*
|
|
@@ -24267,9 +24256,7 @@ function isAriaProperty(name) {
|
|
|
24267
24256
|
* @returns A statement to update the property at runtime.
|
|
24268
24257
|
*/
|
|
24269
24258
|
function reifyDomProperty(op) {
|
|
24270
|
-
return
|
|
24271
|
-
? attribute(ariaAttrName(op.name), op.expression, null, null, op.sourceSpan)
|
|
24272
|
-
: domProperty(DOM_PROPERTY_REMAPPING.get(op.name) ?? op.name, op.expression, op.sanitizer, op.sourceSpan);
|
|
24259
|
+
return domProperty(DOM_PROPERTY_REMAPPING.get(op.name) ?? op.name, op.expression, op.sanitizer, op.sourceSpan);
|
|
24273
24260
|
}
|
|
24274
24261
|
/**
|
|
24275
24262
|
* Reifies a property binding operation.
|
|
@@ -24281,7 +24268,7 @@ function reifyDomProperty(op) {
|
|
|
24281
24268
|
* @returns A statement to update the property at runtime.
|
|
24282
24269
|
*/
|
|
24283
24270
|
function reifyProperty(op) {
|
|
24284
|
-
return
|
|
24271
|
+
return isAriaAttribute(op.name)
|
|
24285
24272
|
? ariaProperty(op.name, op.expression, op.sourceSpan)
|
|
24286
24273
|
: property(op.name, op.expression, op.sanitizer, op.sourceSpan);
|
|
24287
24274
|
}
|
|
@@ -29403,6 +29390,13 @@ class HtmlAstToIvyAst {
|
|
|
29403
29390
|
}
|
|
29404
29391
|
else {
|
|
29405
29392
|
const attrs = this.categorizePropertyAttributes(element.name, parsedProperties, i18nAttrsMeta);
|
|
29393
|
+
if (element.name === 'ng-container') {
|
|
29394
|
+
for (const bound of attrs.bound) {
|
|
29395
|
+
if (bound.type === exports.BindingType.Attribute) {
|
|
29396
|
+
this.reportError(`Attribute bindings are not supported on ng-container. Use property bindings instead.`, bound.sourceSpan);
|
|
29397
|
+
}
|
|
29398
|
+
}
|
|
29399
|
+
}
|
|
29406
29400
|
parsedElement = new Element$1(element.name, attributes, attrs.bound, boundEvents, directives, children, references, element.isSelfClosing, element.sourceSpan, element.startSourceSpan, element.endSourceSpan, element.isVoid, element.i18n);
|
|
29407
29401
|
}
|
|
29408
29402
|
if (elementHasInlineTemplate) {
|
|
@@ -32774,7 +32768,7 @@ function isAttrNode(ast) {
|
|
|
32774
32768
|
* @description
|
|
32775
32769
|
* Entry point for all public APIs of the compiler package.
|
|
32776
32770
|
*/
|
|
32777
|
-
const VERSION = new Version('20.3.
|
|
32771
|
+
const VERSION = new Version('20.3.3');
|
|
32778
32772
|
|
|
32779
32773
|
//////////////////////////////////////
|
|
32780
32774
|
// THIS FILE HAS GLOBAL SIDE EFFECT //
|
|
@@ -33836,7 +33830,7 @@ class NodeJSPathManipulation {
|
|
|
33836
33830
|
// G3-ESM-MARKER: G3 uses CommonJS, but externally everything in ESM.
|
|
33837
33831
|
// CommonJS/ESM interop for determining the current file name and containing dir.
|
|
33838
33832
|
const isCommonJS = typeof __filename !== 'undefined';
|
|
33839
|
-
const currentFileUrl = isCommonJS ? null : (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('project_tsconfig_paths-
|
|
33833
|
+
const currentFileUrl = isCommonJS ? null : (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('project_tsconfig_paths-Dqd0J7st.cjs', document.baseURI).href));
|
|
33840
33834
|
// Note, when this code loads in the browser, `url` may be an empty `{}` due to the Closure shims.
|
|
33841
33835
|
const currentFileName = isCommonJS
|
|
33842
33836
|
? __filename
|
|
@@ -42435,6 +42429,10 @@ class MagicString {
|
|
|
42435
42429
|
if (chunk.outro.length) mappings.advance(chunk.outro);
|
|
42436
42430
|
});
|
|
42437
42431
|
|
|
42432
|
+
if (this.outro) {
|
|
42433
|
+
mappings.advance(this.outro);
|
|
42434
|
+
}
|
|
42435
|
+
|
|
42438
42436
|
return {
|
|
42439
42437
|
file: options.file ? options.file.split(/[/\\]/).pop() : undefined,
|
|
42440
42438
|
sources: [
|
|
@@ -43100,7 +43098,12 @@ class MagicString {
|
|
|
43100
43098
|
const index = original.indexOf(string);
|
|
43101
43099
|
|
|
43102
43100
|
if (index !== -1) {
|
|
43103
|
-
|
|
43101
|
+
if (typeof replacement === 'function') {
|
|
43102
|
+
replacement = replacement(string, index, original);
|
|
43103
|
+
}
|
|
43104
|
+
if (string !== replacement) {
|
|
43105
|
+
this.overwrite(index, index + string.length, replacement);
|
|
43106
|
+
}
|
|
43104
43107
|
}
|
|
43105
43108
|
|
|
43106
43109
|
return this;
|
|
@@ -43123,7 +43126,11 @@ class MagicString {
|
|
|
43123
43126
|
index = original.indexOf(string, index + stringLength)
|
|
43124
43127
|
) {
|
|
43125
43128
|
const previous = original.slice(index, index + stringLength);
|
|
43126
|
-
|
|
43129
|
+
let _replacement = replacement;
|
|
43130
|
+
if (typeof replacement === 'function') {
|
|
43131
|
+
_replacement = replacement(previous, index, original);
|
|
43132
|
+
}
|
|
43133
|
+
if (previous !== _replacement) this.overwrite(index, index + stringLength, _replacement);
|
|
43127
43134
|
}
|
|
43128
43135
|
|
|
43129
43136
|
return this;
|
|
@@ -50854,6 +50861,7 @@ exports.ImportManager = ImportManager;
|
|
|
50854
50861
|
exports.Interpolation = Interpolation$1;
|
|
50855
50862
|
exports.InterpolationConfig = InterpolationConfig;
|
|
50856
50863
|
exports.InvokeFunctionExpr = InvokeFunctionExpr;
|
|
50864
|
+
exports.KeyedRead = KeyedRead;
|
|
50857
50865
|
exports.KnownFn = KnownFn;
|
|
50858
50866
|
exports.LetDeclaration = LetDeclaration$1;
|
|
50859
50867
|
exports.LiteralArrayExpr = LiteralArrayExpr;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v20.3.
|
|
3
|
+
* @license Angular v20.3.3
|
|
4
4
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
var schematics = require('@angular-devkit/schematics');
|
|
10
10
|
var fs = require('fs');
|
|
11
11
|
var p = require('path');
|
|
12
|
-
var compiler_host = require('./compiler_host-
|
|
13
|
-
var project_tsconfig_paths = require('./project_tsconfig_paths-
|
|
12
|
+
var compiler_host = require('./compiler_host-DJHZ7M9N.cjs');
|
|
13
|
+
var project_tsconfig_paths = require('./project_tsconfig_paths-Dqd0J7st.cjs');
|
|
14
14
|
var ts = require('typescript');
|
|
15
15
|
var property_name = require('./property_name-BBwFuqMe.cjs');
|
|
16
16
|
require('os');
|