@angular/core 19.0.0-next.7 → 19.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/LICENSE +21 -0
- package/fesm2022/core.mjs +363 -156
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/primitives/event-dispatch.mjs +1 -1
- package/fesm2022/primitives/signals.mjs +1 -1
- package/fesm2022/primitives/signals.mjs.map +1 -1
- package/fesm2022/rxjs-interop.mjs +1 -1
- package/fesm2022/testing.mjs +6 -4
- package/fesm2022/testing.mjs.map +1 -1
- package/index.d.ts +107 -69
- package/package.json +1 -1
- package/primitives/event-dispatch/index.d.ts +1 -1
- package/primitives/signals/index.d.ts +5 -1
- package/rxjs-interop/index.d.ts +1 -1
- package/schematics/bundles/{checker-637eee78.js → checker-3b2ea20f.js} +136 -78
- package/schematics/bundles/{compiler_host-1e62b899.js → compiler_host-b4ba5a28.js} +2 -2
- package/schematics/bundles/control-flow-migration.js +3 -3
- package/schematics/bundles/explicit-standalone-flag.js +5 -5
- package/schematics/bundles/group_replacements-e1b5cbf8.js +31571 -0
- package/schematics/bundles/{imports-44987700.js → imports-4ac08251.js} +1 -1
- package/schematics/bundles/inject-migration.js +24 -8
- package/schematics/bundles/{leading_space-6e7a8ec6.js → leading_space-d190b83b.js} +1 -1
- package/schematics/bundles/{nodes-b12e919a.js → nodes-0e7d45ca.js} +2 -2
- package/schematics/bundles/pending-tasks.js +5 -5
- package/schematics/bundles/{program-893e3fe7.js → program-6534a30a.js} +120 -32
- package/schematics/bundles/{project_tsconfig_paths-6c9cde78.js → project_tsconfig_paths-e9ccccbf.js} +1 -1
- package/schematics/bundles/route-lazy-loading.js +4 -4
- package/schematics/bundles/signal-input-migration.js +386 -31727
- package/schematics/bundles/signal-queries-migration.js +924 -0
- package/schematics/bundles/standalone-migration.js +8 -8
- package/schematics/collection.json +6 -0
- package/schematics/ng-generate/signal-queries-migration/schema.json +19 -0
- package/testing/index.d.ts +3 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v19.0.0-next.
|
|
3
|
+
* @license Angular v19.0.0-next.9
|
|
4
4
|
* (c) 2010-2024 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
@@ -10,12 +10,12 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
10
10
|
|
|
11
11
|
var schematics = require('@angular-devkit/schematics');
|
|
12
12
|
var p = require('path');
|
|
13
|
-
var compiler_host = require('./compiler_host-
|
|
13
|
+
var compiler_host = require('./compiler_host-b4ba5a28.js');
|
|
14
14
|
var ts = require('typescript');
|
|
15
|
-
var nodes = require('./nodes-
|
|
16
|
-
var imports = require('./imports-
|
|
17
|
-
var leading_space = require('./leading_space-
|
|
18
|
-
require('./checker-
|
|
15
|
+
var nodes = require('./nodes-0e7d45ca.js');
|
|
16
|
+
var imports = require('./imports-4ac08251.js');
|
|
17
|
+
var leading_space = require('./leading_space-d190b83b.js');
|
|
18
|
+
require('./checker-3b2ea20f.js');
|
|
19
19
|
require('os');
|
|
20
20
|
require('fs');
|
|
21
21
|
require('module');
|
|
@@ -514,8 +514,7 @@ function migrateClass(node, constructor, superCall, options, removedStatements,
|
|
|
514
514
|
tracker.replaceText(sourceFile, member.getFullStart(), member.getFullWidth(), '');
|
|
515
515
|
}
|
|
516
516
|
}
|
|
517
|
-
if (
|
|
518
|
-
(!constructor.body || constructor.body.statements.length - removedStatementCount === 0)) {
|
|
517
|
+
if (canRemoveConstructor(options, constructor, removedStatementCount, superCall)) {
|
|
519
518
|
// Drop the constructor if it was empty.
|
|
520
519
|
removedMembers.add(constructor);
|
|
521
520
|
tracker.replaceText(sourceFile, constructor.getFullStart(), constructor.getFullWidth(), '');
|
|
@@ -861,6 +860,23 @@ function cloneName(node) {
|
|
|
861
860
|
return node;
|
|
862
861
|
}
|
|
863
862
|
}
|
|
863
|
+
/**
|
|
864
|
+
* Determines whether it's safe to delete a class constructor.
|
|
865
|
+
* @param options Options used to configure the migration.
|
|
866
|
+
* @param constructor Node representing the constructor.
|
|
867
|
+
* @param removedStatementCount Number of statements that were removed by the migration.
|
|
868
|
+
* @param superCall Node representing the `super()` call within the constructor.
|
|
869
|
+
*/
|
|
870
|
+
function canRemoveConstructor(options, constructor, removedStatementCount, superCall) {
|
|
871
|
+
if (options.backwardsCompatibleConstructors) {
|
|
872
|
+
return false;
|
|
873
|
+
}
|
|
874
|
+
const statementCount = constructor.body
|
|
875
|
+
? constructor.body.statements.length - removedStatementCount
|
|
876
|
+
: 0;
|
|
877
|
+
return (statementCount === 0 ||
|
|
878
|
+
(statementCount === 1 && superCall !== null && superCall.arguments.length === 0));
|
|
879
|
+
}
|
|
864
880
|
|
|
865
881
|
function migrate(options) {
|
|
866
882
|
return async (tree) => {
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v19.0.0-next.
|
|
3
|
+
* @license Angular v19.0.0-next.9
|
|
4
4
|
* (c) 2010-2024 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 imports = require('./imports-
|
|
10
|
+
var imports = require('./imports-4ac08251.js');
|
|
11
11
|
|
|
12
12
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
13
13
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v19.0.0-next.
|
|
3
|
+
* @license Angular v19.0.0-next.9
|
|
4
4
|
* (c) 2010-2024 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
@@ -10,12 +10,12 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
10
10
|
|
|
11
11
|
var schematics = require('@angular-devkit/schematics');
|
|
12
12
|
var p = require('path');
|
|
13
|
-
var project_tsconfig_paths = require('./project_tsconfig_paths-
|
|
14
|
-
var compiler_host = require('./compiler_host-
|
|
13
|
+
var project_tsconfig_paths = require('./project_tsconfig_paths-e9ccccbf.js');
|
|
14
|
+
var compiler_host = require('./compiler_host-b4ba5a28.js');
|
|
15
15
|
var ts = require('typescript');
|
|
16
|
-
var imports = require('./imports-
|
|
16
|
+
var imports = require('./imports-4ac08251.js');
|
|
17
17
|
require('@angular-devkit/core');
|
|
18
|
-
require('./checker-
|
|
18
|
+
require('./checker-3b2ea20f.js');
|
|
19
19
|
require('os');
|
|
20
20
|
require('fs');
|
|
21
21
|
require('module');
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v19.0.0-next.
|
|
3
|
+
* @license Angular v19.0.0-next.9
|
|
4
4
|
* (c) 2010-2024 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
7
7
|
'use strict';
|
|
8
8
|
|
|
9
|
-
var checker = require('./checker-
|
|
9
|
+
var checker = require('./checker-3b2ea20f.js');
|
|
10
10
|
var ts = require('typescript');
|
|
11
11
|
var p = require('path');
|
|
12
12
|
require('os');
|
|
@@ -864,7 +864,7 @@ const MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION = '18.0.0';
|
|
|
864
864
|
function compileDeclareClassMetadata(metadata) {
|
|
865
865
|
const definitionMap = new checker.DefinitionMap();
|
|
866
866
|
definitionMap.set('minVersion', checker.literal(MINIMUM_PARTIAL_LINKER_VERSION$5));
|
|
867
|
-
definitionMap.set('version', checker.literal('19.0.0-next.
|
|
867
|
+
definitionMap.set('version', checker.literal('19.0.0-next.9'));
|
|
868
868
|
definitionMap.set('ngImport', checker.importExpr(checker.Identifiers.core));
|
|
869
869
|
definitionMap.set('type', metadata.type);
|
|
870
870
|
definitionMap.set('decorators', metadata.decorators);
|
|
@@ -882,7 +882,7 @@ function compileComponentDeclareClassMetadata(metadata, dependencies) {
|
|
|
882
882
|
callbackReturnDefinitionMap.set('ctorParameters', metadata.ctorParameters ?? checker.literal(null));
|
|
883
883
|
callbackReturnDefinitionMap.set('propDecorators', metadata.propDecorators ?? checker.literal(null));
|
|
884
884
|
definitionMap.set('minVersion', checker.literal(MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION));
|
|
885
|
-
definitionMap.set('version', checker.literal('19.0.0-next.
|
|
885
|
+
definitionMap.set('version', checker.literal('19.0.0-next.9'));
|
|
886
886
|
definitionMap.set('ngImport', checker.importExpr(checker.Identifiers.core));
|
|
887
887
|
definitionMap.set('type', metadata.type);
|
|
888
888
|
definitionMap.set('resolveDeferredDeps', compileComponentMetadataAsyncResolver(dependencies));
|
|
@@ -977,7 +977,7 @@ function createDirectiveDefinitionMap(meta) {
|
|
|
977
977
|
const definitionMap = new checker.DefinitionMap();
|
|
978
978
|
const minVersion = getMinimumVersionForPartialOutput(meta);
|
|
979
979
|
definitionMap.set('minVersion', checker.literal(minVersion));
|
|
980
|
-
definitionMap.set('version', checker.literal('19.0.0-next.
|
|
980
|
+
definitionMap.set('version', checker.literal('19.0.0-next.9'));
|
|
981
981
|
// e.g. `type: MyDirective`
|
|
982
982
|
definitionMap.set('type', meta.type.value);
|
|
983
983
|
if (meta.isStandalone) {
|
|
@@ -1396,7 +1396,7 @@ const MINIMUM_PARTIAL_LINKER_VERSION$4 = '12.0.0';
|
|
|
1396
1396
|
function compileDeclareFactoryFunction(meta) {
|
|
1397
1397
|
const definitionMap = new checker.DefinitionMap();
|
|
1398
1398
|
definitionMap.set('minVersion', checker.literal(MINIMUM_PARTIAL_LINKER_VERSION$4));
|
|
1399
|
-
definitionMap.set('version', checker.literal('19.0.0-next.
|
|
1399
|
+
definitionMap.set('version', checker.literal('19.0.0-next.9'));
|
|
1400
1400
|
definitionMap.set('ngImport', checker.importExpr(checker.Identifiers.core));
|
|
1401
1401
|
definitionMap.set('type', meta.type.value);
|
|
1402
1402
|
definitionMap.set('deps', compileDependencies(meta.deps));
|
|
@@ -1431,7 +1431,7 @@ function compileDeclareInjectableFromMetadata(meta) {
|
|
|
1431
1431
|
function createInjectableDefinitionMap(meta) {
|
|
1432
1432
|
const definitionMap = new checker.DefinitionMap();
|
|
1433
1433
|
definitionMap.set('minVersion', checker.literal(MINIMUM_PARTIAL_LINKER_VERSION$3));
|
|
1434
|
-
definitionMap.set('version', checker.literal('19.0.0-next.
|
|
1434
|
+
definitionMap.set('version', checker.literal('19.0.0-next.9'));
|
|
1435
1435
|
definitionMap.set('ngImport', checker.importExpr(checker.Identifiers.core));
|
|
1436
1436
|
definitionMap.set('type', meta.type.value);
|
|
1437
1437
|
// Only generate providedIn property if it has a non-null value
|
|
@@ -1482,7 +1482,7 @@ function compileDeclareInjectorFromMetadata(meta) {
|
|
|
1482
1482
|
function createInjectorDefinitionMap(meta) {
|
|
1483
1483
|
const definitionMap = new checker.DefinitionMap();
|
|
1484
1484
|
definitionMap.set('minVersion', checker.literal(MINIMUM_PARTIAL_LINKER_VERSION$2));
|
|
1485
|
-
definitionMap.set('version', checker.literal('19.0.0-next.
|
|
1485
|
+
definitionMap.set('version', checker.literal('19.0.0-next.9'));
|
|
1486
1486
|
definitionMap.set('ngImport', checker.importExpr(checker.Identifiers.core));
|
|
1487
1487
|
definitionMap.set('type', meta.type.value);
|
|
1488
1488
|
definitionMap.set('providers', meta.providers);
|
|
@@ -1515,7 +1515,7 @@ function createNgModuleDefinitionMap(meta) {
|
|
|
1515
1515
|
throw new Error('Invalid path! Local compilation mode should not get into the partial compilation path');
|
|
1516
1516
|
}
|
|
1517
1517
|
definitionMap.set('minVersion', checker.literal(MINIMUM_PARTIAL_LINKER_VERSION$1));
|
|
1518
|
-
definitionMap.set('version', checker.literal('19.0.0-next.
|
|
1518
|
+
definitionMap.set('version', checker.literal('19.0.0-next.9'));
|
|
1519
1519
|
definitionMap.set('ngImport', checker.importExpr(checker.Identifiers.core));
|
|
1520
1520
|
definitionMap.set('type', meta.type.value);
|
|
1521
1521
|
// We only generate the keys in the metadata if the arrays contain values.
|
|
@@ -1566,7 +1566,7 @@ function compileDeclarePipeFromMetadata(meta) {
|
|
|
1566
1566
|
function createPipeDefinitionMap(meta) {
|
|
1567
1567
|
const definitionMap = new checker.DefinitionMap();
|
|
1568
1568
|
definitionMap.set('minVersion', checker.literal(MINIMUM_PARTIAL_LINKER_VERSION));
|
|
1569
|
-
definitionMap.set('version', checker.literal('19.0.0-next.
|
|
1569
|
+
definitionMap.set('version', checker.literal('19.0.0-next.9'));
|
|
1570
1570
|
definitionMap.set('ngImport', checker.importExpr(checker.Identifiers.core));
|
|
1571
1571
|
// e.g. `type: MyPipe`
|
|
1572
1572
|
definitionMap.set('type', meta.type.value);
|
|
@@ -1923,7 +1923,7 @@ class DeferredSymbolTracker {
|
|
|
1923
1923
|
return false;
|
|
1924
1924
|
}
|
|
1925
1925
|
const symbolsMap = this.imports.get(importDecl);
|
|
1926
|
-
for (const
|
|
1926
|
+
for (const refs of symbolsMap.values()) {
|
|
1927
1927
|
if (refs === AssumeEager || refs.size > 0) {
|
|
1928
1928
|
// There may be still eager references to this symbol.
|
|
1929
1929
|
return false;
|
|
@@ -1947,8 +1947,9 @@ class DeferredSymbolTracker {
|
|
|
1947
1947
|
lookupIdentifiersInSourceFile(name, importDecl) {
|
|
1948
1948
|
const results = new Set();
|
|
1949
1949
|
const visit = (node) => {
|
|
1950
|
-
|
|
1951
|
-
|
|
1950
|
+
// Don't record references from the declaration itself or inside
|
|
1951
|
+
// type nodes which will be stripped from the JS output.
|
|
1952
|
+
if (node === importDecl || ts__default["default"].isTypeNode(node)) {
|
|
1952
1953
|
return;
|
|
1953
1954
|
}
|
|
1954
1955
|
if (ts__default["default"].isIdentifier(node) && node.text === name) {
|
|
@@ -6531,7 +6532,7 @@ const QUERY_TYPES = new Set(queryDecoratorNames);
|
|
|
6531
6532
|
* appear in the declarations of an `NgModule` and additional verification is done when processing
|
|
6532
6533
|
* the module.
|
|
6533
6534
|
*/
|
|
6534
|
-
function extractDirectiveMetadata(clazz, decorator, reflector, importTracker, evaluator, refEmitter, referencesRegistry, isCore, annotateForClosureCompiler, compilationMode, defaultSelector) {
|
|
6535
|
+
function extractDirectiveMetadata(clazz, decorator, reflector, importTracker, evaluator, refEmitter, referencesRegistry, isCore, annotateForClosureCompiler, compilationMode, defaultSelector, strictStandalone) {
|
|
6535
6536
|
let directive;
|
|
6536
6537
|
if (decorator.args === null || decorator.args.length === 0) {
|
|
6537
6538
|
directive = new Map();
|
|
@@ -6643,6 +6644,9 @@ function extractDirectiveMetadata(clazz, decorator, reflector, importTracker, ev
|
|
|
6643
6644
|
throw createValueHasWrongTypeError(expr, resolved, `standalone flag must be a boolean`);
|
|
6644
6645
|
}
|
|
6645
6646
|
isStandalone = resolved;
|
|
6647
|
+
if (!isStandalone && strictStandalone) {
|
|
6648
|
+
throw new checker.FatalDiagnosticError(checker.ErrorCode.NON_STANDALONE_NOT_ALLOWED, expr, `Only standalone components/directives are allowed when 'strictStandalone' is enabled.`);
|
|
6649
|
+
}
|
|
6646
6650
|
}
|
|
6647
6651
|
let isSignal = false;
|
|
6648
6652
|
if (directive.has('signals')) {
|
|
@@ -7636,7 +7640,7 @@ const LIFECYCLE_HOOKS = new Set([
|
|
|
7636
7640
|
'ngAfterContentChecked',
|
|
7637
7641
|
]);
|
|
7638
7642
|
class DirectiveDecoratorHandler {
|
|
7639
|
-
constructor(reflector, evaluator, metaRegistry, scopeRegistry, metaReader, injectableRegistry, refEmitter, referencesRegistry, isCore, strictCtorDeps, semanticDepGraphUpdater, annotateForClosureCompiler, perf, importTracker, includeClassMetadata, compilationMode, jitDeclarationRegistry) {
|
|
7643
|
+
constructor(reflector, evaluator, metaRegistry, scopeRegistry, metaReader, injectableRegistry, refEmitter, referencesRegistry, isCore, strictCtorDeps, semanticDepGraphUpdater, annotateForClosureCompiler, perf, importTracker, includeClassMetadata, compilationMode, jitDeclarationRegistry, strictStandalone) {
|
|
7640
7644
|
this.reflector = reflector;
|
|
7641
7645
|
this.evaluator = evaluator;
|
|
7642
7646
|
this.metaRegistry = metaRegistry;
|
|
@@ -7654,6 +7658,7 @@ class DirectiveDecoratorHandler {
|
|
|
7654
7658
|
this.includeClassMetadata = includeClassMetadata;
|
|
7655
7659
|
this.compilationMode = compilationMode;
|
|
7656
7660
|
this.jitDeclarationRegistry = jitDeclarationRegistry;
|
|
7661
|
+
this.strictStandalone = strictStandalone;
|
|
7657
7662
|
this.precedence = checker.HandlerPrecedence.PRIMARY;
|
|
7658
7663
|
this.name = 'DirectiveDecoratorHandler';
|
|
7659
7664
|
}
|
|
@@ -7687,7 +7692,7 @@ class DirectiveDecoratorHandler {
|
|
|
7687
7692
|
}
|
|
7688
7693
|
this.perf.eventCount(checker.PerfEvent.AnalyzeDirective);
|
|
7689
7694
|
const directiveResult = extractDirectiveMetadata(node, decorator, this.reflector, this.importTracker, this.evaluator, this.refEmitter, this.referencesRegistry, this.isCore, this.annotateForClosureCompiler, this.compilationMode,
|
|
7690
|
-
/* defaultSelector */ null);
|
|
7695
|
+
/* defaultSelector */ null, this.strictStandalone);
|
|
7691
7696
|
// `extractDirectiveMetadata` returns `jitForced = true` when the `@Directive` has
|
|
7692
7697
|
// set `jit: true`. In this case, compilation of the decorator is skipped. Returning
|
|
7693
7698
|
// an empty object signifies that no analysis was produced.
|
|
@@ -8956,6 +8961,7 @@ function preloadAndParseTemplate(evaluator, resourceLoader, depTracker, preanaly
|
|
|
8956
8961
|
const templatePromise = resourceLoader.preload(resourceUrl, {
|
|
8957
8962
|
type: 'template',
|
|
8958
8963
|
containingFile,
|
|
8964
|
+
className: node.name.text,
|
|
8959
8965
|
});
|
|
8960
8966
|
// If the preload worked, then actually load and parse the template, and wait for any
|
|
8961
8967
|
// style URLs to resolve.
|
|
@@ -9731,7 +9737,7 @@ const isUsedPipe = (decl) => decl.kind === checker.R3TemplateDependencyKind.Pipe
|
|
|
9731
9737
|
* `DecoratorHandler` which handles the `@Component` annotation.
|
|
9732
9738
|
*/
|
|
9733
9739
|
class ComponentDecoratorHandler {
|
|
9734
|
-
constructor(reflector, evaluator, metaRegistry, metaReader, scopeReader, dtsScopeReader, scopeRegistry, typeCheckScopeRegistry, resourceRegistry, isCore, strictCtorDeps, resourceLoader, rootDirs, defaultPreserveWhitespaces, i18nUseExternalIds, enableI18nLegacyMessageIdFormat, usePoisonedData, i18nNormalizeLineEndingsInICUs, moduleResolver, cycleAnalyzer, cycleHandlingStrategy, refEmitter, referencesRegistry, depTracker, injectableRegistry, semanticDepGraphUpdater, annotateForClosureCompiler, perf, hostDirectivesResolver, importTracker, includeClassMetadata, compilationMode, deferredSymbolTracker, forbidOrphanRendering, enableBlockSyntax, enableLetSyntax, localCompilationExtraImportsTracker, jitDeclarationRegistry, i18nPreserveSignificantWhitespace) {
|
|
9740
|
+
constructor(reflector, evaluator, metaRegistry, metaReader, scopeReader, dtsScopeReader, scopeRegistry, typeCheckScopeRegistry, resourceRegistry, isCore, strictCtorDeps, resourceLoader, rootDirs, defaultPreserveWhitespaces, i18nUseExternalIds, enableI18nLegacyMessageIdFormat, usePoisonedData, i18nNormalizeLineEndingsInICUs, moduleResolver, cycleAnalyzer, cycleHandlingStrategy, refEmitter, referencesRegistry, depTracker, injectableRegistry, semanticDepGraphUpdater, annotateForClosureCompiler, perf, hostDirectivesResolver, importTracker, includeClassMetadata, compilationMode, deferredSymbolTracker, forbidOrphanRendering, enableBlockSyntax, enableLetSyntax, externalRuntimeStyles, localCompilationExtraImportsTracker, jitDeclarationRegistry, i18nPreserveSignificantWhitespace, strictStandalone) {
|
|
9735
9741
|
this.reflector = reflector;
|
|
9736
9742
|
this.evaluator = evaluator;
|
|
9737
9743
|
this.metaRegistry = metaRegistry;
|
|
@@ -9768,9 +9774,11 @@ class ComponentDecoratorHandler {
|
|
|
9768
9774
|
this.forbidOrphanRendering = forbidOrphanRendering;
|
|
9769
9775
|
this.enableBlockSyntax = enableBlockSyntax;
|
|
9770
9776
|
this.enableLetSyntax = enableLetSyntax;
|
|
9777
|
+
this.externalRuntimeStyles = externalRuntimeStyles;
|
|
9771
9778
|
this.localCompilationExtraImportsTracker = localCompilationExtraImportsTracker;
|
|
9772
9779
|
this.jitDeclarationRegistry = jitDeclarationRegistry;
|
|
9773
9780
|
this.i18nPreserveSignificantWhitespace = i18nPreserveSignificantWhitespace;
|
|
9781
|
+
this.strictStandalone = strictStandalone;
|
|
9774
9782
|
this.literalCache = new Map();
|
|
9775
9783
|
this.elementSchemaRegistry = new checker.DomElementSchemaRegistry();
|
|
9776
9784
|
/**
|
|
@@ -9828,7 +9836,11 @@ class ComponentDecoratorHandler {
|
|
|
9828
9836
|
const resolveStyleUrl = (styleUrl) => {
|
|
9829
9837
|
try {
|
|
9830
9838
|
const resourceUrl = this.resourceLoader.resolve(styleUrl, containingFile);
|
|
9831
|
-
return this.resourceLoader.preload(resourceUrl, {
|
|
9839
|
+
return this.resourceLoader.preload(resourceUrl, {
|
|
9840
|
+
type: 'style',
|
|
9841
|
+
containingFile,
|
|
9842
|
+
className: node.name.text,
|
|
9843
|
+
});
|
|
9832
9844
|
}
|
|
9833
9845
|
catch {
|
|
9834
9846
|
// Don't worry about failures to preload. We can handle this problem during analysis by
|
|
@@ -9856,18 +9868,31 @@ class ComponentDecoratorHandler {
|
|
|
9856
9868
|
return templateAndTemplateStyleResources.then(async (templateInfo) => {
|
|
9857
9869
|
// Extract inline styles, process, and cache for use in synchronous analyze phase
|
|
9858
9870
|
let styles = null;
|
|
9871
|
+
// Order plus className allows inline styles to be identified per component by a preprocessor
|
|
9872
|
+
let orderOffset = 0;
|
|
9859
9873
|
const rawStyles = parseDirectiveStyles(component, this.evaluator, this.compilationMode);
|
|
9860
9874
|
if (rawStyles?.length) {
|
|
9861
|
-
styles = await Promise.all(rawStyles.map((style) => this.resourceLoader.preprocessInline(style, {
|
|
9875
|
+
styles = await Promise.all(rawStyles.map((style) => this.resourceLoader.preprocessInline(style, {
|
|
9876
|
+
type: 'style',
|
|
9877
|
+
containingFile,
|
|
9878
|
+
order: orderOffset++,
|
|
9879
|
+
className: node.name.text,
|
|
9880
|
+
})));
|
|
9862
9881
|
}
|
|
9863
9882
|
if (templateInfo.templateStyles) {
|
|
9864
9883
|
styles ??= [];
|
|
9865
9884
|
styles.push(...(await Promise.all(templateInfo.templateStyles.map((style) => this.resourceLoader.preprocessInline(style, {
|
|
9866
9885
|
type: 'style',
|
|
9867
9886
|
containingFile: templateInfo.templateUrl ?? containingFile,
|
|
9887
|
+
order: orderOffset++,
|
|
9888
|
+
className: node.name.text,
|
|
9868
9889
|
})))));
|
|
9869
9890
|
}
|
|
9870
9891
|
this.preanalyzeStylesCache.set(node, styles);
|
|
9892
|
+
if (this.externalRuntimeStyles) {
|
|
9893
|
+
// No preanalysis required for style URLs with external runtime styles
|
|
9894
|
+
return;
|
|
9895
|
+
}
|
|
9871
9896
|
// Wait for both the template and all styleUrl resources to resolve.
|
|
9872
9897
|
await Promise.all([
|
|
9873
9898
|
...componentStyleUrls.map((styleUrl) => resolveStyleUrl(styleUrl.url)),
|
|
@@ -9883,7 +9908,7 @@ class ComponentDecoratorHandler {
|
|
|
9883
9908
|
let isPoisoned = false;
|
|
9884
9909
|
// @Component inherits @Directive, so begin by extracting the @Directive metadata and building
|
|
9885
9910
|
// on it.
|
|
9886
|
-
const directiveResult = extractDirectiveMetadata(node, decorator, this.reflector, this.importTracker, this.evaluator, this.refEmitter, this.referencesRegistry, this.isCore, this.annotateForClosureCompiler, this.compilationMode, this.elementSchemaRegistry.getDefaultComponentElementName());
|
|
9911
|
+
const directiveResult = extractDirectiveMetadata(node, decorator, this.reflector, this.importTracker, this.evaluator, this.refEmitter, this.referencesRegistry, this.isCore, this.annotateForClosureCompiler, this.compilationMode, this.elementSchemaRegistry.getDefaultComponentElementName(), this.strictStandalone);
|
|
9887
9912
|
// `extractDirectiveMetadata` returns `jitForced = true` when the `@Component` has
|
|
9888
9913
|
// set `jit: true`. In this case, compilation of the decorator is skipped. Returning
|
|
9889
9914
|
// an empty object signifies that no analysis was produced.
|
|
@@ -10043,6 +10068,7 @@ class ComponentDecoratorHandler {
|
|
|
10043
10068
|
// precede inline styles, and styles defined in the template override styles defined in the
|
|
10044
10069
|
// component.
|
|
10045
10070
|
let styles = [];
|
|
10071
|
+
const externalStyles = [];
|
|
10046
10072
|
const styleResources = extractInlineStyleResources(component);
|
|
10047
10073
|
const styleUrls = [
|
|
10048
10074
|
...extractComponentStyleUrls(this.evaluator, component),
|
|
@@ -10051,6 +10077,11 @@ class ComponentDecoratorHandler {
|
|
|
10051
10077
|
for (const styleUrl of styleUrls) {
|
|
10052
10078
|
try {
|
|
10053
10079
|
const resourceUrl = this.resourceLoader.resolve(styleUrl.url, containingFile);
|
|
10080
|
+
if (this.externalRuntimeStyles) {
|
|
10081
|
+
// External runtime styles are not considered disk-based and may not actually exist on disk
|
|
10082
|
+
externalStyles.push(resourceUrl);
|
|
10083
|
+
continue;
|
|
10084
|
+
}
|
|
10054
10085
|
if (styleUrl.source === 2 /* ResourceTypeForDiagnostics.StylesheetFromDecorator */ &&
|
|
10055
10086
|
ts__default["default"].isStringLiteralLike(styleUrl.expression)) {
|
|
10056
10087
|
// Only string literal values from the decorator are considered style resources
|
|
@@ -10095,8 +10126,14 @@ class ComponentDecoratorHandler {
|
|
|
10095
10126
|
if (this.preanalyzeStylesCache.has(node)) {
|
|
10096
10127
|
inlineStyles = this.preanalyzeStylesCache.get(node);
|
|
10097
10128
|
this.preanalyzeStylesCache.delete(node);
|
|
10098
|
-
if (inlineStyles
|
|
10099
|
-
|
|
10129
|
+
if (inlineStyles?.length) {
|
|
10130
|
+
if (this.externalRuntimeStyles) {
|
|
10131
|
+
// When external runtime styles is enabled, a list of URLs is provided
|
|
10132
|
+
externalStyles.push(...inlineStyles);
|
|
10133
|
+
}
|
|
10134
|
+
else {
|
|
10135
|
+
styles.push(...inlineStyles);
|
|
10136
|
+
}
|
|
10100
10137
|
}
|
|
10101
10138
|
}
|
|
10102
10139
|
else {
|
|
@@ -10150,6 +10187,7 @@ class ComponentDecoratorHandler {
|
|
|
10150
10187
|
changeDetection,
|
|
10151
10188
|
interpolation: template.interpolationConfig ?? checker.DEFAULT_INTERPOLATION_CONFIG,
|
|
10152
10189
|
styles,
|
|
10190
|
+
externalStyles,
|
|
10153
10191
|
// These will be replaced during the compilation step, after all `NgModule`s have been
|
|
10154
10192
|
// analyzed and the full compilation scope for the component can be realized.
|
|
10155
10193
|
animations,
|
|
@@ -11374,7 +11412,7 @@ class PipeSymbol extends SemanticSymbol {
|
|
|
11374
11412
|
}
|
|
11375
11413
|
}
|
|
11376
11414
|
class PipeDecoratorHandler {
|
|
11377
|
-
constructor(reflector, evaluator, metaRegistry, scopeRegistry, injectableRegistry, isCore, perf, includeClassMetadata, compilationMode, generateExtraImportsInLocalMode) {
|
|
11415
|
+
constructor(reflector, evaluator, metaRegistry, scopeRegistry, injectableRegistry, isCore, perf, includeClassMetadata, compilationMode, generateExtraImportsInLocalMode, strictStandalone) {
|
|
11378
11416
|
this.reflector = reflector;
|
|
11379
11417
|
this.evaluator = evaluator;
|
|
11380
11418
|
this.metaRegistry = metaRegistry;
|
|
@@ -11385,6 +11423,7 @@ class PipeDecoratorHandler {
|
|
|
11385
11423
|
this.includeClassMetadata = includeClassMetadata;
|
|
11386
11424
|
this.compilationMode = compilationMode;
|
|
11387
11425
|
this.generateExtraImportsInLocalMode = generateExtraImportsInLocalMode;
|
|
11426
|
+
this.strictStandalone = strictStandalone;
|
|
11388
11427
|
this.precedence = checker.HandlerPrecedence.PRIMARY;
|
|
11389
11428
|
this.name = 'PipeDecoratorHandler';
|
|
11390
11429
|
}
|
|
@@ -11444,6 +11483,9 @@ class PipeDecoratorHandler {
|
|
|
11444
11483
|
throw createValueHasWrongTypeError(expr, resolved, `standalone flag must be a boolean`);
|
|
11445
11484
|
}
|
|
11446
11485
|
isStandalone = resolved;
|
|
11486
|
+
if (!isStandalone && this.strictStandalone) {
|
|
11487
|
+
throw new checker.FatalDiagnosticError(checker.ErrorCode.NON_STANDALONE_NOT_ALLOWED, expr, `Only standalone pipes are allowed when 'strictStandalone' is enabled.`);
|
|
11488
|
+
}
|
|
11447
11489
|
}
|
|
11448
11490
|
return {
|
|
11449
11491
|
analysis: {
|
|
@@ -12997,7 +13039,8 @@ class ClassExtractor {
|
|
|
12997
13039
|
if (this.isMethod(memberDeclaration)) {
|
|
12998
13040
|
return this.extractMethod(memberDeclaration);
|
|
12999
13041
|
}
|
|
13000
|
-
else if (this.isProperty(memberDeclaration)
|
|
13042
|
+
else if (this.isProperty(memberDeclaration) &&
|
|
13043
|
+
!this.hasPrivateComputedProperty(memberDeclaration)) {
|
|
13001
13044
|
return this.extractClassProperty(memberDeclaration);
|
|
13002
13045
|
}
|
|
13003
13046
|
else if (ts__default["default"].isAccessor(memberDeclaration)) {
|
|
@@ -13205,6 +13248,14 @@ class ClassExtractor {
|
|
|
13205
13248
|
const modifiers = this.declaration.modifiers ?? [];
|
|
13206
13249
|
return modifiers.some((mod) => mod.kind === ts__default["default"].SyntaxKind.AbstractKeyword);
|
|
13207
13250
|
}
|
|
13251
|
+
/**
|
|
13252
|
+
* Check wether a member has a private computed property name like [ɵWRITABLE_SIGNAL]
|
|
13253
|
+
*
|
|
13254
|
+
* This will prevent exposing private computed properties in the docs.
|
|
13255
|
+
*/
|
|
13256
|
+
hasPrivateComputedProperty(property) {
|
|
13257
|
+
return (ts__default["default"].isComputedPropertyName(property.name) && property.name.expression.getText().startsWith('ɵ'));
|
|
13258
|
+
}
|
|
13208
13259
|
}
|
|
13209
13260
|
/** Extractor to pull info for API reference documentation for an Angular directive. */
|
|
13210
13261
|
class DirectiveExtractor extends ClassExtractor {
|
|
@@ -15157,6 +15208,7 @@ class AdapterResourceLoader {
|
|
|
15157
15208
|
type: 'style',
|
|
15158
15209
|
containingFile: context.containingFile,
|
|
15159
15210
|
resourceFile: resolvedUrl,
|
|
15211
|
+
className: context.className,
|
|
15160
15212
|
};
|
|
15161
15213
|
result = Promise.resolve(result).then(async (str) => {
|
|
15162
15214
|
const transformResult = await this.adapter.transformResource(str, resourceContext);
|
|
@@ -15192,6 +15244,8 @@ class AdapterResourceLoader {
|
|
|
15192
15244
|
type: 'style',
|
|
15193
15245
|
containingFile: context.containingFile,
|
|
15194
15246
|
resourceFile: null,
|
|
15247
|
+
order: context.order,
|
|
15248
|
+
className: context.className,
|
|
15195
15249
|
});
|
|
15196
15250
|
if (transformResult === null) {
|
|
15197
15251
|
return data;
|
|
@@ -16454,15 +16508,18 @@ class UnusedStandaloneImportsRule {
|
|
|
16454
16508
|
return checker.makeDiagnostic(checker.ErrorCode.UNUSED_STANDALONE_IMPORTS, metadata.rawImports, 'Imports array contains unused imports', unused.map(([ref, type, name]) => checker.makeRelatedInformation(ref.getOriginForDiagnostics(metadata.rawImports), `${type} "${name}" is not used within the template`)), category);
|
|
16455
16509
|
}
|
|
16456
16510
|
getUnusedSymbols(metadata, usedDirectives, usedPipes) {
|
|
16457
|
-
|
|
16511
|
+
const { imports, rawImports } = metadata;
|
|
16512
|
+
if (imports === null || rawImports === null) {
|
|
16458
16513
|
return null;
|
|
16459
16514
|
}
|
|
16460
16515
|
let unused = null;
|
|
16461
|
-
for (const current of
|
|
16516
|
+
for (const current of imports) {
|
|
16462
16517
|
const currentNode = current.node;
|
|
16463
16518
|
const dirMeta = this.templateTypeChecker.getDirectiveMetadata(currentNode);
|
|
16464
16519
|
if (dirMeta !== null) {
|
|
16465
|
-
if (dirMeta.isStandalone &&
|
|
16520
|
+
if (dirMeta.isStandalone &&
|
|
16521
|
+
!usedDirectives.has(currentNode) &&
|
|
16522
|
+
!this.isPotentialSharedReference(current, rawImports)) {
|
|
16466
16523
|
unused ??= [];
|
|
16467
16524
|
unused.push([current, dirMeta.isComponent ? 'Component' : 'Directive', dirMeta.name]);
|
|
16468
16525
|
}
|
|
@@ -16471,13 +16528,41 @@ class UnusedStandaloneImportsRule {
|
|
|
16471
16528
|
const pipeMeta = this.templateTypeChecker.getPipeMetadata(currentNode);
|
|
16472
16529
|
if (pipeMeta !== null &&
|
|
16473
16530
|
pipeMeta.isStandalone &&
|
|
16474
|
-
|
|
16531
|
+
!usedPipes.has(pipeMeta.name) &&
|
|
16532
|
+
!this.isPotentialSharedReference(current, rawImports)) {
|
|
16475
16533
|
unused ??= [];
|
|
16476
16534
|
unused.push([current, 'Pipe', pipeMeta.ref.node.name.text]);
|
|
16477
16535
|
}
|
|
16478
16536
|
}
|
|
16479
16537
|
return unused;
|
|
16480
16538
|
}
|
|
16539
|
+
/**
|
|
16540
|
+
* Determines if an import reference *might* be coming from a shared imports array.
|
|
16541
|
+
* @param reference Reference to be checked.
|
|
16542
|
+
* @param rawImports AST node that defines the `imports` array.
|
|
16543
|
+
*/
|
|
16544
|
+
isPotentialSharedReference(reference, rawImports) {
|
|
16545
|
+
// If the reference is defined directly in the `imports` array, it cannot be shared.
|
|
16546
|
+
if (reference.getIdentityInExpression(rawImports) !== null) {
|
|
16547
|
+
return false;
|
|
16548
|
+
}
|
|
16549
|
+
// The reference might be shared if it comes from an exported array. If the variable is local
|
|
16550
|
+
/// to the file, then it likely isn't shared. Note that this has the potential for false
|
|
16551
|
+
// positives if a non-exported array of imports is shared between components in the same
|
|
16552
|
+
// file. This scenario is unlikely and even if we report the diagnostic for it, it would be
|
|
16553
|
+
// okay since the user only has to refactor components within the same file, rather than the
|
|
16554
|
+
// entire application.
|
|
16555
|
+
let current = reference.getIdentityIn(rawImports.getSourceFile());
|
|
16556
|
+
while (current !== null) {
|
|
16557
|
+
if (ts__default["default"].isVariableStatement(current)) {
|
|
16558
|
+
return !!current.modifiers?.some((m) => m.kind === ts__default["default"].SyntaxKind.ExportKeyword);
|
|
16559
|
+
}
|
|
16560
|
+
current = current.parent;
|
|
16561
|
+
}
|
|
16562
|
+
// Otherwise the reference likely comes from an imported
|
|
16563
|
+
// symbol like an array of shared common components.
|
|
16564
|
+
return true;
|
|
16565
|
+
}
|
|
16481
16566
|
}
|
|
16482
16567
|
|
|
16483
16568
|
/*!
|
|
@@ -19222,7 +19307,7 @@ var semver = /*@__PURE__*/getDefaultExportFromCjs(semverExports);
|
|
|
19222
19307
|
* @param minVersion Minimum required version for the feature.
|
|
19223
19308
|
*/
|
|
19224
19309
|
function coreVersionSupportsFeature(coreVersion, minVersion) {
|
|
19225
|
-
// A version of `19.0.0-next.
|
|
19310
|
+
// A version of `19.0.0-next.9` usually means that core is at head so it supports
|
|
19226
19311
|
// all features. Use string interpolation prevent the placeholder from being replaced
|
|
19227
19312
|
// with the current version during build time.
|
|
19228
19313
|
if (coreVersion === `0.0.0-${'PLACEHOLDER'}`) {
|
|
@@ -20078,6 +20163,7 @@ class NgCompiler {
|
|
|
20078
20163
|
const strictCtorDeps = this.options.strictInjectionParameters || false;
|
|
20079
20164
|
const supportJitMode = this.options['supportJitMode'] ?? true;
|
|
20080
20165
|
const supportTestBed = this.options['supportTestBed'] ?? true;
|
|
20166
|
+
const externalRuntimeStyles = this.options['externalRuntimeStyles'] ?? false;
|
|
20081
20167
|
// Libraries compiled in partial mode could potentially be used with TestBed within an
|
|
20082
20168
|
// application. Since this is not known at library compilation time, support is required to
|
|
20083
20169
|
// prevent potential downstream application testing breakage.
|
|
@@ -20096,13 +20182,13 @@ class NgCompiler {
|
|
|
20096
20182
|
const jitDeclarationRegistry = new JitDeclarationRegistry();
|
|
20097
20183
|
// Set up the IvyCompilation, which manages state for the Ivy transformer.
|
|
20098
20184
|
const handlers = [
|
|
20099
|
-
new ComponentDecoratorHandler(reflector, evaluator, metaRegistry, metaReader, scopeReader, depScopeReader, ngModuleScopeRegistry, typeCheckScopeRegistry, resourceRegistry, isCore, strictCtorDeps, this.resourceManager, this.adapter.rootDirs, this.options.preserveWhitespaces || false, this.options.i18nUseExternalIds !== false, this.options.enableI18nLegacyMessageIdFormat !== false, this.usePoisonedData, this.options.i18nNormalizeLineEndingsInICUs === true, this.moduleResolver, this.cycleAnalyzer, cycleHandlingStrategy, refEmitter, referencesRegistry, this.incrementalCompilation.depGraph, injectableRegistry, semanticDepGraphUpdater, this.closureCompilerEnabled, this.delegatingPerfRecorder, hostDirectivesResolver, importTracker, supportTestBed, compilationMode, deferredSymbolsTracker, !!this.options.forbidOrphanComponents, this.enableBlockSyntax, this.enableLetSyntax, localCompilationExtraImportsTracker, jitDeclarationRegistry, this.options.i18nPreserveWhitespaceForLegacyExtraction ?? true),
|
|
20185
|
+
new ComponentDecoratorHandler(reflector, evaluator, metaRegistry, metaReader, scopeReader, depScopeReader, ngModuleScopeRegistry, typeCheckScopeRegistry, resourceRegistry, isCore, strictCtorDeps, this.resourceManager, this.adapter.rootDirs, this.options.preserveWhitespaces || false, this.options.i18nUseExternalIds !== false, this.options.enableI18nLegacyMessageIdFormat !== false, this.usePoisonedData, this.options.i18nNormalizeLineEndingsInICUs === true, this.moduleResolver, this.cycleAnalyzer, cycleHandlingStrategy, refEmitter, referencesRegistry, this.incrementalCompilation.depGraph, injectableRegistry, semanticDepGraphUpdater, this.closureCompilerEnabled, this.delegatingPerfRecorder, hostDirectivesResolver, importTracker, supportTestBed, compilationMode, deferredSymbolsTracker, !!this.options.forbidOrphanComponents, this.enableBlockSyntax, this.enableLetSyntax, externalRuntimeStyles, localCompilationExtraImportsTracker, jitDeclarationRegistry, this.options.i18nPreserveWhitespaceForLegacyExtraction ?? true, !!this.options.strictStandalone),
|
|
20100
20186
|
// TODO(alxhub): understand why the cast here is necessary (something to do with `null`
|
|
20101
20187
|
// not being assignable to `unknown` when wrapped in `Readonly`).
|
|
20102
|
-
new DirectiveDecoratorHandler(reflector, evaluator, metaRegistry, ngModuleScopeRegistry, metaReader, injectableRegistry, refEmitter, referencesRegistry, isCore, strictCtorDeps, semanticDepGraphUpdater, this.closureCompilerEnabled, this.delegatingPerfRecorder, importTracker, supportTestBed, compilationMode, jitDeclarationRegistry),
|
|
20188
|
+
new DirectiveDecoratorHandler(reflector, evaluator, metaRegistry, ngModuleScopeRegistry, metaReader, injectableRegistry, refEmitter, referencesRegistry, isCore, strictCtorDeps, semanticDepGraphUpdater, this.closureCompilerEnabled, this.delegatingPerfRecorder, importTracker, supportTestBed, compilationMode, jitDeclarationRegistry, !!this.options.strictStandalone),
|
|
20103
20189
|
// Pipe handler must be before injectable handler in list so pipe factories are printed
|
|
20104
20190
|
// before injectable factories (so injectable factories can delegate to them)
|
|
20105
|
-
new PipeDecoratorHandler(reflector, evaluator, metaRegistry, ngModuleScopeRegistry, injectableRegistry, isCore, this.delegatingPerfRecorder, supportTestBed, compilationMode, !!this.options.generateExtraImportsInLocalMode),
|
|
20191
|
+
new PipeDecoratorHandler(reflector, evaluator, metaRegistry, ngModuleScopeRegistry, injectableRegistry, isCore, this.delegatingPerfRecorder, supportTestBed, compilationMode, !!this.options.generateExtraImportsInLocalMode, !!this.options.strictStandalone),
|
|
20106
20192
|
new InjectableDecoratorHandler(reflector, evaluator, isCore, strictCtorDeps, injectableRegistry, this.delegatingPerfRecorder, supportTestBed, compilationMode),
|
|
20107
20193
|
new NgModuleDecoratorHandler(reflector, evaluator, metaReader, metaRegistry, ngModuleScopeRegistry, referencesRegistry, exportedProviderStatusResolver, semanticDepGraphUpdater, isCore, refEmitter, this.closureCompilerEnabled, this.options.onlyPublishPublicTypingsForNgModules ?? false, injectableRegistry, this.delegatingPerfRecorder, supportTestBed, supportJitMode, compilationMode, localCompilationExtraImportsTracker, jitDeclarationRegistry),
|
|
20108
20194
|
];
|
|
@@ -20815,5 +20901,7 @@ exports.DtsMetadataReader = DtsMetadataReader;
|
|
|
20815
20901
|
exports.NgtscProgram = NgtscProgram;
|
|
20816
20902
|
exports.PartialEvaluator = PartialEvaluator;
|
|
20817
20903
|
exports.UNKNOWN_ERROR_CODE = UNKNOWN_ERROR_CODE;
|
|
20904
|
+
exports.extractDecoratorQueryMetadata = extractDecoratorQueryMetadata;
|
|
20818
20905
|
exports.extractTemplate = extractTemplate;
|
|
20819
20906
|
exports.parseDecoratorInputTransformFunction = parseDecoratorInputTransformFunction;
|
|
20907
|
+
exports.queryDecoratorNames = queryDecoratorNames;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v19.0.0-next.
|
|
3
|
+
* @license Angular v19.0.0-next.9
|
|
4
4
|
* (c) 2010-2024 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
@@ -11,10 +11,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
11
11
|
var schematics = require('@angular-devkit/schematics');
|
|
12
12
|
var fs = require('fs');
|
|
13
13
|
var p = require('path');
|
|
14
|
-
var compiler_host = require('./compiler_host-
|
|
15
|
-
var project_tsconfig_paths = require('./project_tsconfig_paths-
|
|
14
|
+
var compiler_host = require('./compiler_host-b4ba5a28.js');
|
|
15
|
+
var project_tsconfig_paths = require('./project_tsconfig_paths-e9ccccbf.js');
|
|
16
16
|
var ts = require('typescript');
|
|
17
|
-
require('./checker-
|
|
17
|
+
require('./checker-3b2ea20f.js');
|
|
18
18
|
require('os');
|
|
19
19
|
require('module');
|
|
20
20
|
require('url');
|