@angular/core 20.2.0-rc.1 → 20.2.0
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 +1 -1
- package/chrome_dev_tools_performance.d.d.ts +1 -1
- package/discovery.d.d.ts +1 -1
- 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 +142 -82
- package/fesm2022/debug_node.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 +1 -1
- package/fesm2022/primitives/signals.mjs.map +1 -1
- package/fesm2022/resource.mjs +1 -1
- package/fesm2022/resource.mjs.map +1 -1
- package/fesm2022/root_effect_scheduler.mjs +1 -1
- 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 +1 -1
- package/fesm2022/signal.mjs.map +1 -1
- package/fesm2022/testing.mjs +1 -1
- package/fesm2022/testing.mjs.map +1 -1
- package/fesm2022/untracked.mjs +1 -1
- package/fesm2022/untracked.mjs.map +1 -1
- package/fesm2022/weak_ref.mjs +1 -1
- package/fesm2022/weak_ref.mjs.map +1 -1
- package/graph.d.d.ts +1 -1
- package/index.d.ts +5 -5
- package/package.json +2 -2
- package/primitives/di/index.d.ts +1 -1
- package/primitives/event-dispatch/index.d.ts +1 -1
- package/primitives/signals/index.d.ts +1 -1
- package/rxjs-interop/index.d.ts +1 -1
- package/schematics/bundles/{apply_import_manager-OJAv7nyR.cjs → apply_import_manager-Ch1hTvRS.cjs} +3 -3
- package/schematics/bundles/cleanup-unused-imports.cjs +5 -5
- package/schematics/bundles/{compiler_host-GMENszSm.cjs → compiler_host-CqB0JPzD.cjs} +2 -2
- package/schematics/bundles/control-flow-migration.cjs +3 -3
- package/schematics/bundles/document-core.cjs +5 -5
- package/schematics/bundles/imports-CIX-JgAN.cjs +1 -1
- package/schematics/bundles/{index-C0gVsyDQ.cjs → index-COhCBz0q.cjs} +4 -4
- package/schematics/bundles/{index-CvCDOy8a.cjs → index-DwItZ4Tw.cjs} +15 -14
- 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-ByPRdLHL.cjs → migrate_ts_type_references-BMhLua30.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-BfWTWKz0.cjs → project_paths-OWnyHise.cjs} +3 -3
- package/schematics/bundles/{project_tsconfig_paths-Bhn4jDr1.cjs → project_tsconfig_paths-BIeidc3E.cjs} +166 -18
- package/schematics/bundles/property_name-BBwFuqMe.cjs +1 -1
- package/schematics/bundles/route-lazy-loading.cjs +3 -3
- package/schematics/bundles/router-current-navigation.cjs +4 -4
- package/schematics/bundles/self-closing-tags-migration.cjs +4 -4
- package/schematics/bundles/signal-input-migration.cjs +7 -7
- package/schematics/bundles/signal-queries-migration.cjs +7 -7
- package/schematics/bundles/signals.cjs +7 -7
- package/schematics/bundles/standalone-migration.cjs +4 -4
- package/schematics/bundles/symbol-VPWguRxr.cjs +1 -1
- package/schematics/bundles/test-bed-get.cjs +4 -4
- package/signal.d.d.ts +1 -1
- package/testing/index.d.ts +2 -2
- package/weak_ref.d.d.ts +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v20.2.0
|
|
3
|
+
* @license Angular v20.2.0
|
|
4
4
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
@@ -23108,6 +23108,11 @@ function propagateI18nBlocksToTemplates(unit, subTemplateIndex) {
|
|
|
23108
23108
|
subTemplateIndex = propagateI18nBlocksForView(unit.job.views.get(op.emptyView), i18nBlock, op.emptyI18nPlaceholder, subTemplateIndex);
|
|
23109
23109
|
}
|
|
23110
23110
|
break;
|
|
23111
|
+
case OpKind.Projection:
|
|
23112
|
+
if (op.fallbackView !== null) {
|
|
23113
|
+
subTemplateIndex = propagateI18nBlocksForView(unit.job.views.get(op.fallbackView), i18nBlock, op.fallbackViewI18nPlaceholder, subTemplateIndex);
|
|
23114
|
+
}
|
|
23115
|
+
break;
|
|
23111
23116
|
}
|
|
23112
23117
|
}
|
|
23113
23118
|
return subTemplateIndex;
|
|
@@ -24691,6 +24696,21 @@ function resolvePlaceholdersForView(job, unit, i18nContexts, elements, pendingSt
|
|
|
24691
24696
|
// Clear out the pending structural directive now that its been accounted for.
|
|
24692
24697
|
pendingStructuralDirective = undefined;
|
|
24693
24698
|
}
|
|
24699
|
+
if (op.fallbackView !== null) {
|
|
24700
|
+
const view = job.views.get(op.fallbackView);
|
|
24701
|
+
if (op.fallbackViewI18nPlaceholder === undefined) {
|
|
24702
|
+
resolvePlaceholdersForView(job, view, i18nContexts, elements);
|
|
24703
|
+
}
|
|
24704
|
+
else {
|
|
24705
|
+
if (currentOps === null) {
|
|
24706
|
+
throw Error('i18n tag placeholder should only occur inside an i18n block');
|
|
24707
|
+
}
|
|
24708
|
+
recordTemplateStart(job, view, op.handle.slot, op.fallbackViewI18nPlaceholder, currentOps.i18nContext, currentOps.i18nBlock, pendingStructuralDirective);
|
|
24709
|
+
resolvePlaceholdersForView(job, view, i18nContexts, elements);
|
|
24710
|
+
recordTemplateClose(job, view, op.handle.slot, op.fallbackViewI18nPlaceholder, currentOps.i18nContext, currentOps.i18nBlock, pendingStructuralDirective);
|
|
24711
|
+
pendingStructuralDirective = undefined;
|
|
24712
|
+
}
|
|
24713
|
+
}
|
|
24694
24714
|
break;
|
|
24695
24715
|
case OpKind.ConditionalCreate:
|
|
24696
24716
|
case OpKind.ConditionalBranchCreate:
|
|
@@ -26540,10 +26560,16 @@ function ingestHostAttribute(job, name, value, securityContexts) {
|
|
|
26540
26560
|
job.root.update.push(attrBinding);
|
|
26541
26561
|
}
|
|
26542
26562
|
function ingestHostEvent(job, event) {
|
|
26543
|
-
|
|
26544
|
-
|
|
26545
|
-
:
|
|
26546
|
-
|
|
26563
|
+
let eventBinding;
|
|
26564
|
+
if (event.type === exports.ParsedEventType.Animation) {
|
|
26565
|
+
eventBinding = createAnimationListenerOp(job.root.xref, new SlotHandle(), event.name, null, makeListenerHandlerOps(job.root, event.handler, event.handlerSpan), event.name.endsWith('enter') ? "enter" /* ir.AnimationKind.ENTER */ : "leave" /* ir.AnimationKind.LEAVE */, event.targetOrPhase, true, event.sourceSpan);
|
|
26566
|
+
}
|
|
26567
|
+
else {
|
|
26568
|
+
const [phase, target] = event.type !== exports.ParsedEventType.LegacyAnimation
|
|
26569
|
+
? [null, event.targetOrPhase]
|
|
26570
|
+
: [event.targetOrPhase, null];
|
|
26571
|
+
eventBinding = createListenerOp(job.root.xref, new SlotHandle(), event.name, null, makeListenerHandlerOps(job.root, event.handler, event.handlerSpan), phase, target, true, event.sourceSpan);
|
|
26572
|
+
}
|
|
26547
26573
|
job.root.create.push(eventBinding);
|
|
26548
26574
|
}
|
|
26549
26575
|
/**
|
|
@@ -29598,11 +29624,11 @@ class HtmlAstToIvyAst {
|
|
|
29598
29624
|
const templateKey = normalizedName.substring(TEMPLATE_ATTR_PREFIX.length);
|
|
29599
29625
|
const parsedVariables = [];
|
|
29600
29626
|
const absoluteValueOffset = attribute.valueSpan
|
|
29601
|
-
? attribute.valueSpan.
|
|
29627
|
+
? attribute.valueSpan.fullStart.offset
|
|
29602
29628
|
: // If there is no value span the attribute does not have a value, like `attr` in
|
|
29603
29629
|
//`<div attr></div>`. In this case, point to one character beyond the last character of
|
|
29604
29630
|
// the attribute name.
|
|
29605
|
-
attribute.sourceSpan.
|
|
29631
|
+
attribute.sourceSpan.fullStart.offset + attribute.name.length;
|
|
29606
29632
|
this.bindingParser.parseInlineTemplateBinding(templateKey, templateValue, attribute.sourceSpan, absoluteValueOffset, [], templateParsedProperties, parsedVariables, true /* isIvyAst */);
|
|
29607
29633
|
templateVariables.push(...parsedVariables.map((v) => new Variable(v.name, v.value, v.sourceSpan, v.keySpan, v.valueSpan)));
|
|
29608
29634
|
}
|
|
@@ -32789,7 +32815,7 @@ function isAttrNode(ast) {
|
|
|
32789
32815
|
* @description
|
|
32790
32816
|
* Entry point for all public APIs of the compiler package.
|
|
32791
32817
|
*/
|
|
32792
|
-
new Version('20.2.0
|
|
32818
|
+
new Version('20.2.0');
|
|
32793
32819
|
|
|
32794
32820
|
//////////////////////////////////////
|
|
32795
32821
|
// THIS FILE HAS GLOBAL SIDE EFFECT //
|
|
@@ -33824,7 +33850,7 @@ class NodeJSPathManipulation {
|
|
|
33824
33850
|
// G3-ESM-MARKER: G3 uses CommonJS, but externally everything in ESM.
|
|
33825
33851
|
// CommonJS/ESM interop for determining the current file name and containing dir.
|
|
33826
33852
|
const isCommonJS = typeof __filename !== 'undefined';
|
|
33827
|
-
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-
|
|
33853
|
+
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-BIeidc3E.cjs', document.baseURI).href));
|
|
33828
33854
|
// Note, when this code loads in the browser, `url` may be an empty `{}` due to the Closure shims.
|
|
33829
33855
|
const currentFileName = isCommonJS
|
|
33830
33856
|
? __filename
|
|
@@ -41166,6 +41192,46 @@ function isDirectiveDeclaration(node) {
|
|
|
41166
41192
|
ts.isVariableDeclaration(node.parent) &&
|
|
41167
41193
|
hasExpressionIdentifier(sourceFile, node, ExpressionIdentifier.DIRECTIVE));
|
|
41168
41194
|
}
|
|
41195
|
+
/**
|
|
41196
|
+
* Check if the lastSymbol is an alias of the firstSymbol. For example:
|
|
41197
|
+
*
|
|
41198
|
+
* The NewBarComponent is an alias of BarComponent.
|
|
41199
|
+
*
|
|
41200
|
+
* But the NotAliasBarComponent is not an alias of BarComponent, because
|
|
41201
|
+
* the NotAliasBarComponent is a new variable.
|
|
41202
|
+
*
|
|
41203
|
+
* This should work for most cases.
|
|
41204
|
+
*
|
|
41205
|
+
* https://github.com/microsoft/TypeScript/blob/9e20e032effad965567d4a1e1c30d5433b0a3332/src/compiler/checker.ts#L3638-L3652
|
|
41206
|
+
*
|
|
41207
|
+
* ```
|
|
41208
|
+
* // a.ts
|
|
41209
|
+
* export class BarComponent {};
|
|
41210
|
+
* // b.ts
|
|
41211
|
+
* export {BarComponent as NewBarComponent} from "./a";
|
|
41212
|
+
* // c.ts
|
|
41213
|
+
* import {BarComponent} from "./a"
|
|
41214
|
+
* const NotAliasBarComponent = BarComponent;
|
|
41215
|
+
* export {NotAliasBarComponent};
|
|
41216
|
+
* ```
|
|
41217
|
+
*/
|
|
41218
|
+
function isSymbolAliasOf(firstSymbol, lastSymbol, typeChecker) {
|
|
41219
|
+
let currentSymbol = lastSymbol;
|
|
41220
|
+
const seenSymbol = new Set();
|
|
41221
|
+
while (firstSymbol !== currentSymbol &&
|
|
41222
|
+
currentSymbol !== undefined &&
|
|
41223
|
+
currentSymbol.flags & ts.SymbolFlags.Alias) {
|
|
41224
|
+
if (seenSymbol.has(currentSymbol)) {
|
|
41225
|
+
break;
|
|
41226
|
+
}
|
|
41227
|
+
seenSymbol.add(currentSymbol);
|
|
41228
|
+
currentSymbol = typeChecker.getImmediateAliasedSymbol(currentSymbol);
|
|
41229
|
+
if (currentSymbol === firstSymbol) {
|
|
41230
|
+
return true;
|
|
41231
|
+
}
|
|
41232
|
+
}
|
|
41233
|
+
return false;
|
|
41234
|
+
}
|
|
41169
41235
|
|
|
41170
41236
|
const NgOriginalFile = Symbol('NgOriginalFile');
|
|
41171
41237
|
exports.UpdateMode = void 0;
|
|
@@ -50038,11 +50104,11 @@ class TemplateTypeCheckerImpl {
|
|
|
50038
50104
|
}
|
|
50039
50105
|
for (const directiveDecl of directiveDecls) {
|
|
50040
50106
|
const cachedCompletionEntryInfos = resultingDirectives.get(directiveDecl.ref.node)?.tsCompletionEntryInfos ?? [];
|
|
50041
|
-
cachedCompletionEntryInfos
|
|
50107
|
+
appendOrReplaceTsEntryInfo(cachedCompletionEntryInfos, {
|
|
50042
50108
|
tsCompletionEntryData: data,
|
|
50043
50109
|
tsCompletionEntrySymbolFileName: symbolFileName,
|
|
50044
50110
|
tsCompletionEntrySymbolName: symbolName,
|
|
50045
|
-
});
|
|
50111
|
+
}, this.programDriver.getProgram());
|
|
50046
50112
|
if (resultingDirectives.has(directiveDecl.ref.node)) {
|
|
50047
50113
|
const directiveInfo = resultingDirectives.get(directiveDecl.ref.node);
|
|
50048
50114
|
resultingDirectives.set(directiveDecl.ref.node, {
|
|
@@ -50216,29 +50282,30 @@ class TemplateTypeCheckerImpl {
|
|
|
50216
50282
|
* When providing the code action for the directive. All the imports will show for the developer to choose.
|
|
50217
50283
|
*/
|
|
50218
50284
|
let highestImportPriority = -1;
|
|
50219
|
-
const collectImports = (emit,
|
|
50285
|
+
const collectImports = (emit, moduleSpecifierDetail) => {
|
|
50220
50286
|
if (emit === null) {
|
|
50221
50287
|
return;
|
|
50222
50288
|
}
|
|
50223
50289
|
imports.push({
|
|
50224
50290
|
...emit,
|
|
50225
|
-
moduleSpecifier: moduleSpecifier ?? emit.moduleSpecifier,
|
|
50291
|
+
moduleSpecifier: moduleSpecifierDetail?.moduleSpecifier ?? emit.moduleSpecifier,
|
|
50292
|
+
symbolName: moduleSpecifierDetail?.exportName ?? emit.symbolName,
|
|
50226
50293
|
});
|
|
50227
|
-
if (
|
|
50294
|
+
if (moduleSpecifierDetail !== null && highestImportPriority === -1) {
|
|
50228
50295
|
highestImportPriority = imports.length - 1;
|
|
50229
50296
|
}
|
|
50230
50297
|
};
|
|
50231
50298
|
if (meta.isStandalone || importMode === exports.PotentialImportMode.ForceDirect) {
|
|
50232
50299
|
const emitted = this.emit(exports.PotentialImportKind.Standalone, toImport, inContext);
|
|
50233
|
-
const
|
|
50234
|
-
collectImports(emitted,
|
|
50300
|
+
const moduleSpecifierDetail = potentialDirectiveModuleSpecifierResolver?.resolve(toImport, inContext) ?? null;
|
|
50301
|
+
collectImports(emitted, moduleSpecifierDetail);
|
|
50235
50302
|
}
|
|
50236
50303
|
const exportingNgModules = this.ngModuleIndex.getNgModulesExporting(meta.ref.node);
|
|
50237
50304
|
if (exportingNgModules !== null) {
|
|
50238
50305
|
for (const exporter of exportingNgModules) {
|
|
50239
50306
|
const emittedRef = this.emit(exports.PotentialImportKind.NgModule, exporter, inContext);
|
|
50240
|
-
const
|
|
50241
|
-
collectImports(emittedRef,
|
|
50307
|
+
const moduleSpecifierDetail = potentialDirectiveModuleSpecifierResolver?.resolve(exporter, inContext) ?? null;
|
|
50308
|
+
collectImports(emittedRef, moduleSpecifierDetail);
|
|
50242
50309
|
}
|
|
50243
50310
|
}
|
|
50244
50311
|
// move the import with module specifier from the tsLs to top in the imports array
|
|
@@ -50574,6 +50641,87 @@ function getTheElementTagDeprecatedSuggestionDiagnostics(shimPath, program, file
|
|
|
50574
50641
|
function isDeprecatedDiagnostics(diag) {
|
|
50575
50642
|
return diag.reportsDeprecated !== undefined;
|
|
50576
50643
|
}
|
|
50644
|
+
/**
|
|
50645
|
+
* Append the ts completion entry into the array only when the new entry's directive
|
|
50646
|
+
* doesn't exist in the array.
|
|
50647
|
+
*
|
|
50648
|
+
* If the new entry's directive already exists, and the entry's symbol is the alias of
|
|
50649
|
+
* the existing entry, the new entry will replace the existing entry.
|
|
50650
|
+
*
|
|
50651
|
+
*/
|
|
50652
|
+
function appendOrReplaceTsEntryInfo(tsEntryInfos, newTsEntryInfo, program) {
|
|
50653
|
+
const typeChecker = program.getTypeChecker();
|
|
50654
|
+
const newTsEntryInfoSymbol = getSymbolFromTsEntryInfo(newTsEntryInfo, program);
|
|
50655
|
+
if (newTsEntryInfoSymbol === null) {
|
|
50656
|
+
return;
|
|
50657
|
+
}
|
|
50658
|
+
// Find the index of the first entry that has a matching type.
|
|
50659
|
+
const matchedEntryIndex = tsEntryInfos.findIndex((currentTsEntryInfo) => {
|
|
50660
|
+
const currentTsEntrySymbol = getSymbolFromTsEntryInfo(currentTsEntryInfo, program);
|
|
50661
|
+
if (currentTsEntrySymbol === null) {
|
|
50662
|
+
return false;
|
|
50663
|
+
}
|
|
50664
|
+
return isSymbolTypeMatch(currentTsEntrySymbol, newTsEntryInfoSymbol, typeChecker);
|
|
50665
|
+
});
|
|
50666
|
+
if (matchedEntryIndex === -1) {
|
|
50667
|
+
// No entry with a matching type was found, so append the new entry.
|
|
50668
|
+
tsEntryInfos.push(newTsEntryInfo);
|
|
50669
|
+
return;
|
|
50670
|
+
}
|
|
50671
|
+
// An entry with a matching type was found at matchedEntryIndex.
|
|
50672
|
+
const matchedEntry = tsEntryInfos[matchedEntryIndex];
|
|
50673
|
+
const matchedEntrySymbol = getSymbolFromTsEntryInfo(matchedEntry, program);
|
|
50674
|
+
if (matchedEntrySymbol === null) {
|
|
50675
|
+
// Should not happen based on the findIndex condition, but check defensively.
|
|
50676
|
+
return;
|
|
50677
|
+
}
|
|
50678
|
+
// Check if the `matchedEntrySymbol` is an alias of the `newTsEntryInfoSymbol`.
|
|
50679
|
+
if (isSymbolAliasOf(matchedEntrySymbol, newTsEntryInfoSymbol, typeChecker)) {
|
|
50680
|
+
// The first type-matching entry is an alias, so replace it.
|
|
50681
|
+
tsEntryInfos[matchedEntryIndex] = newTsEntryInfo;
|
|
50682
|
+
return;
|
|
50683
|
+
}
|
|
50684
|
+
// The new entry's symbol is an alias of the existing entry's symbol.
|
|
50685
|
+
// In this case, we prefer to keep the existing entry that was found first
|
|
50686
|
+
// and do not replace it.
|
|
50687
|
+
return;
|
|
50688
|
+
}
|
|
50689
|
+
function getSymbolFromTsEntryInfo(tsInfo, program) {
|
|
50690
|
+
const typeChecker = program.getTypeChecker();
|
|
50691
|
+
const sf = program.getSourceFile(tsInfo.tsCompletionEntrySymbolFileName);
|
|
50692
|
+
if (sf === undefined) {
|
|
50693
|
+
return null;
|
|
50694
|
+
}
|
|
50695
|
+
const sfSymbol = typeChecker.getSymbolAtLocation(sf);
|
|
50696
|
+
if (sfSymbol === undefined) {
|
|
50697
|
+
return null;
|
|
50698
|
+
}
|
|
50699
|
+
return (typeChecker.tryGetMemberInModuleExports(tsInfo.tsCompletionEntrySymbolName, sfSymbol) ?? null);
|
|
50700
|
+
}
|
|
50701
|
+
function getFirstTypeDeclarationOfSymbol(symbol, typeChecker) {
|
|
50702
|
+
const type = typeChecker.getTypeOfSymbol(symbol);
|
|
50703
|
+
return type.getSymbol()?.declarations?.[0];
|
|
50704
|
+
}
|
|
50705
|
+
/**
|
|
50706
|
+
* Check if the two symbols come from the same type node. For example:
|
|
50707
|
+
*
|
|
50708
|
+
* The `NewBarComponent`'s type node is the `BarComponent`.
|
|
50709
|
+
*
|
|
50710
|
+
* ```
|
|
50711
|
+
* // a.ts
|
|
50712
|
+
* export class BarComponent
|
|
50713
|
+
*
|
|
50714
|
+
* // b.ts
|
|
50715
|
+
* import {BarComponent} from "./a"
|
|
50716
|
+
* const NewBarComponent = BarComponent;
|
|
50717
|
+
* export {NewBarComponent}
|
|
50718
|
+
* ```
|
|
50719
|
+
*/
|
|
50720
|
+
function isSymbolTypeMatch(first, last, typeChecker) {
|
|
50721
|
+
const firstTypeNode = getFirstTypeDeclarationOfSymbol(first, typeChecker);
|
|
50722
|
+
const lastTypeNode = getFirstTypeDeclarationOfSymbol(last, typeChecker);
|
|
50723
|
+
return firstTypeNode === lastTypeNode && firstTypeNode !== undefined;
|
|
50724
|
+
}
|
|
50577
50725
|
|
|
50578
50726
|
/**
|
|
50579
50727
|
* Gets all tsconfig paths from a CLI project by reading the workspace configuration
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v20.2.0
|
|
3
|
+
* @license Angular v20.2.0
|
|
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-CqB0JPzD.cjs');
|
|
13
|
+
var project_tsconfig_paths = require('./project_tsconfig_paths-BIeidc3E.cjs');
|
|
14
14
|
var ts = require('typescript');
|
|
15
15
|
var property_name = require('./property_name-BBwFuqMe.cjs');
|
|
16
16
|
require('os');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v20.2.0
|
|
3
|
+
* @license Angular v20.2.0
|
|
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
|
-
require('./project_tsconfig_paths-
|
|
12
|
-
require('./index-
|
|
11
|
+
require('./project_tsconfig_paths-BIeidc3E.cjs');
|
|
12
|
+
require('./index-DwItZ4Tw.cjs');
|
|
13
13
|
require('path');
|
|
14
14
|
require('node:path');
|
|
15
|
-
var project_paths = require('./project_paths-
|
|
15
|
+
var project_paths = require('./project_paths-OWnyHise.cjs');
|
|
16
16
|
var imports = require('./imports-CIX-JgAN.cjs');
|
|
17
17
|
var symbol = require('./symbol-VPWguRxr.cjs');
|
|
18
18
|
require('@angular-devkit/core');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v20.2.0
|
|
3
|
+
* @license Angular v20.2.0
|
|
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
|
-
require('./index-
|
|
11
|
+
var project_tsconfig_paths = require('./project_tsconfig_paths-BIeidc3E.cjs');
|
|
12
|
+
require('./index-DwItZ4Tw.cjs');
|
|
13
13
|
require('path');
|
|
14
14
|
require('node:path');
|
|
15
|
-
var project_paths = require('./project_paths-
|
|
15
|
+
var project_paths = require('./project_paths-OWnyHise.cjs');
|
|
16
16
|
var ng_decorators = require('./ng_decorators-B5HCqr20.cjs');
|
|
17
17
|
var property_name = require('./property_name-BBwFuqMe.cjs');
|
|
18
18
|
require('@angular-devkit/core');
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v20.2.0
|
|
3
|
+
* @license Angular v20.2.0
|
|
4
4
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
7
7
|
'use strict';
|
|
8
8
|
|
|
9
|
-
var migrate_ts_type_references = require('./migrate_ts_type_references-
|
|
9
|
+
var migrate_ts_type_references = require('./migrate_ts_type_references-BMhLua30.cjs');
|
|
10
10
|
var ts = require('typescript');
|
|
11
11
|
require('os');
|
|
12
|
-
var project_tsconfig_paths = require('./project_tsconfig_paths-
|
|
13
|
-
var index$1 = require('./index-
|
|
12
|
+
var project_tsconfig_paths = require('./project_tsconfig_paths-BIeidc3E.cjs');
|
|
13
|
+
var index$1 = require('./index-DwItZ4Tw.cjs');
|
|
14
14
|
require('path');
|
|
15
15
|
require('node:path');
|
|
16
|
-
var project_paths = require('./project_paths-
|
|
17
|
-
var index = require('./index-
|
|
16
|
+
var project_paths = require('./project_paths-OWnyHise.cjs');
|
|
17
|
+
var index = require('./index-COhCBz0q.cjs');
|
|
18
18
|
var assert = require('assert');
|
|
19
|
-
var apply_import_manager = require('./apply_import_manager-
|
|
19
|
+
var apply_import_manager = require('./apply_import_manager-Ch1hTvRS.cjs');
|
|
20
20
|
require('@angular-devkit/core');
|
|
21
21
|
require('node:path/posix');
|
|
22
22
|
require('./leading_space-D9nQ8UQC.cjs');
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v20.2.0
|
|
3
|
+
* @license Angular v20.2.0
|
|
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-BIeidc3E.cjs');
|
|
10
10
|
var ts = require('typescript');
|
|
11
11
|
require('os');
|
|
12
|
-
var index$1 = require('./index-
|
|
12
|
+
var index$1 = require('./index-DwItZ4Tw.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 migrate_ts_type_references = require('./migrate_ts_type_references-
|
|
15
|
+
var project_paths = require('./project_paths-OWnyHise.cjs');
|
|
16
|
+
var apply_import_manager = require('./apply_import_manager-Ch1hTvRS.cjs');
|
|
17
|
+
var migrate_ts_type_references = require('./migrate_ts_type_references-BMhLua30.cjs');
|
|
18
18
|
var assert = require('assert');
|
|
19
|
-
var index = require('./index-
|
|
19
|
+
var index = require('./index-COhCBz0q.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 v20.2.0
|
|
3
|
+
* @license Angular v20.2.0
|
|
4
4
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
@@ -10,7 +10,7 @@ var schematics = require('@angular-devkit/schematics');
|
|
|
10
10
|
var signalQueriesMigration = require('./signal-queries-migration.cjs');
|
|
11
11
|
var signalInputMigration = require('./signal-input-migration.cjs');
|
|
12
12
|
var outputMigration = require('./output-migration.cjs');
|
|
13
|
-
require('./project_tsconfig_paths-
|
|
13
|
+
require('./project_tsconfig_paths-BIeidc3E.cjs');
|
|
14
14
|
require('typescript');
|
|
15
15
|
require('os');
|
|
16
16
|
require('fs');
|
|
@@ -18,14 +18,14 @@ require('module');
|
|
|
18
18
|
require('path');
|
|
19
19
|
require('url');
|
|
20
20
|
require('@angular-devkit/core');
|
|
21
|
-
require('./index-
|
|
21
|
+
require('./index-DwItZ4Tw.cjs');
|
|
22
22
|
require('node:path');
|
|
23
|
-
require('./project_paths-
|
|
23
|
+
require('./project_paths-OWnyHise.cjs');
|
|
24
24
|
require('node:path/posix');
|
|
25
|
-
require('./apply_import_manager-
|
|
26
|
-
require('./migrate_ts_type_references-
|
|
25
|
+
require('./apply_import_manager-Ch1hTvRS.cjs');
|
|
26
|
+
require('./migrate_ts_type_references-BMhLua30.cjs');
|
|
27
27
|
require('assert');
|
|
28
|
-
require('./index-
|
|
28
|
+
require('./index-COhCBz0q.cjs');
|
|
29
29
|
require('./leading_space-D9nQ8UQC.cjs');
|
|
30
30
|
|
|
31
31
|
function migrate(options) {
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v20.2.0
|
|
3
|
+
* @license Angular v20.2.0
|
|
4
4
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
5
5
|
* License: MIT
|
|
6
6
|
*/
|
|
7
7
|
'use strict';
|
|
8
8
|
|
|
9
9
|
var schematics = require('@angular-devkit/schematics');
|
|
10
|
-
var index = require('./index-
|
|
10
|
+
var index = require('./index-DwItZ4Tw.cjs');
|
|
11
11
|
var fs = require('fs');
|
|
12
12
|
var p = require('path');
|
|
13
13
|
var ts = require('typescript');
|
|
14
|
-
var compiler_host = require('./compiler_host-
|
|
15
|
-
var project_tsconfig_paths = require('./project_tsconfig_paths-
|
|
14
|
+
var compiler_host = require('./compiler_host-CqB0JPzD.cjs');
|
|
15
|
+
var project_tsconfig_paths = require('./project_tsconfig_paths-BIeidc3E.cjs');
|
|
16
16
|
var ng_decorators = require('./ng_decorators-B5HCqr20.cjs');
|
|
17
17
|
var nodes = require('./nodes-B16H9JUd.cjs');
|
|
18
18
|
var symbol = require('./symbol-VPWguRxr.cjs');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
/**
|
|
3
|
-
* @license Angular v20.2.0
|
|
3
|
+
* @license Angular v20.2.0
|
|
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
|
-
require('./project_tsconfig_paths-
|
|
12
|
-
require('./index-
|
|
11
|
+
require('./project_tsconfig_paths-BIeidc3E.cjs');
|
|
12
|
+
require('./index-DwItZ4Tw.cjs');
|
|
13
13
|
require('path');
|
|
14
14
|
require('node:path');
|
|
15
|
-
var project_paths = require('./project_paths-
|
|
15
|
+
var project_paths = require('./project_paths-OWnyHise.cjs');
|
|
16
16
|
var imports = require('./imports-CIX-JgAN.cjs');
|
|
17
17
|
var symbol = require('./symbol-VPWguRxr.cjs');
|
|
18
18
|
require('@angular-devkit/core');
|
package/signal.d.d.ts
CHANGED
package/testing/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v20.2.0
|
|
2
|
+
* @license Angular v20.2.0
|
|
3
3
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -348,7 +348,7 @@ interface TestModuleMetadata {
|
|
|
348
348
|
inferTagName?: boolean;
|
|
349
349
|
/**
|
|
350
350
|
* Whether animate.enter / animate.leave should trigger as normal or be disabled.
|
|
351
|
-
* Defaults to `
|
|
351
|
+
* Defaults to `false`.
|
|
352
352
|
*/
|
|
353
353
|
animationsEnabled?: boolean;
|
|
354
354
|
}
|
package/weak_ref.d.d.ts
CHANGED