@angular/compiler-cli 17.0.0-next.6 → 17.0.0-next.8
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/bundles/{chunk-7YXJWQNF.js → chunk-35SQ73FP.js} +721 -562
- package/bundles/chunk-35SQ73FP.js.map +6 -0
- package/bundles/{chunk-DQ4T2KWL.js → chunk-5WC7IWWT.js} +8 -8
- package/bundles/{chunk-URH5LEAG.js → chunk-BV3ZUD7T.js} +9 -8
- package/bundles/chunk-BV3ZUD7T.js.map +6 -0
- package/bundles/{chunk-OULZQUKT.js → chunk-EKTJ7622.js} +7 -7
- package/bundles/{chunk-HICXNP7M.js → chunk-EQ7Q3KIO.js} +44 -40
- package/bundles/chunk-EQ7Q3KIO.js.map +6 -0
- package/bundles/{chunk-T6QZTHEE.js → chunk-JPBJE7OS.js} +5 -5
- package/bundles/{chunk-3O3O4L34.js → chunk-JZC4T2RR.js} +1 -1
- package/bundles/{chunk-CF2CT7RQ.js → chunk-LYJKWJUC.js} +3 -3
- package/bundles/{chunk-YPVFT2MR.js → chunk-NNS2FLUN.js} +4 -4
- package/bundles/{chunk-7HFK25CM.js → chunk-NVNYQX3M.js} +29 -27
- package/bundles/{chunk-7HFK25CM.js.map → chunk-NVNYQX3M.js.map} +1 -1
- package/bundles/{chunk-W653LDC7.js → chunk-PCMLSPQF.js} +7 -7
- package/bundles/{chunk-6MV5LVGW.js → chunk-XXCMYI3O.js} +188 -157
- package/bundles/chunk-XXCMYI3O.js.map +6 -0
- package/bundles/index.js +13 -13
- package/bundles/linker/babel/index.js +13 -13
- package/bundles/linker/index.js +5 -5
- package/bundles/ngcc/index.js +1 -1
- package/bundles/private/bazel.js +1 -1
- package/bundles/private/localize.js +3 -3
- package/bundles/private/migrations.js +6 -6
- package/bundles/private/tooling.js +4 -4
- package/bundles/src/bin/ng_xi18n.js +11 -11
- package/bundles/src/bin/ngc.js +9 -9
- package/bundles_metadata.json +1 -1
- package/linker/src/file_linker/partial_linkers/partial_component_linker_1.d.ts +1 -1
- package/linker/src/file_linker/partial_linkers/partial_linker.d.ts +1 -1
- package/linker/src/file_linker/partial_linkers/util.d.ts +1 -0
- package/package.json +3 -3
- package/src/ngtsc/annotations/common/index.d.ts +1 -0
- package/src/ngtsc/annotations/common/src/debug_info.d.ts +10 -0
- package/src/ngtsc/annotations/common/src/util.d.ts +1 -1
- package/src/ngtsc/annotations/component/src/handler.d.ts +2 -2
- package/src/ngtsc/annotations/component/src/metadata.d.ts +2 -1
- package/src/ngtsc/annotations/component/src/resources.d.ts +0 -1
- package/src/ngtsc/core/api/src/public_options.d.ts +8 -0
- package/src/ngtsc/core/src/compiler.d.ts +0 -1
- package/src/ngtsc/diagnostics/src/error_code.d.ts +9 -0
- package/src/ngtsc/diagnostics/src/extended_template_diagnostic_name.d.ts +2 -1
- package/src/ngtsc/docs/src/class_extractor.d.ts +3 -1
- package/src/ngtsc/docs/src/entities.d.ts +7 -0
- package/src/ngtsc/docs/src/extractor.d.ts +4 -0
- package/src/ngtsc/docs/src/filters.d.ts +9 -0
- package/src/ngtsc/docs/src/function_extractor.d.ts +4 -1
- package/src/ngtsc/docs/src/type_alias_extractor.d.ts +18 -0
- package/src/ngtsc/perf/src/api.d.ts +7 -3
- package/src/ngtsc/typecheck/extended/checks/interpolated_signal_not_invoked/index.d.ts +10 -0
- package/src/ngtsc/typecheck/src/type_check_block.d.ts +5 -4
- package/bundles/chunk-6MV5LVGW.js.map +0 -6
- package/bundles/chunk-7YXJWQNF.js.map +0 -6
- package/bundles/chunk-HICXNP7M.js.map +0 -6
- package/bundles/chunk-URH5LEAG.js.map +0 -6
- /package/bundles/{chunk-DQ4T2KWL.js.map → chunk-5WC7IWWT.js.map} +0 -0
- /package/bundles/{chunk-OULZQUKT.js.map → chunk-EKTJ7622.js.map} +0 -0
- /package/bundles/{chunk-T6QZTHEE.js.map → chunk-JPBJE7OS.js.map} +0 -0
- /package/bundles/{chunk-3O3O4L34.js.map → chunk-JZC4T2RR.js.map} +0 -0
- /package/bundles/{chunk-CF2CT7RQ.js.map → chunk-LYJKWJUC.js.map} +0 -0
- /package/bundles/{chunk-YPVFT2MR.js.map → chunk-NNS2FLUN.js.map} +0 -0
- /package/bundles/{chunk-W653LDC7.js.map → chunk-PCMLSPQF.js.map} +0 -0
|
@@ -36,12 +36,12 @@ import {
|
|
|
36
36
|
aliasTransformFactory,
|
|
37
37
|
declarationTransformFactory,
|
|
38
38
|
ivyTransformFactory
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-XXCMYI3O.js";
|
|
40
40
|
import {
|
|
41
41
|
ImportManager,
|
|
42
42
|
translateExpression,
|
|
43
43
|
translateType
|
|
44
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-5WC7IWWT.js";
|
|
45
45
|
import {
|
|
46
46
|
AbsoluteModuleStrategy,
|
|
47
47
|
AliasStrategy,
|
|
@@ -83,14 +83,14 @@ import {
|
|
|
83
83
|
relativePathBetween,
|
|
84
84
|
replaceTsWithNgInErrors,
|
|
85
85
|
toUnredirectedSourceFile
|
|
86
|
-
} from "./chunk-
|
|
86
|
+
} from "./chunk-NVNYQX3M.js";
|
|
87
87
|
import {
|
|
88
88
|
ActivePerfRecorder,
|
|
89
89
|
DelegatingPerfRecorder,
|
|
90
90
|
PerfCheckpoint,
|
|
91
91
|
PerfEvent,
|
|
92
92
|
PerfPhase
|
|
93
|
-
} from "./chunk-
|
|
93
|
+
} from "./chunk-BV3ZUD7T.js";
|
|
94
94
|
import {
|
|
95
95
|
LogicalFileSystem,
|
|
96
96
|
absoluteFrom,
|
|
@@ -100,9 +100,9 @@ import {
|
|
|
100
100
|
getSourceFileOrError,
|
|
101
101
|
join,
|
|
102
102
|
resolve
|
|
103
|
-
} from "./chunk-
|
|
103
|
+
} from "./chunk-PCMLSPQF.js";
|
|
104
104
|
|
|
105
|
-
// bazel-out/
|
|
105
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/transformers/api.mjs
|
|
106
106
|
var DEFAULT_ERROR_CODE = 100;
|
|
107
107
|
var UNKNOWN_ERROR_CODE = 500;
|
|
108
108
|
var SOURCE = "angular";
|
|
@@ -120,7 +120,7 @@ var EmitFlags;
|
|
|
120
120
|
EmitFlags2[EmitFlags2["All"] = 31] = "All";
|
|
121
121
|
})(EmitFlags || (EmitFlags = {}));
|
|
122
122
|
|
|
123
|
-
// bazel-out/
|
|
123
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/transformers/compiler_host.mjs
|
|
124
124
|
import ts from "typescript";
|
|
125
125
|
var wrapHostForTest = null;
|
|
126
126
|
function createCompilerHost({ options, tsHost = ts.createCompilerHost(options, true) }) {
|
|
@@ -130,7 +130,7 @@ function createCompilerHost({ options, tsHost = ts.createCompilerHost(options, t
|
|
|
130
130
|
return tsHost;
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
-
// bazel-out/
|
|
133
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/entities.mjs
|
|
134
134
|
var EntryType;
|
|
135
135
|
(function(EntryType2) {
|
|
136
136
|
EntryType2["Block"] = "Block";
|
|
@@ -157,6 +157,7 @@ var MemberType;
|
|
|
157
157
|
})(MemberType || (MemberType = {}));
|
|
158
158
|
var MemberTags;
|
|
159
159
|
(function(MemberTags2) {
|
|
160
|
+
MemberTags2["Abstract"] = "abstract";
|
|
160
161
|
MemberTags2["Static"] = "static";
|
|
161
162
|
MemberTags2["Readonly"] = "readonly";
|
|
162
163
|
MemberTags2["Protected"] = "protected";
|
|
@@ -165,11 +166,11 @@ var MemberTags;
|
|
|
165
166
|
MemberTags2["Output"] = "output";
|
|
166
167
|
})(MemberTags || (MemberTags = {}));
|
|
167
168
|
|
|
168
|
-
// bazel-out/
|
|
169
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/program.mjs
|
|
169
170
|
import { HtmlParser, MessageBundle } from "@angular/compiler";
|
|
170
|
-
import
|
|
171
|
+
import ts37 from "typescript";
|
|
171
172
|
|
|
172
|
-
// bazel-out/
|
|
173
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/transformers/i18n.mjs
|
|
173
174
|
import { Xliff, Xliff2, Xmb } from "@angular/compiler";
|
|
174
175
|
import * as path from "path";
|
|
175
176
|
function i18nGetExtension(formatName) {
|
|
@@ -220,10 +221,10 @@ function getPathNormalizer(basePath) {
|
|
|
220
221
|
};
|
|
221
222
|
}
|
|
222
223
|
|
|
223
|
-
// bazel-out/
|
|
224
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/typescript_support.mjs
|
|
224
225
|
import ts2 from "typescript";
|
|
225
226
|
|
|
226
|
-
// bazel-out/
|
|
227
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/version_helpers.mjs
|
|
227
228
|
function toNumbers(value) {
|
|
228
229
|
const suffixIndex = value.lastIndexOf("-");
|
|
229
230
|
return value.slice(0, suffixIndex === -1 ? value.length : suffixIndex).split(".").map((segment) => {
|
|
@@ -258,7 +259,7 @@ function compareVersions(v1, v2) {
|
|
|
258
259
|
return compareNumbers(toNumbers(v1), toNumbers(v2));
|
|
259
260
|
}
|
|
260
261
|
|
|
261
|
-
// bazel-out/
|
|
262
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/typescript_support.mjs
|
|
262
263
|
var MIN_TS_VERSION = "5.2.0";
|
|
263
264
|
var MAX_TS_VERSION = "5.3.0";
|
|
264
265
|
var tsVersion = ts2.version;
|
|
@@ -271,10 +272,10 @@ function verifySupportedTypeScriptVersion() {
|
|
|
271
272
|
checkVersion(tsVersion, MIN_TS_VERSION, MAX_TS_VERSION);
|
|
272
273
|
}
|
|
273
274
|
|
|
274
|
-
// bazel-out/
|
|
275
|
-
import
|
|
275
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/core/src/compiler.mjs
|
|
276
|
+
import ts35 from "typescript";
|
|
276
277
|
|
|
277
|
-
// bazel-out/
|
|
278
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/cycles/src/analyzer.mjs
|
|
278
279
|
var CycleAnalyzer = class {
|
|
279
280
|
constructor(importGraph) {
|
|
280
281
|
this.importGraph = importGraph;
|
|
@@ -345,7 +346,7 @@ var Cycle = class {
|
|
|
345
346
|
}
|
|
346
347
|
};
|
|
347
348
|
|
|
348
|
-
// bazel-out/
|
|
349
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/cycles/src/imports.mjs
|
|
349
350
|
import ts3 from "typescript";
|
|
350
351
|
var ImportGraph = class {
|
|
351
352
|
constructor(checker, perf) {
|
|
@@ -437,7 +438,7 @@ var Found = class {
|
|
|
437
438
|
}
|
|
438
439
|
};
|
|
439
440
|
|
|
440
|
-
// bazel-out/
|
|
441
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/jsdoc_extractor.mjs
|
|
441
442
|
import ts4 from "typescript";
|
|
442
443
|
function extractJsDocTags(node) {
|
|
443
444
|
return ts4.getJSDocTags(node).map((t) => {
|
|
@@ -461,12 +462,12 @@ function extractRawJsDoc(node) {
|
|
|
461
462
|
return (_b = (_a = ts4.getJSDocCommentsAndTags(node).find(ts4.isJSDoc)) == null ? void 0 : _a.getFullText()) != null ? _b : "";
|
|
462
463
|
}
|
|
463
464
|
|
|
464
|
-
// bazel-out/
|
|
465
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/type_extractor.mjs
|
|
465
466
|
function extractResolvedTypeString(node, checker) {
|
|
466
467
|
return checker.typeToString(checker.getTypeAtLocation(node));
|
|
467
468
|
}
|
|
468
469
|
|
|
469
|
-
// bazel-out/
|
|
470
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/enum_extractor.mjs
|
|
470
471
|
import ts5 from "typescript";
|
|
471
472
|
function extractEnum(declaration, typeChecker) {
|
|
472
473
|
return {
|
|
@@ -495,7 +496,8 @@ function getEnumMemberValue(memberNode) {
|
|
|
495
496
|
return (_a = literal == null ? void 0 : literal.getText()) != null ? _a : "";
|
|
496
497
|
}
|
|
497
498
|
|
|
498
|
-
// bazel-out/
|
|
499
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/function_extractor.mjs
|
|
500
|
+
import ts6 from "typescript";
|
|
499
501
|
var FunctionExtractor = class {
|
|
500
502
|
constructor(declaration, typeChecker) {
|
|
501
503
|
this.declaration = declaration;
|
|
@@ -523,23 +525,55 @@ var FunctionExtractor = class {
|
|
|
523
525
|
isRestParam: !!param.dotDotDotToken
|
|
524
526
|
}));
|
|
525
527
|
}
|
|
528
|
+
getOverloads() {
|
|
529
|
+
var _a, _b, _c, _d;
|
|
530
|
+
const overloads = [];
|
|
531
|
+
const symbol = this.getSymbol();
|
|
532
|
+
const declarationCount = (_b = (_a = symbol == null ? void 0 : symbol.declarations) == null ? void 0 : _a.length) != null ? _b : 0;
|
|
533
|
+
if (declarationCount > 1) {
|
|
534
|
+
for (let i = 0; i < declarationCount - 1; i++) {
|
|
535
|
+
const overloadDeclaration = (_c = symbol == null ? void 0 : symbol.declarations) == null ? void 0 : _c[i];
|
|
536
|
+
if ((overloadDeclaration == null ? void 0 : overloadDeclaration.pos) === this.declaration.pos)
|
|
537
|
+
continue;
|
|
538
|
+
if (overloadDeclaration && ts6.isFunctionDeclaration(overloadDeclaration) && ((_d = overloadDeclaration.modifiers) == null ? void 0 : _d.some((mod) => mod.kind === ts6.SyntaxKind.ExportKeyword))) {
|
|
539
|
+
overloads.push(overloadDeclaration);
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
return overloads;
|
|
544
|
+
}
|
|
545
|
+
getSymbol() {
|
|
546
|
+
return this.typeChecker.getSymbolsInScope(this.declaration, ts6.SymbolFlags.Function).find((s) => {
|
|
547
|
+
var _a;
|
|
548
|
+
return s.name === ((_a = this.declaration.name) == null ? void 0 : _a.getText());
|
|
549
|
+
});
|
|
550
|
+
}
|
|
526
551
|
};
|
|
527
552
|
|
|
528
|
-
// bazel-out/
|
|
553
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/extractor.mjs
|
|
554
|
+
import ts8 from "typescript";
|
|
555
|
+
|
|
556
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/class_extractor.mjs
|
|
529
557
|
import ts7 from "typescript";
|
|
530
558
|
|
|
531
|
-
// bazel-out/
|
|
532
|
-
|
|
559
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/filters.mjs
|
|
560
|
+
function isAngularPrivateName(name) {
|
|
561
|
+
var _a;
|
|
562
|
+
const firstChar = (_a = name[0]) != null ? _a : "";
|
|
563
|
+
return firstChar === "\u0275" || firstChar === "_";
|
|
564
|
+
}
|
|
565
|
+
|
|
566
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/class_extractor.mjs
|
|
533
567
|
var ClassExtractor = class {
|
|
534
|
-
constructor(declaration,
|
|
568
|
+
constructor(declaration, typeChecker) {
|
|
535
569
|
this.declaration = declaration;
|
|
536
|
-
this.reference = reference;
|
|
537
570
|
this.typeChecker = typeChecker;
|
|
538
571
|
}
|
|
539
572
|
extract() {
|
|
540
573
|
return {
|
|
541
574
|
name: this.declaration.name.text,
|
|
542
|
-
|
|
575
|
+
isAbstract: this.isAbstract(),
|
|
576
|
+
entryType: ts7.isInterfaceDeclaration(this.declaration) ? EntryType.Interface : EntryType.UndecoratedClass,
|
|
543
577
|
members: this.extractAllClassMembers(this.declaration),
|
|
544
578
|
description: extractJsDocDescription(this.declaration),
|
|
545
579
|
jsdocTags: extractJsDocTags(this.declaration),
|
|
@@ -559,11 +593,11 @@ var ClassExtractor = class {
|
|
|
559
593
|
return members;
|
|
560
594
|
}
|
|
561
595
|
extractClassMember(memberDeclaration) {
|
|
562
|
-
if (
|
|
596
|
+
if (this.isMethod(memberDeclaration) && !this.isImplementationForOverload(memberDeclaration)) {
|
|
563
597
|
return this.extractMethod(memberDeclaration);
|
|
564
|
-
} else if (
|
|
598
|
+
} else if (this.isProperty(memberDeclaration)) {
|
|
565
599
|
return this.extractClassProperty(memberDeclaration);
|
|
566
|
-
} else if (
|
|
600
|
+
} else if (ts7.isAccessor(memberDeclaration)) {
|
|
567
601
|
return this.extractGetterSetter(memberDeclaration);
|
|
568
602
|
}
|
|
569
603
|
return void 0;
|
|
@@ -589,7 +623,7 @@ var ClassExtractor = class {
|
|
|
589
623
|
extractGetterSetter(accessor) {
|
|
590
624
|
return {
|
|
591
625
|
...this.extractClassProperty(accessor),
|
|
592
|
-
memberType:
|
|
626
|
+
memberType: ts7.isGetAccessor(accessor) ? MemberType.Getter : MemberType.Setter
|
|
593
627
|
};
|
|
594
628
|
}
|
|
595
629
|
getMemberTags(member) {
|
|
@@ -611,27 +645,52 @@ var ClassExtractor = class {
|
|
|
611
645
|
}
|
|
612
646
|
getTagForMemberModifier(mod) {
|
|
613
647
|
switch (mod.kind) {
|
|
614
|
-
case
|
|
648
|
+
case ts7.SyntaxKind.StaticKeyword:
|
|
615
649
|
return MemberTags.Static;
|
|
616
|
-
case
|
|
650
|
+
case ts7.SyntaxKind.ReadonlyKeyword:
|
|
617
651
|
return MemberTags.Readonly;
|
|
618
|
-
case
|
|
652
|
+
case ts7.SyntaxKind.ProtectedKeyword:
|
|
619
653
|
return MemberTags.Protected;
|
|
654
|
+
case ts7.SyntaxKind.AbstractKeyword:
|
|
655
|
+
return MemberTags.Abstract;
|
|
620
656
|
default:
|
|
621
657
|
return void 0;
|
|
622
658
|
}
|
|
623
659
|
}
|
|
624
660
|
isMemberExcluded(member) {
|
|
625
661
|
var _a;
|
|
626
|
-
return !member.name || !this.isDocumentableMember(member) || !!((_a = member.modifiers) == null ? void 0 : _a.some((mod) => mod.kind ===
|
|
662
|
+
return !member.name || !this.isDocumentableMember(member) || !!((_a = member.modifiers) == null ? void 0 : _a.some((mod) => mod.kind === ts7.SyntaxKind.PrivateKeyword)) || isAngularPrivateName(member.name.getText());
|
|
627
663
|
}
|
|
628
664
|
isDocumentableMember(member) {
|
|
629
|
-
return
|
|
665
|
+
return this.isMethod(member) || this.isProperty(member) || ts7.isAccessor(member);
|
|
666
|
+
}
|
|
667
|
+
isProperty(member) {
|
|
668
|
+
return ts7.isPropertyDeclaration(member) || ts7.isPropertySignature(member);
|
|
669
|
+
}
|
|
670
|
+
isMethod(member) {
|
|
671
|
+
return ts7.isMethodDeclaration(member) || ts7.isMethodSignature(member);
|
|
672
|
+
}
|
|
673
|
+
isAbstract() {
|
|
674
|
+
var _a;
|
|
675
|
+
const modifiers = (_a = this.declaration.modifiers) != null ? _a : [];
|
|
676
|
+
return modifiers.some((mod) => mod.kind === ts7.SyntaxKind.AbstractKeyword);
|
|
677
|
+
}
|
|
678
|
+
isImplementationForOverload(method) {
|
|
679
|
+
if (method.kind === ts7.SyntaxKind.MethodSignature)
|
|
680
|
+
return false;
|
|
681
|
+
const methodsWithSameName = this.declaration.members.filter((member) => {
|
|
682
|
+
var _a;
|
|
683
|
+
return ((_a = member.name) == null ? void 0 : _a.getText()) === method.name.getText();
|
|
684
|
+
}).sort((a, b) => a.pos - b.pos);
|
|
685
|
+
if (methodsWithSameName.length === 1)
|
|
686
|
+
return false;
|
|
687
|
+
return method.pos === methodsWithSameName[methodsWithSameName.length - 1].pos;
|
|
630
688
|
}
|
|
631
689
|
};
|
|
632
690
|
var DirectiveExtractor = class extends ClassExtractor {
|
|
633
691
|
constructor(declaration, reference, metadata, checker) {
|
|
634
|
-
super(declaration,
|
|
692
|
+
super(declaration, checker);
|
|
693
|
+
this.reference = reference;
|
|
635
694
|
this.metadata = metadata;
|
|
636
695
|
}
|
|
637
696
|
extract() {
|
|
@@ -650,6 +709,7 @@ var DirectiveExtractor = class extends ClassExtractor {
|
|
|
650
709
|
if (inputMetadata) {
|
|
651
710
|
entry.memberTags.push(MemberTags.Input);
|
|
652
711
|
entry.inputAlias = inputMetadata.bindingPropertyName;
|
|
712
|
+
entry.isRequiredInput = inputMetadata.required;
|
|
653
713
|
}
|
|
654
714
|
const outputMetadata = this.getOutputMetadata(propertyDeclaration);
|
|
655
715
|
if (outputMetadata) {
|
|
@@ -671,7 +731,8 @@ var DirectiveExtractor = class extends ClassExtractor {
|
|
|
671
731
|
};
|
|
672
732
|
var PipeExtractor = class extends ClassExtractor {
|
|
673
733
|
constructor(declaration, reference, metadata, typeChecker) {
|
|
674
|
-
super(declaration,
|
|
734
|
+
super(declaration, typeChecker);
|
|
735
|
+
this.reference = reference;
|
|
675
736
|
this.metadata = metadata;
|
|
676
737
|
}
|
|
677
738
|
extract() {
|
|
@@ -685,7 +746,8 @@ var PipeExtractor = class extends ClassExtractor {
|
|
|
685
746
|
};
|
|
686
747
|
var NgModuleExtractor = class extends ClassExtractor {
|
|
687
748
|
constructor(declaration, reference, metadata, typeChecker) {
|
|
688
|
-
super(declaration,
|
|
749
|
+
super(declaration, typeChecker);
|
|
750
|
+
this.reference = reference;
|
|
689
751
|
this.metadata = metadata;
|
|
690
752
|
}
|
|
691
753
|
extract() {
|
|
@@ -708,12 +770,16 @@ function extractClass(classDeclaration, metadataReader, typeChecker) {
|
|
|
708
770
|
} else if (ngModuleMetadata) {
|
|
709
771
|
extractor = new NgModuleExtractor(classDeclaration, ref, ngModuleMetadata, typeChecker);
|
|
710
772
|
} else {
|
|
711
|
-
extractor = new ClassExtractor(classDeclaration,
|
|
773
|
+
extractor = new ClassExtractor(classDeclaration, typeChecker);
|
|
712
774
|
}
|
|
713
775
|
return extractor.extract();
|
|
714
776
|
}
|
|
777
|
+
function extractInterface(declaration, typeChecker) {
|
|
778
|
+
const extractor = new ClassExtractor(declaration, typeChecker);
|
|
779
|
+
return extractor.extract();
|
|
780
|
+
}
|
|
715
781
|
|
|
716
|
-
// bazel-out/
|
|
782
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/constant_extractor.mjs
|
|
717
783
|
function extractConstant(declaration, typeChecker) {
|
|
718
784
|
const resolvedType = typeChecker.getBaseTypeOfLiteralType(typeChecker.getTypeAtLocation(declaration));
|
|
719
785
|
const variableStatement = declaration.parent.parent;
|
|
@@ -731,44 +797,79 @@ function isSyntheticAngularConstant(declaration) {
|
|
|
731
797
|
return declaration.name.getText() === "USED_FOR_NG_TYPE_CHECKING";
|
|
732
798
|
}
|
|
733
799
|
|
|
734
|
-
// bazel-out/
|
|
800
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/type_alias_extractor.mjs
|
|
801
|
+
function extractTypeAlias(declaration) {
|
|
802
|
+
return {
|
|
803
|
+
name: declaration.name.getText(),
|
|
804
|
+
type: declaration.type.getText(),
|
|
805
|
+
entryType: EntryType.TypeAlias,
|
|
806
|
+
rawComment: extractRawJsDoc(declaration),
|
|
807
|
+
description: extractJsDocDescription(declaration),
|
|
808
|
+
jsdocTags: extractJsDocTags(declaration)
|
|
809
|
+
};
|
|
810
|
+
}
|
|
811
|
+
|
|
812
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/docs/src/extractor.mjs
|
|
735
813
|
var DocsExtractor = class {
|
|
736
814
|
constructor(typeChecker, metadataReader) {
|
|
737
815
|
this.typeChecker = typeChecker;
|
|
738
816
|
this.metadataReader = metadataReader;
|
|
739
817
|
}
|
|
740
818
|
extractAll(sourceFile) {
|
|
741
|
-
var _a;
|
|
742
819
|
const entries = [];
|
|
743
|
-
const
|
|
744
|
-
const exportedDeclarationMap = reflector.getExportsOfModule(sourceFile);
|
|
745
|
-
const exportedDeclarations = Array.from((_a = exportedDeclarationMap == null ? void 0 : exportedDeclarationMap.entries()) != null ? _a : []).map(([exportName, declaration]) => [exportName, declaration.node]).sort(([a, declarationA], [b, declarationB]) => declarationA.pos - declarationB.pos);
|
|
820
|
+
const exportedDeclarations = this.getExportedDeclarations(sourceFile);
|
|
746
821
|
for (const [exportName, node] of exportedDeclarations) {
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
}
|
|
751
|
-
if (ts7.isFunctionDeclaration(node)) {
|
|
752
|
-
const functionExtractor = new FunctionExtractor(node, this.typeChecker);
|
|
753
|
-
entry = functionExtractor.extract();
|
|
754
|
-
}
|
|
755
|
-
if (ts7.isVariableDeclaration(node) && !isSyntheticAngularConstant(node)) {
|
|
756
|
-
entry = extractConstant(node, this.typeChecker);
|
|
757
|
-
}
|
|
758
|
-
if (ts7.isEnumDeclaration(node)) {
|
|
759
|
-
entry = extractEnum(node, this.typeChecker);
|
|
760
|
-
}
|
|
822
|
+
if (isAngularPrivateName(exportName))
|
|
823
|
+
continue;
|
|
824
|
+
const entry = this.extractDeclaration(node);
|
|
761
825
|
if (entry) {
|
|
762
|
-
entry
|
|
763
|
-
entries.push(entry);
|
|
826
|
+
entries.push({ ...entry, name: exportName });
|
|
764
827
|
}
|
|
765
828
|
}
|
|
766
829
|
return entries;
|
|
767
830
|
}
|
|
831
|
+
extractDeclaration(node) {
|
|
832
|
+
if (isNamedClassDeclaration(node)) {
|
|
833
|
+
return extractClass(node, this.metadataReader, this.typeChecker);
|
|
834
|
+
}
|
|
835
|
+
if (ts8.isInterfaceDeclaration(node)) {
|
|
836
|
+
return extractInterface(node, this.typeChecker);
|
|
837
|
+
}
|
|
838
|
+
if (ts8.isFunctionDeclaration(node)) {
|
|
839
|
+
const functionExtractor = new FunctionExtractor(node, this.typeChecker);
|
|
840
|
+
return functionExtractor.extract();
|
|
841
|
+
}
|
|
842
|
+
if (ts8.isVariableDeclaration(node) && !isSyntheticAngularConstant(node)) {
|
|
843
|
+
return extractConstant(node, this.typeChecker);
|
|
844
|
+
}
|
|
845
|
+
if (ts8.isTypeAliasDeclaration(node)) {
|
|
846
|
+
return extractTypeAlias(node);
|
|
847
|
+
}
|
|
848
|
+
if (ts8.isEnumDeclaration(node)) {
|
|
849
|
+
return extractEnum(node, this.typeChecker);
|
|
850
|
+
}
|
|
851
|
+
return null;
|
|
852
|
+
}
|
|
853
|
+
getExportedDeclarations(sourceFile) {
|
|
854
|
+
var _a;
|
|
855
|
+
const reflector = new TypeScriptReflectionHost(this.typeChecker);
|
|
856
|
+
const exportedDeclarationMap = reflector.getExportsOfModule(sourceFile);
|
|
857
|
+
let exportedDeclarations = Array.from((_a = exportedDeclarationMap == null ? void 0 : exportedDeclarationMap.entries()) != null ? _a : []).map(([exportName, declaration]) => [exportName, declaration.node]);
|
|
858
|
+
const declarationCount = exportedDeclarations.length;
|
|
859
|
+
for (let i = 0; i < declarationCount; i++) {
|
|
860
|
+
const [exportName, declaration] = exportedDeclarations[i];
|
|
861
|
+
if (ts8.isFunctionDeclaration(declaration)) {
|
|
862
|
+
const extractor = new FunctionExtractor(declaration, this.typeChecker);
|
|
863
|
+
const overloads = extractor.getOverloads().map((overload) => [exportName, overload]);
|
|
864
|
+
exportedDeclarations.push(...overloads);
|
|
865
|
+
}
|
|
866
|
+
}
|
|
867
|
+
return exportedDeclarations.sort(([a, declarationA], [b, declarationB]) => declarationA.pos - declarationB.pos);
|
|
868
|
+
}
|
|
768
869
|
};
|
|
769
870
|
|
|
770
|
-
// bazel-out/
|
|
771
|
-
import
|
|
871
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/entry_point/src/generator.mjs
|
|
872
|
+
import ts9 from "typescript";
|
|
772
873
|
var FlatIndexGenerator = class {
|
|
773
874
|
constructor(entryPoint, relativeFlatIndexPath, moduleName) {
|
|
774
875
|
this.entryPoint = entryPoint;
|
|
@@ -784,7 +885,7 @@ var FlatIndexGenerator = class {
|
|
|
784
885
|
|
|
785
886
|
export * from '${relativeEntryPoint}';
|
|
786
887
|
`;
|
|
787
|
-
const genFile =
|
|
888
|
+
const genFile = ts9.createSourceFile(this.flatIndexPath, contents, ts9.ScriptTarget.ES2015, true, ts9.ScriptKind.TS);
|
|
788
889
|
if (this.moduleName !== null) {
|
|
789
890
|
genFile.moduleName = this.moduleName;
|
|
790
891
|
}
|
|
@@ -792,7 +893,7 @@ export * from '${relativeEntryPoint}';
|
|
|
792
893
|
}
|
|
793
894
|
};
|
|
794
895
|
|
|
795
|
-
// bazel-out/
|
|
896
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/entry_point/src/logic.mjs
|
|
796
897
|
function findFlatIndexEntryPoint(rootFiles) {
|
|
797
898
|
const tsFiles = rootFiles.filter((file) => isNonDeclarationTsPath(file));
|
|
798
899
|
let resolvedEntryPoint = null;
|
|
@@ -808,8 +909,8 @@ function findFlatIndexEntryPoint(rootFiles) {
|
|
|
808
909
|
return resolvedEntryPoint;
|
|
809
910
|
}
|
|
810
911
|
|
|
811
|
-
// bazel-out/
|
|
812
|
-
import
|
|
912
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/entry_point/src/private_export_checker.mjs
|
|
913
|
+
import ts10 from "typescript";
|
|
813
914
|
function checkForPrivateExports(entryPoint, checker, refGraph) {
|
|
814
915
|
const diagnostics = [];
|
|
815
916
|
const topLevelExports = /* @__PURE__ */ new Set();
|
|
@@ -819,7 +920,7 @@ function checkForPrivateExports(entryPoint, checker, refGraph) {
|
|
|
819
920
|
}
|
|
820
921
|
const exportedSymbols = checker.getExportsOfModule(moduleSymbol);
|
|
821
922
|
exportedSymbols.forEach((symbol) => {
|
|
822
|
-
if (symbol.flags &
|
|
923
|
+
if (symbol.flags & ts10.SymbolFlags.Alias) {
|
|
823
924
|
symbol = checker.getAliasedSymbol(symbol);
|
|
824
925
|
}
|
|
825
926
|
const decl = symbol.valueDeclaration;
|
|
@@ -843,7 +944,7 @@ function checkForPrivateExports(entryPoint, checker, refGraph) {
|
|
|
843
944
|
visibleVia = transitivePath.map((seg) => getNameOfDeclaration(seg)).join(" -> ");
|
|
844
945
|
}
|
|
845
946
|
const diagnostic = {
|
|
846
|
-
category:
|
|
947
|
+
category: ts10.DiagnosticCategory.Error,
|
|
847
948
|
code: ngErrorCode(ErrorCode.SYMBOL_NOT_EXPORTED),
|
|
848
949
|
file: transitiveReference.getSourceFile(),
|
|
849
950
|
...getPosOfDeclaration(transitiveReference),
|
|
@@ -863,7 +964,7 @@ function getPosOfDeclaration(decl) {
|
|
|
863
964
|
};
|
|
864
965
|
}
|
|
865
966
|
function getIdentifierOfDeclaration(decl) {
|
|
866
|
-
if ((
|
|
967
|
+
if ((ts10.isClassDeclaration(decl) || ts10.isVariableDeclaration(decl) || ts10.isFunctionDeclaration(decl)) && decl.name !== void 0 && ts10.isIdentifier(decl.name)) {
|
|
867
968
|
return decl.name;
|
|
868
969
|
} else {
|
|
869
970
|
return null;
|
|
@@ -875,20 +976,20 @@ function getNameOfDeclaration(decl) {
|
|
|
875
976
|
}
|
|
876
977
|
function getDescriptorOfDeclaration(decl) {
|
|
877
978
|
switch (decl.kind) {
|
|
878
|
-
case
|
|
979
|
+
case ts10.SyntaxKind.ClassDeclaration:
|
|
879
980
|
return "class";
|
|
880
|
-
case
|
|
981
|
+
case ts10.SyntaxKind.FunctionDeclaration:
|
|
881
982
|
return "function";
|
|
882
|
-
case
|
|
983
|
+
case ts10.SyntaxKind.VariableDeclaration:
|
|
883
984
|
return "variable";
|
|
884
|
-
case
|
|
985
|
+
case ts10.SyntaxKind.EnumDeclaration:
|
|
885
986
|
return "enum";
|
|
886
987
|
default:
|
|
887
988
|
return "declaration";
|
|
888
989
|
}
|
|
889
990
|
}
|
|
890
991
|
|
|
891
|
-
// bazel-out/
|
|
992
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/entry_point/src/reference_graph.mjs
|
|
892
993
|
var ReferenceGraph = class {
|
|
893
994
|
constructor() {
|
|
894
995
|
this.references = /* @__PURE__ */ new Map();
|
|
@@ -942,7 +1043,7 @@ var ReferenceGraph = class {
|
|
|
942
1043
|
}
|
|
943
1044
|
};
|
|
944
1045
|
|
|
945
|
-
// bazel-out/
|
|
1046
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/program_driver/src/api.mjs
|
|
946
1047
|
var NgOriginalFile = Symbol("NgOriginalFile");
|
|
947
1048
|
var UpdateMode;
|
|
948
1049
|
(function(UpdateMode2) {
|
|
@@ -950,13 +1051,13 @@ var UpdateMode;
|
|
|
950
1051
|
UpdateMode2[UpdateMode2["Incremental"] = 1] = "Incremental";
|
|
951
1052
|
})(UpdateMode || (UpdateMode = {}));
|
|
952
1053
|
|
|
953
|
-
// bazel-out/
|
|
954
|
-
import
|
|
1054
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/program_driver/src/ts_create_program_driver.mjs
|
|
1055
|
+
import ts12 from "typescript";
|
|
955
1056
|
|
|
956
|
-
// bazel-out/
|
|
957
|
-
import
|
|
1057
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/adapter.mjs
|
|
1058
|
+
import ts11 from "typescript";
|
|
958
1059
|
|
|
959
|
-
// bazel-out/
|
|
1060
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/expando.mjs
|
|
960
1061
|
var NgExtension = Symbol("NgExtension");
|
|
961
1062
|
function isExtended(sf) {
|
|
962
1063
|
return sf[NgExtension] !== void 0;
|
|
@@ -1016,13 +1117,13 @@ function retagTsFile(sf) {
|
|
|
1016
1117
|
}
|
|
1017
1118
|
}
|
|
1018
1119
|
|
|
1019
|
-
// bazel-out/
|
|
1120
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/util.mjs
|
|
1020
1121
|
var TS_EXTENSIONS = /\.tsx?$/i;
|
|
1021
1122
|
function makeShimFileName(fileName, suffix) {
|
|
1022
1123
|
return absoluteFrom(fileName.replace(TS_EXTENSIONS, suffix));
|
|
1023
1124
|
}
|
|
1024
1125
|
|
|
1025
|
-
// bazel-out/
|
|
1126
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/adapter.mjs
|
|
1026
1127
|
var ShimAdapter = class {
|
|
1027
1128
|
constructor(delegate, tsRootFiles, topLevelGenerators, perFileGenerators, oldProgram) {
|
|
1028
1129
|
this.delegate = delegate;
|
|
@@ -1085,10 +1186,10 @@ var ShimAdapter = class {
|
|
|
1085
1186
|
}
|
|
1086
1187
|
const prefix = match[1];
|
|
1087
1188
|
let baseFileName = absoluteFrom(prefix + ".ts");
|
|
1088
|
-
let inputFile = this.delegate.getSourceFile(baseFileName,
|
|
1189
|
+
let inputFile = this.delegate.getSourceFile(baseFileName, ts11.ScriptTarget.Latest);
|
|
1089
1190
|
if (inputFile === void 0) {
|
|
1090
1191
|
baseFileName = absoluteFrom(prefix + ".tsx");
|
|
1091
|
-
inputFile = this.delegate.getSourceFile(baseFileName,
|
|
1192
|
+
inputFile = this.delegate.getSourceFile(baseFileName, ts11.ScriptTarget.Latest);
|
|
1092
1193
|
}
|
|
1093
1194
|
if (inputFile === void 0 || isShim(inputFile)) {
|
|
1094
1195
|
return void 0;
|
|
@@ -1117,7 +1218,7 @@ var ShimAdapter = class {
|
|
|
1117
1218
|
}
|
|
1118
1219
|
};
|
|
1119
1220
|
|
|
1120
|
-
// bazel-out/
|
|
1221
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/reference_tagger.mjs
|
|
1121
1222
|
var ShimReferenceTagger = class {
|
|
1122
1223
|
constructor(shimExtensions) {
|
|
1123
1224
|
this.tagged = /* @__PURE__ */ new Set();
|
|
@@ -1151,7 +1252,7 @@ var ShimReferenceTagger = class {
|
|
|
1151
1252
|
}
|
|
1152
1253
|
};
|
|
1153
1254
|
|
|
1154
|
-
// bazel-out/
|
|
1255
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/program_driver/src/ts_create_program_driver.mjs
|
|
1155
1256
|
var DelegatingCompilerHost = class {
|
|
1156
1257
|
constructor(delegate) {
|
|
1157
1258
|
this.delegate = delegate;
|
|
@@ -1243,7 +1344,7 @@ var TsCreateProgramDriver = class {
|
|
|
1243
1344
|
this.sfMap.clear();
|
|
1244
1345
|
}
|
|
1245
1346
|
for (const [filePath, { newText, originalFile }] of contents.entries()) {
|
|
1246
|
-
const sf =
|
|
1347
|
+
const sf = ts12.createSourceFile(filePath, newText, ts12.ScriptTarget.Latest, true);
|
|
1247
1348
|
if (originalFile !== null) {
|
|
1248
1349
|
sf[NgOriginalFile] = originalFile;
|
|
1249
1350
|
}
|
|
@@ -1252,7 +1353,7 @@ var TsCreateProgramDriver = class {
|
|
|
1252
1353
|
const host = new UpdatedProgramHost(this.sfMap, this.originalProgram, this.originalHost, this.shimExtensionPrefixes);
|
|
1253
1354
|
const oldProgram = this.program;
|
|
1254
1355
|
retagAllTsFiles(oldProgram);
|
|
1255
|
-
this.program =
|
|
1356
|
+
this.program = ts12.createProgram({
|
|
1256
1357
|
host,
|
|
1257
1358
|
rootNames: this.program.getRootFileNames(),
|
|
1258
1359
|
options: this.options,
|
|
@@ -1264,7 +1365,7 @@ var TsCreateProgramDriver = class {
|
|
|
1264
1365
|
}
|
|
1265
1366
|
};
|
|
1266
1367
|
|
|
1267
|
-
// bazel-out/
|
|
1368
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/src/dependency_tracking.mjs
|
|
1268
1369
|
var FileDependencyGraph = class {
|
|
1269
1370
|
constructor() {
|
|
1270
1371
|
this.nodes = /* @__PURE__ */ new Map();
|
|
@@ -1331,7 +1432,7 @@ function isLogicallyChanged(sf, node, changedTsPaths, deletedTsPaths, changedRes
|
|
|
1331
1432
|
return false;
|
|
1332
1433
|
}
|
|
1333
1434
|
|
|
1334
|
-
// bazel-out/
|
|
1435
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/src/state.mjs
|
|
1335
1436
|
var IncrementalStateKind;
|
|
1336
1437
|
(function(IncrementalStateKind2) {
|
|
1337
1438
|
IncrementalStateKind2[IncrementalStateKind2["Fresh"] = 0] = "Fresh";
|
|
@@ -1339,7 +1440,7 @@ var IncrementalStateKind;
|
|
|
1339
1440
|
IncrementalStateKind2[IncrementalStateKind2["Analyzed"] = 2] = "Analyzed";
|
|
1340
1441
|
})(IncrementalStateKind || (IncrementalStateKind = {}));
|
|
1341
1442
|
|
|
1342
|
-
// bazel-out/
|
|
1443
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/src/incremental.mjs
|
|
1343
1444
|
var PhaseKind;
|
|
1344
1445
|
(function(PhaseKind2) {
|
|
1345
1446
|
PhaseKind2[PhaseKind2["Analysis"] = 0] = "Analysis";
|
|
@@ -1540,7 +1641,7 @@ function toOriginalSourceFile(sf) {
|
|
|
1540
1641
|
}
|
|
1541
1642
|
}
|
|
1542
1643
|
|
|
1543
|
-
// bazel-out/
|
|
1644
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/src/strategy.mjs
|
|
1544
1645
|
var TrackedIncrementalBuildStrategy = class {
|
|
1545
1646
|
constructor() {
|
|
1546
1647
|
this.state = null;
|
|
@@ -1576,7 +1677,7 @@ var PatchedProgramIncrementalBuildStrategy = class {
|
|
|
1576
1677
|
};
|
|
1577
1678
|
var SYM_INCREMENTAL_STATE = Symbol("NgIncrementalState");
|
|
1578
1679
|
|
|
1579
|
-
// bazel-out/
|
|
1680
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/indexer/src/api.mjs
|
|
1580
1681
|
var IdentifierKind;
|
|
1581
1682
|
(function(IdentifierKind2) {
|
|
1582
1683
|
IdentifierKind2[IdentifierKind2["Property"] = 0] = "Property";
|
|
@@ -1594,7 +1695,7 @@ var AbsoluteSourceSpan = class {
|
|
|
1594
1695
|
}
|
|
1595
1696
|
};
|
|
1596
1697
|
|
|
1597
|
-
// bazel-out/
|
|
1698
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/indexer/src/context.mjs
|
|
1598
1699
|
var IndexingContext = class {
|
|
1599
1700
|
constructor() {
|
|
1600
1701
|
this.components = /* @__PURE__ */ new Set();
|
|
@@ -1604,10 +1705,10 @@ var IndexingContext = class {
|
|
|
1604
1705
|
}
|
|
1605
1706
|
};
|
|
1606
1707
|
|
|
1607
|
-
// bazel-out/
|
|
1708
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/indexer/src/transform.mjs
|
|
1608
1709
|
import { ParseSourceFile } from "@angular/compiler";
|
|
1609
1710
|
|
|
1610
|
-
// bazel-out/
|
|
1711
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/indexer/src/template.mjs
|
|
1611
1712
|
import { ASTWithSource, ImplicitReceiver, PropertyRead, PropertyWrite, RecursiveAstVisitor, TmplAstBoundDeferredTrigger, TmplAstElement, TmplAstRecursiveVisitor, TmplAstReference, TmplAstTemplate } from "@angular/compiler";
|
|
1612
1713
|
var ExpressionVisitor = class extends RecursiveAstVisitor {
|
|
1613
1714
|
constructor(expressionStr, absoluteOffset, boundTemplate, targetToIdentifier) {
|
|
@@ -1889,7 +1990,7 @@ function getTemplateIdentifiers(boundTemplate) {
|
|
|
1889
1990
|
return { identifiers: visitor.identifiers, errors: visitor.errors };
|
|
1890
1991
|
}
|
|
1891
1992
|
|
|
1892
|
-
// bazel-out/
|
|
1993
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/indexer/src/transform.mjs
|
|
1893
1994
|
function generateAnalysis(context) {
|
|
1894
1995
|
const analysis = /* @__PURE__ */ new Map();
|
|
1895
1996
|
context.components.forEach(({ declaration, selector, boundTemplate, templateMeta }) => {
|
|
@@ -1925,7 +2026,7 @@ function generateAnalysis(context) {
|
|
|
1925
2026
|
return analysis;
|
|
1926
2027
|
}
|
|
1927
2028
|
|
|
1928
|
-
// bazel-out/
|
|
2029
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/ng_module_index.mjs
|
|
1929
2030
|
var NgModuleIndexImpl = class {
|
|
1930
2031
|
constructor(metaReader, localReader) {
|
|
1931
2032
|
this.metaReader = metaReader;
|
|
@@ -2014,8 +2115,8 @@ var NgModuleIndexImpl = class {
|
|
|
2014
2115
|
}
|
|
2015
2116
|
};
|
|
2016
2117
|
|
|
2017
|
-
// bazel-out/
|
|
2018
|
-
import
|
|
2118
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/resource/src/loader.mjs
|
|
2119
|
+
import ts13 from "typescript";
|
|
2019
2120
|
var CSS_PREPROCESSOR_EXT = /(\.scss|\.sass|\.less|\.styl)$/;
|
|
2020
2121
|
var RESOURCE_MARKER = ".$ngresource$";
|
|
2021
2122
|
var RESOURCE_MARKER_TS = RESOURCE_MARKER + ".ts";
|
|
@@ -2125,7 +2226,7 @@ var AdapterResourceLoader = class {
|
|
|
2125
2226
|
return this.adapter.rootDirs.map((rootDir) => join(rootDir, segment));
|
|
2126
2227
|
}
|
|
2127
2228
|
getResolvedCandidateLocations(url, fromFile) {
|
|
2128
|
-
const failedLookup =
|
|
2229
|
+
const failedLookup = ts13.resolveModuleName(url + RESOURCE_MARKER, fromFile, this.options, this.lookupResolutionHost);
|
|
2129
2230
|
if (failedLookup.failedLookupLocations === void 0) {
|
|
2130
2231
|
throw new Error(`Internal error: expected to find failedLookupLocations during resolution of resource '${url}' in context of ${fromFile}`);
|
|
2131
2232
|
}
|
|
@@ -2160,7 +2261,7 @@ function createLookupResolutionHost(adapter) {
|
|
|
2160
2261
|
};
|
|
2161
2262
|
}
|
|
2162
2263
|
|
|
2163
|
-
// bazel-out/
|
|
2264
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/scope/src/standalone.mjs
|
|
2164
2265
|
var StandaloneComponentScopeReader = class {
|
|
2165
2266
|
constructor(metaReader, localModuleReader, dtsModuleReader) {
|
|
2166
2267
|
this.metaReader = metaReader;
|
|
@@ -2238,11 +2339,11 @@ var StandaloneComponentScopeReader = class {
|
|
|
2238
2339
|
}
|
|
2239
2340
|
};
|
|
2240
2341
|
|
|
2241
|
-
// bazel-out/
|
|
2342
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/checker.mjs
|
|
2242
2343
|
import { CssSelector, DomElementSchemaRegistry as DomElementSchemaRegistry2, ExternalExpr as ExternalExpr2, WrappedNodeExpr } from "@angular/compiler";
|
|
2243
2344
|
|
|
2244
|
-
// bazel-out/
|
|
2245
|
-
import
|
|
2345
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/diagnostics/src/diagnostic.mjs
|
|
2346
|
+
import ts14 from "typescript";
|
|
2246
2347
|
function makeTemplateDiagnostic(templateId, mapping, span, category, code, messageText, relatedMessages) {
|
|
2247
2348
|
var _a;
|
|
2248
2349
|
if (mapping.type === "direct") {
|
|
@@ -2251,7 +2352,7 @@ function makeTemplateDiagnostic(templateId, mapping, span, category, code, messa
|
|
|
2251
2352
|
relatedInformation = [];
|
|
2252
2353
|
for (const relatedMessage of relatedMessages) {
|
|
2253
2354
|
relatedInformation.push({
|
|
2254
|
-
category:
|
|
2355
|
+
category: ts14.DiagnosticCategory.Message,
|
|
2255
2356
|
code: 0,
|
|
2256
2357
|
file: relatedMessage.sourceFile,
|
|
2257
2358
|
start: relatedMessage.start,
|
|
@@ -2280,7 +2381,7 @@ function makeTemplateDiagnostic(templateId, mapping, span, category, code, messa
|
|
|
2280
2381
|
if (relatedMessages !== void 0) {
|
|
2281
2382
|
for (const relatedMessage of relatedMessages) {
|
|
2282
2383
|
relatedInformation.push({
|
|
2283
|
-
category:
|
|
2384
|
+
category: ts14.DiagnosticCategory.Message,
|
|
2284
2385
|
code: 0,
|
|
2285
2386
|
file: relatedMessage.sourceFile,
|
|
2286
2387
|
start: relatedMessage.start,
|
|
@@ -2310,7 +2411,7 @@ function makeTemplateDiagnostic(templateId, mapping, span, category, code, messa
|
|
|
2310
2411
|
};
|
|
2311
2412
|
}
|
|
2312
2413
|
relatedInformation.push({
|
|
2313
|
-
category:
|
|
2414
|
+
category: ts14.DiagnosticCategory.Message,
|
|
2314
2415
|
code: 0,
|
|
2315
2416
|
file: componentSf,
|
|
2316
2417
|
start: mapping.node.getStart(),
|
|
@@ -2345,10 +2446,10 @@ function parseTemplateAsSourceFile(fileName, template) {
|
|
|
2345
2446
|
if (parseTemplateAsSourceFileForTest !== null) {
|
|
2346
2447
|
return parseTemplateAsSourceFileForTest(fileName, template);
|
|
2347
2448
|
}
|
|
2348
|
-
return
|
|
2449
|
+
return ts14.createSourceFile(fileName, template, ts14.ScriptTarget.Latest, false, ts14.ScriptKind.JSX);
|
|
2349
2450
|
}
|
|
2350
2451
|
|
|
2351
|
-
// bazel-out/
|
|
2452
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/diagnostics/src/id.mjs
|
|
2352
2453
|
var TEMPLATE_ID = Symbol("ngTemplateId");
|
|
2353
2454
|
var NEXT_TEMPLATE_ID = Symbol("ngNextTemplateId");
|
|
2354
2455
|
function getTemplateId(clazz) {
|
|
@@ -2365,17 +2466,17 @@ function allocateTemplateId(sf) {
|
|
|
2365
2466
|
return `tcb${sf[NEXT_TEMPLATE_ID]++}`;
|
|
2366
2467
|
}
|
|
2367
2468
|
|
|
2368
|
-
// bazel-out/
|
|
2469
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/completion.mjs
|
|
2369
2470
|
import { EmptyExpr, ImplicitReceiver as ImplicitReceiver2, PropertyRead as PropertyRead2, PropertyWrite as PropertyWrite2, SafePropertyRead, TmplAstReference as TmplAstReference2, TmplAstTextAttribute } from "@angular/compiler";
|
|
2370
|
-
import
|
|
2471
|
+
import ts16 from "typescript";
|
|
2371
2472
|
|
|
2372
|
-
// bazel-out/
|
|
2473
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/comments.mjs
|
|
2373
2474
|
import { AbsoluteSourceSpan as AbsoluteSourceSpan2 } from "@angular/compiler";
|
|
2374
|
-
import
|
|
2475
|
+
import ts15 from "typescript";
|
|
2375
2476
|
var parseSpanComment = /^(\d+),(\d+)$/;
|
|
2376
2477
|
function readSpanComment(node, sourceFile = node.getSourceFile()) {
|
|
2377
|
-
return
|
|
2378
|
-
if (kind !==
|
|
2478
|
+
return ts15.forEachTrailingCommentRange(sourceFile.text, node.getEnd(), (pos, end, kind) => {
|
|
2479
|
+
if (kind !== ts15.SyntaxKind.MultiLineCommentTrivia) {
|
|
2379
2480
|
return null;
|
|
2380
2481
|
}
|
|
2381
2482
|
const commentText = sourceFile.text.substring(pos + 2, end - 2);
|
|
@@ -2398,25 +2499,25 @@ var ExpressionIdentifier;
|
|
|
2398
2499
|
ExpressionIdentifier2["EVENT_PARAMETER"] = "EP";
|
|
2399
2500
|
})(ExpressionIdentifier || (ExpressionIdentifier = {}));
|
|
2400
2501
|
function addExpressionIdentifier(node, identifier) {
|
|
2401
|
-
|
|
2502
|
+
ts15.addSyntheticTrailingComment(
|
|
2402
2503
|
node,
|
|
2403
|
-
|
|
2504
|
+
ts15.SyntaxKind.MultiLineCommentTrivia,
|
|
2404
2505
|
`${CommentTriviaType.EXPRESSION_TYPE_IDENTIFIER}:${identifier}`,
|
|
2405
2506
|
false
|
|
2406
2507
|
);
|
|
2407
2508
|
}
|
|
2408
2509
|
var IGNORE_FOR_DIAGNOSTICS_MARKER = `${CommentTriviaType.DIAGNOSTIC}:ignore`;
|
|
2409
2510
|
function markIgnoreDiagnostics(node) {
|
|
2410
|
-
|
|
2511
|
+
ts15.addSyntheticTrailingComment(
|
|
2411
2512
|
node,
|
|
2412
|
-
|
|
2513
|
+
ts15.SyntaxKind.MultiLineCommentTrivia,
|
|
2413
2514
|
IGNORE_FOR_DIAGNOSTICS_MARKER,
|
|
2414
2515
|
false
|
|
2415
2516
|
);
|
|
2416
2517
|
}
|
|
2417
2518
|
function hasIgnoreForDiagnosticsMarker(node, sourceFile) {
|
|
2418
|
-
return
|
|
2419
|
-
if (kind !==
|
|
2519
|
+
return ts15.forEachTrailingCommentRange(sourceFile.text, node.getEnd(), (pos, end, kind) => {
|
|
2520
|
+
if (kind !== ts15.SyntaxKind.MultiLineCommentTrivia) {
|
|
2420
2521
|
return null;
|
|
2421
2522
|
}
|
|
2422
2523
|
const commentText = sourceFile.text.substring(pos + 2, end - 2);
|
|
@@ -2490,8 +2591,8 @@ function findAllMatchingNodes(tcb, opts) {
|
|
|
2490
2591
|
return results;
|
|
2491
2592
|
}
|
|
2492
2593
|
function hasExpressionIdentifier(sourceFile, node, identifier) {
|
|
2493
|
-
return
|
|
2494
|
-
if (kind !==
|
|
2594
|
+
return ts15.forEachTrailingCommentRange(sourceFile.text, node.getEnd(), (pos, end, kind) => {
|
|
2595
|
+
if (kind !== ts15.SyntaxKind.MultiLineCommentTrivia) {
|
|
2495
2596
|
return false;
|
|
2496
2597
|
}
|
|
2497
2598
|
const commentText = sourceFile.text.substring(pos + 2, end - 2);
|
|
@@ -2499,7 +2600,7 @@ function hasExpressionIdentifier(sourceFile, node, identifier) {
|
|
|
2499
2600
|
}) || false;
|
|
2500
2601
|
}
|
|
2501
2602
|
|
|
2502
|
-
// bazel-out/
|
|
2603
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/completion.mjs
|
|
2503
2604
|
var CompletionEngine = class {
|
|
2504
2605
|
constructor(tcb, data, tcbPath, tcbIsShim) {
|
|
2505
2606
|
this.tcb = tcb;
|
|
@@ -2509,7 +2610,7 @@ var CompletionEngine = class {
|
|
|
2509
2610
|
this.templateContextCache = /* @__PURE__ */ new Map();
|
|
2510
2611
|
this.expressionCompletionCache = /* @__PURE__ */ new Map();
|
|
2511
2612
|
const globalRead = findFirstMatchingNode(this.tcb, {
|
|
2512
|
-
filter:
|
|
2613
|
+
filter: ts16.isPropertyAccessExpression,
|
|
2513
2614
|
withExpressionIdentifier: ExpressionIdentifier.COMPONENT_COMPLETION
|
|
2514
2615
|
});
|
|
2515
2616
|
if (globalRead !== null) {
|
|
@@ -2533,7 +2634,7 @@ var CompletionEngine = class {
|
|
|
2533
2634
|
let nodeContext = null;
|
|
2534
2635
|
if (node instanceof EmptyExpr) {
|
|
2535
2636
|
const nodeLocation = findFirstMatchingNode(this.tcb, {
|
|
2536
|
-
filter:
|
|
2637
|
+
filter: ts16.isIdentifier,
|
|
2537
2638
|
withSpan: node.sourceSpan
|
|
2538
2639
|
});
|
|
2539
2640
|
if (nodeLocation !== null) {
|
|
@@ -2546,7 +2647,7 @@ var CompletionEngine = class {
|
|
|
2546
2647
|
}
|
|
2547
2648
|
if (node instanceof PropertyRead2 && node.receiver instanceof ImplicitReceiver2) {
|
|
2548
2649
|
const nodeLocation = findFirstMatchingNode(this.tcb, {
|
|
2549
|
-
filter:
|
|
2650
|
+
filter: ts16.isPropertyAccessExpression,
|
|
2550
2651
|
withSpan: node.sourceSpan
|
|
2551
2652
|
});
|
|
2552
2653
|
if (nodeLocation) {
|
|
@@ -2570,21 +2671,21 @@ var CompletionEngine = class {
|
|
|
2570
2671
|
let tsExpr = null;
|
|
2571
2672
|
if (expr instanceof PropertyRead2 || expr instanceof PropertyWrite2) {
|
|
2572
2673
|
tsExpr = findFirstMatchingNode(this.tcb, {
|
|
2573
|
-
filter:
|
|
2674
|
+
filter: ts16.isPropertyAccessExpression,
|
|
2574
2675
|
withSpan: expr.nameSpan
|
|
2575
2676
|
});
|
|
2576
2677
|
} else if (expr instanceof SafePropertyRead) {
|
|
2577
2678
|
const ternaryExpr = findFirstMatchingNode(this.tcb, {
|
|
2578
|
-
filter:
|
|
2679
|
+
filter: ts16.isParenthesizedExpression,
|
|
2579
2680
|
withSpan: expr.sourceSpan
|
|
2580
2681
|
});
|
|
2581
|
-
if (ternaryExpr === null || !
|
|
2682
|
+
if (ternaryExpr === null || !ts16.isConditionalExpression(ternaryExpr.expression)) {
|
|
2582
2683
|
return null;
|
|
2583
2684
|
}
|
|
2584
2685
|
const whenTrue = ternaryExpr.expression.whenTrue;
|
|
2585
|
-
if (
|
|
2686
|
+
if (ts16.isPropertyAccessExpression(whenTrue)) {
|
|
2586
2687
|
tsExpr = whenTrue;
|
|
2587
|
-
} else if (
|
|
2688
|
+
} else if (ts16.isCallExpression(whenTrue) && ts16.isPropertyAccessExpression(whenTrue.expression)) {
|
|
2588
2689
|
tsExpr = whenTrue.expression;
|
|
2589
2690
|
}
|
|
2590
2691
|
}
|
|
@@ -2606,15 +2707,15 @@ var CompletionEngine = class {
|
|
|
2606
2707
|
let tsExpr = null;
|
|
2607
2708
|
if (expr instanceof TmplAstTextAttribute) {
|
|
2608
2709
|
const strNode = findFirstMatchingNode(this.tcb, {
|
|
2609
|
-
filter:
|
|
2710
|
+
filter: ts16.isParenthesizedExpression,
|
|
2610
2711
|
withSpan: expr.sourceSpan
|
|
2611
2712
|
});
|
|
2612
|
-
if (strNode !== null &&
|
|
2713
|
+
if (strNode !== null && ts16.isStringLiteral(strNode.expression)) {
|
|
2613
2714
|
tsExpr = strNode.expression;
|
|
2614
2715
|
}
|
|
2615
2716
|
} else {
|
|
2616
2717
|
tsExpr = findFirstMatchingNode(this.tcb, {
|
|
2617
|
-
filter: (n) =>
|
|
2718
|
+
filter: (n) => ts16.isStringLiteral(n) || ts16.isNumericLiteral(n),
|
|
2618
2719
|
withSpan: expr.sourceSpan
|
|
2619
2720
|
});
|
|
2620
2721
|
}
|
|
@@ -2622,7 +2723,7 @@ var CompletionEngine = class {
|
|
|
2622
2723
|
return null;
|
|
2623
2724
|
}
|
|
2624
2725
|
let positionInShimFile = tsExpr.getEnd();
|
|
2625
|
-
if (
|
|
2726
|
+
if (ts16.isStringLiteral(tsExpr)) {
|
|
2626
2727
|
positionInShimFile -= 1;
|
|
2627
2728
|
}
|
|
2628
2729
|
const res = {
|
|
@@ -2656,12 +2757,12 @@ var CompletionEngine = class {
|
|
|
2656
2757
|
}
|
|
2657
2758
|
};
|
|
2658
2759
|
|
|
2659
|
-
// bazel-out/
|
|
2660
|
-
import
|
|
2760
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/context.mjs
|
|
2761
|
+
import ts30 from "typescript";
|
|
2661
2762
|
|
|
2662
|
-
// bazel-out/
|
|
2763
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/dom.mjs
|
|
2663
2764
|
import { DomElementSchemaRegistry } from "@angular/compiler";
|
|
2664
|
-
import
|
|
2765
|
+
import ts17 from "typescript";
|
|
2665
2766
|
var REGISTRY = new DomElementSchemaRegistry();
|
|
2666
2767
|
var REMOVE_XHTML_REGEX = /^:xhtml:/;
|
|
2667
2768
|
var RegistryDomSchemaChecker = class {
|
|
@@ -2686,7 +2787,7 @@ var RegistryDomSchemaChecker = class {
|
|
|
2686
2787
|
} else {
|
|
2687
2788
|
errorMsg += `2. To allow any element add 'NO_ERRORS_SCHEMA' to the ${schemas2} of this component.`;
|
|
2688
2789
|
}
|
|
2689
|
-
const diag = makeTemplateDiagnostic(id, mapping, element.startSourceSpan,
|
|
2790
|
+
const diag = makeTemplateDiagnostic(id, mapping, element.startSourceSpan, ts17.DiagnosticCategory.Error, ngErrorCode(ErrorCode.SCHEMA_INVALID_ELEMENT), errorMsg);
|
|
2690
2791
|
this._diagnostics.push(diag);
|
|
2691
2792
|
}
|
|
2692
2793
|
}
|
|
@@ -2706,101 +2807,101 @@ var RegistryDomSchemaChecker = class {
|
|
|
2706
2807
|
2. If '${element.name}' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the ${schemas2} of this component to suppress this message.
|
|
2707
2808
|
3. To allow any property add 'NO_ERRORS_SCHEMA' to the ${schemas2} of this component.`;
|
|
2708
2809
|
}
|
|
2709
|
-
const diag = makeTemplateDiagnostic(id, mapping, span,
|
|
2810
|
+
const diag = makeTemplateDiagnostic(id, mapping, span, ts17.DiagnosticCategory.Error, ngErrorCode(ErrorCode.SCHEMA_INVALID_ATTRIBUTE), errorMsg);
|
|
2710
2811
|
this._diagnostics.push(diag);
|
|
2711
2812
|
}
|
|
2712
2813
|
}
|
|
2713
2814
|
};
|
|
2714
2815
|
|
|
2715
|
-
// bazel-out/
|
|
2816
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/environment.mjs
|
|
2716
2817
|
import { ExpressionType, ExternalExpr, TypeModifier } from "@angular/compiler";
|
|
2717
|
-
import
|
|
2818
|
+
import ts23 from "typescript";
|
|
2718
2819
|
|
|
2719
|
-
// bazel-out/
|
|
2720
|
-
import
|
|
2820
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/ts_util.mjs
|
|
2821
|
+
import ts18 from "typescript";
|
|
2721
2822
|
var SAFE_TO_CAST_WITHOUT_PARENS = /* @__PURE__ */ new Set([
|
|
2722
|
-
|
|
2723
|
-
|
|
2724
|
-
|
|
2725
|
-
|
|
2726
|
-
|
|
2727
|
-
|
|
2728
|
-
|
|
2729
|
-
|
|
2730
|
-
|
|
2731
|
-
|
|
2732
|
-
|
|
2733
|
-
|
|
2734
|
-
|
|
2735
|
-
|
|
2823
|
+
ts18.SyntaxKind.ParenthesizedExpression,
|
|
2824
|
+
ts18.SyntaxKind.Identifier,
|
|
2825
|
+
ts18.SyntaxKind.CallExpression,
|
|
2826
|
+
ts18.SyntaxKind.NonNullExpression,
|
|
2827
|
+
ts18.SyntaxKind.ElementAccessExpression,
|
|
2828
|
+
ts18.SyntaxKind.PropertyAccessExpression,
|
|
2829
|
+
ts18.SyntaxKind.ArrayLiteralExpression,
|
|
2830
|
+
ts18.SyntaxKind.ObjectLiteralExpression,
|
|
2831
|
+
ts18.SyntaxKind.StringLiteral,
|
|
2832
|
+
ts18.SyntaxKind.NumericLiteral,
|
|
2833
|
+
ts18.SyntaxKind.TrueKeyword,
|
|
2834
|
+
ts18.SyntaxKind.FalseKeyword,
|
|
2835
|
+
ts18.SyntaxKind.NullKeyword,
|
|
2836
|
+
ts18.SyntaxKind.UndefinedKeyword
|
|
2736
2837
|
]);
|
|
2737
2838
|
function tsCastToAny(expr) {
|
|
2738
2839
|
if (!SAFE_TO_CAST_WITHOUT_PARENS.has(expr.kind)) {
|
|
2739
|
-
expr =
|
|
2840
|
+
expr = ts18.factory.createParenthesizedExpression(expr);
|
|
2740
2841
|
}
|
|
2741
|
-
return
|
|
2842
|
+
return ts18.factory.createParenthesizedExpression(ts18.factory.createAsExpression(expr, ts18.factory.createKeywordTypeNode(ts18.SyntaxKind.AnyKeyword)));
|
|
2742
2843
|
}
|
|
2743
2844
|
function tsCreateElement(tagName) {
|
|
2744
|
-
const createElement =
|
|
2745
|
-
|
|
2845
|
+
const createElement = ts18.factory.createPropertyAccessExpression(
|
|
2846
|
+
ts18.factory.createIdentifier("document"),
|
|
2746
2847
|
"createElement"
|
|
2747
2848
|
);
|
|
2748
|
-
return
|
|
2849
|
+
return ts18.factory.createCallExpression(
|
|
2749
2850
|
createElement,
|
|
2750
2851
|
void 0,
|
|
2751
|
-
[
|
|
2852
|
+
[ts18.factory.createStringLiteral(tagName)]
|
|
2752
2853
|
);
|
|
2753
2854
|
}
|
|
2754
2855
|
function tsDeclareVariable(id, type) {
|
|
2755
|
-
const decl =
|
|
2856
|
+
const decl = ts18.factory.createVariableDeclaration(
|
|
2756
2857
|
id,
|
|
2757
2858
|
void 0,
|
|
2758
2859
|
type,
|
|
2759
|
-
|
|
2860
|
+
ts18.factory.createNonNullExpression(ts18.factory.createNull())
|
|
2760
2861
|
);
|
|
2761
|
-
return
|
|
2862
|
+
return ts18.factory.createVariableStatement(
|
|
2762
2863
|
void 0,
|
|
2763
2864
|
[decl]
|
|
2764
2865
|
);
|
|
2765
2866
|
}
|
|
2766
2867
|
function tsCreateTypeQueryForCoercedInput(typeName, coercedInputName) {
|
|
2767
|
-
return
|
|
2868
|
+
return ts18.factory.createTypeQueryNode(ts18.factory.createQualifiedName(typeName, `ngAcceptInputType_${coercedInputName}`));
|
|
2768
2869
|
}
|
|
2769
2870
|
function tsCreateVariable(id, initializer) {
|
|
2770
|
-
const decl =
|
|
2871
|
+
const decl = ts18.factory.createVariableDeclaration(
|
|
2771
2872
|
id,
|
|
2772
2873
|
void 0,
|
|
2773
2874
|
void 0,
|
|
2774
2875
|
initializer
|
|
2775
2876
|
);
|
|
2776
|
-
return
|
|
2877
|
+
return ts18.factory.createVariableStatement(
|
|
2777
2878
|
void 0,
|
|
2778
2879
|
[decl]
|
|
2779
2880
|
);
|
|
2780
2881
|
}
|
|
2781
2882
|
function tsCallMethod(receiver, methodName, args = []) {
|
|
2782
|
-
const methodAccess =
|
|
2783
|
-
return
|
|
2883
|
+
const methodAccess = ts18.factory.createPropertyAccessExpression(receiver, methodName);
|
|
2884
|
+
return ts18.factory.createCallExpression(
|
|
2784
2885
|
methodAccess,
|
|
2785
2886
|
void 0,
|
|
2786
2887
|
args
|
|
2787
2888
|
);
|
|
2788
2889
|
}
|
|
2789
2890
|
function isAccessExpression(node) {
|
|
2790
|
-
return
|
|
2891
|
+
return ts18.isPropertyAccessExpression(node) || ts18.isElementAccessExpression(node);
|
|
2791
2892
|
}
|
|
2792
2893
|
|
|
2793
|
-
// bazel-out/
|
|
2894
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_constructor.mjs
|
|
2895
|
+
import ts22 from "typescript";
|
|
2896
|
+
|
|
2897
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/tcb_util.mjs
|
|
2794
2898
|
import ts21 from "typescript";
|
|
2795
2899
|
|
|
2796
|
-
// bazel-out/
|
|
2900
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_parameter_emitter.mjs
|
|
2797
2901
|
import ts20 from "typescript";
|
|
2798
2902
|
|
|
2799
|
-
// bazel-out/
|
|
2903
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_emitter.mjs
|
|
2800
2904
|
import ts19 from "typescript";
|
|
2801
|
-
|
|
2802
|
-
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_emitter.mjs
|
|
2803
|
-
import ts18 from "typescript";
|
|
2804
2905
|
var INELIGIBLE = {};
|
|
2805
2906
|
function canEmitType(type, canEmit) {
|
|
2806
2907
|
return canEmitTypeWorker(type);
|
|
@@ -2808,13 +2909,13 @@ function canEmitType(type, canEmit) {
|
|
|
2808
2909
|
return visitNode(type2) !== INELIGIBLE;
|
|
2809
2910
|
}
|
|
2810
2911
|
function visitNode(node) {
|
|
2811
|
-
if (
|
|
2912
|
+
if (ts19.isImportTypeNode(node)) {
|
|
2812
2913
|
return INELIGIBLE;
|
|
2813
2914
|
}
|
|
2814
|
-
if (
|
|
2915
|
+
if (ts19.isTypeReferenceNode(node) && !canEmitTypeReference(node)) {
|
|
2815
2916
|
return INELIGIBLE;
|
|
2816
2917
|
} else {
|
|
2817
|
-
return
|
|
2918
|
+
return ts19.forEachChild(node, visitNode);
|
|
2818
2919
|
}
|
|
2819
2920
|
}
|
|
2820
2921
|
function canEmitTypeReference(type2) {
|
|
@@ -2831,35 +2932,35 @@ var TypeEmitter = class {
|
|
|
2831
2932
|
emitType(type) {
|
|
2832
2933
|
const typeReferenceTransformer = (context) => {
|
|
2833
2934
|
const visitNode = (node) => {
|
|
2834
|
-
if (
|
|
2935
|
+
if (ts19.isImportTypeNode(node)) {
|
|
2835
2936
|
throw new Error("Unable to emit import type");
|
|
2836
2937
|
}
|
|
2837
|
-
if (
|
|
2938
|
+
if (ts19.isTypeReferenceNode(node)) {
|
|
2838
2939
|
return this.emitTypeReference(node);
|
|
2839
|
-
} else if (
|
|
2940
|
+
} else if (ts19.isLiteralExpression(node)) {
|
|
2840
2941
|
let clone;
|
|
2841
|
-
if (
|
|
2842
|
-
clone =
|
|
2843
|
-
} else if (
|
|
2844
|
-
clone =
|
|
2845
|
-
} else if (
|
|
2846
|
-
clone =
|
|
2847
|
-
} else if (
|
|
2848
|
-
clone =
|
|
2849
|
-
} else if (
|
|
2850
|
-
clone =
|
|
2942
|
+
if (ts19.isStringLiteral(node)) {
|
|
2943
|
+
clone = ts19.factory.createStringLiteral(node.text);
|
|
2944
|
+
} else if (ts19.isNumericLiteral(node)) {
|
|
2945
|
+
clone = ts19.factory.createNumericLiteral(node.text);
|
|
2946
|
+
} else if (ts19.isBigIntLiteral(node)) {
|
|
2947
|
+
clone = ts19.factory.createBigIntLiteral(node.text);
|
|
2948
|
+
} else if (ts19.isNoSubstitutionTemplateLiteral(node)) {
|
|
2949
|
+
clone = ts19.factory.createNoSubstitutionTemplateLiteral(node.text, node.rawText);
|
|
2950
|
+
} else if (ts19.isRegularExpressionLiteral(node)) {
|
|
2951
|
+
clone = ts19.factory.createRegularExpressionLiteral(node.text);
|
|
2851
2952
|
} else {
|
|
2852
|
-
throw new Error(`Unsupported literal kind ${
|
|
2953
|
+
throw new Error(`Unsupported literal kind ${ts19.SyntaxKind[node.kind]}`);
|
|
2853
2954
|
}
|
|
2854
|
-
|
|
2955
|
+
ts19.setTextRange(clone, { pos: -1, end: -1 });
|
|
2855
2956
|
return clone;
|
|
2856
2957
|
} else {
|
|
2857
|
-
return
|
|
2958
|
+
return ts19.visitEachChild(node, visitNode, context);
|
|
2858
2959
|
}
|
|
2859
2960
|
};
|
|
2860
|
-
return (node) =>
|
|
2961
|
+
return (node) => ts19.visitNode(node, visitNode, ts19.isTypeNode);
|
|
2861
2962
|
};
|
|
2862
|
-
return
|
|
2963
|
+
return ts19.transform(type, [typeReferenceTransformer]).transformed[0];
|
|
2863
2964
|
}
|
|
2864
2965
|
emitTypeReference(type) {
|
|
2865
2966
|
const translatedType = this.translator(type);
|
|
@@ -2868,13 +2969,13 @@ var TypeEmitter = class {
|
|
|
2868
2969
|
}
|
|
2869
2970
|
let typeArguments = void 0;
|
|
2870
2971
|
if (type.typeArguments !== void 0) {
|
|
2871
|
-
typeArguments =
|
|
2972
|
+
typeArguments = ts19.factory.createNodeArray(type.typeArguments.map((typeArg) => this.emitType(typeArg)));
|
|
2872
2973
|
}
|
|
2873
|
-
return
|
|
2974
|
+
return ts19.factory.updateTypeReferenceNode(type, translatedType.typeName, typeArguments);
|
|
2874
2975
|
}
|
|
2875
2976
|
};
|
|
2876
2977
|
|
|
2877
|
-
// bazel-out/
|
|
2978
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_parameter_emitter.mjs
|
|
2878
2979
|
var TypeParameterEmitter = class {
|
|
2879
2980
|
constructor(typeParameters, reflector) {
|
|
2880
2981
|
this.typeParameters = typeParameters;
|
|
@@ -2911,11 +3012,11 @@ var TypeParameterEmitter = class {
|
|
|
2911
3012
|
return this.typeParameters.map((typeParam) => {
|
|
2912
3013
|
const constraint = typeParam.constraint !== void 0 ? emitter.emitType(typeParam.constraint) : void 0;
|
|
2913
3014
|
const defaultType = typeParam.default !== void 0 ? emitter.emitType(typeParam.default) : void 0;
|
|
2914
|
-
return
|
|
3015
|
+
return ts20.factory.updateTypeParameterDeclaration(typeParam, typeParam.modifiers, typeParam.name, constraint, defaultType);
|
|
2915
3016
|
});
|
|
2916
3017
|
}
|
|
2917
3018
|
resolveTypeReference(type) {
|
|
2918
|
-
const target =
|
|
3019
|
+
const target = ts20.isIdentifier(type.typeName) ? type.typeName : type.typeName.right;
|
|
2919
3020
|
const declaration = this.reflector.getDeclarationOfIdentifier(target);
|
|
2920
3021
|
if (declaration === null || declaration.node === null) {
|
|
2921
3022
|
return null;
|
|
@@ -2941,8 +3042,8 @@ var TypeParameterEmitter = class {
|
|
|
2941
3042
|
if (typeNode === null) {
|
|
2942
3043
|
return null;
|
|
2943
3044
|
}
|
|
2944
|
-
if (!
|
|
2945
|
-
throw new Error(`Expected TypeReferenceNode for emitted reference, got ${
|
|
3045
|
+
if (!ts20.isTypeReferenceNode(typeNode)) {
|
|
3046
|
+
throw new Error(`Expected TypeReferenceNode for emitted reference, got ${ts20.SyntaxKind[typeNode.kind]}.`);
|
|
2946
3047
|
}
|
|
2947
3048
|
return typeNode;
|
|
2948
3049
|
}
|
|
@@ -2951,7 +3052,7 @@ var TypeParameterEmitter = class {
|
|
|
2951
3052
|
}
|
|
2952
3053
|
};
|
|
2953
3054
|
|
|
2954
|
-
// bazel-out/
|
|
3055
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/tcb_util.mjs
|
|
2955
3056
|
var TcbInliningRequirement;
|
|
2956
3057
|
(function(TcbInliningRequirement2) {
|
|
2957
3058
|
TcbInliningRequirement2[TcbInliningRequirement2["MustInline"] = 0] = "MustInline";
|
|
@@ -2984,14 +3085,14 @@ function getTemplateMapping(shimSf, position, resolver, isDiagnosticRequest) {
|
|
|
2984
3085
|
}
|
|
2985
3086
|
function findTypeCheckBlock(file, id, isDiagnosticRequest) {
|
|
2986
3087
|
for (const stmt of file.statements) {
|
|
2987
|
-
if (
|
|
3088
|
+
if (ts21.isFunctionDeclaration(stmt) && getTemplateId2(stmt, file, isDiagnosticRequest) === id) {
|
|
2988
3089
|
return stmt;
|
|
2989
3090
|
}
|
|
2990
3091
|
}
|
|
2991
3092
|
return null;
|
|
2992
3093
|
}
|
|
2993
3094
|
function findSourceLocation(node, sourceFile, isDiagnosticsRequest) {
|
|
2994
|
-
while (node !== void 0 && !
|
|
3095
|
+
while (node !== void 0 && !ts21.isFunctionDeclaration(node)) {
|
|
2995
3096
|
if (hasIgnoreForDiagnosticsMarker(node, sourceFile) && isDiagnosticsRequest) {
|
|
2996
3097
|
return null;
|
|
2997
3098
|
}
|
|
@@ -3008,7 +3109,7 @@ function findSourceLocation(node, sourceFile, isDiagnosticsRequest) {
|
|
|
3008
3109
|
return null;
|
|
3009
3110
|
}
|
|
3010
3111
|
function getTemplateId2(node, sourceFile, isDiagnosticRequest) {
|
|
3011
|
-
while (!
|
|
3112
|
+
while (!ts21.isFunctionDeclaration(node)) {
|
|
3012
3113
|
if (hasIgnoreForDiagnosticsMarker(node, sourceFile) && isDiagnosticRequest) {
|
|
3013
3114
|
return null;
|
|
3014
3115
|
}
|
|
@@ -3018,8 +3119,8 @@ function getTemplateId2(node, sourceFile, isDiagnosticRequest) {
|
|
|
3018
3119
|
}
|
|
3019
3120
|
}
|
|
3020
3121
|
const start = node.getFullStart();
|
|
3021
|
-
return
|
|
3022
|
-
if (kind !==
|
|
3122
|
+
return ts21.forEachLeadingCommentRange(sourceFile.text, start, (pos, end, kind) => {
|
|
3123
|
+
if (kind !== ts21.SyntaxKind.MultiLineCommentTrivia) {
|
|
3023
3124
|
return null;
|
|
3024
3125
|
}
|
|
3025
3126
|
const commentText = sourceFile.text.substring(pos + 2, end - 2);
|
|
@@ -3031,32 +3132,32 @@ function checkIfGenericTypeBoundsCanBeEmitted(node, reflector, env) {
|
|
|
3031
3132
|
return emitter.canEmit((ref) => env.canReferenceType(ref));
|
|
3032
3133
|
}
|
|
3033
3134
|
|
|
3034
|
-
// bazel-out/
|
|
3135
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_constructor.mjs
|
|
3035
3136
|
function generateTypeCtorDeclarationFn(node, meta, nodeTypeRef, typeParams) {
|
|
3036
3137
|
const rawTypeArgs = typeParams !== void 0 ? generateGenericArgs(typeParams) : void 0;
|
|
3037
|
-
const rawType =
|
|
3138
|
+
const rawType = ts22.factory.createTypeReferenceNode(nodeTypeRef, rawTypeArgs);
|
|
3038
3139
|
const initParam = constructTypeCtorParameter(node, meta, rawType);
|
|
3039
3140
|
const typeParameters = typeParametersWithDefaultTypes(typeParams);
|
|
3040
3141
|
if (meta.body) {
|
|
3041
|
-
const fnType =
|
|
3142
|
+
const fnType = ts22.factory.createFunctionTypeNode(
|
|
3042
3143
|
typeParameters,
|
|
3043
3144
|
[initParam],
|
|
3044
3145
|
rawType
|
|
3045
3146
|
);
|
|
3046
|
-
const decl =
|
|
3147
|
+
const decl = ts22.factory.createVariableDeclaration(
|
|
3047
3148
|
meta.fnName,
|
|
3048
3149
|
void 0,
|
|
3049
3150
|
fnType,
|
|
3050
|
-
|
|
3151
|
+
ts22.factory.createNonNullExpression(ts22.factory.createNull())
|
|
3051
3152
|
);
|
|
3052
|
-
const declList =
|
|
3053
|
-
return
|
|
3153
|
+
const declList = ts22.factory.createVariableDeclarationList([decl], ts22.NodeFlags.Const);
|
|
3154
|
+
return ts22.factory.createVariableStatement(
|
|
3054
3155
|
void 0,
|
|
3055
3156
|
declList
|
|
3056
3157
|
);
|
|
3057
3158
|
} else {
|
|
3058
|
-
return
|
|
3059
|
-
[
|
|
3159
|
+
return ts22.factory.createFunctionDeclaration(
|
|
3160
|
+
[ts22.factory.createModifier(ts22.SyntaxKind.DeclareKeyword)],
|
|
3060
3161
|
void 0,
|
|
3061
3162
|
meta.fnName,
|
|
3062
3163
|
typeParameters,
|
|
@@ -3068,16 +3169,16 @@ function generateTypeCtorDeclarationFn(node, meta, nodeTypeRef, typeParams) {
|
|
|
3068
3169
|
}
|
|
3069
3170
|
function generateInlineTypeCtor(node, meta) {
|
|
3070
3171
|
const rawTypeArgs = node.typeParameters !== void 0 ? generateGenericArgs(node.typeParameters) : void 0;
|
|
3071
|
-
const rawType =
|
|
3172
|
+
const rawType = ts22.factory.createTypeReferenceNode(node.name, rawTypeArgs);
|
|
3072
3173
|
const initParam = constructTypeCtorParameter(node, meta, rawType);
|
|
3073
3174
|
let body = void 0;
|
|
3074
3175
|
if (meta.body) {
|
|
3075
|
-
body =
|
|
3076
|
-
|
|
3176
|
+
body = ts22.factory.createBlock([
|
|
3177
|
+
ts22.factory.createReturnStatement(ts22.factory.createNonNullExpression(ts22.factory.createNull()))
|
|
3077
3178
|
]);
|
|
3078
3179
|
}
|
|
3079
|
-
return
|
|
3080
|
-
[
|
|
3180
|
+
return ts22.factory.createMethodDeclaration(
|
|
3181
|
+
[ts22.factory.createModifier(ts22.SyntaxKind.StaticKeyword)],
|
|
3081
3182
|
void 0,
|
|
3082
3183
|
meta.fnName,
|
|
3083
3184
|
void 0,
|
|
@@ -3093,9 +3194,9 @@ function constructTypeCtorParameter(node, meta, rawType) {
|
|
|
3093
3194
|
const coercedKeys = [];
|
|
3094
3195
|
for (const { classPropertyName, transform } of meta.fields.inputs) {
|
|
3095
3196
|
if (!meta.coercedInputFields.has(classPropertyName)) {
|
|
3096
|
-
plainKeys.push(
|
|
3197
|
+
plainKeys.push(ts22.factory.createLiteralTypeNode(ts22.factory.createStringLiteral(classPropertyName)));
|
|
3097
3198
|
} else {
|
|
3098
|
-
coercedKeys.push(
|
|
3199
|
+
coercedKeys.push(ts22.factory.createPropertySignature(
|
|
3099
3200
|
void 0,
|
|
3100
3201
|
classPropertyName,
|
|
3101
3202
|
void 0,
|
|
@@ -3104,17 +3205,17 @@ function constructTypeCtorParameter(node, meta, rawType) {
|
|
|
3104
3205
|
}
|
|
3105
3206
|
}
|
|
3106
3207
|
if (plainKeys.length > 0) {
|
|
3107
|
-
const keyTypeUnion =
|
|
3108
|
-
initType =
|
|
3208
|
+
const keyTypeUnion = ts22.factory.createUnionTypeNode(plainKeys);
|
|
3209
|
+
initType = ts22.factory.createTypeReferenceNode("Pick", [rawType, keyTypeUnion]);
|
|
3109
3210
|
}
|
|
3110
3211
|
if (coercedKeys.length > 0) {
|
|
3111
|
-
const coercedLiteral =
|
|
3112
|
-
initType = initType !== null ?
|
|
3212
|
+
const coercedLiteral = ts22.factory.createTypeLiteralNode(coercedKeys);
|
|
3213
|
+
initType = initType !== null ? ts22.factory.createIntersectionTypeNode([initType, coercedLiteral]) : coercedLiteral;
|
|
3113
3214
|
}
|
|
3114
3215
|
if (initType === null) {
|
|
3115
|
-
initType =
|
|
3216
|
+
initType = ts22.factory.createTypeLiteralNode([]);
|
|
3116
3217
|
}
|
|
3117
|
-
return
|
|
3218
|
+
return ts22.factory.createParameterDeclaration(
|
|
3118
3219
|
void 0,
|
|
3119
3220
|
void 0,
|
|
3120
3221
|
"init",
|
|
@@ -3124,7 +3225,7 @@ function constructTypeCtorParameter(node, meta, rawType) {
|
|
|
3124
3225
|
);
|
|
3125
3226
|
}
|
|
3126
3227
|
function generateGenericArgs(params) {
|
|
3127
|
-
return params.map((param) =>
|
|
3228
|
+
return params.map((param) => ts22.factory.createTypeReferenceNode(param.name, void 0));
|
|
3128
3229
|
}
|
|
3129
3230
|
function requiresInlineTypeCtor(node, host, env) {
|
|
3130
3231
|
return !checkIfGenericTypeBoundsCanBeEmitted(node, host, env);
|
|
@@ -3135,14 +3236,14 @@ function typeParametersWithDefaultTypes(params) {
|
|
|
3135
3236
|
}
|
|
3136
3237
|
return params.map((param) => {
|
|
3137
3238
|
if (param.default === void 0) {
|
|
3138
|
-
return
|
|
3239
|
+
return ts22.factory.updateTypeParameterDeclaration(param, param.modifiers, param.name, param.constraint, ts22.factory.createKeywordTypeNode(ts22.SyntaxKind.AnyKeyword));
|
|
3139
3240
|
} else {
|
|
3140
3241
|
return param;
|
|
3141
3242
|
}
|
|
3142
3243
|
});
|
|
3143
3244
|
}
|
|
3144
3245
|
|
|
3145
|
-
// bazel-out/
|
|
3246
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/environment.mjs
|
|
3146
3247
|
var Environment = class {
|
|
3147
3248
|
constructor(config, importManager, refEmitter, reflector, contextFile) {
|
|
3148
3249
|
this.config = config;
|
|
@@ -3167,13 +3268,13 @@ var Environment = class {
|
|
|
3167
3268
|
}
|
|
3168
3269
|
if (requiresInlineTypeCtor(node, this.reflector, this)) {
|
|
3169
3270
|
const ref = this.reference(dirRef);
|
|
3170
|
-
const typeCtorExpr =
|
|
3271
|
+
const typeCtorExpr = ts23.factory.createPropertyAccessExpression(ref, "ngTypeCtor");
|
|
3171
3272
|
this.typeCtors.set(node, typeCtorExpr);
|
|
3172
3273
|
return typeCtorExpr;
|
|
3173
3274
|
} else {
|
|
3174
3275
|
const fnName = `_ctor${this.nextIds.typeCtor++}`;
|
|
3175
3276
|
const nodeTypeRef = this.referenceType(dirRef);
|
|
3176
|
-
if (!
|
|
3277
|
+
if (!ts23.isTypeReferenceNode(nodeTypeRef)) {
|
|
3177
3278
|
throw new Error(`Expected TypeReferenceNode from reference to ${dirRef.debugName}`);
|
|
3178
3279
|
}
|
|
3179
3280
|
const meta = {
|
|
@@ -3188,7 +3289,7 @@ var Environment = class {
|
|
|
3188
3289
|
const typeParams = this.emitTypeParameters(node);
|
|
3189
3290
|
const typeCtor = generateTypeCtorDeclarationFn(node, meta, nodeTypeRef.typeName, typeParams);
|
|
3190
3291
|
this.typeCtorStatements.push(typeCtor);
|
|
3191
|
-
const fnId =
|
|
3292
|
+
const fnId = ts23.factory.createIdentifier(fnName);
|
|
3192
3293
|
this.typeCtors.set(node, fnId);
|
|
3193
3294
|
return fnId;
|
|
3194
3295
|
}
|
|
@@ -3198,7 +3299,7 @@ var Environment = class {
|
|
|
3198
3299
|
return this.pipeInsts.get(ref.node);
|
|
3199
3300
|
}
|
|
3200
3301
|
const pipeType = this.referenceType(ref);
|
|
3201
|
-
const pipeInstId =
|
|
3302
|
+
const pipeInstId = ts23.factory.createIdentifier(`_pipe${this.nextIds.pipeInst++}`);
|
|
3202
3303
|
this.pipeInstStatements.push(tsDeclareVariable(pipeInstId, pipeType));
|
|
3203
3304
|
this.pipeInsts.set(ref.node, pipeInstId);
|
|
3204
3305
|
return pipeInstId;
|
|
@@ -3236,9 +3337,9 @@ var Environment = class {
|
|
|
3236
3337
|
}
|
|
3237
3338
|
};
|
|
3238
3339
|
|
|
3239
|
-
// bazel-out/
|
|
3340
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/oob.mjs
|
|
3240
3341
|
import { TmplAstElement as TmplAstElement2 } from "@angular/compiler";
|
|
3241
|
-
import
|
|
3342
|
+
import ts24 from "typescript";
|
|
3242
3343
|
var OutOfBandDiagnosticRecorderImpl = class {
|
|
3243
3344
|
constructor(resolver) {
|
|
3244
3345
|
this.resolver = resolver;
|
|
@@ -3252,7 +3353,7 @@ var OutOfBandDiagnosticRecorderImpl = class {
|
|
|
3252
3353
|
const mapping = this.resolver.getSourceMapping(templateId);
|
|
3253
3354
|
const value = ref.value.trim();
|
|
3254
3355
|
const errorMsg = `No directive found with exportAs '${value}'.`;
|
|
3255
|
-
this._diagnostics.push(makeTemplateDiagnostic(templateId, mapping, ref.valueSpan || ref.sourceSpan,
|
|
3356
|
+
this._diagnostics.push(makeTemplateDiagnostic(templateId, mapping, ref.valueSpan || ref.sourceSpan, ts24.DiagnosticCategory.Error, ngErrorCode(ErrorCode.MISSING_REFERENCE_TARGET), errorMsg));
|
|
3256
3357
|
}
|
|
3257
3358
|
missingPipe(templateId, ast) {
|
|
3258
3359
|
if (this.recordedPipes.has(ast)) {
|
|
@@ -3264,7 +3365,7 @@ var OutOfBandDiagnosticRecorderImpl = class {
|
|
|
3264
3365
|
if (sourceSpan === null) {
|
|
3265
3366
|
throw new Error(`Assertion failure: no SourceLocation found for usage of pipe '${ast.name}'.`);
|
|
3266
3367
|
}
|
|
3267
|
-
this._diagnostics.push(makeTemplateDiagnostic(templateId, mapping, sourceSpan,
|
|
3368
|
+
this._diagnostics.push(makeTemplateDiagnostic(templateId, mapping, sourceSpan, ts24.DiagnosticCategory.Error, ngErrorCode(ErrorCode.MISSING_PIPE), errorMsg));
|
|
3268
3369
|
this.recordedPipes.add(ast);
|
|
3269
3370
|
}
|
|
3270
3371
|
illegalAssignmentToTemplateVar(templateId, assignment, target) {
|
|
@@ -3275,7 +3376,7 @@ var OutOfBandDiagnosticRecorderImpl = class {
|
|
|
3275
3376
|
if (sourceSpan === null) {
|
|
3276
3377
|
throw new Error(`Assertion failure: no SourceLocation found for property binding.`);
|
|
3277
3378
|
}
|
|
3278
|
-
this._diagnostics.push(makeTemplateDiagnostic(templateId, mapping, sourceSpan,
|
|
3379
|
+
this._diagnostics.push(makeTemplateDiagnostic(templateId, mapping, sourceSpan, ts24.DiagnosticCategory.Error, ngErrorCode(ErrorCode.WRITE_TO_READ_ONLY_VARIABLE), errorMsg, [{
|
|
3279
3380
|
text: `The variable ${assignment.name} is declared here.`,
|
|
3280
3381
|
start: ((_a = target.valueSpan) == null ? void 0 : _a.start.offset) || target.sourceSpan.start.offset,
|
|
3281
3382
|
end: ((_b = target.valueSpan) == null ? void 0 : _b.end.offset) || target.sourceSpan.end.offset,
|
|
@@ -3285,7 +3386,7 @@ var OutOfBandDiagnosticRecorderImpl = class {
|
|
|
3285
3386
|
duplicateTemplateVar(templateId, variable, firstDecl) {
|
|
3286
3387
|
const mapping = this.resolver.getSourceMapping(templateId);
|
|
3287
3388
|
const errorMsg = `Cannot redeclare variable '${variable.name}' as it was previously declared elsewhere for the same template.`;
|
|
3288
|
-
this._diagnostics.push(makeTemplateDiagnostic(templateId, mapping, variable.sourceSpan,
|
|
3389
|
+
this._diagnostics.push(makeTemplateDiagnostic(templateId, mapping, variable.sourceSpan, ts24.DiagnosticCategory.Error, ngErrorCode(ErrorCode.DUPLICATE_VARIABLE_DECLARATION), errorMsg, [{
|
|
3289
3390
|
text: `The variable '${firstDecl.name}' was first declared here.`,
|
|
3290
3391
|
start: firstDecl.sourceSpan.start.offset,
|
|
3291
3392
|
end: firstDecl.sourceSpan.end.offset,
|
|
@@ -3324,7 +3425,7 @@ var OutOfBandDiagnosticRecorderImpl = class {
|
|
|
3324
3425
|
const message = `This structural directive supports advanced type inference, but the current compiler configuration prevents its usage. The variable ${varIdentification} will have type 'any' as a result.
|
|
3325
3426
|
|
|
3326
3427
|
Consider enabling the 'strictTemplates' option in your tsconfig.json for better type inference within this template.`;
|
|
3327
|
-
this._diagnostics.push(makeTemplateDiagnostic(templateId, mapping, diagnosticVar.keySpan,
|
|
3428
|
+
this._diagnostics.push(makeTemplateDiagnostic(templateId, mapping, diagnosticVar.keySpan, ts24.DiagnosticCategory.Suggestion, ngErrorCode(ErrorCode.SUGGEST_SUBOPTIMAL_TYPE_INFERENCE), message));
|
|
3328
3429
|
}
|
|
3329
3430
|
splitTwoWayBinding(templateId, input, output, inputConsumer, outputConsumer) {
|
|
3330
3431
|
const mapping = this.resolver.getSourceMapping(templateId);
|
|
@@ -3358,11 +3459,11 @@ Consider enabling the 'strictTemplates' option in your tsconfig.json for better
|
|
|
3358
3459
|
sourceFile: outputConsumer.name.getSourceFile()
|
|
3359
3460
|
});
|
|
3360
3461
|
}
|
|
3361
|
-
this._diagnostics.push(makeTemplateDiagnostic(templateId, mapping, input.keySpan,
|
|
3462
|
+
this._diagnostics.push(makeTemplateDiagnostic(templateId, mapping, input.keySpan, ts24.DiagnosticCategory.Error, ngErrorCode(ErrorCode.SPLIT_TWO_WAY_BINDING), errorMsg, relatedMessages));
|
|
3362
3463
|
}
|
|
3363
3464
|
missingRequiredInputs(templateId, element, directiveName, isComponent, inputAliases) {
|
|
3364
3465
|
const message = `Required input${inputAliases.length === 1 ? "" : "s"} ${inputAliases.map((n) => `'${n}'`).join(", ")} from ${isComponent ? "component" : "directive"} ${directiveName} must be specified.`;
|
|
3365
|
-
this._diagnostics.push(makeTemplateDiagnostic(templateId, this.resolver.getSourceMapping(templateId), element.startSourceSpan,
|
|
3466
|
+
this._diagnostics.push(makeTemplateDiagnostic(templateId, this.resolver.getSourceMapping(templateId), element.startSourceSpan, ts24.DiagnosticCategory.Error, ngErrorCode(ErrorCode.MISSING_REQUIRED_INPUTS), message));
|
|
3366
3467
|
}
|
|
3367
3468
|
illegalForLoopTrackAccess(templateId, block, access) {
|
|
3368
3469
|
const sourceSpan = this.resolver.toParseSourceSpan(templateId, access.sourceSpan);
|
|
@@ -3370,7 +3471,7 @@ Consider enabling the 'strictTemplates' option in your tsconfig.json for better
|
|
|
3370
3471
|
throw new Error(`Assertion failure: no SourceLocation found for property read.`);
|
|
3371
3472
|
}
|
|
3372
3473
|
const message = `Cannot access '${access.name}' inside of a track expression. Only '${block.item.name}', '${block.contextVariables.$index.name}' and properties on the containing component are available to this expression.`;
|
|
3373
|
-
this._diagnostics.push(makeTemplateDiagnostic(templateId, this.resolver.getSourceMapping(templateId), sourceSpan,
|
|
3474
|
+
this._diagnostics.push(makeTemplateDiagnostic(templateId, this.resolver.getSourceMapping(templateId), sourceSpan, ts24.DiagnosticCategory.Error, ngErrorCode(ErrorCode.ILLEGAL_FOR_LOOP_TRACK_ACCESS), message));
|
|
3374
3475
|
}
|
|
3375
3476
|
inaccessibleDeferredTriggerElement(templateId, trigger) {
|
|
3376
3477
|
let message;
|
|
@@ -3381,7 +3482,7 @@ Consider enabling the 'strictTemplates' option in your tsconfig.json for better
|
|
|
3381
3482
|
Check that an element with #${trigger.reference} exists in the same template and it's accessible from the @defer block.
|
|
3382
3483
|
Deferred blocks can only access triggers in same view, a parent embedded view or the root view of the @placeholder block.`;
|
|
3383
3484
|
}
|
|
3384
|
-
this._diagnostics.push(makeTemplateDiagnostic(templateId, this.resolver.getSourceMapping(templateId), trigger.sourceSpan,
|
|
3485
|
+
this._diagnostics.push(makeTemplateDiagnostic(templateId, this.resolver.getSourceMapping(templateId), trigger.sourceSpan, ts24.DiagnosticCategory.Error, ngErrorCode(ErrorCode.INACCESSIBLE_DEFERRED_TRIGGER_ELEMENT), message));
|
|
3385
3486
|
}
|
|
3386
3487
|
};
|
|
3387
3488
|
function makeInlineDiagnostic(templateId, code, node, messageText, relatedInformation) {
|
|
@@ -3392,8 +3493,8 @@ function makeInlineDiagnostic(templateId, code, node, messageText, relatedInform
|
|
|
3392
3493
|
};
|
|
3393
3494
|
}
|
|
3394
3495
|
|
|
3395
|
-
// bazel-out/
|
|
3396
|
-
import
|
|
3496
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/shim.mjs
|
|
3497
|
+
import ts25 from "typescript";
|
|
3397
3498
|
var TypeCheckShimGenerator = class {
|
|
3398
3499
|
constructor() {
|
|
3399
3500
|
this.extensionPrefix = "ngtypecheck";
|
|
@@ -3403,25 +3504,25 @@ var TypeCheckShimGenerator = class {
|
|
|
3403
3504
|
if (priorShimSf !== null) {
|
|
3404
3505
|
return priorShimSf;
|
|
3405
3506
|
}
|
|
3406
|
-
return
|
|
3507
|
+
return ts25.createSourceFile(genFilePath, "export const USED_FOR_NG_TYPE_CHECKING = true;", ts25.ScriptTarget.Latest, true, ts25.ScriptKind.TS);
|
|
3407
3508
|
}
|
|
3408
3509
|
static shimFor(fileName) {
|
|
3409
3510
|
return absoluteFrom(fileName.replace(/\.tsx?$/, ".ngtypecheck.ts"));
|
|
3410
3511
|
}
|
|
3411
3512
|
};
|
|
3412
3513
|
|
|
3413
|
-
// bazel-out/
|
|
3514
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_check_block.mjs
|
|
3414
3515
|
import { BindingPipe, Call as Call2, DYNAMIC_TYPE, ImplicitReceiver as ImplicitReceiver4, PropertyRead as PropertyRead4, PropertyWrite as PropertyWrite3, SafeCall, SafePropertyRead as SafePropertyRead3, ThisReceiver, TmplAstBoundAttribute, TmplAstBoundText, TmplAstDeferredBlock, TmplAstElement as TmplAstElement3, TmplAstForLoopBlock, TmplAstIcu, TmplAstIfBlock, TmplAstIfBlockBranch, TmplAstReference as TmplAstReference3, TmplAstSwitchBlock, TmplAstTemplate as TmplAstTemplate2, TmplAstTextAttribute as TmplAstTextAttribute2, TmplAstVariable as TmplAstVariable2, TransplantedType } from "@angular/compiler";
|
|
3415
|
-
import
|
|
3516
|
+
import ts28 from "typescript";
|
|
3416
3517
|
|
|
3417
|
-
// bazel-out/
|
|
3518
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/diagnostics.mjs
|
|
3418
3519
|
import { AbsoluteSourceSpan as AbsoluteSourceSpan3 } from "@angular/compiler";
|
|
3419
|
-
import
|
|
3520
|
+
import ts26 from "typescript";
|
|
3420
3521
|
function wrapForDiagnostics(expr) {
|
|
3421
|
-
return
|
|
3522
|
+
return ts26.factory.createParenthesizedExpression(expr);
|
|
3422
3523
|
}
|
|
3423
3524
|
function wrapForTypeChecker(expr) {
|
|
3424
|
-
return
|
|
3525
|
+
return ts26.factory.createParenthesizedExpression(expr);
|
|
3425
3526
|
}
|
|
3426
3527
|
function addParseSpanInfo(node, span) {
|
|
3427
3528
|
let commentText;
|
|
@@ -3430,10 +3531,10 @@ function addParseSpanInfo(node, span) {
|
|
|
3430
3531
|
} else {
|
|
3431
3532
|
commentText = `${span.start.offset},${span.end.offset}`;
|
|
3432
3533
|
}
|
|
3433
|
-
|
|
3534
|
+
ts26.addSyntheticTrailingComment(node, ts26.SyntaxKind.MultiLineCommentTrivia, commentText, false);
|
|
3434
3535
|
}
|
|
3435
3536
|
function addTemplateId(tcb, id) {
|
|
3436
|
-
|
|
3537
|
+
ts26.addSyntheticLeadingComment(tcb, ts26.SyntaxKind.MultiLineCommentTrivia, id, true);
|
|
3437
3538
|
}
|
|
3438
3539
|
function shouldReportDiagnostic(diagnostic) {
|
|
3439
3540
|
const { code } = diagnostic;
|
|
@@ -3460,34 +3561,34 @@ function translateDiagnostic(diagnostic, resolver) {
|
|
|
3460
3561
|
return makeTemplateDiagnostic(sourceLocation.id, templateSourceMapping, span, diagnostic.category, diagnostic.code, diagnostic.messageText);
|
|
3461
3562
|
}
|
|
3462
3563
|
|
|
3463
|
-
// bazel-out/
|
|
3564
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/expression.mjs
|
|
3464
3565
|
import { ASTWithSource as ASTWithSource2, Call, EmptyExpr as EmptyExpr2, PropertyRead as PropertyRead3, SafeKeyedRead, SafePropertyRead as SafePropertyRead2 } from "@angular/compiler";
|
|
3465
|
-
import
|
|
3466
|
-
var NULL_AS_ANY =
|
|
3467
|
-
var UNDEFINED =
|
|
3566
|
+
import ts27 from "typescript";
|
|
3567
|
+
var NULL_AS_ANY = ts27.factory.createAsExpression(ts27.factory.createNull(), ts27.factory.createKeywordTypeNode(ts27.SyntaxKind.AnyKeyword));
|
|
3568
|
+
var UNDEFINED = ts27.factory.createIdentifier("undefined");
|
|
3468
3569
|
var UNARY_OPS = /* @__PURE__ */ new Map([
|
|
3469
|
-
["+",
|
|
3470
|
-
["-",
|
|
3570
|
+
["+", ts27.SyntaxKind.PlusToken],
|
|
3571
|
+
["-", ts27.SyntaxKind.MinusToken]
|
|
3471
3572
|
]);
|
|
3472
3573
|
var BINARY_OPS = /* @__PURE__ */ new Map([
|
|
3473
|
-
["+",
|
|
3474
|
-
["-",
|
|
3475
|
-
["<",
|
|
3476
|
-
[">",
|
|
3477
|
-
["<=",
|
|
3478
|
-
[">=",
|
|
3479
|
-
["==",
|
|
3480
|
-
["===",
|
|
3481
|
-
["*",
|
|
3482
|
-
["/",
|
|
3483
|
-
["%",
|
|
3484
|
-
["!=",
|
|
3485
|
-
["!==",
|
|
3486
|
-
["||",
|
|
3487
|
-
["&&",
|
|
3488
|
-
["&",
|
|
3489
|
-
["|",
|
|
3490
|
-
["??",
|
|
3574
|
+
["+", ts27.SyntaxKind.PlusToken],
|
|
3575
|
+
["-", ts27.SyntaxKind.MinusToken],
|
|
3576
|
+
["<", ts27.SyntaxKind.LessThanToken],
|
|
3577
|
+
[">", ts27.SyntaxKind.GreaterThanToken],
|
|
3578
|
+
["<=", ts27.SyntaxKind.LessThanEqualsToken],
|
|
3579
|
+
[">=", ts27.SyntaxKind.GreaterThanEqualsToken],
|
|
3580
|
+
["==", ts27.SyntaxKind.EqualsEqualsToken],
|
|
3581
|
+
["===", ts27.SyntaxKind.EqualsEqualsEqualsToken],
|
|
3582
|
+
["*", ts27.SyntaxKind.AsteriskToken],
|
|
3583
|
+
["/", ts27.SyntaxKind.SlashToken],
|
|
3584
|
+
["%", ts27.SyntaxKind.PercentToken],
|
|
3585
|
+
["!=", ts27.SyntaxKind.ExclamationEqualsToken],
|
|
3586
|
+
["!==", ts27.SyntaxKind.ExclamationEqualsEqualsToken],
|
|
3587
|
+
["||", ts27.SyntaxKind.BarBarToken],
|
|
3588
|
+
["&&", ts27.SyntaxKind.AmpersandAmpersandToken],
|
|
3589
|
+
["&", ts27.SyntaxKind.AmpersandToken],
|
|
3590
|
+
["|", ts27.SyntaxKind.BarToken],
|
|
3591
|
+
["??", ts27.SyntaxKind.QuestionQuestionToken]
|
|
3491
3592
|
]);
|
|
3492
3593
|
function astToTypescript(ast, maybeResolve, config) {
|
|
3493
3594
|
const translator = new AstTranslator(maybeResolve, config);
|
|
@@ -3503,7 +3604,7 @@ var AstTranslator = class {
|
|
|
3503
3604
|
ast = ast.ast;
|
|
3504
3605
|
}
|
|
3505
3606
|
if (ast instanceof EmptyExpr2) {
|
|
3506
|
-
const res =
|
|
3607
|
+
const res = ts27.factory.createIdentifier("undefined");
|
|
3507
3608
|
addParseSpanInfo(res, ast.sourceSpan);
|
|
3508
3609
|
return res;
|
|
3509
3610
|
}
|
|
@@ -3519,7 +3620,7 @@ var AstTranslator = class {
|
|
|
3519
3620
|
if (op === void 0) {
|
|
3520
3621
|
throw new Error(`Unsupported Unary.operator: ${ast.operator}`);
|
|
3521
3622
|
}
|
|
3522
|
-
const node = wrapForDiagnostics(
|
|
3623
|
+
const node = wrapForDiagnostics(ts27.factory.createPrefixUnaryExpression(op, expr));
|
|
3523
3624
|
addParseSpanInfo(node, ast.sourceSpan);
|
|
3524
3625
|
return node;
|
|
3525
3626
|
}
|
|
@@ -3530,13 +3631,13 @@ var AstTranslator = class {
|
|
|
3530
3631
|
if (op === void 0) {
|
|
3531
3632
|
throw new Error(`Unsupported Binary.operation: ${ast.operation}`);
|
|
3532
3633
|
}
|
|
3533
|
-
const node =
|
|
3634
|
+
const node = ts27.factory.createBinaryExpression(lhs, op, rhs);
|
|
3534
3635
|
addParseSpanInfo(node, ast.sourceSpan);
|
|
3535
3636
|
return node;
|
|
3536
3637
|
}
|
|
3537
3638
|
visitChain(ast) {
|
|
3538
3639
|
const elements = ast.expressions.map((expr) => this.translate(expr));
|
|
3539
|
-
const node = wrapForDiagnostics(
|
|
3640
|
+
const node = wrapForDiagnostics(ts27.factory.createCommaListExpression(elements));
|
|
3540
3641
|
addParseSpanInfo(node, ast.sourceSpan);
|
|
3541
3642
|
return node;
|
|
3542
3643
|
}
|
|
@@ -3544,7 +3645,7 @@ var AstTranslator = class {
|
|
|
3544
3645
|
const condExpr = this.translate(ast.condition);
|
|
3545
3646
|
const trueExpr = this.translate(ast.trueExp);
|
|
3546
3647
|
const falseExpr = wrapForTypeChecker(this.translate(ast.falseExp));
|
|
3547
|
-
const node =
|
|
3648
|
+
const node = ts27.factory.createParenthesizedExpression(ts27.factory.createConditionalExpression(condExpr, void 0, trueExpr, void 0, falseExpr));
|
|
3548
3649
|
addParseSpanInfo(node, ast.sourceSpan);
|
|
3549
3650
|
return node;
|
|
3550
3651
|
}
|
|
@@ -3555,26 +3656,26 @@ var AstTranslator = class {
|
|
|
3555
3656
|
throw new Error("Method not implemented.");
|
|
3556
3657
|
}
|
|
3557
3658
|
visitInterpolation(ast) {
|
|
3558
|
-
return ast.expressions.reduce((lhs, ast2) =>
|
|
3659
|
+
return ast.expressions.reduce((lhs, ast2) => ts27.factory.createBinaryExpression(lhs, ts27.SyntaxKind.PlusToken, wrapForTypeChecker(this.translate(ast2))), ts27.factory.createStringLiteral(""));
|
|
3559
3660
|
}
|
|
3560
3661
|
visitKeyedRead(ast) {
|
|
3561
3662
|
const receiver = wrapForDiagnostics(this.translate(ast.receiver));
|
|
3562
3663
|
const key = this.translate(ast.key);
|
|
3563
|
-
const node =
|
|
3664
|
+
const node = ts27.factory.createElementAccessExpression(receiver, key);
|
|
3564
3665
|
addParseSpanInfo(node, ast.sourceSpan);
|
|
3565
3666
|
return node;
|
|
3566
3667
|
}
|
|
3567
3668
|
visitKeyedWrite(ast) {
|
|
3568
3669
|
const receiver = wrapForDiagnostics(this.translate(ast.receiver));
|
|
3569
|
-
const left =
|
|
3670
|
+
const left = ts27.factory.createElementAccessExpression(receiver, this.translate(ast.key));
|
|
3570
3671
|
const right = wrapForTypeChecker(this.translate(ast.value));
|
|
3571
|
-
const node = wrapForDiagnostics(
|
|
3672
|
+
const node = wrapForDiagnostics(ts27.factory.createBinaryExpression(left, ts27.SyntaxKind.EqualsToken, right));
|
|
3572
3673
|
addParseSpanInfo(node, ast.sourceSpan);
|
|
3573
3674
|
return node;
|
|
3574
3675
|
}
|
|
3575
3676
|
visitLiteralArray(ast) {
|
|
3576
3677
|
const elements = ast.expressions.map((expr) => this.translate(expr));
|
|
3577
|
-
const literal =
|
|
3678
|
+
const literal = ts27.factory.createArrayLiteralExpression(elements);
|
|
3578
3679
|
const node = this.config.strictLiteralTypes ? literal : tsCastToAny(literal);
|
|
3579
3680
|
addParseSpanInfo(node, ast.sourceSpan);
|
|
3580
3681
|
return node;
|
|
@@ -3582,9 +3683,9 @@ var AstTranslator = class {
|
|
|
3582
3683
|
visitLiteralMap(ast) {
|
|
3583
3684
|
const properties = ast.keys.map(({ key }, idx) => {
|
|
3584
3685
|
const value = this.translate(ast.values[idx]);
|
|
3585
|
-
return
|
|
3686
|
+
return ts27.factory.createPropertyAssignment(ts27.factory.createStringLiteral(key), value);
|
|
3586
3687
|
});
|
|
3587
|
-
const literal =
|
|
3688
|
+
const literal = ts27.factory.createObjectLiteralExpression(properties, true);
|
|
3588
3689
|
const node = this.config.strictLiteralTypes ? literal : tsCastToAny(literal);
|
|
3589
3690
|
addParseSpanInfo(node, ast.sourceSpan);
|
|
3590
3691
|
return node;
|
|
@@ -3592,15 +3693,15 @@ var AstTranslator = class {
|
|
|
3592
3693
|
visitLiteralPrimitive(ast) {
|
|
3593
3694
|
let node;
|
|
3594
3695
|
if (ast.value === void 0) {
|
|
3595
|
-
node =
|
|
3696
|
+
node = ts27.factory.createIdentifier("undefined");
|
|
3596
3697
|
} else if (ast.value === null) {
|
|
3597
|
-
node =
|
|
3698
|
+
node = ts27.factory.createNull();
|
|
3598
3699
|
} else if (typeof ast.value === "string") {
|
|
3599
|
-
node =
|
|
3700
|
+
node = ts27.factory.createStringLiteral(ast.value);
|
|
3600
3701
|
} else if (typeof ast.value === "number") {
|
|
3601
|
-
node =
|
|
3702
|
+
node = ts27.factory.createNumericLiteral(ast.value);
|
|
3602
3703
|
} else if (typeof ast.value === "boolean") {
|
|
3603
|
-
node = ast.value ?
|
|
3704
|
+
node = ast.value ? ts27.factory.createTrue() : ts27.factory.createFalse();
|
|
3604
3705
|
} else {
|
|
3605
3706
|
throw Error(`Unsupported AST value of type ${typeof ast.value}`);
|
|
3606
3707
|
}
|
|
@@ -3609,7 +3710,7 @@ var AstTranslator = class {
|
|
|
3609
3710
|
}
|
|
3610
3711
|
visitNonNullAssert(ast) {
|
|
3611
3712
|
const expr = wrapForDiagnostics(this.translate(ast.expression));
|
|
3612
|
-
const node =
|
|
3713
|
+
const node = ts27.factory.createNonNullExpression(expr);
|
|
3613
3714
|
addParseSpanInfo(node, ast.sourceSpan);
|
|
3614
3715
|
return node;
|
|
3615
3716
|
}
|
|
@@ -3618,13 +3719,13 @@ var AstTranslator = class {
|
|
|
3618
3719
|
}
|
|
3619
3720
|
visitPrefixNot(ast) {
|
|
3620
3721
|
const expression = wrapForDiagnostics(this.translate(ast.expression));
|
|
3621
|
-
const node =
|
|
3722
|
+
const node = ts27.factory.createLogicalNot(expression);
|
|
3622
3723
|
addParseSpanInfo(node, ast.sourceSpan);
|
|
3623
3724
|
return node;
|
|
3624
3725
|
}
|
|
3625
3726
|
visitPropertyRead(ast) {
|
|
3626
3727
|
const receiver = wrapForDiagnostics(this.translate(ast.receiver));
|
|
3627
|
-
const name =
|
|
3728
|
+
const name = ts27.factory.createPropertyAccessExpression(receiver, ast.name);
|
|
3628
3729
|
addParseSpanInfo(name, ast.nameSpan);
|
|
3629
3730
|
const node = wrapForDiagnostics(name);
|
|
3630
3731
|
addParseSpanInfo(node, ast.sourceSpan);
|
|
@@ -3632,12 +3733,12 @@ var AstTranslator = class {
|
|
|
3632
3733
|
}
|
|
3633
3734
|
visitPropertyWrite(ast) {
|
|
3634
3735
|
const receiver = wrapForDiagnostics(this.translate(ast.receiver));
|
|
3635
|
-
const left =
|
|
3736
|
+
const left = ts27.factory.createPropertyAccessExpression(receiver, ast.name);
|
|
3636
3737
|
addParseSpanInfo(left, ast.nameSpan);
|
|
3637
3738
|
const leftWithPath = wrapForDiagnostics(left);
|
|
3638
3739
|
addParseSpanInfo(leftWithPath, ast.sourceSpan);
|
|
3639
3740
|
const right = wrapForTypeChecker(this.translate(ast.value));
|
|
3640
|
-
const node = wrapForDiagnostics(
|
|
3741
|
+
const node = wrapForDiagnostics(ts27.factory.createBinaryExpression(leftWithPath, ts27.SyntaxKind.EqualsToken, right));
|
|
3641
3742
|
addParseSpanInfo(node, ast.sourceSpan);
|
|
3642
3743
|
return node;
|
|
3643
3744
|
}
|
|
@@ -3645,13 +3746,13 @@ var AstTranslator = class {
|
|
|
3645
3746
|
let node;
|
|
3646
3747
|
const receiver = wrapForDiagnostics(this.translate(ast.receiver));
|
|
3647
3748
|
if (this.config.strictSafeNavigationTypes) {
|
|
3648
|
-
const expr =
|
|
3749
|
+
const expr = ts27.factory.createPropertyAccessExpression(ts27.factory.createNonNullExpression(receiver), ast.name);
|
|
3649
3750
|
addParseSpanInfo(expr, ast.nameSpan);
|
|
3650
|
-
node =
|
|
3751
|
+
node = ts27.factory.createParenthesizedExpression(ts27.factory.createConditionalExpression(NULL_AS_ANY, void 0, expr, void 0, UNDEFINED));
|
|
3651
3752
|
} else if (VeSafeLhsInferenceBugDetector.veWillInferAnyFor(ast)) {
|
|
3652
|
-
node =
|
|
3753
|
+
node = ts27.factory.createPropertyAccessExpression(tsCastToAny(receiver), ast.name);
|
|
3653
3754
|
} else {
|
|
3654
|
-
const expr =
|
|
3755
|
+
const expr = ts27.factory.createPropertyAccessExpression(ts27.factory.createNonNullExpression(receiver), ast.name);
|
|
3655
3756
|
addParseSpanInfo(expr, ast.nameSpan);
|
|
3656
3757
|
node = tsCastToAny(expr);
|
|
3657
3758
|
}
|
|
@@ -3663,13 +3764,13 @@ var AstTranslator = class {
|
|
|
3663
3764
|
const key = this.translate(ast.key);
|
|
3664
3765
|
let node;
|
|
3665
3766
|
if (this.config.strictSafeNavigationTypes) {
|
|
3666
|
-
const expr =
|
|
3767
|
+
const expr = ts27.factory.createElementAccessExpression(ts27.factory.createNonNullExpression(receiver), key);
|
|
3667
3768
|
addParseSpanInfo(expr, ast.sourceSpan);
|
|
3668
|
-
node =
|
|
3769
|
+
node = ts27.factory.createParenthesizedExpression(ts27.factory.createConditionalExpression(NULL_AS_ANY, void 0, expr, void 0, UNDEFINED));
|
|
3669
3770
|
} else if (VeSafeLhsInferenceBugDetector.veWillInferAnyFor(ast)) {
|
|
3670
|
-
node =
|
|
3771
|
+
node = ts27.factory.createElementAccessExpression(tsCastToAny(receiver), key);
|
|
3671
3772
|
} else {
|
|
3672
|
-
const expr =
|
|
3773
|
+
const expr = ts27.factory.createElementAccessExpression(ts27.factory.createNonNullExpression(receiver), key);
|
|
3673
3774
|
addParseSpanInfo(expr, ast.sourceSpan);
|
|
3674
3775
|
node = tsCastToAny(expr);
|
|
3675
3776
|
}
|
|
@@ -3686,7 +3787,7 @@ var AstTranslator = class {
|
|
|
3686
3787
|
expr = resolved;
|
|
3687
3788
|
} else {
|
|
3688
3789
|
const propertyReceiver = wrapForDiagnostics(this.translate(receiver.receiver));
|
|
3689
|
-
expr =
|
|
3790
|
+
expr = ts27.factory.createPropertyAccessExpression(propertyReceiver, receiver.name);
|
|
3690
3791
|
addParseSpanInfo(expr, receiver.nameSpan);
|
|
3691
3792
|
}
|
|
3692
3793
|
} else {
|
|
@@ -3696,7 +3797,7 @@ var AstTranslator = class {
|
|
|
3696
3797
|
if (ast.receiver instanceof SafePropertyRead2 || ast.receiver instanceof SafeKeyedRead) {
|
|
3697
3798
|
node = this.convertToSafeCall(ast, expr, args);
|
|
3698
3799
|
} else {
|
|
3699
|
-
node =
|
|
3800
|
+
node = ts27.factory.createCallExpression(expr, void 0, args);
|
|
3700
3801
|
}
|
|
3701
3802
|
addParseSpanInfo(node, ast.sourceSpan);
|
|
3702
3803
|
return node;
|
|
@@ -3710,13 +3811,13 @@ var AstTranslator = class {
|
|
|
3710
3811
|
}
|
|
3711
3812
|
convertToSafeCall(ast, expr, args) {
|
|
3712
3813
|
if (this.config.strictSafeNavigationTypes) {
|
|
3713
|
-
const call =
|
|
3714
|
-
return
|
|
3814
|
+
const call = ts27.factory.createCallExpression(ts27.factory.createNonNullExpression(expr), void 0, args);
|
|
3815
|
+
return ts27.factory.createParenthesizedExpression(ts27.factory.createConditionalExpression(NULL_AS_ANY, void 0, call, void 0, UNDEFINED));
|
|
3715
3816
|
}
|
|
3716
3817
|
if (VeSafeLhsInferenceBugDetector.veWillInferAnyFor(ast)) {
|
|
3717
|
-
return
|
|
3818
|
+
return ts27.factory.createCallExpression(tsCastToAny(expr), void 0, args);
|
|
3718
3819
|
}
|
|
3719
|
-
return tsCastToAny(
|
|
3820
|
+
return tsCastToAny(ts27.factory.createCallExpression(ts27.factory.createNonNullExpression(expr), void 0, args));
|
|
3720
3821
|
}
|
|
3721
3822
|
};
|
|
3722
3823
|
var _VeSafeLhsInferenceBugDetector = class {
|
|
@@ -3793,7 +3894,7 @@ var VeSafeLhsInferenceBugDetector = _VeSafeLhsInferenceBugDetector;
|
|
|
3793
3894
|
_VeSafeLhsInferenceBugDetector.SINGLETON = new _VeSafeLhsInferenceBugDetector();
|
|
3794
3895
|
})();
|
|
3795
3896
|
|
|
3796
|
-
// bazel-out/
|
|
3897
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/template_semantics.mjs
|
|
3797
3898
|
import { ImplicitReceiver as ImplicitReceiver3, RecursiveAstVisitor as RecursiveAstVisitor2, TmplAstVariable } from "@angular/compiler";
|
|
3798
3899
|
var ExpressionSemanticVisitor = class extends RecursiveAstVisitor2 {
|
|
3799
3900
|
constructor(templateId, boundTarget, oob) {
|
|
@@ -3817,7 +3918,7 @@ var ExpressionSemanticVisitor = class extends RecursiveAstVisitor2 {
|
|
|
3817
3918
|
}
|
|
3818
3919
|
};
|
|
3819
3920
|
|
|
3820
|
-
// bazel-out/
|
|
3921
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_check_block.mjs
|
|
3821
3922
|
var TcbGenericContextBehavior;
|
|
3822
3923
|
(function(TcbGenericContextBehavior2) {
|
|
3823
3924
|
TcbGenericContextBehavior2[TcbGenericContextBehavior2["UseEmitter"] = 0] = "UseEmitter";
|
|
@@ -3826,9 +3927,9 @@ var TcbGenericContextBehavior;
|
|
|
3826
3927
|
})(TcbGenericContextBehavior || (TcbGenericContextBehavior = {}));
|
|
3827
3928
|
function generateTypeCheckBlock(env, ref, name, meta, domSchemaChecker, oobRecorder, genericContextBehavior) {
|
|
3828
3929
|
const tcb = new Context(env, domSchemaChecker, oobRecorder, meta.id, meta.boundTarget, meta.pipes, meta.schemas, meta.isStandalone);
|
|
3829
|
-
const scope = Scope.forNodes(tcb, null, tcb.boundTarget.target.template, null);
|
|
3930
|
+
const scope = Scope.forNodes(tcb, null, null, tcb.boundTarget.target.template, null);
|
|
3830
3931
|
const ctxRawType = env.referenceType(ref);
|
|
3831
|
-
if (!
|
|
3932
|
+
if (!ts28.isTypeReferenceNode(ctxRawType)) {
|
|
3832
3933
|
throw new Error(`Expected TypeReferenceNode when referencing the ctx param for ${ref.debugName}`);
|
|
3833
3934
|
}
|
|
3834
3935
|
let typeParameters = void 0;
|
|
@@ -3840,25 +3941,25 @@ function generateTypeCheckBlock(env, ref, name, meta, domSchemaChecker, oobRecor
|
|
|
3840
3941
|
switch (genericContextBehavior) {
|
|
3841
3942
|
case TcbGenericContextBehavior.UseEmitter:
|
|
3842
3943
|
typeParameters = new TypeParameterEmitter(ref.node.typeParameters, env.reflector).emit((typeRef) => env.referenceType(typeRef));
|
|
3843
|
-
typeArguments = typeParameters.map((param) =>
|
|
3944
|
+
typeArguments = typeParameters.map((param) => ts28.factory.createTypeReferenceNode(param.name));
|
|
3844
3945
|
break;
|
|
3845
3946
|
case TcbGenericContextBehavior.CopyClassNodes:
|
|
3846
3947
|
typeParameters = [...ref.node.typeParameters];
|
|
3847
|
-
typeArguments = typeParameters.map((param) =>
|
|
3948
|
+
typeArguments = typeParameters.map((param) => ts28.factory.createTypeReferenceNode(param.name));
|
|
3848
3949
|
break;
|
|
3849
3950
|
case TcbGenericContextBehavior.FallbackToAny:
|
|
3850
|
-
typeArguments = ref.node.typeParameters.map(() =>
|
|
3951
|
+
typeArguments = ref.node.typeParameters.map(() => ts28.factory.createKeywordTypeNode(ts28.SyntaxKind.AnyKeyword));
|
|
3851
3952
|
break;
|
|
3852
3953
|
}
|
|
3853
3954
|
}
|
|
3854
3955
|
const paramList = [tcbThisParam(ctxRawType.typeName, typeArguments)];
|
|
3855
3956
|
const scopeStatements = scope.render();
|
|
3856
|
-
const innerBody =
|
|
3957
|
+
const innerBody = ts28.factory.createBlock([
|
|
3857
3958
|
...env.getPreludeStatements(),
|
|
3858
3959
|
...scopeStatements
|
|
3859
3960
|
]);
|
|
3860
|
-
const body =
|
|
3861
|
-
const fnDecl =
|
|
3961
|
+
const body = ts28.factory.createBlock([ts28.factory.createIfStatement(ts28.factory.createTrue(), innerBody, void 0)]);
|
|
3962
|
+
const fnDecl = ts28.factory.createFunctionDeclaration(
|
|
3862
3963
|
void 0,
|
|
3863
3964
|
void 0,
|
|
3864
3965
|
name,
|
|
@@ -3907,7 +4008,7 @@ var TcbTemplateVariableOp = class extends TcbOp {
|
|
|
3907
4008
|
execute() {
|
|
3908
4009
|
const ctx = this.scope.resolve(this.template);
|
|
3909
4010
|
const id = this.tcb.allocateId();
|
|
3910
|
-
const initializer =
|
|
4011
|
+
const initializer = ts28.factory.createPropertyAccessExpression(
|
|
3911
4012
|
ctx,
|
|
3912
4013
|
this.variable.value || "$implicit"
|
|
3913
4014
|
);
|
|
@@ -3933,7 +4034,7 @@ var TcbTemplateContextOp = class extends TcbOp {
|
|
|
3933
4034
|
}
|
|
3934
4035
|
execute() {
|
|
3935
4036
|
const ctx = this.tcb.allocateId();
|
|
3936
|
-
const type =
|
|
4037
|
+
const type = ts28.factory.createKeywordTypeNode(ts28.SyntaxKind.AnyKeyword);
|
|
3937
4038
|
this.scope.addStatement(tsDeclareVariable(ctx, type));
|
|
3938
4039
|
return ctx;
|
|
3939
4040
|
}
|
|
@@ -3986,16 +4087,16 @@ var TcbTemplateBodyOp = class extends TcbOp {
|
|
|
3986
4087
|
}
|
|
3987
4088
|
let guard = null;
|
|
3988
4089
|
if (directiveGuards.length > 0) {
|
|
3989
|
-
guard = directiveGuards.reduce((expr, dirGuard) =>
|
|
4090
|
+
guard = directiveGuards.reduce((expr, dirGuard) => ts28.factory.createBinaryExpression(expr, ts28.SyntaxKind.AmpersandAmpersandToken, dirGuard), directiveGuards.pop());
|
|
3990
4091
|
}
|
|
3991
|
-
const tmplScope = Scope.forNodes(this.tcb, this.scope, this.template, guard);
|
|
4092
|
+
const tmplScope = Scope.forNodes(this.tcb, this.scope, this.template, this.template.children, guard);
|
|
3992
4093
|
const statements = tmplScope.render();
|
|
3993
4094
|
if (statements.length === 0) {
|
|
3994
4095
|
return null;
|
|
3995
4096
|
}
|
|
3996
|
-
let tmplBlock =
|
|
4097
|
+
let tmplBlock = ts28.factory.createBlock(statements);
|
|
3997
4098
|
if (guard !== null) {
|
|
3998
|
-
tmplBlock =
|
|
4099
|
+
tmplBlock = ts28.factory.createIfStatement(guard, tmplBlock);
|
|
3999
4100
|
}
|
|
4000
4101
|
this.scope.addStatement(tmplBlock);
|
|
4001
4102
|
return null;
|
|
@@ -4013,7 +4114,7 @@ var TcbExpressionOp = class extends TcbOp {
|
|
|
4013
4114
|
}
|
|
4014
4115
|
execute() {
|
|
4015
4116
|
const expr = tcbExpression(this.expression, this.tcb, this.scope);
|
|
4016
|
-
this.scope.addStatement(
|
|
4117
|
+
this.scope.addStatement(ts28.factory.createExpressionStatement(expr));
|
|
4017
4118
|
return null;
|
|
4018
4119
|
}
|
|
4019
4120
|
};
|
|
@@ -4035,11 +4136,11 @@ var TcbDirectiveTypeOpBase = class extends TcbOp {
|
|
|
4035
4136
|
if (this.dir.isGeneric === false || dirRef.node.typeParameters === void 0) {
|
|
4036
4137
|
type = rawType;
|
|
4037
4138
|
} else {
|
|
4038
|
-
if (!
|
|
4139
|
+
if (!ts28.isTypeReferenceNode(rawType)) {
|
|
4039
4140
|
throw new Error(`Expected TypeReferenceNode when referencing the type for ${this.dir.ref.debugName}`);
|
|
4040
4141
|
}
|
|
4041
|
-
const typeArguments = dirRef.node.typeParameters.map(() =>
|
|
4042
|
-
type =
|
|
4142
|
+
const typeArguments = dirRef.node.typeParameters.map(() => ts28.factory.createKeywordTypeNode(ts28.SyntaxKind.AnyKeyword));
|
|
4143
|
+
type = ts28.factory.createTypeReferenceNode(rawType.typeName, typeArguments);
|
|
4043
4144
|
}
|
|
4044
4145
|
const id = this.tcb.allocateId();
|
|
4045
4146
|
addExpressionIdentifier(type, ExpressionIdentifier.DIRECTIVE);
|
|
@@ -4080,11 +4181,11 @@ var TcbReferenceOp = class extends TcbOp {
|
|
|
4080
4181
|
const id = this.tcb.allocateId();
|
|
4081
4182
|
let initializer = this.target instanceof TmplAstTemplate2 || this.target instanceof TmplAstElement3 ? this.scope.resolve(this.target) : this.scope.resolve(this.host, this.target);
|
|
4082
4183
|
if (this.target instanceof TmplAstElement3 && !this.tcb.env.config.checkTypeOfDomReferences || !this.tcb.env.config.checkTypeOfNonDomReferences) {
|
|
4083
|
-
initializer =
|
|
4184
|
+
initializer = ts28.factory.createAsExpression(initializer, ts28.factory.createKeywordTypeNode(ts28.SyntaxKind.AnyKeyword));
|
|
4084
4185
|
} else if (this.target instanceof TmplAstTemplate2) {
|
|
4085
|
-
initializer =
|
|
4086
|
-
initializer =
|
|
4087
|
-
initializer =
|
|
4186
|
+
initializer = ts28.factory.createAsExpression(initializer, ts28.factory.createKeywordTypeNode(ts28.SyntaxKind.AnyKeyword));
|
|
4187
|
+
initializer = ts28.factory.createAsExpression(initializer, this.tcb.env.referenceExternalType("@angular/core", "TemplateRef", [DYNAMIC_TYPE]));
|
|
4188
|
+
initializer = ts28.factory.createParenthesizedExpression(initializer);
|
|
4088
4189
|
}
|
|
4089
4190
|
addParseSpanInfo(initializer, this.node.sourceSpan);
|
|
4090
4191
|
addParseSpanInfo(id, this.node.keySpan);
|
|
@@ -4177,7 +4278,7 @@ var TcbDirectiveInputsOp = class extends TcbOp {
|
|
|
4177
4278
|
type = this.tcb.env.referenceTransplantedType(new TransplantedType(transformType));
|
|
4178
4279
|
} else {
|
|
4179
4280
|
const dirTypeRef = this.tcb.env.referenceType(this.dir.ref);
|
|
4180
|
-
if (!
|
|
4281
|
+
if (!ts28.isTypeReferenceNode(dirTypeRef)) {
|
|
4181
4282
|
throw new Error(`Expected TypeReferenceNode from reference to ${this.dir.ref.debugName}`);
|
|
4182
4283
|
}
|
|
4183
4284
|
type = tsCreateTypeQueryForCoercedInput(dirTypeRef.typeName, fieldName);
|
|
@@ -4193,10 +4294,10 @@ var TcbDirectiveInputsOp = class extends TcbOp {
|
|
|
4193
4294
|
}
|
|
4194
4295
|
const id = this.tcb.allocateId();
|
|
4195
4296
|
const dirTypeRef = this.tcb.env.referenceType(this.dir.ref);
|
|
4196
|
-
if (!
|
|
4297
|
+
if (!ts28.isTypeReferenceNode(dirTypeRef)) {
|
|
4197
4298
|
throw new Error(`Expected TypeReferenceNode from reference to ${this.dir.ref.debugName}`);
|
|
4198
4299
|
}
|
|
4199
|
-
const type =
|
|
4300
|
+
const type = ts28.factory.createIndexedAccessTypeNode(ts28.factory.createTypeQueryNode(dirId), ts28.factory.createLiteralTypeNode(ts28.factory.createStringLiteral(fieldName)));
|
|
4200
4301
|
const temp = tsDeclareVariable(id, type);
|
|
4201
4302
|
this.scope.addStatement(temp);
|
|
4202
4303
|
target = id;
|
|
@@ -4204,18 +4305,18 @@ var TcbDirectiveInputsOp = class extends TcbOp {
|
|
|
4204
4305
|
if (dirId === null) {
|
|
4205
4306
|
dirId = this.scope.resolve(this.node, this.dir);
|
|
4206
4307
|
}
|
|
4207
|
-
target = this.dir.stringLiteralInputFields.has(fieldName) ?
|
|
4308
|
+
target = this.dir.stringLiteralInputFields.has(fieldName) ? ts28.factory.createElementAccessExpression(dirId, ts28.factory.createStringLiteral(fieldName)) : ts28.factory.createPropertyAccessExpression(dirId, ts28.factory.createIdentifier(fieldName));
|
|
4208
4309
|
}
|
|
4209
4310
|
if (attr.attribute.keySpan !== void 0) {
|
|
4210
4311
|
addParseSpanInfo(target, attr.attribute.keySpan);
|
|
4211
4312
|
}
|
|
4212
|
-
assignment =
|
|
4313
|
+
assignment = ts28.factory.createBinaryExpression(target, ts28.SyntaxKind.EqualsToken, assignment);
|
|
4213
4314
|
}
|
|
4214
4315
|
addParseSpanInfo(assignment, attr.attribute.sourceSpan);
|
|
4215
4316
|
if (!this.tcb.env.config.checkTypeOfAttributes && attr.attribute instanceof TmplAstTextAttribute2) {
|
|
4216
4317
|
markIgnoreDiagnostics(assignment);
|
|
4217
4318
|
}
|
|
4218
|
-
this.scope.addStatement(
|
|
4319
|
+
this.scope.addStatement(ts28.factory.createExpressionStatement(assignment));
|
|
4219
4320
|
}
|
|
4220
4321
|
this.checkRequiredInputs(seenRequiredInputs);
|
|
4221
4322
|
return null;
|
|
@@ -4246,7 +4347,7 @@ var TcbDirectiveCtorCircularFallbackOp = class extends TcbOp {
|
|
|
4246
4347
|
execute() {
|
|
4247
4348
|
const id = this.tcb.allocateId();
|
|
4248
4349
|
const typeCtor = this.tcb.env.typeCtorFor(this.dir);
|
|
4249
|
-
const circularPlaceholder =
|
|
4350
|
+
const circularPlaceholder = ts28.factory.createCallExpression(typeCtor, void 0, [ts28.factory.createNonNullExpression(ts28.factory.createNull())]);
|
|
4250
4351
|
this.scope.addStatement(tsCreateVariable(id, circularPlaceholder));
|
|
4251
4352
|
return id;
|
|
4252
4353
|
}
|
|
@@ -4314,15 +4415,15 @@ var TcbUnclaimedInputsOp = class extends TcbOp {
|
|
|
4314
4415
|
elId = this.scope.resolve(this.element);
|
|
4315
4416
|
}
|
|
4316
4417
|
const propertyName = (_a = ATTR_TO_PROP.get(binding.name)) != null ? _a : binding.name;
|
|
4317
|
-
const prop =
|
|
4318
|
-
const stmt =
|
|
4418
|
+
const prop = ts28.factory.createElementAccessExpression(elId, ts28.factory.createStringLiteral(propertyName));
|
|
4419
|
+
const stmt = ts28.factory.createBinaryExpression(prop, ts28.SyntaxKind.EqualsToken, wrapForDiagnostics(expr));
|
|
4319
4420
|
addParseSpanInfo(stmt, binding.sourceSpan);
|
|
4320
|
-
this.scope.addStatement(
|
|
4421
|
+
this.scope.addStatement(ts28.factory.createExpressionStatement(stmt));
|
|
4321
4422
|
} else {
|
|
4322
|
-
this.scope.addStatement(
|
|
4423
|
+
this.scope.addStatement(ts28.factory.createExpressionStatement(expr));
|
|
4323
4424
|
}
|
|
4324
4425
|
} else {
|
|
4325
|
-
this.scope.addStatement(
|
|
4426
|
+
this.scope.addStatement(ts28.factory.createExpressionStatement(expr));
|
|
4326
4427
|
}
|
|
4327
4428
|
}
|
|
4328
4429
|
return null;
|
|
@@ -4354,18 +4455,18 @@ var TcbDirectiveOutputsOp = class extends TcbOp {
|
|
|
4354
4455
|
if (dirId === null) {
|
|
4355
4456
|
dirId = this.scope.resolve(this.node, this.dir);
|
|
4356
4457
|
}
|
|
4357
|
-
const outputField =
|
|
4458
|
+
const outputField = ts28.factory.createElementAccessExpression(dirId, ts28.factory.createStringLiteral(field));
|
|
4358
4459
|
addParseSpanInfo(outputField, output.keySpan);
|
|
4359
4460
|
if (this.tcb.env.config.checkTypeOfOutputEvents) {
|
|
4360
4461
|
const handler = tcbCreateEventHandler(output, this.tcb, this.scope, 0);
|
|
4361
|
-
const subscribeFn =
|
|
4362
|
-
const call =
|
|
4462
|
+
const subscribeFn = ts28.factory.createPropertyAccessExpression(outputField, "subscribe");
|
|
4463
|
+
const call = ts28.factory.createCallExpression(subscribeFn, void 0, [handler]);
|
|
4363
4464
|
addParseSpanInfo(call, output.sourceSpan);
|
|
4364
|
-
this.scope.addStatement(
|
|
4465
|
+
this.scope.addStatement(ts28.factory.createExpressionStatement(call));
|
|
4365
4466
|
} else {
|
|
4366
|
-
this.scope.addStatement(
|
|
4467
|
+
this.scope.addStatement(ts28.factory.createExpressionStatement(outputField));
|
|
4367
4468
|
const handler = tcbCreateEventHandler(output, this.tcb, this.scope, 1);
|
|
4368
|
-
this.scope.addStatement(
|
|
4469
|
+
this.scope.addStatement(ts28.factory.createExpressionStatement(handler));
|
|
4369
4470
|
}
|
|
4370
4471
|
ExpressionSemanticVisitor.visit(output.handler, this.tcb.id, this.tcb.boundTarget, this.tcb.oobRecorder);
|
|
4371
4472
|
}
|
|
@@ -4398,24 +4499,24 @@ var TcbUnclaimedOutputsOp = class extends TcbOp {
|
|
|
4398
4499
|
if (output.type === 1) {
|
|
4399
4500
|
const eventType = this.tcb.env.config.checkTypeOfAnimationEvents ? this.tcb.env.referenceExternalType("@angular/animations", "AnimationEvent") : 1;
|
|
4400
4501
|
const handler = tcbCreateEventHandler(output, this.tcb, this.scope, eventType);
|
|
4401
|
-
this.scope.addStatement(
|
|
4502
|
+
this.scope.addStatement(ts28.factory.createExpressionStatement(handler));
|
|
4402
4503
|
} else if (this.tcb.env.config.checkTypeOfDomEvents) {
|
|
4403
4504
|
const handler = tcbCreateEventHandler(output, this.tcb, this.scope, 0);
|
|
4404
4505
|
if (elId === null) {
|
|
4405
4506
|
elId = this.scope.resolve(this.element);
|
|
4406
4507
|
}
|
|
4407
|
-
const propertyAccess =
|
|
4508
|
+
const propertyAccess = ts28.factory.createPropertyAccessExpression(elId, "addEventListener");
|
|
4408
4509
|
addParseSpanInfo(propertyAccess, output.keySpan);
|
|
4409
|
-
const call =
|
|
4510
|
+
const call = ts28.factory.createCallExpression(
|
|
4410
4511
|
propertyAccess,
|
|
4411
4512
|
void 0,
|
|
4412
|
-
[
|
|
4513
|
+
[ts28.factory.createStringLiteral(output.name), handler]
|
|
4413
4514
|
);
|
|
4414
4515
|
addParseSpanInfo(call, output.sourceSpan);
|
|
4415
|
-
this.scope.addStatement(
|
|
4516
|
+
this.scope.addStatement(ts28.factory.createExpressionStatement(call));
|
|
4416
4517
|
} else {
|
|
4417
4518
|
const handler = tcbCreateEventHandler(output, this.tcb, this.scope, 1);
|
|
4418
|
-
this.scope.addStatement(
|
|
4519
|
+
this.scope.addStatement(ts28.factory.createExpressionStatement(handler));
|
|
4419
4520
|
}
|
|
4420
4521
|
ExpressionSemanticVisitor.visit(output.handler, this.tcb.id, this.tcb.boundTarget, this.tcb.oobRecorder);
|
|
4421
4522
|
}
|
|
@@ -4429,11 +4530,11 @@ var TcbComponentContextCompletionOp = class extends TcbOp {
|
|
|
4429
4530
|
this.optional = false;
|
|
4430
4531
|
}
|
|
4431
4532
|
execute() {
|
|
4432
|
-
const ctx =
|
|
4433
|
-
const ctxDot =
|
|
4533
|
+
const ctx = ts28.factory.createThis();
|
|
4534
|
+
const ctxDot = ts28.factory.createPropertyAccessExpression(ctx, "");
|
|
4434
4535
|
markIgnoreDiagnostics(ctxDot);
|
|
4435
4536
|
addExpressionIdentifier(ctxDot, ExpressionIdentifier.COMPONENT_COMPLETION);
|
|
4436
|
-
this.scope.addStatement(
|
|
4537
|
+
this.scope.addStatement(ts28.factory.createExpressionStatement(ctxDot));
|
|
4437
4538
|
return null;
|
|
4438
4539
|
}
|
|
4439
4540
|
};
|
|
@@ -4479,6 +4580,7 @@ var TcbIfOp = class extends TcbOp {
|
|
|
4479
4580
|
this.tcb = tcb;
|
|
4480
4581
|
this.scope = scope;
|
|
4481
4582
|
this.block = block;
|
|
4583
|
+
this.expressionScopes = /* @__PURE__ */ new Map();
|
|
4482
4584
|
}
|
|
4483
4585
|
get optional() {
|
|
4484
4586
|
return false;
|
|
@@ -4493,8 +4595,39 @@ var TcbIfOp = class extends TcbOp {
|
|
|
4493
4595
|
if (!branch) {
|
|
4494
4596
|
return void 0;
|
|
4495
4597
|
}
|
|
4496
|
-
|
|
4497
|
-
|
|
4598
|
+
if (branch.expression === null) {
|
|
4599
|
+
const branchScope = Scope.forNodes(this.tcb, this.scope, null, branch.children, this.generateBranchGuard(index));
|
|
4600
|
+
return ts28.factory.createBlock(branchScope.render());
|
|
4601
|
+
}
|
|
4602
|
+
const expressionScope = Scope.forNodes(this.tcb, this.scope, branch, [], null);
|
|
4603
|
+
expressionScope.render().forEach((stmt) => this.scope.addStatement(stmt));
|
|
4604
|
+
this.expressionScopes.set(branch, expressionScope);
|
|
4605
|
+
const expression = branch.expressionAlias === null ? tcbExpression(branch.expression, this.tcb, expressionScope) : expressionScope.resolve(branch.expressionAlias);
|
|
4606
|
+
const bodyScope = Scope.forNodes(this.tcb, expressionScope, null, branch.children, this.generateBranchGuard(index));
|
|
4607
|
+
return ts28.factory.createIfStatement(expression, ts28.factory.createBlock(bodyScope.render()), this.generateBranch(index + 1));
|
|
4608
|
+
}
|
|
4609
|
+
generateBranchGuard(index) {
|
|
4610
|
+
let guard = null;
|
|
4611
|
+
for (let i = 0; i <= index; i++) {
|
|
4612
|
+
const branch = this.block.branches[i];
|
|
4613
|
+
if (branch.expression === null) {
|
|
4614
|
+
continue;
|
|
4615
|
+
}
|
|
4616
|
+
if (!this.expressionScopes.has(branch)) {
|
|
4617
|
+
throw new Error(`Could not determine expression scope of branch at index ${i}`);
|
|
4618
|
+
}
|
|
4619
|
+
const expressionScope = this.expressionScopes.get(branch);
|
|
4620
|
+
let expression;
|
|
4621
|
+
if (branch.expressionAlias === null) {
|
|
4622
|
+
expression = tcbExpression(branch.expression, this.tcb, expressionScope);
|
|
4623
|
+
markIgnoreDiagnostics(expression);
|
|
4624
|
+
} else {
|
|
4625
|
+
expression = expressionScope.resolve(branch.expressionAlias);
|
|
4626
|
+
}
|
|
4627
|
+
const comparisonExpression = i === index ? expression : ts28.factory.createPrefixUnaryExpression(ts28.SyntaxKind.ExclamationToken, ts28.factory.createParenthesizedExpression(expression));
|
|
4628
|
+
guard = guard === null ? comparisonExpression : ts28.factory.createBinaryExpression(guard, ts28.SyntaxKind.AmpersandAmpersandToken, comparisonExpression);
|
|
4629
|
+
}
|
|
4630
|
+
return guard;
|
|
4498
4631
|
}
|
|
4499
4632
|
};
|
|
4500
4633
|
var TcbSwitchOp = class extends TcbOp {
|
|
@@ -4508,18 +4641,51 @@ var TcbSwitchOp = class extends TcbOp {
|
|
|
4508
4641
|
return false;
|
|
4509
4642
|
}
|
|
4510
4643
|
execute() {
|
|
4511
|
-
const
|
|
4644
|
+
const expression = tcbExpression(this.block.expression, this.tcb, this.scope);
|
|
4645
|
+
markIgnoreDiagnostics(expression);
|
|
4646
|
+
const root = this.generateCase(0, expression, null);
|
|
4647
|
+
if (root !== void 0) {
|
|
4648
|
+
this.scope.addStatement(root);
|
|
4649
|
+
}
|
|
4650
|
+
return null;
|
|
4651
|
+
}
|
|
4652
|
+
generateCase(index, switchValue, defaultCase) {
|
|
4653
|
+
if (index >= this.block.cases.length) {
|
|
4654
|
+
if (defaultCase !== null) {
|
|
4655
|
+
const defaultScope = Scope.forNodes(this.tcb, this.scope, null, defaultCase.children, this.generateGuard(defaultCase, switchValue));
|
|
4656
|
+
return ts28.factory.createBlock(defaultScope.render());
|
|
4657
|
+
}
|
|
4658
|
+
return void 0;
|
|
4659
|
+
}
|
|
4660
|
+
const current = this.block.cases[index];
|
|
4661
|
+
if (current.expression === null) {
|
|
4662
|
+
return this.generateCase(index + 1, switchValue, current);
|
|
4663
|
+
}
|
|
4664
|
+
const caseScope = Scope.forNodes(this.tcb, this.scope, null, current.children, this.generateGuard(current, switchValue));
|
|
4665
|
+
const caseValue = tcbExpression(current.expression, this.tcb, caseScope);
|
|
4666
|
+
return ts28.factory.createIfStatement(ts28.factory.createBinaryExpression(switchValue, ts28.SyntaxKind.EqualsEqualsEqualsToken, caseValue), ts28.factory.createBlock(caseScope.render()), this.generateCase(index + 1, switchValue, defaultCase));
|
|
4667
|
+
}
|
|
4668
|
+
generateGuard(node, switchValue) {
|
|
4669
|
+
if (node.expression !== null) {
|
|
4670
|
+
const expression = tcbExpression(node.expression, this.tcb, this.scope);
|
|
4671
|
+
markIgnoreDiagnostics(expression);
|
|
4672
|
+
return ts28.factory.createBinaryExpression(switchValue, ts28.SyntaxKind.EqualsEqualsEqualsToken, expression);
|
|
4673
|
+
}
|
|
4674
|
+
let guard = null;
|
|
4512
4675
|
for (const current of this.block.cases) {
|
|
4513
|
-
const breakStatement = ts27.factory.createBreakStatement();
|
|
4514
|
-
const clauseScope = Scope.forNodes(this.tcb, this.scope, current.children, null);
|
|
4515
4676
|
if (current.expression === null) {
|
|
4516
|
-
|
|
4677
|
+
continue;
|
|
4678
|
+
}
|
|
4679
|
+
const expression = tcbExpression(current.expression, this.tcb, this.scope);
|
|
4680
|
+
markIgnoreDiagnostics(expression);
|
|
4681
|
+
const comparison = ts28.factory.createBinaryExpression(switchValue, ts28.SyntaxKind.ExclamationEqualsEqualsToken, expression);
|
|
4682
|
+
if (guard === null) {
|
|
4683
|
+
guard = comparison;
|
|
4517
4684
|
} else {
|
|
4518
|
-
|
|
4685
|
+
guard = ts28.factory.createBinaryExpression(guard, ts28.SyntaxKind.AmpersandAmpersandToken, comparison);
|
|
4519
4686
|
}
|
|
4520
4687
|
}
|
|
4521
|
-
|
|
4522
|
-
return null;
|
|
4688
|
+
return guard;
|
|
4523
4689
|
}
|
|
4524
4690
|
};
|
|
4525
4691
|
var TcbForOfOp = class extends TcbOp {
|
|
@@ -4533,20 +4699,20 @@ var TcbForOfOp = class extends TcbOp {
|
|
|
4533
4699
|
return false;
|
|
4534
4700
|
}
|
|
4535
4701
|
execute() {
|
|
4536
|
-
const loopScope = Scope.forNodes(this.tcb, this.scope, this.block, null);
|
|
4537
|
-
const initializer =
|
|
4538
|
-
const expression = tcbExpression(this.block.expression, this.tcb, loopScope);
|
|
4702
|
+
const loopScope = Scope.forNodes(this.tcb, this.scope, this.block, this.block.children, null);
|
|
4703
|
+
const initializer = ts28.factory.createVariableDeclarationList([ts28.factory.createVariableDeclaration(this.block.item.name)], ts28.NodeFlags.Const);
|
|
4704
|
+
const expression = ts28.factory.createNonNullExpression(tcbExpression(this.block.expression, this.tcb, loopScope));
|
|
4539
4705
|
const trackTranslator = new TcbForLoopTrackTranslator(this.tcb, loopScope, this.block);
|
|
4540
4706
|
const trackExpression = trackTranslator.translate(this.block.trackBy);
|
|
4541
4707
|
const statements = [
|
|
4542
4708
|
...loopScope.render(),
|
|
4543
|
-
|
|
4709
|
+
ts28.factory.createExpressionStatement(trackExpression)
|
|
4544
4710
|
];
|
|
4545
|
-
this.scope.addStatement(
|
|
4711
|
+
this.scope.addStatement(ts28.factory.createForOfStatement(void 0, initializer, expression, ts28.factory.createBlock(statements)));
|
|
4546
4712
|
return null;
|
|
4547
4713
|
}
|
|
4548
4714
|
};
|
|
4549
|
-
var INFER_TYPE_FOR_CIRCULAR_OP_EXPR =
|
|
4715
|
+
var INFER_TYPE_FOR_CIRCULAR_OP_EXPR = ts28.factory.createNonNullExpression(ts28.factory.createNull());
|
|
4550
4716
|
var Context = class {
|
|
4551
4717
|
constructor(env, domSchemaChecker, oobRecorder, id, boundTarget, pipes, schemas, hostIsStandalone) {
|
|
4552
4718
|
this.env = env;
|
|
@@ -4560,7 +4726,7 @@ var Context = class {
|
|
|
4560
4726
|
this.nextId = 1;
|
|
4561
4727
|
}
|
|
4562
4728
|
allocateId() {
|
|
4563
|
-
return
|
|
4729
|
+
return ts28.factory.createIdentifier(`_t${this.nextId++}`);
|
|
4564
4730
|
}
|
|
4565
4731
|
getPipeByName(name) {
|
|
4566
4732
|
if (!this.pipes.has(name)) {
|
|
@@ -4582,39 +4748,33 @@ var Scope = class {
|
|
|
4582
4748
|
this.varMap = /* @__PURE__ */ new Map();
|
|
4583
4749
|
this.statements = [];
|
|
4584
4750
|
}
|
|
4585
|
-
static forNodes(tcb,
|
|
4586
|
-
const scope = new Scope(tcb,
|
|
4587
|
-
if (
|
|
4751
|
+
static forNodes(tcb, parentScope, scopedNode, children, guard) {
|
|
4752
|
+
const scope = new Scope(tcb, parentScope, guard);
|
|
4753
|
+
if (parentScope === null && tcb.env.config.enableTemplateTypeChecker) {
|
|
4588
4754
|
scope.opQueue.push(new TcbComponentContextCompletionOp(scope));
|
|
4589
4755
|
}
|
|
4590
|
-
|
|
4591
|
-
if (blockOrNodes instanceof TmplAstTemplate2) {
|
|
4756
|
+
if (scopedNode instanceof TmplAstTemplate2) {
|
|
4592
4757
|
const varMap = /* @__PURE__ */ new Map();
|
|
4593
|
-
for (const v of
|
|
4758
|
+
for (const v of scopedNode.variables) {
|
|
4594
4759
|
if (!varMap.has(v.name)) {
|
|
4595
4760
|
varMap.set(v.name, v);
|
|
4596
4761
|
} else {
|
|
4597
4762
|
const firstDecl = varMap.get(v.name);
|
|
4598
4763
|
tcb.oobRecorder.duplicateTemplateVar(tcb.id, v, firstDecl);
|
|
4599
4764
|
}
|
|
4600
|
-
this.registerVariable(scope, v, new TcbTemplateVariableOp(tcb, scope,
|
|
4765
|
+
this.registerVariable(scope, v, new TcbTemplateVariableOp(tcb, scope, scopedNode, v));
|
|
4601
4766
|
}
|
|
4602
|
-
|
|
4603
|
-
|
|
4604
|
-
const { expression, expressionAlias } = blockOrNodes;
|
|
4767
|
+
} else if (scopedNode instanceof TmplAstIfBlockBranch) {
|
|
4768
|
+
const { expression, expressionAlias } = scopedNode;
|
|
4605
4769
|
if (expression !== null && expressionAlias !== null) {
|
|
4606
4770
|
this.registerVariable(scope, expressionAlias, new TcbBlockVariableOp(tcb, scope, tcbExpression(expression, tcb, scope), expressionAlias));
|
|
4607
4771
|
}
|
|
4608
|
-
|
|
4609
|
-
|
|
4610
|
-
|
|
4611
|
-
|
|
4612
|
-
const type = ts27.factory.createKeywordTypeNode(ts27.SyntaxKind.NumberKeyword);
|
|
4772
|
+
} else if (scopedNode instanceof TmplAstForLoopBlock) {
|
|
4773
|
+
this.registerVariable(scope, scopedNode.item, new TcbBlockVariableOp(tcb, scope, ts28.factory.createIdentifier(scopedNode.item.name), scopedNode.item));
|
|
4774
|
+
for (const variable of Object.values(scopedNode.contextVariables)) {
|
|
4775
|
+
const type = ts28.factory.createKeywordTypeNode(ts28.SyntaxKind.NumberKeyword);
|
|
4613
4776
|
this.registerVariable(scope, variable, new TcbBlockImplicitVariableOp(tcb, scope, type, variable));
|
|
4614
4777
|
}
|
|
4615
|
-
children = blockOrNodes.children;
|
|
4616
|
-
} else {
|
|
4617
|
-
children = blockOrNodes;
|
|
4618
4778
|
}
|
|
4619
4779
|
for (const node of children) {
|
|
4620
4780
|
scope.appendNode(node);
|
|
@@ -4629,16 +4789,16 @@ var Scope = class {
|
|
|
4629
4789
|
const res = this.resolveLocal(node, directive);
|
|
4630
4790
|
if (res !== null) {
|
|
4631
4791
|
let clone;
|
|
4632
|
-
if (
|
|
4633
|
-
clone =
|
|
4634
|
-
} else if (
|
|
4635
|
-
clone =
|
|
4792
|
+
if (ts28.isIdentifier(res)) {
|
|
4793
|
+
clone = ts28.factory.createIdentifier(res.text);
|
|
4794
|
+
} else if (ts28.isNonNullExpression(res)) {
|
|
4795
|
+
clone = ts28.factory.createNonNullExpression(res.expression);
|
|
4636
4796
|
} else {
|
|
4637
4797
|
throw new Error(`Could not resolve ${node} to an Identifier or a NonNullExpression`);
|
|
4638
4798
|
}
|
|
4639
|
-
|
|
4799
|
+
ts28.setOriginalNode(clone, res);
|
|
4640
4800
|
clone.parent = clone.parent;
|
|
4641
|
-
return
|
|
4801
|
+
return ts28.setSyntheticTrailingComments(clone, []);
|
|
4642
4802
|
} else if (this.parent !== null) {
|
|
4643
4803
|
return this.parent.resolve(node, directive);
|
|
4644
4804
|
} else {
|
|
@@ -4665,7 +4825,7 @@ var Scope = class {
|
|
|
4665
4825
|
} else if (parentGuards === null) {
|
|
4666
4826
|
return this.guard;
|
|
4667
4827
|
} else {
|
|
4668
|
-
return
|
|
4828
|
+
return ts28.factory.createBinaryExpression(parentGuards, ts28.SyntaxKind.AmpersandAmpersandToken, this.guard);
|
|
4669
4829
|
}
|
|
4670
4830
|
}
|
|
4671
4831
|
resolveLocal(ref, directive) {
|
|
@@ -4732,7 +4892,7 @@ var Scope = class {
|
|
|
4732
4892
|
} else if (node instanceof TmplAstIfBlock) {
|
|
4733
4893
|
this.opQueue.push(new TcbIfOp(this.tcb, this, node));
|
|
4734
4894
|
} else if (node instanceof TmplAstSwitchBlock) {
|
|
4735
|
-
this.opQueue.push(new TcbSwitchOp(this.tcb, this, node));
|
|
4895
|
+
this.opQueue.push(new TcbExpressionOp(this.tcb, this, node.expression), new TcbSwitchOp(this.tcb, this, node));
|
|
4736
4896
|
} else if (node instanceof TmplAstForLoopBlock) {
|
|
4737
4897
|
this.opQueue.push(new TcbForOfOp(this.tcb, this, node));
|
|
4738
4898
|
node.empty && this.appendChildren(node.empty);
|
|
@@ -4890,12 +5050,12 @@ var Scope = class {
|
|
|
4890
5050
|
}
|
|
4891
5051
|
};
|
|
4892
5052
|
function tcbThisParam(name, typeArguments) {
|
|
4893
|
-
return
|
|
5053
|
+
return ts28.factory.createParameterDeclaration(
|
|
4894
5054
|
void 0,
|
|
4895
5055
|
void 0,
|
|
4896
5056
|
"this",
|
|
4897
5057
|
void 0,
|
|
4898
|
-
|
|
5058
|
+
ts28.factory.createTypeReferenceNode(name, typeArguments),
|
|
4899
5059
|
void 0
|
|
4900
5060
|
);
|
|
4901
5061
|
}
|
|
@@ -4920,11 +5080,11 @@ var TcbExpressionTranslator = class {
|
|
|
4920
5080
|
return null;
|
|
4921
5081
|
}
|
|
4922
5082
|
const expr = this.translate(ast.value);
|
|
4923
|
-
const result =
|
|
5083
|
+
const result = ts28.factory.createParenthesizedExpression(ts28.factory.createBinaryExpression(target, ts28.SyntaxKind.EqualsToken, expr));
|
|
4924
5084
|
addParseSpanInfo(result, ast.sourceSpan);
|
|
4925
5085
|
return result;
|
|
4926
5086
|
} else if (ast instanceof ImplicitReceiver4) {
|
|
4927
|
-
return
|
|
5087
|
+
return ts28.factory.createThis();
|
|
4928
5088
|
} else if (ast instanceof BindingPipe) {
|
|
4929
5089
|
const expr = this.translate(ast.exp);
|
|
4930
5090
|
const pipeRef = this.tcb.getPipeByName(ast.name);
|
|
@@ -4936,12 +5096,12 @@ var TcbExpressionTranslator = class {
|
|
|
4936
5096
|
pipe = this.tcb.env.pipeInst(pipeRef);
|
|
4937
5097
|
}
|
|
4938
5098
|
const args = ast.args.map((arg) => this.translate(arg));
|
|
4939
|
-
let methodAccess =
|
|
5099
|
+
let methodAccess = ts28.factory.createPropertyAccessExpression(pipe, "transform");
|
|
4940
5100
|
addParseSpanInfo(methodAccess, ast.nameSpan);
|
|
4941
5101
|
if (!this.tcb.env.config.checkTypeOfPipes) {
|
|
4942
|
-
methodAccess =
|
|
5102
|
+
methodAccess = ts28.factory.createAsExpression(methodAccess, ts28.factory.createKeywordTypeNode(ts28.SyntaxKind.AnyKeyword));
|
|
4943
5103
|
}
|
|
4944
|
-
const result =
|
|
5104
|
+
const result = ts28.factory.createCallExpression(
|
|
4945
5105
|
methodAccess,
|
|
4946
5106
|
void 0,
|
|
4947
5107
|
[expr, ...args]
|
|
@@ -4951,8 +5111,8 @@ var TcbExpressionTranslator = class {
|
|
|
4951
5111
|
} else if ((ast instanceof Call2 || ast instanceof SafeCall) && (ast.receiver instanceof PropertyRead4 || ast.receiver instanceof SafePropertyRead3)) {
|
|
4952
5112
|
if (ast.receiver.receiver instanceof ImplicitReceiver4 && !(ast.receiver.receiver instanceof ThisReceiver) && ast.receiver.name === "$any" && ast.args.length === 1) {
|
|
4953
5113
|
const expr = this.translate(ast.args[0]);
|
|
4954
|
-
const exprAsAny =
|
|
4955
|
-
const result =
|
|
5114
|
+
const exprAsAny = ts28.factory.createAsExpression(expr, ts28.factory.createKeywordTypeNode(ts28.SyntaxKind.AnyKeyword));
|
|
5115
|
+
const result = ts28.factory.createParenthesizedExpression(exprAsAny);
|
|
4956
5116
|
addParseSpanInfo(result, ast.sourceSpan);
|
|
4957
5117
|
return result;
|
|
4958
5118
|
}
|
|
@@ -4963,7 +5123,7 @@ var TcbExpressionTranslator = class {
|
|
|
4963
5123
|
const method = wrapForDiagnostics(receiver);
|
|
4964
5124
|
addParseSpanInfo(method, ast.receiver.nameSpan);
|
|
4965
5125
|
const args = ast.args.map((arg) => this.translate(arg));
|
|
4966
|
-
const node =
|
|
5126
|
+
const node = ts28.factory.createCallExpression(method, void 0, args);
|
|
4967
5127
|
addParseSpanInfo(node, ast.sourceSpan);
|
|
4968
5128
|
return node;
|
|
4969
5129
|
} else {
|
|
@@ -4983,20 +5143,20 @@ var TcbExpressionTranslator = class {
|
|
|
4983
5143
|
function tcbCallTypeCtor(dir, tcb, inputs) {
|
|
4984
5144
|
const typeCtor = tcb.env.typeCtorFor(dir);
|
|
4985
5145
|
const members = inputs.map((input) => {
|
|
4986
|
-
const propertyName =
|
|
5146
|
+
const propertyName = ts28.factory.createStringLiteral(input.field);
|
|
4987
5147
|
if (input.type === "binding") {
|
|
4988
5148
|
const expr = widenBinding(input.expression, tcb);
|
|
4989
|
-
const assignment =
|
|
5149
|
+
const assignment = ts28.factory.createPropertyAssignment(propertyName, wrapForDiagnostics(expr));
|
|
4990
5150
|
addParseSpanInfo(assignment, input.sourceSpan);
|
|
4991
5151
|
return assignment;
|
|
4992
5152
|
} else {
|
|
4993
|
-
return
|
|
5153
|
+
return ts28.factory.createPropertyAssignment(propertyName, NULL_AS_ANY);
|
|
4994
5154
|
}
|
|
4995
5155
|
});
|
|
4996
|
-
return
|
|
5156
|
+
return ts28.factory.createCallExpression(
|
|
4997
5157
|
typeCtor,
|
|
4998
5158
|
void 0,
|
|
4999
|
-
[
|
|
5159
|
+
[ts28.factory.createObjectLiteralExpression(members)]
|
|
5000
5160
|
);
|
|
5001
5161
|
}
|
|
5002
5162
|
function getBoundAttributes(directive, node) {
|
|
@@ -5031,17 +5191,17 @@ function translateInput(attr, tcb, scope) {
|
|
|
5031
5191
|
if (attr instanceof TmplAstBoundAttribute) {
|
|
5032
5192
|
return tcbExpression(attr.value, tcb, scope);
|
|
5033
5193
|
} else {
|
|
5034
|
-
return
|
|
5194
|
+
return ts28.factory.createStringLiteral(attr.value);
|
|
5035
5195
|
}
|
|
5036
5196
|
}
|
|
5037
5197
|
function widenBinding(expr, tcb) {
|
|
5038
5198
|
if (!tcb.env.config.checkTypeOfInputBindings) {
|
|
5039
5199
|
return tsCastToAny(expr);
|
|
5040
5200
|
} else if (!tcb.env.config.strictNullInputBindings) {
|
|
5041
|
-
if (
|
|
5201
|
+
if (ts28.isObjectLiteralExpression(expr) || ts28.isArrayLiteralExpression(expr)) {
|
|
5042
5202
|
return expr;
|
|
5043
5203
|
} else {
|
|
5044
|
-
return
|
|
5204
|
+
return ts28.factory.createNonNullExpression(expr);
|
|
5045
5205
|
}
|
|
5046
5206
|
} else {
|
|
5047
5207
|
return expr;
|
|
@@ -5054,16 +5214,16 @@ function tcbCreateEventHandler(event, tcb, scope, eventType) {
|
|
|
5054
5214
|
if (eventType === 0) {
|
|
5055
5215
|
eventParamType = void 0;
|
|
5056
5216
|
} else if (eventType === 1) {
|
|
5057
|
-
eventParamType =
|
|
5217
|
+
eventParamType = ts28.factory.createKeywordTypeNode(ts28.SyntaxKind.AnyKeyword);
|
|
5058
5218
|
} else {
|
|
5059
5219
|
eventParamType = eventType;
|
|
5060
5220
|
}
|
|
5061
5221
|
const guards = scope.guards();
|
|
5062
|
-
let body =
|
|
5222
|
+
let body = ts28.factory.createExpressionStatement(handler);
|
|
5063
5223
|
if (guards !== null) {
|
|
5064
|
-
body =
|
|
5224
|
+
body = ts28.factory.createIfStatement(guards, body);
|
|
5065
5225
|
}
|
|
5066
|
-
const eventParam =
|
|
5226
|
+
const eventParam = ts28.factory.createParameterDeclaration(
|
|
5067
5227
|
void 0,
|
|
5068
5228
|
void 0,
|
|
5069
5229
|
EVENT_PARAMETER,
|
|
@@ -5071,13 +5231,13 @@ function tcbCreateEventHandler(event, tcb, scope, eventType) {
|
|
|
5071
5231
|
eventParamType
|
|
5072
5232
|
);
|
|
5073
5233
|
addExpressionIdentifier(eventParam, ExpressionIdentifier.EVENT_PARAMETER);
|
|
5074
|
-
return
|
|
5234
|
+
return ts28.factory.createArrowFunction(
|
|
5075
5235
|
void 0,
|
|
5076
5236
|
void 0,
|
|
5077
5237
|
[eventParam],
|
|
5078
|
-
|
|
5238
|
+
ts28.factory.createKeywordTypeNode(ts28.SyntaxKind.AnyKeyword),
|
|
5079
5239
|
void 0,
|
|
5080
|
-
|
|
5240
|
+
ts28.factory.createBlock([body])
|
|
5081
5241
|
);
|
|
5082
5242
|
}
|
|
5083
5243
|
function tcbEventHandlerExpression(ast, tcb, scope) {
|
|
@@ -5106,7 +5266,7 @@ function isSplitTwoWayBinding(inputName, output, inputs, tcb) {
|
|
|
5106
5266
|
var TcbEventHandlerTranslator = class extends TcbExpressionTranslator {
|
|
5107
5267
|
resolve(ast) {
|
|
5108
5268
|
if (ast instanceof PropertyRead4 && ast.receiver instanceof ImplicitReceiver4 && !(ast.receiver instanceof ThisReceiver) && ast.name === EVENT_PARAMETER) {
|
|
5109
|
-
const event =
|
|
5269
|
+
const event = ts28.factory.createIdentifier(EVENT_PARAMETER);
|
|
5110
5270
|
addParseSpanInfo(event, ast.nameSpan);
|
|
5111
5271
|
return event;
|
|
5112
5272
|
}
|
|
@@ -5129,33 +5289,33 @@ var TcbForLoopTrackTranslator = class extends TcbExpressionTranslator {
|
|
|
5129
5289
|
}
|
|
5130
5290
|
};
|
|
5131
5291
|
|
|
5132
|
-
// bazel-out/
|
|
5133
|
-
import
|
|
5292
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_check_file.mjs
|
|
5293
|
+
import ts29 from "typescript";
|
|
5134
5294
|
var TypeCheckFile = class extends Environment {
|
|
5135
5295
|
constructor(fileName, config, refEmitter, reflector, compilerHost) {
|
|
5136
|
-
super(config, new ImportManager(new NoopImportRewriter(), "i"), refEmitter, reflector,
|
|
5296
|
+
super(config, new ImportManager(new NoopImportRewriter(), "i"), refEmitter, reflector, ts29.createSourceFile(compilerHost.getCanonicalFileName(fileName), "", ts29.ScriptTarget.Latest, true));
|
|
5137
5297
|
this.fileName = fileName;
|
|
5138
5298
|
this.nextTcbId = 1;
|
|
5139
5299
|
this.tcbStatements = [];
|
|
5140
5300
|
}
|
|
5141
5301
|
addTypeCheckBlock(ref, meta, domSchemaChecker, oobRecorder, genericContextBehavior) {
|
|
5142
|
-
const fnId =
|
|
5302
|
+
const fnId = ts29.factory.createIdentifier(`_tcb${this.nextTcbId++}`);
|
|
5143
5303
|
const fn = generateTypeCheckBlock(this, ref, fnId, meta, domSchemaChecker, oobRecorder, genericContextBehavior);
|
|
5144
5304
|
this.tcbStatements.push(fn);
|
|
5145
5305
|
}
|
|
5146
5306
|
render(removeComments) {
|
|
5147
5307
|
let source = this.importManager.getAllImports(this.contextFile.fileName).map((i) => `import * as ${i.qualifier.text} from '${i.specifier}';`).join("\n") + "\n\n";
|
|
5148
|
-
const printer =
|
|
5308
|
+
const printer = ts29.createPrinter({ removeComments });
|
|
5149
5309
|
source += "\n";
|
|
5150
5310
|
for (const stmt of this.pipeInstStatements) {
|
|
5151
|
-
source += printer.printNode(
|
|
5311
|
+
source += printer.printNode(ts29.EmitHint.Unspecified, stmt, this.contextFile) + "\n";
|
|
5152
5312
|
}
|
|
5153
5313
|
for (const stmt of this.typeCtorStatements) {
|
|
5154
|
-
source += printer.printNode(
|
|
5314
|
+
source += printer.printNode(ts29.EmitHint.Unspecified, stmt, this.contextFile) + "\n";
|
|
5155
5315
|
}
|
|
5156
5316
|
source += "\n";
|
|
5157
5317
|
for (const stmt of this.tcbStatements) {
|
|
5158
|
-
source += printer.printNode(
|
|
5318
|
+
source += printer.printNode(ts29.EmitHint.Unspecified, stmt, this.contextFile) + "\n";
|
|
5159
5319
|
}
|
|
5160
5320
|
source += "\nexport const IS_A_MODULE = true;\n";
|
|
5161
5321
|
return source;
|
|
@@ -5165,7 +5325,7 @@ var TypeCheckFile = class extends Environment {
|
|
|
5165
5325
|
}
|
|
5166
5326
|
};
|
|
5167
5327
|
|
|
5168
|
-
// bazel-out/
|
|
5328
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/context.mjs
|
|
5169
5329
|
var InliningMode;
|
|
5170
5330
|
(function(InliningMode2) {
|
|
5171
5331
|
InliningMode2[InliningMode2["InlineOps"] = 0] = "InlineOps";
|
|
@@ -5270,7 +5430,7 @@ var TypeCheckContextImpl = class {
|
|
|
5270
5430
|
const importManager = new ImportManager(new NoopImportRewriter(), "_i");
|
|
5271
5431
|
const ops = this.opMap.get(sf).sort(orderOps);
|
|
5272
5432
|
const textParts = splitStringAtPoints(sf.text, ops.map((op) => op.splitPoint));
|
|
5273
|
-
const printer =
|
|
5433
|
+
const printer = ts30.createPrinter({ omitTrailingSemicolon: true });
|
|
5274
5434
|
let code = textParts[0];
|
|
5275
5435
|
ops.forEach((op, idx) => {
|
|
5276
5436
|
const text = op.execute(importManager, sf, this.refEmitter, printer);
|
|
@@ -5351,7 +5511,7 @@ var TypeCheckContextImpl = class {
|
|
|
5351
5511
|
if (span.start.offset === span.end.offset) {
|
|
5352
5512
|
span.end.offset++;
|
|
5353
5513
|
}
|
|
5354
|
-
return makeTemplateDiagnostic(templateId, sourceMapping, span,
|
|
5514
|
+
return makeTemplateDiagnostic(templateId, sourceMapping, span, ts30.DiagnosticCategory.Error, ngErrorCode(ErrorCode.TEMPLATE_PARSE_ERROR), error.msg);
|
|
5355
5515
|
});
|
|
5356
5516
|
}
|
|
5357
5517
|
};
|
|
@@ -5369,9 +5529,9 @@ var InlineTcbOp = class {
|
|
|
5369
5529
|
}
|
|
5370
5530
|
execute(im, sf, refEmitter, printer) {
|
|
5371
5531
|
const env = new Environment(this.config, im, refEmitter, this.reflector, sf);
|
|
5372
|
-
const fnName =
|
|
5532
|
+
const fnName = ts30.factory.createIdentifier(`_tcb_${this.ref.node.pos}`);
|
|
5373
5533
|
const fn = generateTypeCheckBlock(env, this.ref, fnName, this.meta, this.domSchemaChecker, this.oobRecorder, TcbGenericContextBehavior.CopyClassNodes);
|
|
5374
|
-
return printer.printNode(
|
|
5534
|
+
return printer.printNode(ts30.EmitHint.Unspecified, fn, sf);
|
|
5375
5535
|
}
|
|
5376
5536
|
};
|
|
5377
5537
|
var TypeCtorOp = class {
|
|
@@ -5384,7 +5544,7 @@ var TypeCtorOp = class {
|
|
|
5384
5544
|
}
|
|
5385
5545
|
execute(im, sf, refEmitter, printer) {
|
|
5386
5546
|
const tcb = generateInlineTypeCtor(this.ref.node, this.meta);
|
|
5387
|
-
return printer.printNode(
|
|
5547
|
+
return printer.printNode(ts30.EmitHint.Unspecified, tcb, sf);
|
|
5388
5548
|
}
|
|
5389
5549
|
};
|
|
5390
5550
|
function orderOps(op1, op2) {
|
|
@@ -5402,10 +5562,10 @@ function splitStringAtPoints(str, points) {
|
|
|
5402
5562
|
return splits;
|
|
5403
5563
|
}
|
|
5404
5564
|
|
|
5405
|
-
// bazel-out/
|
|
5565
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/source.mjs
|
|
5406
5566
|
import { ParseLocation, ParseSourceSpan } from "@angular/compiler";
|
|
5407
5567
|
|
|
5408
|
-
// bazel-out/
|
|
5568
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/line_mappings.mjs
|
|
5409
5569
|
var LF_CHAR = 10;
|
|
5410
5570
|
var CR_CHAR = 13;
|
|
5411
5571
|
var LINE_SEP_CHAR = 8232;
|
|
@@ -5446,7 +5606,7 @@ function findClosestLineStartPosition(linesMap, position, low = 0, high = linesM
|
|
|
5446
5606
|
return low - 1;
|
|
5447
5607
|
}
|
|
5448
5608
|
|
|
5449
|
-
// bazel-out/
|
|
5609
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/source.mjs
|
|
5450
5610
|
var TemplateSource = class {
|
|
5451
5611
|
constructor(mapping, file) {
|
|
5452
5612
|
this.mapping = mapping;
|
|
@@ -5497,9 +5657,9 @@ var TemplateSourceManager = class {
|
|
|
5497
5657
|
}
|
|
5498
5658
|
};
|
|
5499
5659
|
|
|
5500
|
-
// bazel-out/
|
|
5660
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/template_symbol_builder.mjs
|
|
5501
5661
|
import { AST, ASTWithSource as ASTWithSource3, BindingPipe as BindingPipe2, PropertyRead as PropertyRead5, PropertyWrite as PropertyWrite4, SafePropertyRead as SafePropertyRead4, TmplAstBoundAttribute as TmplAstBoundAttribute2, TmplAstBoundEvent, TmplAstElement as TmplAstElement4, TmplAstReference as TmplAstReference4, TmplAstTemplate as TmplAstTemplate3, TmplAstTextAttribute as TmplAstTextAttribute3, TmplAstVariable as TmplAstVariable3 } from "@angular/compiler";
|
|
5502
|
-
import
|
|
5662
|
+
import ts31 from "typescript";
|
|
5503
5663
|
var SymbolBuilder = class {
|
|
5504
5664
|
constructor(tcbPath, tcbIsShim, typeCheckBlock, templateData, componentScopeReader, getTypeChecker) {
|
|
5505
5665
|
this.tcbPath = tcbPath;
|
|
@@ -5543,7 +5703,7 @@ var SymbolBuilder = class {
|
|
|
5543
5703
|
getSymbolOfElement(element) {
|
|
5544
5704
|
var _a;
|
|
5545
5705
|
const elementSourceSpan = (_a = element.startSourceSpan) != null ? _a : element.sourceSpan;
|
|
5546
|
-
const node = findFirstMatchingNode(this.typeCheckBlock, { withSpan: elementSourceSpan, filter:
|
|
5706
|
+
const node = findFirstMatchingNode(this.typeCheckBlock, { withSpan: elementSourceSpan, filter: ts31.isVariableDeclaration });
|
|
5547
5707
|
if (node === null) {
|
|
5548
5708
|
return null;
|
|
5549
5709
|
}
|
|
@@ -5563,12 +5723,12 @@ var SymbolBuilder = class {
|
|
|
5563
5723
|
var _a;
|
|
5564
5724
|
const elementSourceSpan = (_a = element.startSourceSpan) != null ? _a : element.sourceSpan;
|
|
5565
5725
|
const tcbSourceFile = this.typeCheckBlock.getSourceFile();
|
|
5566
|
-
const isDirectiveDeclaration = (node) => (
|
|
5726
|
+
const isDirectiveDeclaration = (node) => (ts31.isTypeNode(node) || ts31.isIdentifier(node)) && ts31.isVariableDeclaration(node.parent) && hasExpressionIdentifier(tcbSourceFile, node, ExpressionIdentifier.DIRECTIVE);
|
|
5567
5727
|
const nodes = findAllMatchingNodes(this.typeCheckBlock, { withSpan: elementSourceSpan, filter: isDirectiveDeclaration });
|
|
5568
5728
|
const symbols = [];
|
|
5569
5729
|
for (const node of nodes) {
|
|
5570
5730
|
const symbol = this.getSymbolOfTsNode(node.parent);
|
|
5571
|
-
if (symbol === null || !isSymbolWithValueDeclaration(symbol.tsSymbol) || !
|
|
5731
|
+
if (symbol === null || !isSymbolWithValueDeclaration(symbol.tsSymbol) || !ts31.isClassDeclaration(symbol.tsSymbol.valueDeclaration)) {
|
|
5572
5732
|
continue;
|
|
5573
5733
|
}
|
|
5574
5734
|
const meta = this.getDirectiveMeta(element, symbol.tsSymbol.valueDeclaration);
|
|
@@ -5596,7 +5756,7 @@ var SymbolBuilder = class {
|
|
|
5596
5756
|
}
|
|
5597
5757
|
addHostDirectiveSymbols(host, hostDirectives, symbols) {
|
|
5598
5758
|
for (const current of hostDirectives) {
|
|
5599
|
-
if (!
|
|
5759
|
+
if (!ts31.isClassDeclaration(current.directive.node)) {
|
|
5600
5760
|
continue;
|
|
5601
5761
|
}
|
|
5602
5762
|
const symbol = this.getSymbolOfTsNode(current.directive.node);
|
|
@@ -5669,17 +5829,17 @@ var SymbolBuilder = class {
|
|
|
5669
5829
|
if (!isAccessExpression(n)) {
|
|
5670
5830
|
return false;
|
|
5671
5831
|
}
|
|
5672
|
-
if (
|
|
5832
|
+
if (ts31.isPropertyAccessExpression(n)) {
|
|
5673
5833
|
return n.name.getText() === expectedAccess;
|
|
5674
5834
|
} else {
|
|
5675
|
-
return
|
|
5835
|
+
return ts31.isStringLiteral(n.argumentExpression) && n.argumentExpression.text === expectedAccess;
|
|
5676
5836
|
}
|
|
5677
5837
|
}
|
|
5678
5838
|
const outputFieldAccesses = findAllMatchingNodes(this.typeCheckBlock, { withSpan: eventBinding.keySpan, filter });
|
|
5679
5839
|
const bindings = [];
|
|
5680
5840
|
for (const outputFieldAccess of outputFieldAccesses) {
|
|
5681
5841
|
if (consumer instanceof TmplAstTemplate3 || consumer instanceof TmplAstElement4) {
|
|
5682
|
-
if (!
|
|
5842
|
+
if (!ts31.isPropertyAccessExpression(outputFieldAccess)) {
|
|
5683
5843
|
continue;
|
|
5684
5844
|
}
|
|
5685
5845
|
const addEventListener = outputFieldAccess.name;
|
|
@@ -5702,7 +5862,7 @@ var SymbolBuilder = class {
|
|
|
5702
5862
|
}
|
|
5703
5863
|
});
|
|
5704
5864
|
} else {
|
|
5705
|
-
if (!
|
|
5865
|
+
if (!ts31.isElementAccessExpression(outputFieldAccess)) {
|
|
5706
5866
|
continue;
|
|
5707
5867
|
}
|
|
5708
5868
|
const tsSymbol = this.getTypeChecker().getSymbolAtLocation(outputFieldAccess.argumentExpression);
|
|
@@ -5775,7 +5935,7 @@ var SymbolBuilder = class {
|
|
|
5775
5935
|
return null;
|
|
5776
5936
|
}
|
|
5777
5937
|
const [declaration] = tsSymbol.declarations;
|
|
5778
|
-
if (!
|
|
5938
|
+
if (!ts31.isVariableDeclaration(declaration) || !hasExpressionIdentifier(
|
|
5779
5939
|
declaration.getSourceFile(),
|
|
5780
5940
|
(_a = declaration.type) != null ? _a : declaration.name,
|
|
5781
5941
|
ExpressionIdentifier.DIRECTIVE
|
|
@@ -5783,7 +5943,7 @@ var SymbolBuilder = class {
|
|
|
5783
5943
|
return null;
|
|
5784
5944
|
}
|
|
5785
5945
|
const symbol = this.getSymbolOfTsNode(declaration);
|
|
5786
|
-
if (symbol === null || !isSymbolWithValueDeclaration(symbol.tsSymbol) || !
|
|
5946
|
+
if (symbol === null || !isSymbolWithValueDeclaration(symbol.tsSymbol) || !ts31.isClassDeclaration(symbol.tsSymbol.valueDeclaration)) {
|
|
5787
5947
|
return null;
|
|
5788
5948
|
}
|
|
5789
5949
|
const ref = new Reference(symbol.tsSymbol.valueDeclaration);
|
|
@@ -5803,7 +5963,7 @@ var SymbolBuilder = class {
|
|
|
5803
5963
|
};
|
|
5804
5964
|
}
|
|
5805
5965
|
getSymbolOfVariable(variable) {
|
|
5806
|
-
const node = findFirstMatchingNode(this.typeCheckBlock, { withSpan: variable.sourceSpan, filter:
|
|
5966
|
+
const node = findFirstMatchingNode(this.typeCheckBlock, { withSpan: variable.sourceSpan, filter: ts31.isVariableDeclaration });
|
|
5807
5967
|
if (node === null || node.initializer === void 0) {
|
|
5808
5968
|
return null;
|
|
5809
5969
|
}
|
|
@@ -5826,11 +5986,11 @@ var SymbolBuilder = class {
|
|
|
5826
5986
|
}
|
|
5827
5987
|
getSymbolOfReference(ref) {
|
|
5828
5988
|
const target = this.templateData.boundTarget.getReferenceTarget(ref);
|
|
5829
|
-
let node = findFirstMatchingNode(this.typeCheckBlock, { withSpan: ref.sourceSpan, filter:
|
|
5989
|
+
let node = findFirstMatchingNode(this.typeCheckBlock, { withSpan: ref.sourceSpan, filter: ts31.isVariableDeclaration });
|
|
5830
5990
|
if (node === null || target === null || node.initializer === void 0) {
|
|
5831
5991
|
return null;
|
|
5832
5992
|
}
|
|
5833
|
-
const originalDeclaration =
|
|
5993
|
+
const originalDeclaration = ts31.isParenthesizedExpression(node.initializer) && ts31.isAsExpression(node.initializer.expression) ? this.getTypeChecker().getSymbolAtLocation(node.name) : this.getTypeChecker().getSymbolAtLocation(node.initializer);
|
|
5834
5994
|
if (originalDeclaration === void 0 || originalDeclaration.valueDeclaration === void 0) {
|
|
5835
5995
|
return null;
|
|
5836
5996
|
}
|
|
@@ -5854,7 +6014,7 @@ var SymbolBuilder = class {
|
|
|
5854
6014
|
referenceVarLocation: referenceVarTcbLocation
|
|
5855
6015
|
};
|
|
5856
6016
|
} else {
|
|
5857
|
-
if (!
|
|
6017
|
+
if (!ts31.isClassDeclaration(target.directive.ref.node)) {
|
|
5858
6018
|
return null;
|
|
5859
6019
|
}
|
|
5860
6020
|
return {
|
|
@@ -5869,7 +6029,7 @@ var SymbolBuilder = class {
|
|
|
5869
6029
|
}
|
|
5870
6030
|
}
|
|
5871
6031
|
getSymbolOfPipe(expression) {
|
|
5872
|
-
const methodAccess = findFirstMatchingNode(this.typeCheckBlock, { withSpan: expression.nameSpan, filter:
|
|
6032
|
+
const methodAccess = findFirstMatchingNode(this.typeCheckBlock, { withSpan: expression.nameSpan, filter: ts31.isPropertyAccessExpression });
|
|
5873
6033
|
if (methodAccess === null) {
|
|
5874
6034
|
return null;
|
|
5875
6035
|
}
|
|
@@ -5909,7 +6069,7 @@ var SymbolBuilder = class {
|
|
|
5909
6069
|
}
|
|
5910
6070
|
let node = null;
|
|
5911
6071
|
if (expression instanceof PropertyRead5) {
|
|
5912
|
-
node = findFirstMatchingNode(this.typeCheckBlock, { withSpan, filter:
|
|
6072
|
+
node = findFirstMatchingNode(this.typeCheckBlock, { withSpan, filter: ts31.isPropertyAccessExpression });
|
|
5913
6073
|
}
|
|
5914
6074
|
if (node === null) {
|
|
5915
6075
|
node = findFirstMatchingNode(this.typeCheckBlock, { withSpan, filter: anyNodeFilter });
|
|
@@ -5917,10 +6077,10 @@ var SymbolBuilder = class {
|
|
|
5917
6077
|
if (node === null) {
|
|
5918
6078
|
return null;
|
|
5919
6079
|
}
|
|
5920
|
-
while (
|
|
6080
|
+
while (ts31.isParenthesizedExpression(node)) {
|
|
5921
6081
|
node = node.expression;
|
|
5922
6082
|
}
|
|
5923
|
-
if (expression instanceof SafePropertyRead4 &&
|
|
6083
|
+
if (expression instanceof SafePropertyRead4 && ts31.isConditionalExpression(node)) {
|
|
5924
6084
|
const whenTrueSymbol = this.getSymbolOfTsNode(node.whenTrue);
|
|
5925
6085
|
if (whenTrueSymbol === null) {
|
|
5926
6086
|
return null;
|
|
@@ -5937,13 +6097,13 @@ var SymbolBuilder = class {
|
|
|
5937
6097
|
}
|
|
5938
6098
|
getSymbolOfTsNode(node) {
|
|
5939
6099
|
var _a;
|
|
5940
|
-
while (
|
|
6100
|
+
while (ts31.isParenthesizedExpression(node)) {
|
|
5941
6101
|
node = node.expression;
|
|
5942
6102
|
}
|
|
5943
6103
|
let tsSymbol;
|
|
5944
|
-
if (
|
|
6104
|
+
if (ts31.isPropertyAccessExpression(node)) {
|
|
5945
6105
|
tsSymbol = this.getTypeChecker().getSymbolAtLocation(node.name);
|
|
5946
|
-
} else if (
|
|
6106
|
+
} else if (ts31.isElementAccessExpression(node)) {
|
|
5947
6107
|
tsSymbol = this.getTypeChecker().getSymbolAtLocation(node.argumentExpression);
|
|
5948
6108
|
} else {
|
|
5949
6109
|
tsSymbol = this.getTypeChecker().getSymbolAtLocation(node);
|
|
@@ -5961,13 +6121,13 @@ var SymbolBuilder = class {
|
|
|
5961
6121
|
};
|
|
5962
6122
|
}
|
|
5963
6123
|
getTcbPositionForNode(node) {
|
|
5964
|
-
if (
|
|
6124
|
+
if (ts31.isTypeReferenceNode(node)) {
|
|
5965
6125
|
return this.getTcbPositionForNode(node.typeName);
|
|
5966
|
-
} else if (
|
|
6126
|
+
} else if (ts31.isQualifiedName(node)) {
|
|
5967
6127
|
return node.right.getStart();
|
|
5968
|
-
} else if (
|
|
6128
|
+
} else if (ts31.isPropertyAccessExpression(node)) {
|
|
5969
6129
|
return node.name.getStart();
|
|
5970
|
-
} else if (
|
|
6130
|
+
} else if (ts31.isElementAccessExpression(node)) {
|
|
5971
6131
|
return node.argumentExpression.getStart();
|
|
5972
6132
|
} else {
|
|
5973
6133
|
return node.getStart();
|
|
@@ -5981,7 +6141,7 @@ function sourceSpanEqual(a, b) {
|
|
|
5981
6141
|
return a.start.offset === b.start.offset && a.end.offset === b.end.offset;
|
|
5982
6142
|
}
|
|
5983
6143
|
|
|
5984
|
-
// bazel-out/
|
|
6144
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/checker.mjs
|
|
5985
6145
|
var REGISTRY2 = new DomElementSchemaRegistry2();
|
|
5986
6146
|
var TemplateTypeCheckerImpl = class {
|
|
5987
6147
|
constructor(originalProgram, programDriver, typeCheckAdapter, config, refEmitter, reflector, compilerHost, priorBuild, metaReader, localMetaReader, ngModuleIndex, componentScopeReader, typeCheckScopeRegistry, perf) {
|
|
@@ -6678,10 +6838,10 @@ var SingleShimTypeCheckingHost = class extends SingleFileTypeCheckingHost {
|
|
|
6678
6838
|
}
|
|
6679
6839
|
};
|
|
6680
6840
|
|
|
6681
|
-
// bazel-out/
|
|
6841
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/invalid_banana_in_box/index.mjs
|
|
6682
6842
|
import { TmplAstBoundEvent as TmplAstBoundEvent2 } from "@angular/compiler";
|
|
6683
6843
|
|
|
6684
|
-
// bazel-out/
|
|
6844
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/api/api.mjs
|
|
6685
6845
|
import { ASTWithSource as ASTWithSource4, RecursiveAstVisitor as RecursiveAstVisitor3, TmplAstBoundDeferredTrigger as TmplAstBoundDeferredTrigger2 } from "@angular/compiler";
|
|
6686
6846
|
var TemplateCheckWithVisitor = class {
|
|
6687
6847
|
run(ctx, component, template) {
|
|
@@ -6738,6 +6898,8 @@ var TemplateVisitor2 = class extends RecursiveAstVisitor3 {
|
|
|
6738
6898
|
}
|
|
6739
6899
|
visitTextAttribute(attribute) {
|
|
6740
6900
|
}
|
|
6901
|
+
visitUnknownBlock(block) {
|
|
6902
|
+
}
|
|
6741
6903
|
visitBoundAttribute(attribute) {
|
|
6742
6904
|
this.visitAst(attribute.value);
|
|
6743
6905
|
}
|
|
@@ -6803,7 +6965,7 @@ var TemplateVisitor2 = class extends RecursiveAstVisitor3 {
|
|
|
6803
6965
|
}
|
|
6804
6966
|
};
|
|
6805
6967
|
|
|
6806
|
-
// bazel-out/
|
|
6968
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/invalid_banana_in_box/index.mjs
|
|
6807
6969
|
var InvalidBananaInBoxCheck = class extends TemplateCheckWithVisitor {
|
|
6808
6970
|
constructor() {
|
|
6809
6971
|
super(...arguments);
|
|
@@ -6828,7 +6990,7 @@ var factory = {
|
|
|
6828
6990
|
create: () => new InvalidBananaInBoxCheck()
|
|
6829
6991
|
};
|
|
6830
6992
|
|
|
6831
|
-
// bazel-out/
|
|
6993
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/missing_control_flow_directive/index.mjs
|
|
6832
6994
|
import { TmplAstTemplate as TmplAstTemplate4 } from "@angular/compiler";
|
|
6833
6995
|
var KNOWN_CONTROL_FLOW_DIRECTIVES = /* @__PURE__ */ new Map([
|
|
6834
6996
|
["ngIf", "NgIf"],
|
|
@@ -6873,7 +7035,7 @@ var factory2 = {
|
|
|
6873
7035
|
}
|
|
6874
7036
|
};
|
|
6875
7037
|
|
|
6876
|
-
// bazel-out/
|
|
7038
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/missing_ngforof_let/index.mjs
|
|
6877
7039
|
import { TmplAstTemplate as TmplAstTemplate5 } from "@angular/compiler";
|
|
6878
7040
|
var MissingNgForOfLetCheck = class extends TemplateCheckWithVisitor {
|
|
6879
7041
|
constructor() {
|
|
@@ -6906,9 +7068,9 @@ var factory3 = {
|
|
|
6906
7068
|
create: () => new MissingNgForOfLetCheck()
|
|
6907
7069
|
};
|
|
6908
7070
|
|
|
6909
|
-
// bazel-out/
|
|
7071
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/nullish_coalescing_not_nullable/index.mjs
|
|
6910
7072
|
import { Binary } from "@angular/compiler";
|
|
6911
|
-
import
|
|
7073
|
+
import ts32 from "typescript";
|
|
6912
7074
|
var NullishCoalescingNotNullableCheck = class extends TemplateCheckWithVisitor {
|
|
6913
7075
|
constructor() {
|
|
6914
7076
|
super(...arguments);
|
|
@@ -6922,7 +7084,7 @@ var NullishCoalescingNotNullableCheck = class extends TemplateCheckWithVisitor {
|
|
|
6922
7084
|
return [];
|
|
6923
7085
|
}
|
|
6924
7086
|
const typeLeft = symbolLeft.tsType;
|
|
6925
|
-
if (typeLeft.flags & (
|
|
7087
|
+
if (typeLeft.flags & (ts32.TypeFlags.Any | ts32.TypeFlags.Unknown)) {
|
|
6926
7088
|
return [];
|
|
6927
7089
|
}
|
|
6928
7090
|
if (typeLeft.getNonNullableType() !== typeLeft)
|
|
@@ -6951,9 +7113,9 @@ var factory4 = {
|
|
|
6951
7113
|
}
|
|
6952
7114
|
};
|
|
6953
7115
|
|
|
6954
|
-
// bazel-out/
|
|
7116
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/optional_chain_not_nullable/index.mjs
|
|
6955
7117
|
import { SafeCall as SafeCall2, SafeKeyedRead as SafeKeyedRead2, SafePropertyRead as SafePropertyRead5 } from "@angular/compiler";
|
|
6956
|
-
import
|
|
7118
|
+
import ts33 from "typescript";
|
|
6957
7119
|
var OptionalChainNotNullableCheck = class extends TemplateCheckWithVisitor {
|
|
6958
7120
|
constructor() {
|
|
6959
7121
|
super(...arguments);
|
|
@@ -6967,7 +7129,7 @@ var OptionalChainNotNullableCheck = class extends TemplateCheckWithVisitor {
|
|
|
6967
7129
|
return [];
|
|
6968
7130
|
}
|
|
6969
7131
|
const typeLeft = symbolLeft.tsType;
|
|
6970
|
-
if (typeLeft.flags & (
|
|
7132
|
+
if (typeLeft.flags & (ts33.TypeFlags.Any | ts33.TypeFlags.Unknown)) {
|
|
6971
7133
|
return [];
|
|
6972
7134
|
}
|
|
6973
7135
|
if (typeLeft.getNonNullableType() !== typeLeft)
|
|
@@ -6997,7 +7159,7 @@ var factory5 = {
|
|
|
6997
7159
|
}
|
|
6998
7160
|
};
|
|
6999
7161
|
|
|
7000
|
-
// bazel-out/
|
|
7162
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/suffix_not_supported/index.mjs
|
|
7001
7163
|
import { TmplAstBoundAttribute as TmplAstBoundAttribute3 } from "@angular/compiler";
|
|
7002
7164
|
var STYLE_SUFFIXES = ["px", "%", "em"];
|
|
7003
7165
|
var SuffixNotSupportedCheck = class extends TemplateCheckWithVisitor {
|
|
@@ -7021,7 +7183,7 @@ var factory6 = {
|
|
|
7021
7183
|
create: () => new SuffixNotSupportedCheck()
|
|
7022
7184
|
};
|
|
7023
7185
|
|
|
7024
|
-
// bazel-out/
|
|
7186
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/text_attribute_not_binding/index.mjs
|
|
7025
7187
|
import { TmplAstTextAttribute as TmplAstTextAttribute4 } from "@angular/compiler";
|
|
7026
7188
|
var TextAttributeNotBindingSpec = class extends TemplateCheckWithVisitor {
|
|
7027
7189
|
constructor() {
|
|
@@ -7060,10 +7222,10 @@ var factory7 = {
|
|
|
7060
7222
|
create: () => new TextAttributeNotBindingSpec()
|
|
7061
7223
|
};
|
|
7062
7224
|
|
|
7063
|
-
// bazel-out/
|
|
7064
|
-
import
|
|
7225
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/src/extended_template_checker.mjs
|
|
7226
|
+
import ts34 from "typescript";
|
|
7065
7227
|
|
|
7066
|
-
// bazel-out/
|
|
7228
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/core/api/src/public_options.mjs
|
|
7067
7229
|
var DiagnosticCategoryLabel;
|
|
7068
7230
|
(function(DiagnosticCategoryLabel2) {
|
|
7069
7231
|
DiagnosticCategoryLabel2["Warning"] = "warning";
|
|
@@ -7071,7 +7233,7 @@ var DiagnosticCategoryLabel;
|
|
|
7071
7233
|
DiagnosticCategoryLabel2["Suppress"] = "suppress";
|
|
7072
7234
|
})(DiagnosticCategoryLabel || (DiagnosticCategoryLabel = {}));
|
|
7073
7235
|
|
|
7074
|
-
// bazel-out/
|
|
7236
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/src/extended_template_checker.mjs
|
|
7075
7237
|
var ExtendedTemplateCheckerImpl = class {
|
|
7076
7238
|
constructor(templateTypeChecker, typeChecker, templateCheckFactories, options) {
|
|
7077
7239
|
var _a, _b, _c, _d, _e;
|
|
@@ -7110,9 +7272,9 @@ var ExtendedTemplateCheckerImpl = class {
|
|
|
7110
7272
|
function diagnosticLabelToCategory(label) {
|
|
7111
7273
|
switch (label) {
|
|
7112
7274
|
case DiagnosticCategoryLabel.Warning:
|
|
7113
|
-
return
|
|
7275
|
+
return ts34.DiagnosticCategory.Warning;
|
|
7114
7276
|
case DiagnosticCategoryLabel.Error:
|
|
7115
|
-
return
|
|
7277
|
+
return ts34.DiagnosticCategory.Error;
|
|
7116
7278
|
case DiagnosticCategoryLabel.Suppress:
|
|
7117
7279
|
return null;
|
|
7118
7280
|
default:
|
|
@@ -7124,7 +7286,7 @@ function assertNever(value) {
|
|
|
7124
7286
|
${value}`);
|
|
7125
7287
|
}
|
|
7126
7288
|
|
|
7127
|
-
// bazel-out/
|
|
7289
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/index.mjs
|
|
7128
7290
|
var ALL_DIAGNOSTIC_FACTORIES = [
|
|
7129
7291
|
factory,
|
|
7130
7292
|
factory4,
|
|
@@ -7135,7 +7297,7 @@ var ALL_DIAGNOSTIC_FACTORIES = [
|
|
|
7135
7297
|
factory6
|
|
7136
7298
|
];
|
|
7137
7299
|
|
|
7138
|
-
// bazel-out/
|
|
7300
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/core/src/compiler.mjs
|
|
7139
7301
|
var CompilationTicketKind;
|
|
7140
7302
|
(function(CompilationTicketKind2) {
|
|
7141
7303
|
CompilationTicketKind2[CompilationTicketKind2["Fresh"] = 0] = "Fresh";
|
|
@@ -7207,7 +7369,7 @@ var NgCompiler = class {
|
|
|
7207
7369
|
}
|
|
7208
7370
|
}
|
|
7209
7371
|
constructor(adapter, options, inputProgram, programDriver, incrementalStrategy, incrementalCompilation, enableTemplateTypeChecker, usePoisonedData, livePerfRecorder) {
|
|
7210
|
-
var _a
|
|
7372
|
+
var _a;
|
|
7211
7373
|
this.adapter = adapter;
|
|
7212
7374
|
this.options = options;
|
|
7213
7375
|
this.inputProgram = inputProgram;
|
|
@@ -7221,12 +7383,11 @@ var NgCompiler = class {
|
|
|
7221
7383
|
this.nonTemplateDiagnostics = null;
|
|
7222
7384
|
this.delegatingPerfRecorder = new DelegatingPerfRecorder(this.perfRecorder);
|
|
7223
7385
|
this.enableTemplateTypeChecker = enableTemplateTypeChecker || ((_a = options["_enableTemplateTypeChecker"]) != null ? _a : false);
|
|
7224
|
-
this.enabledBlockTypes = new Set((_b = options["_enabledBlockTypes"]) != null ? _b : []);
|
|
7225
7386
|
this.constructionDiagnostics.push(...this.adapter.constructionDiagnostics, ...verifyCompatibleTypeCheckOptions(this.options));
|
|
7226
7387
|
this.currentProgram = inputProgram;
|
|
7227
7388
|
this.closureCompilerEnabled = !!this.options.annotateForClosureCompiler;
|
|
7228
7389
|
this.entryPoint = adapter.entryPoint !== null ? getSourceFileOrNull(inputProgram, adapter.entryPoint) : null;
|
|
7229
|
-
const moduleResolutionCache =
|
|
7390
|
+
const moduleResolutionCache = ts35.createModuleResolutionCache(
|
|
7230
7391
|
this.adapter.getCurrentDirectory(),
|
|
7231
7392
|
this.adapter.getCanonicalFileName.bind(this.adapter)
|
|
7232
7393
|
);
|
|
@@ -7270,7 +7431,7 @@ var NgCompiler = class {
|
|
|
7270
7431
|
}
|
|
7271
7432
|
for (const clazz of classesToUpdate) {
|
|
7272
7433
|
this.compilation.traitCompiler.updateResources(clazz);
|
|
7273
|
-
if (!
|
|
7434
|
+
if (!ts35.isClassDeclaration(clazz)) {
|
|
7274
7435
|
continue;
|
|
7275
7436
|
}
|
|
7276
7437
|
this.compilation.templateTypeChecker.invalidateClass(clazz);
|
|
@@ -7700,8 +7861,11 @@ var NgCompiler = class {
|
|
|
7700
7861
|
if (supportJitMode === false && compilationMode === CompilationMode.PARTIAL) {
|
|
7701
7862
|
throw new Error('JIT mode support ("supportJitMode" option) cannot be disabled in partial compilation mode.');
|
|
7702
7863
|
}
|
|
7864
|
+
if (supportJitMode === false && this.options.forbidOrphanComponents) {
|
|
7865
|
+
throw new Error('JIT mode support ("supportJitMode" option) cannot be disabled when forbidOrphanComponents is set to true');
|
|
7866
|
+
}
|
|
7703
7867
|
const handlers = [
|
|
7704
|
-
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.
|
|
7868
|
+
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, supportTestBed, compilationMode, deferredSymbolsTracker, !!this.options.forbidOrphanComponents),
|
|
7705
7869
|
new DirectiveDecoratorHandler(reflector, evaluator, metaRegistry, ngModuleScopeRegistry, metaReader, injectableRegistry, refEmitter, referencesRegistry, isCore, strictCtorDeps, semanticDepGraphUpdater, this.closureCompilerEnabled, this.delegatingPerfRecorder, supportTestBed, compilationMode),
|
|
7706
7870
|
new PipeDecoratorHandler(reflector, evaluator, metaRegistry, ngModuleScopeRegistry, injectableRegistry, isCore, this.delegatingPerfRecorder, supportTestBed, compilationMode),
|
|
7707
7871
|
new InjectableDecoratorHandler(reflector, evaluator, isCore, strictCtorDeps, injectableRegistry, this.delegatingPerfRecorder, supportTestBed, compilationMode),
|
|
@@ -7737,18 +7901,18 @@ function isAngularCorePackage(program) {
|
|
|
7737
7901
|
return false;
|
|
7738
7902
|
}
|
|
7739
7903
|
return r3Symbols.statements.some((stmt) => {
|
|
7740
|
-
if (!
|
|
7904
|
+
if (!ts35.isVariableStatement(stmt)) {
|
|
7741
7905
|
return false;
|
|
7742
7906
|
}
|
|
7743
|
-
const modifiers =
|
|
7744
|
-
if (modifiers === void 0 || !modifiers.some((mod) => mod.kind ===
|
|
7907
|
+
const modifiers = ts35.getModifiers(stmt);
|
|
7908
|
+
if (modifiers === void 0 || !modifiers.some((mod) => mod.kind === ts35.SyntaxKind.ExportKeyword)) {
|
|
7745
7909
|
return false;
|
|
7746
7910
|
}
|
|
7747
7911
|
return stmt.declarationList.declarations.some((decl) => {
|
|
7748
|
-
if (!
|
|
7912
|
+
if (!ts35.isIdentifier(decl.name) || decl.name.text !== "ITS_JUST_ANGULAR") {
|
|
7749
7913
|
return false;
|
|
7750
7914
|
}
|
|
7751
|
-
if (decl.initializer === void 0 || decl.initializer.kind !==
|
|
7915
|
+
if (decl.initializer === void 0 || decl.initializer.kind !== ts35.SyntaxKind.TrueKeyword) {
|
|
7752
7916
|
return false;
|
|
7753
7917
|
}
|
|
7754
7918
|
return true;
|
|
@@ -7762,7 +7926,7 @@ function* verifyCompatibleTypeCheckOptions(options) {
|
|
|
7762
7926
|
var _a, _b, _c;
|
|
7763
7927
|
if (options.fullTemplateTypeCheck === false && options.strictTemplates === true) {
|
|
7764
7928
|
yield makeConfigDiagnostic({
|
|
7765
|
-
category:
|
|
7929
|
+
category: ts35.DiagnosticCategory.Error,
|
|
7766
7930
|
code: ErrorCode.CONFIG_STRICT_TEMPLATES_IMPLIES_FULL_TEMPLATE_TYPECHECK,
|
|
7767
7931
|
messageText: `
|
|
7768
7932
|
Angular compiler option "strictTemplates" is enabled, however "fullTemplateTypeCheck" is disabled.
|
|
@@ -7781,7 +7945,7 @@ https://angular.io/guide/template-typecheck
|
|
|
7781
7945
|
}
|
|
7782
7946
|
if (options.extendedDiagnostics && options.strictTemplates === false) {
|
|
7783
7947
|
yield makeConfigDiagnostic({
|
|
7784
|
-
category:
|
|
7948
|
+
category: ts35.DiagnosticCategory.Error,
|
|
7785
7949
|
code: ErrorCode.CONFIG_EXTENDED_DIAGNOSTICS_IMPLIES_STRICT_TEMPLATES,
|
|
7786
7950
|
messageText: `
|
|
7787
7951
|
Angular compiler option "extendedDiagnostics" is configured, however "strictTemplates" is disabled.
|
|
@@ -7798,7 +7962,7 @@ One of the following actions is required:
|
|
|
7798
7962
|
const defaultCategory = (_a = options.extendedDiagnostics) == null ? void 0 : _a.defaultCategory;
|
|
7799
7963
|
if (defaultCategory && !allowedCategoryLabels.includes(defaultCategory)) {
|
|
7800
7964
|
yield makeConfigDiagnostic({
|
|
7801
|
-
category:
|
|
7965
|
+
category: ts35.DiagnosticCategory.Error,
|
|
7802
7966
|
code: ErrorCode.CONFIG_EXTENDED_DIAGNOSTICS_UNKNOWN_CATEGORY_LABEL,
|
|
7803
7967
|
messageText: `
|
|
7804
7968
|
Angular compiler option "extendedDiagnostics.defaultCategory" has an unknown diagnostic category: "${defaultCategory}".
|
|
@@ -7812,7 +7976,7 @@ ${allowedCategoryLabels.join("\n")}
|
|
|
7812
7976
|
for (const [checkName, category] of Object.entries((_c = (_b = options.extendedDiagnostics) == null ? void 0 : _b.checks) != null ? _c : {})) {
|
|
7813
7977
|
if (!allExtendedDiagnosticNames.includes(checkName)) {
|
|
7814
7978
|
yield makeConfigDiagnostic({
|
|
7815
|
-
category:
|
|
7979
|
+
category: ts35.DiagnosticCategory.Error,
|
|
7816
7980
|
code: ErrorCode.CONFIG_EXTENDED_DIAGNOSTICS_UNKNOWN_CHECK,
|
|
7817
7981
|
messageText: `
|
|
7818
7982
|
Angular compiler option "extendedDiagnostics.checks" has an unknown check: "${checkName}".
|
|
@@ -7824,7 +7988,7 @@ ${allExtendedDiagnosticNames.join("\n")}
|
|
|
7824
7988
|
}
|
|
7825
7989
|
if (!allowedCategoryLabels.includes(category)) {
|
|
7826
7990
|
yield makeConfigDiagnostic({
|
|
7827
|
-
category:
|
|
7991
|
+
category: ts35.DiagnosticCategory.Error,
|
|
7828
7992
|
code: ErrorCode.CONFIG_EXTENDED_DIAGNOSTICS_UNKNOWN_CATEGORY_LABEL,
|
|
7829
7993
|
messageText: `
|
|
7830
7994
|
Angular compiler option "extendedDiagnostics.checks['${checkName}']" has an unknown diagnostic category: "${category}".
|
|
@@ -7854,7 +8018,7 @@ var ReferenceGraphAdapter = class {
|
|
|
7854
8018
|
for (const { node } of references) {
|
|
7855
8019
|
let sourceFile = node.getSourceFile();
|
|
7856
8020
|
if (sourceFile === void 0) {
|
|
7857
|
-
sourceFile =
|
|
8021
|
+
sourceFile = ts35.getOriginalNode(node).getSourceFile();
|
|
7858
8022
|
}
|
|
7859
8023
|
if (sourceFile === void 0 || !isDtsPath(sourceFile.fileName)) {
|
|
7860
8024
|
this.graph.add(source, node);
|
|
@@ -7892,8 +8056,8 @@ function versionMapFromProgram(program, driver) {
|
|
|
7892
8056
|
return versions;
|
|
7893
8057
|
}
|
|
7894
8058
|
|
|
7895
|
-
// bazel-out/
|
|
7896
|
-
import
|
|
8059
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/core/src/host.mjs
|
|
8060
|
+
import ts36 from "typescript";
|
|
7897
8061
|
var DelegatingCompilerHost2 = class {
|
|
7898
8062
|
constructor(delegate) {
|
|
7899
8063
|
this.delegate = delegate;
|
|
@@ -7972,7 +8136,7 @@ var NgCompilerHost = class extends DelegatingCompilerHost2 {
|
|
|
7972
8136
|
entryPoint = findFlatIndexEntryPoint(normalizedTsInputFiles);
|
|
7973
8137
|
if (entryPoint === null) {
|
|
7974
8138
|
diagnostics.push({
|
|
7975
|
-
category:
|
|
8139
|
+
category: ts36.DiagnosticCategory.Error,
|
|
7976
8140
|
code: ngErrorCode(ErrorCode.CONFIG_FLAT_MODULE_NO_INDEX),
|
|
7977
8141
|
file: void 0,
|
|
7978
8142
|
start: void 0,
|
|
@@ -8015,17 +8179,17 @@ var NgCompilerHost = class extends DelegatingCompilerHost2 {
|
|
|
8015
8179
|
return this.fileNameToModuleName !== void 0 ? this : null;
|
|
8016
8180
|
}
|
|
8017
8181
|
createCachedResolveModuleNamesFunction() {
|
|
8018
|
-
const moduleResolutionCache =
|
|
8182
|
+
const moduleResolutionCache = ts36.createModuleResolutionCache(this.getCurrentDirectory(), this.getCanonicalFileName.bind(this));
|
|
8019
8183
|
return (moduleNames, containingFile, reusedNames, redirectedReference, options) => {
|
|
8020
8184
|
return moduleNames.map((moduleName) => {
|
|
8021
|
-
const module =
|
|
8185
|
+
const module = ts36.resolveModuleName(moduleName, containingFile, options, this, moduleResolutionCache, redirectedReference);
|
|
8022
8186
|
return module.resolvedModule;
|
|
8023
8187
|
});
|
|
8024
8188
|
};
|
|
8025
8189
|
}
|
|
8026
8190
|
};
|
|
8027
8191
|
|
|
8028
|
-
// bazel-out/
|
|
8192
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/program.mjs
|
|
8029
8193
|
var NgtscProgram = class {
|
|
8030
8194
|
constructor(rootNames, options, delegateHost, oldProgram) {
|
|
8031
8195
|
this.options = options;
|
|
@@ -8042,7 +8206,7 @@ var NgtscProgram = class {
|
|
|
8042
8206
|
if (reuseProgram !== void 0) {
|
|
8043
8207
|
retagAllTsFiles(reuseProgram);
|
|
8044
8208
|
}
|
|
8045
|
-
this.tsProgram = perfRecorder.inPhase(PerfPhase.TypeScriptProgramCreate, () =>
|
|
8209
|
+
this.tsProgram = perfRecorder.inPhase(PerfPhase.TypeScriptProgramCreate, () => ts37.createProgram(this.host.inputFiles, options, this.host, reuseProgram));
|
|
8046
8210
|
perfRecorder.phase(PerfPhase.Unaccounted);
|
|
8047
8211
|
perfRecorder.memory(PerfCheckpoint.TypeScriptProgramCreate);
|
|
8048
8212
|
this.host.postProgramCreationCleanup();
|
|
@@ -8252,37 +8416,37 @@ function mergeEmitResults(emitResults) {
|
|
|
8252
8416
|
return { diagnostics, emitSkipped, emittedFiles };
|
|
8253
8417
|
}
|
|
8254
8418
|
|
|
8255
|
-
// bazel-out/
|
|
8419
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/transformers/program.mjs
|
|
8256
8420
|
function createProgram({ rootNames, options, host, oldProgram }) {
|
|
8257
8421
|
return new NgtscProgram(rootNames, options, host, oldProgram);
|
|
8258
8422
|
}
|
|
8259
8423
|
|
|
8260
|
-
// bazel-out/
|
|
8261
|
-
import
|
|
8424
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/perform_compile.mjs
|
|
8425
|
+
import ts39 from "typescript";
|
|
8262
8426
|
|
|
8263
|
-
// bazel-out/
|
|
8264
|
-
import
|
|
8427
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/transformers/util.mjs
|
|
8428
|
+
import ts38 from "typescript";
|
|
8265
8429
|
function createMessageDiagnostic(messageText) {
|
|
8266
8430
|
return {
|
|
8267
8431
|
file: void 0,
|
|
8268
8432
|
start: void 0,
|
|
8269
8433
|
length: void 0,
|
|
8270
|
-
category:
|
|
8434
|
+
category: ts38.DiagnosticCategory.Message,
|
|
8271
8435
|
messageText,
|
|
8272
8436
|
code: DEFAULT_ERROR_CODE,
|
|
8273
8437
|
source: SOURCE
|
|
8274
8438
|
};
|
|
8275
8439
|
}
|
|
8276
8440
|
|
|
8277
|
-
// bazel-out/
|
|
8441
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/perform_compile.mjs
|
|
8278
8442
|
var defaultFormatHost = {
|
|
8279
|
-
getCurrentDirectory: () =>
|
|
8443
|
+
getCurrentDirectory: () => ts39.sys.getCurrentDirectory(),
|
|
8280
8444
|
getCanonicalFileName: (fileName) => fileName,
|
|
8281
|
-
getNewLine: () =>
|
|
8445
|
+
getNewLine: () => ts39.sys.newLine
|
|
8282
8446
|
};
|
|
8283
8447
|
function formatDiagnostics(diags, host = defaultFormatHost) {
|
|
8284
8448
|
if (diags && diags.length) {
|
|
8285
|
-
return diags.map((diagnostic) => replaceTsWithNgInErrors(
|
|
8449
|
+
return diags.map((diagnostic) => replaceTsWithNgInErrors(ts39.formatDiagnosticsWithColorAndContext([diagnostic], host))).join("");
|
|
8286
8450
|
} else {
|
|
8287
8451
|
return "";
|
|
8288
8452
|
}
|
|
@@ -8299,7 +8463,7 @@ function readConfiguration(project, existingOptions, host = getFileSystem()) {
|
|
|
8299
8463
|
var _a;
|
|
8300
8464
|
try {
|
|
8301
8465
|
const fs = getFileSystem();
|
|
8302
|
-
const readConfigFile = (configFile) =>
|
|
8466
|
+
const readConfigFile = (configFile) => ts39.readConfigFile(configFile, (file) => host.readFile(host.resolve(file)));
|
|
8303
8467
|
const readAngularCompilerOptions = (configFile, parentOptions = {}) => {
|
|
8304
8468
|
const { config: config2, error: error2 } = readConfigFile(configFile);
|
|
8305
8469
|
if (error2) {
|
|
@@ -8334,7 +8498,7 @@ function readConfiguration(project, existingOptions, host = getFileSystem()) {
|
|
|
8334
8498
|
...existingOptions
|
|
8335
8499
|
};
|
|
8336
8500
|
const parseConfigHost = createParseConfigHost(host, fs);
|
|
8337
|
-
const { options, errors, fileNames: rootNames, projectReferences } =
|
|
8501
|
+
const { options, errors, fileNames: rootNames, projectReferences } = ts39.parseJsonConfigFileContent(config, parseConfigHost, basePath, existingCompilerOptions, configFileName);
|
|
8338
8502
|
let emitFlags = EmitFlags.Default;
|
|
8339
8503
|
if (!(options["skipMetadataEmit"] || options["flatModuleOutFile"])) {
|
|
8340
8504
|
emitFlags |= EmitFlags.Metadata;
|
|
@@ -8345,7 +8509,7 @@ function readConfiguration(project, existingOptions, host = getFileSystem()) {
|
|
|
8345
8509
|
return { project: projectFile, rootNames, projectReferences, options, errors, emitFlags };
|
|
8346
8510
|
} catch (e) {
|
|
8347
8511
|
const errors = [{
|
|
8348
|
-
category:
|
|
8512
|
+
category: ts39.DiagnosticCategory.Error,
|
|
8349
8513
|
messageText: (_a = e.stack) != null ? _a : e.message,
|
|
8350
8514
|
file: void 0,
|
|
8351
8515
|
start: void 0,
|
|
@@ -8359,7 +8523,7 @@ function readConfiguration(project, existingOptions, host = getFileSystem()) {
|
|
|
8359
8523
|
function createParseConfigHost(host, fs = getFileSystem()) {
|
|
8360
8524
|
return {
|
|
8361
8525
|
fileExists: host.exists.bind(host),
|
|
8362
|
-
readDirectory:
|
|
8526
|
+
readDirectory: ts39.sys.readDirectory,
|
|
8363
8527
|
readFile: host.readFile.bind(host),
|
|
8364
8528
|
useCaseSensitiveFileNames: fs.isCaseSensitive()
|
|
8365
8529
|
};
|
|
@@ -8379,12 +8543,7 @@ function getExtendedConfigPathWorker(configFile, extendsValue, host, fs) {
|
|
|
8379
8543
|
}
|
|
8380
8544
|
} else {
|
|
8381
8545
|
const parseConfigHost = createParseConfigHost(host, fs);
|
|
8382
|
-
const { resolvedModule } =
|
|
8383
|
-
extendsValue,
|
|
8384
|
-
configFile,
|
|
8385
|
-
{ moduleResolution: 2, resolveJsonModule: true },
|
|
8386
|
-
parseConfigHost
|
|
8387
|
-
);
|
|
8546
|
+
const { resolvedModule } = ts39.nodeModuleNameResolver(extendsValue, configFile, { moduleResolution: ts39.ModuleResolutionKind.Node10, resolveJsonModule: true }, parseConfigHost);
|
|
8388
8547
|
if (resolvedModule) {
|
|
8389
8548
|
return absoluteFrom(resolvedModule.resolvedFileName);
|
|
8390
8549
|
}
|
|
@@ -8394,7 +8553,7 @@ function getExtendedConfigPathWorker(configFile, extendsValue, host, fs) {
|
|
|
8394
8553
|
function exitCodeFromResult(diags) {
|
|
8395
8554
|
if (!diags)
|
|
8396
8555
|
return 0;
|
|
8397
|
-
if (diags.every((diag) => diag.category !==
|
|
8556
|
+
if (diags.every((diag) => diag.category !== ts39.DiagnosticCategory.Error)) {
|
|
8398
8557
|
return 0;
|
|
8399
8558
|
}
|
|
8400
8559
|
return diags.some((d) => d.source === "angular" && d.code === UNKNOWN_ERROR_CODE) ? 2 : 1;
|
|
@@ -8427,7 +8586,7 @@ function performCompilation({ rootNames, options, host, oldProgram, emitCallback
|
|
|
8427
8586
|
} catch (e) {
|
|
8428
8587
|
program = void 0;
|
|
8429
8588
|
allDiagnostics.push({
|
|
8430
|
-
category:
|
|
8589
|
+
category: ts39.DiagnosticCategory.Error,
|
|
8431
8590
|
messageText: (_a = e.stack) != null ? _a : e.message,
|
|
8432
8591
|
code: UNKNOWN_ERROR_CODE,
|
|
8433
8592
|
file: void 0,
|
|
@@ -8454,7 +8613,7 @@ function defaultGatherDiagnostics(program) {
|
|
|
8454
8613
|
return allDiagnostics;
|
|
8455
8614
|
}
|
|
8456
8615
|
function hasErrors(diags) {
|
|
8457
|
-
return diags.some((d) => d.category ===
|
|
8616
|
+
return diags.some((d) => d.category === ts39.DiagnosticCategory.Error);
|
|
8458
8617
|
}
|
|
8459
8618
|
|
|
8460
8619
|
export {
|
|
@@ -8491,4 +8650,4 @@ export {
|
|
|
8491
8650
|
* Use of this source code is governed by an MIT-style license that can be
|
|
8492
8651
|
* found in the LICENSE file at https://angular.io/license
|
|
8493
8652
|
*/
|
|
8494
|
-
//# sourceMappingURL=chunk-
|
|
8653
|
+
//# sourceMappingURL=chunk-35SQ73FP.js.map
|