@angular/compiler-cli 13.3.0 → 14.0.0-next.10
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-7PY7XEFH.js → chunk-5K2JLFXT.js} +7 -7
- package/bundles/chunk-5K2JLFXT.js.map +6 -0
- package/bundles/{chunk-XNYP2SFR.js → chunk-6356XFP6.js} +98 -91
- package/bundles/chunk-6356XFP6.js.map +6 -0
- package/bundles/{chunk-Z2HS4HDG.js → chunk-BRHP6XKM.js} +4 -4
- package/bundles/chunk-BRHP6XKM.js.map +6 -0
- package/bundles/{chunk-LUJ2SCC7.js → chunk-GAGUQCGV.js} +41 -41
- package/bundles/chunk-GAGUQCGV.js.map +6 -0
- package/bundles/{chunk-NC7BJDOB.js → chunk-GMECRI4A.js} +2544 -1803
- package/bundles/chunk-GMECRI4A.js.map +6 -0
- package/bundles/{chunk-WQ3TNYTD.js → chunk-GMSUYBZP.js} +8 -11
- package/bundles/{chunk-WQ3TNYTD.js.map → chunk-GMSUYBZP.js.map} +0 -0
- package/bundles/{chunk-GLCRIILX.js → chunk-LC26KH5A.js} +5 -5
- package/bundles/chunk-LC26KH5A.js.map +6 -0
- package/bundles/{chunk-GJECLAD3.js → chunk-LV3S6HFU.js} +80 -80
- package/bundles/chunk-LV3S6HFU.js.map +6 -0
- package/bundles/{chunk-RK2SUO2Y.js → chunk-MGNOHKS6.js} +521 -939
- package/bundles/chunk-MGNOHKS6.js.map +6 -0
- package/bundles/{chunk-QDWL7SZJ.js → chunk-SJL5HBUW.js} +2 -2
- package/bundles/chunk-SJL5HBUW.js.map +6 -0
- package/bundles/{chunk-ALKVYGAK.js → chunk-T7KW7P7D.js} +74 -67
- package/bundles/chunk-T7KW7P7D.js.map +6 -0
- package/bundles/{chunk-FXU7FMZC.js → chunk-TD64C4QJ.js} +9 -9
- package/bundles/chunk-TD64C4QJ.js.map +6 -0
- package/bundles/{chunk-A5PL3TE6.js → chunk-TV7VZNWL.js} +36 -36
- package/bundles/chunk-TV7VZNWL.js.map +6 -0
- package/bundles/{chunk-IPB4UIZT.js → chunk-TXPPTZTK.js} +6 -6
- package/bundles/chunk-TXPPTZTK.js.map +6 -0
- package/bundles/{chunk-K2Z44JHH.js → chunk-WH4QSABR.js} +9 -9
- package/bundles/chunk-WH4QSABR.js.map +6 -0
- package/bundles/{chunk-SKBLJA43.js → chunk-ZCDB56AX.js} +7 -7
- package/bundles/chunk-ZCDB56AX.js.map +6 -0
- package/bundles/index.js +13 -13
- package/bundles/index.js.map +1 -1
- package/bundles/linker/babel/index.js +13 -13
- package/bundles/linker/babel/index.js.map +1 -1
- package/bundles/linker/index.js +5 -5
- package/bundles/ngcc/index.js +13 -13
- package/bundles/ngcc/index.js.map +1 -1
- package/bundles/ngcc/main-ngcc.js +14 -14
- package/bundles/ngcc/main-ngcc.js.map +1 -1
- package/bundles/ngcc/src/execution/cluster/ngcc_cluster_worker.js +14 -14
- package/bundles/ngcc/src/execution/cluster/ngcc_cluster_worker.js.map +1 -1
- package/bundles/ngcc/src/locking/lock_file_with_child_process/ngcc_lock_unlocker.js +5 -5
- package/bundles/ngcc/src/locking/lock_file_with_child_process/ngcc_lock_unlocker.js.map +1 -1
- package/bundles/private/bazel.js +2 -2
- package/bundles/private/localize.js +4 -4
- package/bundles/private/migrations.js +6 -6
- package/bundles/private/tooling.js +3 -3
- package/bundles/src/bin/ng_xi18n.js +11 -11
- package/bundles/src/bin/ng_xi18n.js.map +1 -1
- package/bundles/src/bin/ngc.js +9 -9
- package/bundles/src/bin/ngc.js.map +1 -1
- package/bundles_metadata.json +1 -1
- package/linker/src/file_linker/emit_scopes/emit_scope.d.ts +7 -3
- package/linker/src/file_linker/emit_scopes/{iife_emit_scope.d.ts → local_emit_scope.d.ts} +7 -11
- package/linker/src/file_linker/partial_linkers/partial_class_metadata_linker_1.d.ts +3 -3
- package/linker/src/file_linker/partial_linkers/partial_component_linker_1.d.ts +3 -3
- package/linker/src/file_linker/partial_linkers/partial_directive_linker_1.d.ts +3 -3
- package/linker/src/file_linker/partial_linkers/partial_factory_linker_1.d.ts +3 -3
- package/linker/src/file_linker/partial_linkers/partial_injectable_linker_1.d.ts +3 -3
- package/linker/src/file_linker/partial_linkers/partial_injector_linker_1.d.ts +3 -3
- package/linker/src/file_linker/partial_linkers/partial_linker.d.ts +8 -1
- package/linker/src/file_linker/partial_linkers/partial_ng_module_linker_1.d.ts +4 -4
- package/linker/src/file_linker/partial_linkers/partial_pipe_linker_1.d.ts +3 -3
- package/ngcc/src/packages/build_marker.d.ts +1 -1
- package/package.json +4 -4
- package/src/ngtsc/annotations/common/index.d.ts +16 -0
- package/src/ngtsc/annotations/{src → common/src}/api.d.ts +1 -1
- package/src/ngtsc/annotations/common/src/di.d.ts +38 -0
- package/src/ngtsc/annotations/{src → common/src}/diagnostics.d.ts +15 -7
- package/src/ngtsc/annotations/common/src/evaluation.d.ts +18 -0
- package/src/ngtsc/annotations/{src → common/src}/factory.d.ts +2 -2
- package/src/ngtsc/annotations/{src → common/src}/metadata.d.ts +2 -2
- package/src/ngtsc/annotations/{src → common/src}/references_registry.d.ts +3 -3
- package/src/ngtsc/annotations/{src → common/src}/util.d.ts +7 -45
- package/src/ngtsc/annotations/component/index.d.ts +9 -0
- package/src/ngtsc/annotations/component/src/diagnostics.d.ts +20 -0
- package/src/ngtsc/annotations/component/src/handler.d.ts +92 -0
- package/src/ngtsc/annotations/component/src/metadata.d.ts +61 -0
- package/src/ngtsc/annotations/component/src/resources.d.ts +123 -0
- package/src/ngtsc/annotations/component/src/scope.d.ts +20 -0
- package/src/ngtsc/annotations/component/src/symbol.d.ts +20 -0
- package/src/ngtsc/annotations/component/src/util.d.ts +26 -0
- package/src/ngtsc/annotations/directive/index.d.ts +11 -0
- package/src/ngtsc/annotations/directive/src/handler.d.ts +59 -0
- package/src/ngtsc/annotations/directive/src/shared.d.ts +30 -0
- package/src/ngtsc/annotations/directive/src/symbol.d.ts +27 -0
- package/src/ngtsc/annotations/index.d.ts +4 -6
- package/src/ngtsc/annotations/ng_module/index.d.ts +9 -0
- package/src/ngtsc/annotations/{src/ng_module.d.ts → ng_module/src/handler.d.ts} +13 -11
- package/src/ngtsc/diagnostics/src/error_code.d.ts +23 -0
- package/src/ngtsc/metadata/src/api.d.ts +19 -0
- package/src/ngtsc/scope/index.d.ts +4 -3
- package/src/ngtsc/scope/src/api.d.ts +21 -5
- package/src/ngtsc/scope/src/component_scope.d.ts +1 -15
- package/src/ngtsc/scope/src/local.d.ts +4 -11
- package/src/ngtsc/scope/src/typecheck.d.ts +1 -1
- package/src/ngtsc/scope/src/util.d.ts +14 -0
- package/src/ngtsc/shims/api.d.ts +0 -1
- package/src/ngtsc/translator/src/typescript_ast_factory.d.ts +1 -4
- package/src/ngtsc/tsc_plugin.d.ts +1 -1
- package/src/ngtsc/typecheck/api/checker.d.ts +6 -6
- package/src/ngtsc/typecheck/api/completion.d.ts +3 -3
- package/src/ngtsc/typecheck/api/symbols.d.ts +23 -16
- package/src/ngtsc/typecheck/src/checker.d.ts +5 -4
- package/src/ngtsc/typecheck/src/completion.d.ts +6 -5
- package/src/ngtsc/typecheck/src/diagnostics.d.ts +6 -5
- package/src/ngtsc/typecheck/src/template_symbol_builder.d.ts +4 -3
- package/src/ngtsc/util/src/typescript.d.ts +0 -5
- package/bundles/chunk-7PY7XEFH.js.map +0 -6
- package/bundles/chunk-A5PL3TE6.js.map +0 -6
- package/bundles/chunk-ALKVYGAK.js.map +0 -6
- package/bundles/chunk-FXU7FMZC.js.map +0 -6
- package/bundles/chunk-GJECLAD3.js.map +0 -6
- package/bundles/chunk-GLCRIILX.js.map +0 -6
- package/bundles/chunk-IPB4UIZT.js.map +0 -6
- package/bundles/chunk-K2Z44JHH.js.map +0 -6
- package/bundles/chunk-LUJ2SCC7.js.map +0 -6
- package/bundles/chunk-NC7BJDOB.js.map +0 -6
- package/bundles/chunk-QDWL7SZJ.js.map +0 -6
- package/bundles/chunk-RK2SUO2Y.js.map +0 -6
- package/bundles/chunk-SKBLJA43.js.map +0 -6
- package/bundles/chunk-XNYP2SFR.js.map +0 -6
- package/bundles/chunk-Z2HS4HDG.js.map +0 -6
- package/src/ngtsc/annotations/src/component.d.ts +0 -246
- package/src/ngtsc/annotations/src/directive.d.ts +0 -99
|
@@ -15,6 +15,8 @@ import {
|
|
|
15
15
|
InjectableClassRegistry,
|
|
16
16
|
InjectableDecoratorHandler,
|
|
17
17
|
LocalMetadataRegistry,
|
|
18
|
+
LocalModuleScopeRegistry,
|
|
19
|
+
MetadataDtsModuleScopeResolver,
|
|
18
20
|
NgModuleDecoratorHandler,
|
|
19
21
|
NoopReferencesRegistry,
|
|
20
22
|
PartialEvaluator,
|
|
@@ -25,20 +27,20 @@ import {
|
|
|
25
27
|
ShimReferenceTagger,
|
|
26
28
|
SummaryGenerator,
|
|
27
29
|
TraitCompiler,
|
|
30
|
+
TypeCheckScopeRegistry,
|
|
28
31
|
aliasTransformFactory,
|
|
29
32
|
copyFileShimData,
|
|
30
33
|
declarationTransformFactory,
|
|
31
|
-
flattenInheritedDirectiveMetadata,
|
|
32
34
|
generatedFactoryTransform,
|
|
33
35
|
isShim,
|
|
34
36
|
ivyTransformFactory,
|
|
35
37
|
retagAllTsFiles,
|
|
36
38
|
untagAllTsFiles
|
|
37
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-GMECRI4A.js";
|
|
38
40
|
import {
|
|
39
41
|
TypeScriptReflectionHost,
|
|
40
42
|
isNamedClassDeclaration
|
|
41
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-5K2JLFXT.js";
|
|
42
44
|
import {
|
|
43
45
|
AbsoluteModuleStrategy,
|
|
44
46
|
AliasStrategy,
|
|
@@ -64,7 +66,6 @@ import {
|
|
|
64
66
|
getRootDirs,
|
|
65
67
|
getSourceFileOrNull,
|
|
66
68
|
getTokenAtPosition,
|
|
67
|
-
identifierOfNode,
|
|
68
69
|
isAssignment,
|
|
69
70
|
isDtsPath,
|
|
70
71
|
isNonDeclarationTsPath,
|
|
@@ -72,14 +73,13 @@ import {
|
|
|
72
73
|
makeDiagnostic,
|
|
73
74
|
makeRelatedInformation,
|
|
74
75
|
ngErrorCode,
|
|
75
|
-
nodeNameForError,
|
|
76
76
|
normalizeSeparators,
|
|
77
77
|
relativePathBetween,
|
|
78
78
|
replaceTsWithNgInErrors,
|
|
79
79
|
toUnredirectedSourceFile,
|
|
80
80
|
translateExpression,
|
|
81
81
|
translateType
|
|
82
|
-
} from "./chunk-
|
|
82
|
+
} from "./chunk-6356XFP6.js";
|
|
83
83
|
import {
|
|
84
84
|
LogicalFileSystem,
|
|
85
85
|
absoluteFrom,
|
|
@@ -89,20 +89,20 @@ import {
|
|
|
89
89
|
getSourceFileOrError,
|
|
90
90
|
join,
|
|
91
91
|
resolve
|
|
92
|
-
} from "./chunk-
|
|
92
|
+
} from "./chunk-TD64C4QJ.js";
|
|
93
93
|
import {
|
|
94
94
|
ActivePerfRecorder,
|
|
95
95
|
DelegatingPerfRecorder,
|
|
96
96
|
PerfCheckpoint,
|
|
97
97
|
PerfEvent,
|
|
98
98
|
PerfPhase
|
|
99
|
-
} from "./chunk-
|
|
99
|
+
} from "./chunk-LC26KH5A.js";
|
|
100
100
|
import {
|
|
101
101
|
__spreadProps,
|
|
102
102
|
__spreadValues
|
|
103
|
-
} from "./chunk-
|
|
103
|
+
} from "./chunk-GMSUYBZP.js";
|
|
104
104
|
|
|
105
|
-
// bazel-out/
|
|
105
|
+
// bazel-out/darwin-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/darwin-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,21 +130,21 @@ function createCompilerHost({ options, tsHost = ts.createCompilerHost(options, t
|
|
|
130
130
|
return tsHost;
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
-
// bazel-out/
|
|
133
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/api/checker.mjs
|
|
134
134
|
var OptimizeFor;
|
|
135
135
|
(function(OptimizeFor2) {
|
|
136
136
|
OptimizeFor2[OptimizeFor2["SingleFile"] = 0] = "SingleFile";
|
|
137
137
|
OptimizeFor2[OptimizeFor2["WholeProgram"] = 1] = "WholeProgram";
|
|
138
138
|
})(OptimizeFor || (OptimizeFor = {}));
|
|
139
139
|
|
|
140
|
-
// bazel-out/
|
|
140
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/api/completion.mjs
|
|
141
141
|
var CompletionKind;
|
|
142
142
|
(function(CompletionKind2) {
|
|
143
143
|
CompletionKind2[CompletionKind2["Reference"] = 0] = "Reference";
|
|
144
144
|
CompletionKind2[CompletionKind2["Variable"] = 1] = "Variable";
|
|
145
145
|
})(CompletionKind || (CompletionKind = {}));
|
|
146
146
|
|
|
147
|
-
// bazel-out/
|
|
147
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/api/symbols.mjs
|
|
148
148
|
var SymbolKind;
|
|
149
149
|
(function(SymbolKind2) {
|
|
150
150
|
SymbolKind2[SymbolKind2["Input"] = 0] = "Input";
|
|
@@ -160,11 +160,11 @@ var SymbolKind;
|
|
|
160
160
|
SymbolKind2[SymbolKind2["Pipe"] = 10] = "Pipe";
|
|
161
161
|
})(SymbolKind || (SymbolKind = {}));
|
|
162
162
|
|
|
163
|
-
// bazel-out/
|
|
163
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/program.mjs
|
|
164
164
|
import { HtmlParser, MessageBundle } from "@angular/compiler";
|
|
165
|
-
import
|
|
165
|
+
import ts30 from "typescript";
|
|
166
166
|
|
|
167
|
-
// bazel-out/
|
|
167
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/transformers/i18n.mjs
|
|
168
168
|
import { Xliff, Xliff2, Xmb } from "@angular/compiler";
|
|
169
169
|
import * as path from "path";
|
|
170
170
|
function i18nGetExtension(formatName) {
|
|
@@ -215,10 +215,10 @@ function getPathNormalizer(basePath) {
|
|
|
215
215
|
};
|
|
216
216
|
}
|
|
217
217
|
|
|
218
|
-
// bazel-out/
|
|
218
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/typescript_support.mjs
|
|
219
219
|
import ts2 from "typescript";
|
|
220
220
|
|
|
221
|
-
// bazel-out/
|
|
221
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/version_helpers.mjs
|
|
222
222
|
function toNumbers(value) {
|
|
223
223
|
const suffixIndex = value.lastIndexOf("-");
|
|
224
224
|
return value.slice(0, suffixIndex === -1 ? value.length : suffixIndex).split(".").map((segment) => {
|
|
@@ -253,8 +253,8 @@ function compareVersions(v1, v2) {
|
|
|
253
253
|
return compareNumbers(toNumbers(v1), toNumbers(v2));
|
|
254
254
|
}
|
|
255
255
|
|
|
256
|
-
// bazel-out/
|
|
257
|
-
var MIN_TS_VERSION = "4.
|
|
256
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/typescript_support.mjs
|
|
257
|
+
var MIN_TS_VERSION = "4.6.2";
|
|
258
258
|
var MAX_TS_VERSION = "4.7.0";
|
|
259
259
|
var tsVersion = ts2.version;
|
|
260
260
|
function checkVersion(version, minVersion, maxVersion) {
|
|
@@ -266,10 +266,10 @@ function verifySupportedTypeScriptVersion() {
|
|
|
266
266
|
checkVersion(tsVersion, MIN_TS_VERSION, MAX_TS_VERSION);
|
|
267
267
|
}
|
|
268
268
|
|
|
269
|
-
// bazel-out/
|
|
270
|
-
import
|
|
269
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/core/src/compiler.mjs
|
|
270
|
+
import ts28 from "typescript";
|
|
271
271
|
|
|
272
|
-
// bazel-out/
|
|
272
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/cycles/src/analyzer.mjs
|
|
273
273
|
var CycleAnalyzer = class {
|
|
274
274
|
constructor(importGraph) {
|
|
275
275
|
this.importGraph = importGraph;
|
|
@@ -340,7 +340,7 @@ var Cycle = class {
|
|
|
340
340
|
}
|
|
341
341
|
};
|
|
342
342
|
|
|
343
|
-
// bazel-out/
|
|
343
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/cycles/src/imports.mjs
|
|
344
344
|
import ts3 from "typescript";
|
|
345
345
|
var ImportGraph = class {
|
|
346
346
|
constructor(checker, perf) {
|
|
@@ -432,7 +432,7 @@ var Found = class {
|
|
|
432
432
|
}
|
|
433
433
|
};
|
|
434
434
|
|
|
435
|
-
// bazel-out/
|
|
435
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/entry_point/src/generator.mjs
|
|
436
436
|
import ts4 from "typescript";
|
|
437
437
|
var FlatIndexGenerator = class {
|
|
438
438
|
constructor(entryPoint, relativeFlatIndexPath, moduleName) {
|
|
@@ -457,7 +457,7 @@ export * from '${relativeEntryPoint}';
|
|
|
457
457
|
}
|
|
458
458
|
};
|
|
459
459
|
|
|
460
|
-
// bazel-out/
|
|
460
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/entry_point/src/logic.mjs
|
|
461
461
|
function findFlatIndexEntryPoint(rootFiles) {
|
|
462
462
|
const tsFiles = rootFiles.filter((file) => isNonDeclarationTsPath(file));
|
|
463
463
|
let resolvedEntryPoint = null;
|
|
@@ -473,7 +473,7 @@ function findFlatIndexEntryPoint(rootFiles) {
|
|
|
473
473
|
return resolvedEntryPoint;
|
|
474
474
|
}
|
|
475
475
|
|
|
476
|
-
// bazel-out/
|
|
476
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/entry_point/src/private_export_checker.mjs
|
|
477
477
|
import ts5 from "typescript";
|
|
478
478
|
function checkForPrivateExports(entryPoint, checker, refGraph) {
|
|
479
479
|
const diagnostics = [];
|
|
@@ -553,7 +553,7 @@ function getDescriptorOfDeclaration(decl) {
|
|
|
553
553
|
}
|
|
554
554
|
}
|
|
555
555
|
|
|
556
|
-
// bazel-out/
|
|
556
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/entry_point/src/reference_graph.mjs
|
|
557
557
|
var ReferenceGraph = class {
|
|
558
558
|
constructor() {
|
|
559
559
|
this.references = /* @__PURE__ */ new Map();
|
|
@@ -607,7 +607,7 @@ var ReferenceGraph = class {
|
|
|
607
607
|
}
|
|
608
608
|
};
|
|
609
609
|
|
|
610
|
-
// bazel-out/
|
|
610
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/program_driver/src/api.mjs
|
|
611
611
|
var NgOriginalFile = Symbol("NgOriginalFile");
|
|
612
612
|
var UpdateMode;
|
|
613
613
|
(function(UpdateMode2) {
|
|
@@ -615,7 +615,7 @@ var UpdateMode;
|
|
|
615
615
|
UpdateMode2[UpdateMode2["Incremental"] = 1] = "Incremental";
|
|
616
616
|
})(UpdateMode || (UpdateMode = {}));
|
|
617
617
|
|
|
618
|
-
// bazel-out/
|
|
618
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/program_driver/src/ts_create_program_driver.mjs
|
|
619
619
|
import ts6 from "typescript";
|
|
620
620
|
var DelegatingCompilerHost = class {
|
|
621
621
|
constructor(delegate) {
|
|
@@ -726,7 +726,7 @@ var TsCreateProgramDriver = class {
|
|
|
726
726
|
}
|
|
727
727
|
};
|
|
728
728
|
|
|
729
|
-
// bazel-out/
|
|
729
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/src/dependency_tracking.mjs
|
|
730
730
|
var FileDependencyGraph = class {
|
|
731
731
|
constructor() {
|
|
732
732
|
this.nodes = /* @__PURE__ */ new Map();
|
|
@@ -793,7 +793,7 @@ function isLogicallyChanged(sf, node, changedTsPaths, deletedTsPaths, changedRes
|
|
|
793
793
|
return false;
|
|
794
794
|
}
|
|
795
795
|
|
|
796
|
-
// bazel-out/
|
|
796
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/src/state.mjs
|
|
797
797
|
var IncrementalStateKind;
|
|
798
798
|
(function(IncrementalStateKind2) {
|
|
799
799
|
IncrementalStateKind2[IncrementalStateKind2["Fresh"] = 0] = "Fresh";
|
|
@@ -801,7 +801,7 @@ var IncrementalStateKind;
|
|
|
801
801
|
IncrementalStateKind2[IncrementalStateKind2["Analyzed"] = 2] = "Analyzed";
|
|
802
802
|
})(IncrementalStateKind || (IncrementalStateKind = {}));
|
|
803
803
|
|
|
804
|
-
// bazel-out/
|
|
804
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/src/incremental.mjs
|
|
805
805
|
var PhaseKind;
|
|
806
806
|
(function(PhaseKind2) {
|
|
807
807
|
PhaseKind2[PhaseKind2["Analysis"] = 0] = "Analysis";
|
|
@@ -1002,7 +1002,7 @@ function toOriginalSourceFile(sf) {
|
|
|
1002
1002
|
}
|
|
1003
1003
|
}
|
|
1004
1004
|
|
|
1005
|
-
// bazel-out/
|
|
1005
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/src/strategy.mjs
|
|
1006
1006
|
var TrackedIncrementalBuildStrategy = class {
|
|
1007
1007
|
constructor() {
|
|
1008
1008
|
this.state = null;
|
|
@@ -1038,7 +1038,7 @@ var PatchedProgramIncrementalBuildStrategy = class {
|
|
|
1038
1038
|
};
|
|
1039
1039
|
var SYM_INCREMENTAL_STATE = Symbol("NgIncrementalState");
|
|
1040
1040
|
|
|
1041
|
-
// bazel-out/
|
|
1041
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/indexer/src/api.mjs
|
|
1042
1042
|
var IdentifierKind;
|
|
1043
1043
|
(function(IdentifierKind2) {
|
|
1044
1044
|
IdentifierKind2[IdentifierKind2["Property"] = 0] = "Property";
|
|
@@ -1056,7 +1056,7 @@ var AbsoluteSourceSpan = class {
|
|
|
1056
1056
|
}
|
|
1057
1057
|
};
|
|
1058
1058
|
|
|
1059
|
-
// bazel-out/
|
|
1059
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/indexer/src/context.mjs
|
|
1060
1060
|
var IndexingContext = class {
|
|
1061
1061
|
constructor() {
|
|
1062
1062
|
this.components = /* @__PURE__ */ new Set();
|
|
@@ -1066,10 +1066,10 @@ var IndexingContext = class {
|
|
|
1066
1066
|
}
|
|
1067
1067
|
};
|
|
1068
1068
|
|
|
1069
|
-
// bazel-out/
|
|
1069
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/indexer/src/transform.mjs
|
|
1070
1070
|
import { ParseSourceFile } from "@angular/compiler";
|
|
1071
1071
|
|
|
1072
|
-
// bazel-out/
|
|
1072
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/indexer/src/template.mjs
|
|
1073
1073
|
import { ASTWithSource, ImplicitReceiver, PropertyRead, PropertyWrite, RecursiveAstVisitor, TmplAstElement, TmplAstRecursiveVisitor, TmplAstReference, TmplAstTemplate } from "@angular/compiler";
|
|
1074
1074
|
var ExpressionVisitor = class extends RecursiveAstVisitor {
|
|
1075
1075
|
constructor(expressionStr, absoluteOffset, boundTemplate, targetToIdentifier) {
|
|
@@ -1306,7 +1306,7 @@ function getTemplateIdentifiers(boundTemplate) {
|
|
|
1306
1306
|
return { identifiers: visitor.identifiers, errors: visitor.errors };
|
|
1307
1307
|
}
|
|
1308
1308
|
|
|
1309
|
-
// bazel-out/
|
|
1309
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/indexer/src/transform.mjs
|
|
1310
1310
|
function generateAnalysis(context) {
|
|
1311
1311
|
const analysis = /* @__PURE__ */ new Map();
|
|
1312
1312
|
context.components.forEach(({ declaration, selector, boundTemplate, templateMeta }) => {
|
|
@@ -1342,7 +1342,7 @@ function generateAnalysis(context) {
|
|
|
1342
1342
|
return analysis;
|
|
1343
1343
|
}
|
|
1344
1344
|
|
|
1345
|
-
// bazel-out/
|
|
1345
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/resource/src/loader.mjs
|
|
1346
1346
|
import ts7 from "typescript";
|
|
1347
1347
|
var CSS_PREPROCESSOR_EXT = /(\.scss|\.sass|\.less|\.styl)$/;
|
|
1348
1348
|
var RESOURCE_MARKER = ".$ngresource$";
|
|
@@ -1488,468 +1488,11 @@ function createLookupResolutionHost(adapter) {
|
|
|
1488
1488
|
};
|
|
1489
1489
|
}
|
|
1490
1490
|
|
|
1491
|
-
// bazel-out/
|
|
1492
|
-
|
|
1493
|
-
constructor(dtsMetaReader, aliasingHost) {
|
|
1494
|
-
this.dtsMetaReader = dtsMetaReader;
|
|
1495
|
-
this.aliasingHost = aliasingHost;
|
|
1496
|
-
this.cache = /* @__PURE__ */ new Map();
|
|
1497
|
-
}
|
|
1498
|
-
resolve(ref) {
|
|
1499
|
-
const clazz = ref.node;
|
|
1500
|
-
const sourceFile = clazz.getSourceFile();
|
|
1501
|
-
if (!sourceFile.isDeclarationFile) {
|
|
1502
|
-
throw new Error(`Debug error: DtsModuleScopeResolver.read(${ref.debugName} from ${sourceFile.fileName}), but not a .d.ts file`);
|
|
1503
|
-
}
|
|
1504
|
-
if (this.cache.has(clazz)) {
|
|
1505
|
-
return this.cache.get(clazz);
|
|
1506
|
-
}
|
|
1507
|
-
const directives = [];
|
|
1508
|
-
const pipes = [];
|
|
1509
|
-
const ngModules = /* @__PURE__ */ new Set([clazz]);
|
|
1510
|
-
const meta = this.dtsMetaReader.getNgModuleMetadata(ref);
|
|
1511
|
-
if (meta === null) {
|
|
1512
|
-
this.cache.set(clazz, null);
|
|
1513
|
-
return null;
|
|
1514
|
-
}
|
|
1515
|
-
const declarations = /* @__PURE__ */ new Set();
|
|
1516
|
-
for (const declRef of meta.declarations) {
|
|
1517
|
-
declarations.add(declRef.node);
|
|
1518
|
-
}
|
|
1519
|
-
for (const exportRef of meta.exports) {
|
|
1520
|
-
const directive = this.dtsMetaReader.getDirectiveMetadata(exportRef);
|
|
1521
|
-
if (directive !== null) {
|
|
1522
|
-
const isReExport = !declarations.has(exportRef.node);
|
|
1523
|
-
directives.push(this.maybeAlias(directive, sourceFile, isReExport));
|
|
1524
|
-
continue;
|
|
1525
|
-
}
|
|
1526
|
-
const pipe = this.dtsMetaReader.getPipeMetadata(exportRef);
|
|
1527
|
-
if (pipe !== null) {
|
|
1528
|
-
const isReExport = !declarations.has(exportRef.node);
|
|
1529
|
-
pipes.push(this.maybeAlias(pipe, sourceFile, isReExport));
|
|
1530
|
-
continue;
|
|
1531
|
-
}
|
|
1532
|
-
const exportScope2 = this.resolve(exportRef);
|
|
1533
|
-
if (exportScope2 !== null) {
|
|
1534
|
-
if (this.aliasingHost === null) {
|
|
1535
|
-
directives.push(...exportScope2.exported.directives);
|
|
1536
|
-
pipes.push(...exportScope2.exported.pipes);
|
|
1537
|
-
} else {
|
|
1538
|
-
for (const directive2 of exportScope2.exported.directives) {
|
|
1539
|
-
directives.push(this.maybeAlias(directive2, sourceFile, true));
|
|
1540
|
-
}
|
|
1541
|
-
for (const pipe2 of exportScope2.exported.pipes) {
|
|
1542
|
-
pipes.push(this.maybeAlias(pipe2, sourceFile, true));
|
|
1543
|
-
}
|
|
1544
|
-
for (const ngModule of exportScope2.exported.ngModules) {
|
|
1545
|
-
ngModules.add(ngModule);
|
|
1546
|
-
}
|
|
1547
|
-
}
|
|
1548
|
-
}
|
|
1549
|
-
continue;
|
|
1550
|
-
}
|
|
1551
|
-
const exportScope = {
|
|
1552
|
-
exported: {
|
|
1553
|
-
directives,
|
|
1554
|
-
pipes,
|
|
1555
|
-
ngModules: Array.from(ngModules),
|
|
1556
|
-
isPoisoned: false
|
|
1557
|
-
}
|
|
1558
|
-
};
|
|
1559
|
-
this.cache.set(clazz, exportScope);
|
|
1560
|
-
return exportScope;
|
|
1561
|
-
}
|
|
1562
|
-
maybeAlias(dirOrPipe, maybeAliasFrom, isReExport) {
|
|
1563
|
-
const ref = dirOrPipe.ref;
|
|
1564
|
-
if (this.aliasingHost === null || ref.node.getSourceFile() === maybeAliasFrom) {
|
|
1565
|
-
return dirOrPipe;
|
|
1566
|
-
}
|
|
1567
|
-
const alias = this.aliasingHost.getAliasIn(ref.node, maybeAliasFrom, isReExport);
|
|
1568
|
-
if (alias === null) {
|
|
1569
|
-
return dirOrPipe;
|
|
1570
|
-
}
|
|
1571
|
-
return __spreadProps(__spreadValues({}, dirOrPipe), {
|
|
1572
|
-
ref: ref.cloneWithAlias(alias)
|
|
1573
|
-
});
|
|
1574
|
-
}
|
|
1575
|
-
};
|
|
1491
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/checker.mjs
|
|
1492
|
+
import { CssSelector, DomElementSchemaRegistry as DomElementSchemaRegistry2 } from "@angular/compiler";
|
|
1576
1493
|
|
|
1577
|
-
// bazel-out/
|
|
1578
|
-
import { ExternalExpr } from "@angular/compiler";
|
|
1494
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/diagnostics/src/diagnostic.mjs
|
|
1579
1495
|
import ts8 from "typescript";
|
|
1580
|
-
var LocalModuleScopeRegistry = class {
|
|
1581
|
-
constructor(localReader, dependencyScopeReader, refEmitter, aliasingHost) {
|
|
1582
|
-
this.localReader = localReader;
|
|
1583
|
-
this.dependencyScopeReader = dependencyScopeReader;
|
|
1584
|
-
this.refEmitter = refEmitter;
|
|
1585
|
-
this.aliasingHost = aliasingHost;
|
|
1586
|
-
this.sealed = false;
|
|
1587
|
-
this.declarationToModule = /* @__PURE__ */ new Map();
|
|
1588
|
-
this.duplicateDeclarations = /* @__PURE__ */ new Map();
|
|
1589
|
-
this.moduleToRef = /* @__PURE__ */ new Map();
|
|
1590
|
-
this.cache = /* @__PURE__ */ new Map();
|
|
1591
|
-
this.remoteScoping = /* @__PURE__ */ new Map();
|
|
1592
|
-
this.scopeErrors = /* @__PURE__ */ new Map();
|
|
1593
|
-
this.modulesWithStructuralErrors = /* @__PURE__ */ new Set();
|
|
1594
|
-
}
|
|
1595
|
-
registerNgModuleMetadata(data) {
|
|
1596
|
-
this.assertCollecting();
|
|
1597
|
-
const ngModule = data.ref.node;
|
|
1598
|
-
this.moduleToRef.set(data.ref.node, data.ref);
|
|
1599
|
-
for (const decl of data.declarations) {
|
|
1600
|
-
this.registerDeclarationOfModule(ngModule, decl, data.rawDeclarations);
|
|
1601
|
-
}
|
|
1602
|
-
}
|
|
1603
|
-
registerDirectiveMetadata(directive) {
|
|
1604
|
-
}
|
|
1605
|
-
registerPipeMetadata(pipe) {
|
|
1606
|
-
}
|
|
1607
|
-
getScopeForComponent(clazz) {
|
|
1608
|
-
const scope = !this.declarationToModule.has(clazz) ? null : this.getScopeOfModule(this.declarationToModule.get(clazz).ngModule);
|
|
1609
|
-
return scope;
|
|
1610
|
-
}
|
|
1611
|
-
getDuplicateDeclarations(node) {
|
|
1612
|
-
if (!this.duplicateDeclarations.has(node)) {
|
|
1613
|
-
return null;
|
|
1614
|
-
}
|
|
1615
|
-
return Array.from(this.duplicateDeclarations.get(node).values());
|
|
1616
|
-
}
|
|
1617
|
-
getScopeOfModule(clazz) {
|
|
1618
|
-
return this.moduleToRef.has(clazz) ? this.getScopeOfModuleReference(this.moduleToRef.get(clazz)) : null;
|
|
1619
|
-
}
|
|
1620
|
-
getDiagnosticsOfModule(clazz) {
|
|
1621
|
-
this.getScopeOfModule(clazz);
|
|
1622
|
-
if (this.scopeErrors.has(clazz)) {
|
|
1623
|
-
return this.scopeErrors.get(clazz);
|
|
1624
|
-
} else {
|
|
1625
|
-
return null;
|
|
1626
|
-
}
|
|
1627
|
-
}
|
|
1628
|
-
registerDeclarationOfModule(ngModule, decl, rawDeclarations) {
|
|
1629
|
-
const declData = {
|
|
1630
|
-
ngModule,
|
|
1631
|
-
ref: decl,
|
|
1632
|
-
rawDeclarations
|
|
1633
|
-
};
|
|
1634
|
-
if (this.duplicateDeclarations.has(decl.node)) {
|
|
1635
|
-
this.duplicateDeclarations.get(decl.node).set(ngModule, declData);
|
|
1636
|
-
} else if (this.declarationToModule.has(decl.node) && this.declarationToModule.get(decl.node).ngModule !== ngModule) {
|
|
1637
|
-
const duplicateDeclMap = /* @__PURE__ */ new Map();
|
|
1638
|
-
const firstDeclData = this.declarationToModule.get(decl.node);
|
|
1639
|
-
this.modulesWithStructuralErrors.add(firstDeclData.ngModule);
|
|
1640
|
-
this.modulesWithStructuralErrors.add(ngModule);
|
|
1641
|
-
duplicateDeclMap.set(firstDeclData.ngModule, firstDeclData);
|
|
1642
|
-
duplicateDeclMap.set(ngModule, declData);
|
|
1643
|
-
this.duplicateDeclarations.set(decl.node, duplicateDeclMap);
|
|
1644
|
-
this.declarationToModule.delete(decl.node);
|
|
1645
|
-
} else {
|
|
1646
|
-
this.declarationToModule.set(decl.node, declData);
|
|
1647
|
-
}
|
|
1648
|
-
}
|
|
1649
|
-
getScopeOfModuleReference(ref) {
|
|
1650
|
-
if (this.cache.has(ref.node)) {
|
|
1651
|
-
return this.cache.get(ref.node);
|
|
1652
|
-
}
|
|
1653
|
-
this.sealed = true;
|
|
1654
|
-
const ngModule = this.localReader.getNgModuleMetadata(ref);
|
|
1655
|
-
if (ngModule === null) {
|
|
1656
|
-
this.cache.set(ref.node, null);
|
|
1657
|
-
return null;
|
|
1658
|
-
}
|
|
1659
|
-
const compilationModules = /* @__PURE__ */ new Set([ngModule.ref.node]);
|
|
1660
|
-
const exportedModules = /* @__PURE__ */ new Set([ngModule.ref.node]);
|
|
1661
|
-
const diagnostics = [];
|
|
1662
|
-
const compilationDirectives = /* @__PURE__ */ new Map();
|
|
1663
|
-
const compilationPipes = /* @__PURE__ */ new Map();
|
|
1664
|
-
const declared = /* @__PURE__ */ new Set();
|
|
1665
|
-
const exportDirectives = /* @__PURE__ */ new Map();
|
|
1666
|
-
const exportPipes = /* @__PURE__ */ new Map();
|
|
1667
|
-
let isPoisoned = false;
|
|
1668
|
-
if (this.modulesWithStructuralErrors.has(ngModule.ref.node)) {
|
|
1669
|
-
isPoisoned = true;
|
|
1670
|
-
}
|
|
1671
|
-
for (const decl of ngModule.imports) {
|
|
1672
|
-
const importScope = this.getExportedScope(decl, diagnostics, ref.node, "import");
|
|
1673
|
-
if (importScope === null) {
|
|
1674
|
-
diagnostics.push(invalidRef(ref.node, decl, "import"));
|
|
1675
|
-
isPoisoned = true;
|
|
1676
|
-
continue;
|
|
1677
|
-
} else if (importScope === "invalid" || importScope.exported.isPoisoned) {
|
|
1678
|
-
diagnostics.push(invalidTransitiveNgModuleRef(ref.node, decl, "import"));
|
|
1679
|
-
isPoisoned = true;
|
|
1680
|
-
if (importScope === "invalid") {
|
|
1681
|
-
continue;
|
|
1682
|
-
}
|
|
1683
|
-
}
|
|
1684
|
-
for (const directive of importScope.exported.directives) {
|
|
1685
|
-
compilationDirectives.set(directive.ref.node, directive);
|
|
1686
|
-
}
|
|
1687
|
-
for (const pipe of importScope.exported.pipes) {
|
|
1688
|
-
compilationPipes.set(pipe.ref.node, pipe);
|
|
1689
|
-
}
|
|
1690
|
-
for (const importedModule of importScope.exported.ngModules) {
|
|
1691
|
-
compilationModules.add(importedModule);
|
|
1692
|
-
}
|
|
1693
|
-
}
|
|
1694
|
-
for (const decl of ngModule.declarations) {
|
|
1695
|
-
const directive = this.localReader.getDirectiveMetadata(decl);
|
|
1696
|
-
const pipe = this.localReader.getPipeMetadata(decl);
|
|
1697
|
-
if (directive !== null) {
|
|
1698
|
-
compilationDirectives.set(decl.node, __spreadProps(__spreadValues({}, directive), { ref: decl }));
|
|
1699
|
-
if (directive.isPoisoned) {
|
|
1700
|
-
isPoisoned = true;
|
|
1701
|
-
}
|
|
1702
|
-
} else if (pipe !== null) {
|
|
1703
|
-
compilationPipes.set(decl.node, __spreadProps(__spreadValues({}, pipe), { ref: decl }));
|
|
1704
|
-
} else {
|
|
1705
|
-
const errorNode = decl.getOriginForDiagnostics(ngModule.rawDeclarations);
|
|
1706
|
-
diagnostics.push(makeDiagnostic(ErrorCode.NGMODULE_INVALID_DECLARATION, errorNode, `The class '${decl.node.name.text}' is listed in the declarations of the NgModule '${ngModule.ref.node.name.text}', but is not a directive, a component, or a pipe. Either remove it from the NgModule's declarations, or add an appropriate Angular decorator.`, [makeRelatedInformation(decl.node.name, `'${decl.node.name.text}' is declared here.`)]));
|
|
1707
|
-
isPoisoned = true;
|
|
1708
|
-
continue;
|
|
1709
|
-
}
|
|
1710
|
-
declared.add(decl.node);
|
|
1711
|
-
}
|
|
1712
|
-
for (const decl of ngModule.exports) {
|
|
1713
|
-
const exportScope = this.getExportedScope(decl, diagnostics, ref.node, "export");
|
|
1714
|
-
if (exportScope === "invalid" || exportScope !== null && exportScope.exported.isPoisoned) {
|
|
1715
|
-
diagnostics.push(invalidTransitiveNgModuleRef(ref.node, decl, "export"));
|
|
1716
|
-
isPoisoned = true;
|
|
1717
|
-
if (exportScope === "invalid") {
|
|
1718
|
-
continue;
|
|
1719
|
-
}
|
|
1720
|
-
} else if (exportScope !== null) {
|
|
1721
|
-
for (const directive of exportScope.exported.directives) {
|
|
1722
|
-
exportDirectives.set(directive.ref.node, directive);
|
|
1723
|
-
}
|
|
1724
|
-
for (const pipe of exportScope.exported.pipes) {
|
|
1725
|
-
exportPipes.set(pipe.ref.node, pipe);
|
|
1726
|
-
}
|
|
1727
|
-
for (const exportedModule of exportScope.exported.ngModules) {
|
|
1728
|
-
exportedModules.add(exportedModule);
|
|
1729
|
-
}
|
|
1730
|
-
} else if (compilationDirectives.has(decl.node)) {
|
|
1731
|
-
const directive = compilationDirectives.get(decl.node);
|
|
1732
|
-
exportDirectives.set(decl.node, directive);
|
|
1733
|
-
} else if (compilationPipes.has(decl.node)) {
|
|
1734
|
-
const pipe = compilationPipes.get(decl.node);
|
|
1735
|
-
exportPipes.set(decl.node, pipe);
|
|
1736
|
-
} else {
|
|
1737
|
-
if (this.localReader.getDirectiveMetadata(decl) !== null || this.localReader.getPipeMetadata(decl) !== null) {
|
|
1738
|
-
diagnostics.push(invalidReexport(ref.node, decl));
|
|
1739
|
-
} else {
|
|
1740
|
-
diagnostics.push(invalidRef(ref.node, decl, "export"));
|
|
1741
|
-
}
|
|
1742
|
-
isPoisoned = true;
|
|
1743
|
-
continue;
|
|
1744
|
-
}
|
|
1745
|
-
}
|
|
1746
|
-
const exported = {
|
|
1747
|
-
directives: Array.from(exportDirectives.values()),
|
|
1748
|
-
pipes: Array.from(exportPipes.values()),
|
|
1749
|
-
ngModules: Array.from(exportedModules),
|
|
1750
|
-
isPoisoned
|
|
1751
|
-
};
|
|
1752
|
-
const reexports = this.getReexports(ngModule, ref, declared, exported, diagnostics);
|
|
1753
|
-
const scope = {
|
|
1754
|
-
ngModule: ngModule.ref.node,
|
|
1755
|
-
compilation: {
|
|
1756
|
-
directives: Array.from(compilationDirectives.values()),
|
|
1757
|
-
pipes: Array.from(compilationPipes.values()),
|
|
1758
|
-
ngModules: Array.from(compilationModules),
|
|
1759
|
-
isPoisoned
|
|
1760
|
-
},
|
|
1761
|
-
exported,
|
|
1762
|
-
reexports,
|
|
1763
|
-
schemas: ngModule.schemas
|
|
1764
|
-
};
|
|
1765
|
-
if (diagnostics.length > 0) {
|
|
1766
|
-
this.scopeErrors.set(ref.node, diagnostics);
|
|
1767
|
-
this.modulesWithStructuralErrors.add(ref.node);
|
|
1768
|
-
}
|
|
1769
|
-
this.cache.set(ref.node, scope);
|
|
1770
|
-
return scope;
|
|
1771
|
-
}
|
|
1772
|
-
getRemoteScope(node) {
|
|
1773
|
-
return this.remoteScoping.has(node) ? this.remoteScoping.get(node) : null;
|
|
1774
|
-
}
|
|
1775
|
-
setComponentRemoteScope(node, directives, pipes) {
|
|
1776
|
-
this.remoteScoping.set(node, { directives, pipes });
|
|
1777
|
-
}
|
|
1778
|
-
getExportedScope(ref, diagnostics, ownerForErrors, type) {
|
|
1779
|
-
if (ref.node.getSourceFile().isDeclarationFile) {
|
|
1780
|
-
if (!ts8.isClassDeclaration(ref.node)) {
|
|
1781
|
-
const code = type === "import" ? ErrorCode.NGMODULE_INVALID_IMPORT : ErrorCode.NGMODULE_INVALID_EXPORT;
|
|
1782
|
-
diagnostics.push(makeDiagnostic(code, identifierOfNode(ref.node) || ref.node, `Appears in the NgModule.${type}s of ${nodeNameForError(ownerForErrors)}, but could not be resolved to an NgModule`));
|
|
1783
|
-
return "invalid";
|
|
1784
|
-
}
|
|
1785
|
-
return this.dependencyScopeReader.resolve(ref);
|
|
1786
|
-
} else {
|
|
1787
|
-
return this.getScopeOfModuleReference(ref);
|
|
1788
|
-
}
|
|
1789
|
-
}
|
|
1790
|
-
getReexports(ngModule, ref, declared, exported, diagnostics) {
|
|
1791
|
-
let reexports = null;
|
|
1792
|
-
const sourceFile = ref.node.getSourceFile();
|
|
1793
|
-
if (this.aliasingHost === null) {
|
|
1794
|
-
return null;
|
|
1795
|
-
}
|
|
1796
|
-
reexports = [];
|
|
1797
|
-
const reexportMap = /* @__PURE__ */ new Map();
|
|
1798
|
-
const ngModuleRef = ref;
|
|
1799
|
-
const addReexport = (exportRef) => {
|
|
1800
|
-
if (exportRef.node.getSourceFile() === sourceFile) {
|
|
1801
|
-
return;
|
|
1802
|
-
}
|
|
1803
|
-
const isReExport = !declared.has(exportRef.node);
|
|
1804
|
-
const exportName = this.aliasingHost.maybeAliasSymbolAs(exportRef, sourceFile, ngModule.ref.node.name.text, isReExport);
|
|
1805
|
-
if (exportName === null) {
|
|
1806
|
-
return;
|
|
1807
|
-
}
|
|
1808
|
-
if (!reexportMap.has(exportName)) {
|
|
1809
|
-
if (exportRef.alias && exportRef.alias instanceof ExternalExpr) {
|
|
1810
|
-
reexports.push({
|
|
1811
|
-
fromModule: exportRef.alias.value.moduleName,
|
|
1812
|
-
symbolName: exportRef.alias.value.name,
|
|
1813
|
-
asAlias: exportName
|
|
1814
|
-
});
|
|
1815
|
-
} else {
|
|
1816
|
-
const emittedRef = this.refEmitter.emit(exportRef.cloneWithNoIdentifiers(), sourceFile);
|
|
1817
|
-
assertSuccessfulReferenceEmit(emittedRef, ngModuleRef.node.name, "class");
|
|
1818
|
-
const expr = emittedRef.expression;
|
|
1819
|
-
if (!(expr instanceof ExternalExpr) || expr.value.moduleName === null || expr.value.name === null) {
|
|
1820
|
-
throw new Error("Expected ExternalExpr");
|
|
1821
|
-
}
|
|
1822
|
-
reexports.push({
|
|
1823
|
-
fromModule: expr.value.moduleName,
|
|
1824
|
-
symbolName: expr.value.name,
|
|
1825
|
-
asAlias: exportName
|
|
1826
|
-
});
|
|
1827
|
-
}
|
|
1828
|
-
reexportMap.set(exportName, exportRef);
|
|
1829
|
-
} else {
|
|
1830
|
-
const prevRef = reexportMap.get(exportName);
|
|
1831
|
-
diagnostics.push(reexportCollision(ngModuleRef.node, prevRef, exportRef));
|
|
1832
|
-
}
|
|
1833
|
-
};
|
|
1834
|
-
for (const { ref: ref2 } of exported.directives) {
|
|
1835
|
-
addReexport(ref2);
|
|
1836
|
-
}
|
|
1837
|
-
for (const { ref: ref2 } of exported.pipes) {
|
|
1838
|
-
addReexport(ref2);
|
|
1839
|
-
}
|
|
1840
|
-
return reexports;
|
|
1841
|
-
}
|
|
1842
|
-
assertCollecting() {
|
|
1843
|
-
if (this.sealed) {
|
|
1844
|
-
throw new Error(`Assertion: LocalModuleScopeRegistry is not COLLECTING`);
|
|
1845
|
-
}
|
|
1846
|
-
}
|
|
1847
|
-
};
|
|
1848
|
-
function invalidRef(clazz, decl, type) {
|
|
1849
|
-
const code = type === "import" ? ErrorCode.NGMODULE_INVALID_IMPORT : ErrorCode.NGMODULE_INVALID_EXPORT;
|
|
1850
|
-
const resolveTarget = type === "import" ? "NgModule" : "NgModule, Component, Directive, or Pipe";
|
|
1851
|
-
let message = `Appears in the NgModule.${type}s of ${nodeNameForError(clazz)}, but could not be resolved to an ${resolveTarget} class.
|
|
1852
|
-
|
|
1853
|
-
`;
|
|
1854
|
-
const library = decl.ownedByModuleGuess !== null ? ` (${decl.ownedByModuleGuess})` : "";
|
|
1855
|
-
const sf = decl.node.getSourceFile();
|
|
1856
|
-
if (!sf.isDeclarationFile) {
|
|
1857
|
-
const annotationType = type === "import" ? "@NgModule" : "Angular";
|
|
1858
|
-
message += `Is it missing an ${annotationType} annotation?`;
|
|
1859
|
-
} else if (sf.fileName.indexOf("node_modules") !== -1) {
|
|
1860
|
-
message += `This likely means that the library${library} which declares ${decl.debugName} has not been processed correctly by ngcc, or is not compatible with Angular Ivy. Check if a newer version of the library is available, and update if so. Also consider checking with the library's authors to see if the library is expected to be compatible with Ivy.`;
|
|
1861
|
-
} else {
|
|
1862
|
-
message += `This likely means that the dependency${library} which declares ${decl.debugName} has not been processed correctly by ngcc.`;
|
|
1863
|
-
}
|
|
1864
|
-
return makeDiagnostic(code, identifierOfNode(decl.node) || decl.node, message);
|
|
1865
|
-
}
|
|
1866
|
-
function invalidTransitiveNgModuleRef(clazz, decl, type) {
|
|
1867
|
-
const code = type === "import" ? ErrorCode.NGMODULE_INVALID_IMPORT : ErrorCode.NGMODULE_INVALID_EXPORT;
|
|
1868
|
-
return makeDiagnostic(code, identifierOfNode(decl.node) || decl.node, `Appears in the NgModule.${type}s of ${nodeNameForError(clazz)}, but itself has errors`);
|
|
1869
|
-
}
|
|
1870
|
-
function invalidReexport(clazz, decl) {
|
|
1871
|
-
return makeDiagnostic(ErrorCode.NGMODULE_INVALID_REEXPORT, identifierOfNode(decl.node) || decl.node, `Present in the NgModule.exports of ${nodeNameForError(clazz)} but neither declared nor imported`);
|
|
1872
|
-
}
|
|
1873
|
-
function reexportCollision(module, refA, refB) {
|
|
1874
|
-
const childMessageText = `This directive/pipe is part of the exports of '${module.name.text}' and shares the same name as another exported directive/pipe.`;
|
|
1875
|
-
return makeDiagnostic(ErrorCode.NGMODULE_REEXPORT_NAME_COLLISION, module.name, `
|
|
1876
|
-
There was a name collision between two classes named '${refA.node.name.text}', which are both part of the exports of '${module.name.text}'.
|
|
1877
|
-
|
|
1878
|
-
Angular generates re-exports of an NgModule's exported directives/pipes from the module's source file in certain cases, using the declared name of the class. If two classes of the same name are exported, this automatic naming does not work.
|
|
1879
|
-
|
|
1880
|
-
To fix this problem please re-export one or both classes directly from this file.
|
|
1881
|
-
`.trim(), [
|
|
1882
|
-
makeRelatedInformation(refA.node.name, childMessageText),
|
|
1883
|
-
makeRelatedInformation(refB.node.name, childMessageText)
|
|
1884
|
-
]);
|
|
1885
|
-
}
|
|
1886
|
-
|
|
1887
|
-
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/scope/src/typecheck.mjs
|
|
1888
|
-
import { CssSelector, SelectorMatcher } from "@angular/compiler";
|
|
1889
|
-
import ts9 from "typescript";
|
|
1890
|
-
var TypeCheckScopeRegistry = class {
|
|
1891
|
-
constructor(scopeReader, metaReader) {
|
|
1892
|
-
this.scopeReader = scopeReader;
|
|
1893
|
-
this.metaReader = metaReader;
|
|
1894
|
-
this.flattenedDirectiveMetaCache = /* @__PURE__ */ new Map();
|
|
1895
|
-
this.scopeCache = /* @__PURE__ */ new Map();
|
|
1896
|
-
}
|
|
1897
|
-
getTypeCheckScope(node) {
|
|
1898
|
-
const matcher = new SelectorMatcher();
|
|
1899
|
-
const directives = [];
|
|
1900
|
-
const pipes = /* @__PURE__ */ new Map();
|
|
1901
|
-
const scope = this.scopeReader.getScopeForComponent(node);
|
|
1902
|
-
if (scope === null) {
|
|
1903
|
-
return {
|
|
1904
|
-
matcher,
|
|
1905
|
-
directives,
|
|
1906
|
-
pipes,
|
|
1907
|
-
schemas: [],
|
|
1908
|
-
isPoisoned: false
|
|
1909
|
-
};
|
|
1910
|
-
}
|
|
1911
|
-
if (this.scopeCache.has(scope.ngModule)) {
|
|
1912
|
-
return this.scopeCache.get(scope.ngModule);
|
|
1913
|
-
}
|
|
1914
|
-
for (const meta of scope.compilation.directives) {
|
|
1915
|
-
if (meta.selector !== null) {
|
|
1916
|
-
const extMeta = this.getTypeCheckDirectiveMetadata(meta.ref);
|
|
1917
|
-
matcher.addSelectables(CssSelector.parse(meta.selector), extMeta);
|
|
1918
|
-
directives.push(extMeta);
|
|
1919
|
-
}
|
|
1920
|
-
}
|
|
1921
|
-
for (const { name, ref } of scope.compilation.pipes) {
|
|
1922
|
-
if (!ts9.isClassDeclaration(ref.node)) {
|
|
1923
|
-
throw new Error(`Unexpected non-class declaration ${ts9.SyntaxKind[ref.node.kind]} for pipe ${ref.debugName}`);
|
|
1924
|
-
}
|
|
1925
|
-
pipes.set(name, ref);
|
|
1926
|
-
}
|
|
1927
|
-
const typeCheckScope = {
|
|
1928
|
-
matcher,
|
|
1929
|
-
directives,
|
|
1930
|
-
pipes,
|
|
1931
|
-
schemas: scope.schemas,
|
|
1932
|
-
isPoisoned: scope.compilation.isPoisoned || scope.exported.isPoisoned
|
|
1933
|
-
};
|
|
1934
|
-
this.scopeCache.set(scope.ngModule, typeCheckScope);
|
|
1935
|
-
return typeCheckScope;
|
|
1936
|
-
}
|
|
1937
|
-
getTypeCheckDirectiveMetadata(ref) {
|
|
1938
|
-
const clazz = ref.node;
|
|
1939
|
-
if (this.flattenedDirectiveMetaCache.has(clazz)) {
|
|
1940
|
-
return this.flattenedDirectiveMetaCache.get(clazz);
|
|
1941
|
-
}
|
|
1942
|
-
const meta = flattenInheritedDirectiveMetadata(this.metaReader, ref);
|
|
1943
|
-
this.flattenedDirectiveMetaCache.set(clazz, meta);
|
|
1944
|
-
return meta;
|
|
1945
|
-
}
|
|
1946
|
-
};
|
|
1947
|
-
|
|
1948
|
-
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/checker.mjs
|
|
1949
|
-
import { CssSelector as CssSelector2, DomElementSchemaRegistry as DomElementSchemaRegistry2 } from "@angular/compiler";
|
|
1950
|
-
|
|
1951
|
-
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/diagnostics/src/diagnostic.mjs
|
|
1952
|
-
import ts10 from "typescript";
|
|
1953
1496
|
function makeTemplateDiagnostic(templateId, mapping, span, category, code, messageText, relatedMessages) {
|
|
1954
1497
|
if (mapping.type === "direct") {
|
|
1955
1498
|
let relatedInformation = void 0;
|
|
@@ -1957,7 +1500,7 @@ function makeTemplateDiagnostic(templateId, mapping, span, category, code, messa
|
|
|
1957
1500
|
relatedInformation = [];
|
|
1958
1501
|
for (const relatedMessage of relatedMessages) {
|
|
1959
1502
|
relatedInformation.push({
|
|
1960
|
-
category:
|
|
1503
|
+
category: ts8.DiagnosticCategory.Message,
|
|
1961
1504
|
code: 0,
|
|
1962
1505
|
file: relatedMessage.sourceFile,
|
|
1963
1506
|
start: relatedMessage.start,
|
|
@@ -1982,12 +1525,12 @@ function makeTemplateDiagnostic(templateId, mapping, span, category, code, messa
|
|
|
1982
1525
|
const componentSf = mapping.componentClass.getSourceFile();
|
|
1983
1526
|
const componentName = mapping.componentClass.name.text;
|
|
1984
1527
|
const fileName = mapping.type === "indirect" ? `${componentSf.fileName} (${componentName} template)` : mapping.templateUrl;
|
|
1985
|
-
const sf =
|
|
1528
|
+
const sf = ts8.createSourceFile(fileName, mapping.template, ts8.ScriptTarget.Latest, false, ts8.ScriptKind.JSX);
|
|
1986
1529
|
let relatedInformation = [];
|
|
1987
1530
|
if (relatedMessages !== void 0) {
|
|
1988
1531
|
for (const relatedMessage of relatedMessages) {
|
|
1989
1532
|
relatedInformation.push({
|
|
1990
|
-
category:
|
|
1533
|
+
category: ts8.DiagnosticCategory.Message,
|
|
1991
1534
|
code: 0,
|
|
1992
1535
|
file: relatedMessage.sourceFile,
|
|
1993
1536
|
start: relatedMessage.start,
|
|
@@ -1997,7 +1540,7 @@ function makeTemplateDiagnostic(templateId, mapping, span, category, code, messa
|
|
|
1997
1540
|
}
|
|
1998
1541
|
}
|
|
1999
1542
|
relatedInformation.push({
|
|
2000
|
-
category:
|
|
1543
|
+
category: ts8.DiagnosticCategory.Message,
|
|
2001
1544
|
code: 0,
|
|
2002
1545
|
file: componentSf,
|
|
2003
1546
|
start: mapping.node.getStart(),
|
|
@@ -2021,7 +1564,7 @@ function makeTemplateDiagnostic(templateId, mapping, span, category, code, messa
|
|
|
2021
1564
|
}
|
|
2022
1565
|
}
|
|
2023
1566
|
|
|
2024
|
-
// bazel-out/
|
|
1567
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/diagnostics/src/id.mjs
|
|
2025
1568
|
var TEMPLATE_ID = Symbol("ngTemplateId");
|
|
2026
1569
|
var NEXT_TEMPLATE_ID = Symbol("ngNextTemplateId");
|
|
2027
1570
|
function getTemplateId(clazz) {
|
|
@@ -2038,17 +1581,17 @@ function allocateTemplateId(sf) {
|
|
|
2038
1581
|
return `tcb${sf[NEXT_TEMPLATE_ID]++}`;
|
|
2039
1582
|
}
|
|
2040
1583
|
|
|
2041
|
-
// bazel-out/
|
|
1584
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/completion.mjs
|
|
2042
1585
|
import { EmptyExpr, ImplicitReceiver as ImplicitReceiver2, PropertyRead as PropertyRead2, PropertyWrite as PropertyWrite2, SafePropertyRead, TmplAstReference as TmplAstReference2, TmplAstTextAttribute } from "@angular/compiler";
|
|
2043
|
-
import
|
|
1586
|
+
import ts10 from "typescript";
|
|
2044
1587
|
|
|
2045
|
-
// bazel-out/
|
|
1588
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/comments.mjs
|
|
2046
1589
|
import { AbsoluteSourceSpan as AbsoluteSourceSpan2 } from "@angular/compiler";
|
|
2047
|
-
import
|
|
1590
|
+
import ts9 from "typescript";
|
|
2048
1591
|
var parseSpanComment = /^(\d+),(\d+)$/;
|
|
2049
1592
|
function readSpanComment(node, sourceFile = node.getSourceFile()) {
|
|
2050
|
-
return
|
|
2051
|
-
if (kind !==
|
|
1593
|
+
return ts9.forEachTrailingCommentRange(sourceFile.text, node.getEnd(), (pos, end, kind) => {
|
|
1594
|
+
if (kind !== ts9.SyntaxKind.MultiLineCommentTrivia) {
|
|
2052
1595
|
return null;
|
|
2053
1596
|
}
|
|
2054
1597
|
const commentText = sourceFile.text.substring(pos + 2, end - 2);
|
|
@@ -2071,15 +1614,15 @@ var ExpressionIdentifier;
|
|
|
2071
1614
|
ExpressionIdentifier2["EVENT_PARAMETER"] = "EP";
|
|
2072
1615
|
})(ExpressionIdentifier || (ExpressionIdentifier = {}));
|
|
2073
1616
|
function addExpressionIdentifier(node, identifier) {
|
|
2074
|
-
|
|
1617
|
+
ts9.addSyntheticTrailingComment(node, ts9.SyntaxKind.MultiLineCommentTrivia, `${CommentTriviaType.EXPRESSION_TYPE_IDENTIFIER}:${identifier}`, false);
|
|
2075
1618
|
}
|
|
2076
1619
|
var IGNORE_FOR_DIAGNOSTICS_MARKER = `${CommentTriviaType.DIAGNOSTIC}:ignore`;
|
|
2077
1620
|
function markIgnoreDiagnostics(node) {
|
|
2078
|
-
|
|
1621
|
+
ts9.addSyntheticTrailingComment(node, ts9.SyntaxKind.MultiLineCommentTrivia, IGNORE_FOR_DIAGNOSTICS_MARKER, false);
|
|
2079
1622
|
}
|
|
2080
1623
|
function hasIgnoreForDiagnosticsMarker(node, sourceFile) {
|
|
2081
|
-
return
|
|
2082
|
-
if (kind !==
|
|
1624
|
+
return ts9.forEachTrailingCommentRange(sourceFile.text, node.getEnd(), (pos, end, kind) => {
|
|
1625
|
+
if (kind !== ts9.SyntaxKind.MultiLineCommentTrivia) {
|
|
2083
1626
|
return null;
|
|
2084
1627
|
}
|
|
2085
1628
|
const commentText = sourceFile.text.substring(pos + 2, end - 2);
|
|
@@ -2153,8 +1696,8 @@ function findAllMatchingNodes(tcb, opts) {
|
|
|
2153
1696
|
return results;
|
|
2154
1697
|
}
|
|
2155
1698
|
function hasExpressionIdentifier(sourceFile, node, identifier) {
|
|
2156
|
-
return
|
|
2157
|
-
if (kind !==
|
|
1699
|
+
return ts9.forEachTrailingCommentRange(sourceFile.text, node.getEnd(), (pos, end, kind) => {
|
|
1700
|
+
if (kind !== ts9.SyntaxKind.MultiLineCommentTrivia) {
|
|
2158
1701
|
return false;
|
|
2159
1702
|
}
|
|
2160
1703
|
const commentText = sourceFile.text.substring(pos + 2, end - 2);
|
|
@@ -2162,22 +1705,24 @@ function hasExpressionIdentifier(sourceFile, node, identifier) {
|
|
|
2162
1705
|
}) || false;
|
|
2163
1706
|
}
|
|
2164
1707
|
|
|
2165
|
-
// bazel-out/
|
|
1708
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/completion.mjs
|
|
2166
1709
|
var CompletionEngine = class {
|
|
2167
|
-
constructor(tcb, data,
|
|
1710
|
+
constructor(tcb, data, tcbPath, tcbIsShim) {
|
|
2168
1711
|
this.tcb = tcb;
|
|
2169
1712
|
this.data = data;
|
|
2170
|
-
this.
|
|
1713
|
+
this.tcbPath = tcbPath;
|
|
1714
|
+
this.tcbIsShim = tcbIsShim;
|
|
2171
1715
|
this.templateContextCache = /* @__PURE__ */ new Map();
|
|
2172
1716
|
this.expressionCompletionCache = /* @__PURE__ */ new Map();
|
|
2173
1717
|
const globalRead = findFirstMatchingNode(this.tcb, {
|
|
2174
|
-
filter:
|
|
1718
|
+
filter: ts10.isPropertyAccessExpression,
|
|
2175
1719
|
withExpressionIdentifier: ExpressionIdentifier.COMPONENT_COMPLETION
|
|
2176
1720
|
});
|
|
2177
1721
|
if (globalRead !== null) {
|
|
2178
1722
|
this.componentContext = {
|
|
2179
|
-
|
|
2180
|
-
|
|
1723
|
+
tcbPath: this.tcbPath,
|
|
1724
|
+
isShimFile: this.tcbIsShim,
|
|
1725
|
+
positionInFile: globalRead.name.getStart()
|
|
2181
1726
|
};
|
|
2182
1727
|
} else {
|
|
2183
1728
|
this.componentContext = null;
|
|
@@ -2194,25 +1739,27 @@ var CompletionEngine = class {
|
|
|
2194
1739
|
let nodeContext = null;
|
|
2195
1740
|
if (node instanceof EmptyExpr) {
|
|
2196
1741
|
const nodeLocation = findFirstMatchingNode(this.tcb, {
|
|
2197
|
-
filter:
|
|
1742
|
+
filter: ts10.isIdentifier,
|
|
2198
1743
|
withSpan: node.sourceSpan
|
|
2199
1744
|
});
|
|
2200
1745
|
if (nodeLocation !== null) {
|
|
2201
1746
|
nodeContext = {
|
|
2202
|
-
|
|
2203
|
-
|
|
1747
|
+
tcbPath: this.tcbPath,
|
|
1748
|
+
isShimFile: this.tcbIsShim,
|
|
1749
|
+
positionInFile: nodeLocation.getStart()
|
|
2204
1750
|
};
|
|
2205
1751
|
}
|
|
2206
1752
|
}
|
|
2207
1753
|
if (node instanceof PropertyRead2 && node.receiver instanceof ImplicitReceiver2) {
|
|
2208
1754
|
const nodeLocation = findFirstMatchingNode(this.tcb, {
|
|
2209
|
-
filter:
|
|
1755
|
+
filter: ts10.isPropertyAccessExpression,
|
|
2210
1756
|
withSpan: node.sourceSpan
|
|
2211
1757
|
});
|
|
2212
1758
|
if (nodeLocation) {
|
|
2213
1759
|
nodeContext = {
|
|
2214
|
-
|
|
2215
|
-
|
|
1760
|
+
tcbPath: this.tcbPath,
|
|
1761
|
+
isShimFile: this.tcbIsShim,
|
|
1762
|
+
positionInFile: nodeLocation.getStart()
|
|
2216
1763
|
};
|
|
2217
1764
|
}
|
|
2218
1765
|
}
|
|
@@ -2229,21 +1776,21 @@ var CompletionEngine = class {
|
|
|
2229
1776
|
let tsExpr = null;
|
|
2230
1777
|
if (expr instanceof PropertyRead2 || expr instanceof PropertyWrite2) {
|
|
2231
1778
|
tsExpr = findFirstMatchingNode(this.tcb, {
|
|
2232
|
-
filter:
|
|
1779
|
+
filter: ts10.isPropertyAccessExpression,
|
|
2233
1780
|
withSpan: expr.nameSpan
|
|
2234
1781
|
});
|
|
2235
1782
|
} else if (expr instanceof SafePropertyRead) {
|
|
2236
1783
|
const ternaryExpr = findFirstMatchingNode(this.tcb, {
|
|
2237
|
-
filter:
|
|
1784
|
+
filter: ts10.isParenthesizedExpression,
|
|
2238
1785
|
withSpan: expr.sourceSpan
|
|
2239
1786
|
});
|
|
2240
|
-
if (ternaryExpr === null || !
|
|
1787
|
+
if (ternaryExpr === null || !ts10.isConditionalExpression(ternaryExpr.expression)) {
|
|
2241
1788
|
return null;
|
|
2242
1789
|
}
|
|
2243
1790
|
const whenTrue = ternaryExpr.expression.whenTrue;
|
|
2244
|
-
if (
|
|
1791
|
+
if (ts10.isPropertyAccessExpression(whenTrue)) {
|
|
2245
1792
|
tsExpr = whenTrue;
|
|
2246
|
-
} else if (
|
|
1793
|
+
} else if (ts10.isCallExpression(whenTrue) && ts10.isPropertyAccessExpression(whenTrue.expression)) {
|
|
2247
1794
|
tsExpr = whenTrue.expression;
|
|
2248
1795
|
}
|
|
2249
1796
|
}
|
|
@@ -2251,8 +1798,9 @@ var CompletionEngine = class {
|
|
|
2251
1798
|
return null;
|
|
2252
1799
|
}
|
|
2253
1800
|
const res = {
|
|
2254
|
-
|
|
2255
|
-
|
|
1801
|
+
tcbPath: this.tcbPath,
|
|
1802
|
+
isShimFile: this.tcbIsShim,
|
|
1803
|
+
positionInFile: tsExpr.name.getEnd()
|
|
2256
1804
|
};
|
|
2257
1805
|
this.expressionCompletionCache.set(expr, res);
|
|
2258
1806
|
return res;
|
|
@@ -2264,15 +1812,15 @@ var CompletionEngine = class {
|
|
|
2264
1812
|
let tsExpr = null;
|
|
2265
1813
|
if (expr instanceof TmplAstTextAttribute) {
|
|
2266
1814
|
const strNode = findFirstMatchingNode(this.tcb, {
|
|
2267
|
-
filter:
|
|
1815
|
+
filter: ts10.isParenthesizedExpression,
|
|
2268
1816
|
withSpan: expr.sourceSpan
|
|
2269
1817
|
});
|
|
2270
|
-
if (strNode !== null &&
|
|
1818
|
+
if (strNode !== null && ts10.isStringLiteral(strNode.expression)) {
|
|
2271
1819
|
tsExpr = strNode.expression;
|
|
2272
1820
|
}
|
|
2273
1821
|
} else {
|
|
2274
1822
|
tsExpr = findFirstMatchingNode(this.tcb, {
|
|
2275
|
-
filter: (n) =>
|
|
1823
|
+
filter: (n) => ts10.isStringLiteral(n) || ts10.isNumericLiteral(n),
|
|
2276
1824
|
withSpan: expr.sourceSpan
|
|
2277
1825
|
});
|
|
2278
1826
|
}
|
|
@@ -2280,12 +1828,13 @@ var CompletionEngine = class {
|
|
|
2280
1828
|
return null;
|
|
2281
1829
|
}
|
|
2282
1830
|
let positionInShimFile = tsExpr.getEnd();
|
|
2283
|
-
if (
|
|
1831
|
+
if (ts10.isStringLiteral(tsExpr)) {
|
|
2284
1832
|
positionInShimFile -= 1;
|
|
2285
1833
|
}
|
|
2286
1834
|
const res = {
|
|
2287
|
-
|
|
2288
|
-
|
|
1835
|
+
tcbPath: this.tcbPath,
|
|
1836
|
+
isShimFile: this.tcbIsShim,
|
|
1837
|
+
positionInFile: positionInShimFile
|
|
2289
1838
|
};
|
|
2290
1839
|
this.expressionCompletionCache.set(expr, res);
|
|
2291
1840
|
return res;
|
|
@@ -2313,12 +1862,12 @@ var CompletionEngine = class {
|
|
|
2313
1862
|
}
|
|
2314
1863
|
};
|
|
2315
1864
|
|
|
2316
|
-
// bazel-out/
|
|
2317
|
-
import
|
|
1865
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/context.mjs
|
|
1866
|
+
import ts24 from "typescript";
|
|
2318
1867
|
|
|
2319
|
-
// bazel-out/
|
|
1868
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/dom.mjs
|
|
2320
1869
|
import { DomElementSchemaRegistry } from "@angular/compiler";
|
|
2321
|
-
import
|
|
1870
|
+
import ts11 from "typescript";
|
|
2322
1871
|
var REGISTRY = new DomElementSchemaRegistry();
|
|
2323
1872
|
var REMOVE_XHTML_REGEX = /^:xhtml:/;
|
|
2324
1873
|
var RegistryDomSchemaChecker = class {
|
|
@@ -2342,7 +1891,7 @@ var RegistryDomSchemaChecker = class {
|
|
|
2342
1891
|
} else {
|
|
2343
1892
|
errorMsg += `2. To allow any element add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component.`;
|
|
2344
1893
|
}
|
|
2345
|
-
const diag = makeTemplateDiagnostic(id, mapping, element.startSourceSpan,
|
|
1894
|
+
const diag = makeTemplateDiagnostic(id, mapping, element.startSourceSpan, ts11.DiagnosticCategory.Error, ngErrorCode(ErrorCode.SCHEMA_INVALID_ELEMENT), errorMsg);
|
|
2346
1895
|
this._diagnostics.push(diag);
|
|
2347
1896
|
}
|
|
2348
1897
|
}
|
|
@@ -2360,70 +1909,70 @@ var RegistryDomSchemaChecker = class {
|
|
|
2360
1909
|
2. If '${element.name}' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message.
|
|
2361
1910
|
3. To allow any property add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component.`;
|
|
2362
1911
|
}
|
|
2363
|
-
const diag = makeTemplateDiagnostic(id, mapping, span,
|
|
1912
|
+
const diag = makeTemplateDiagnostic(id, mapping, span, ts11.DiagnosticCategory.Error, ngErrorCode(ErrorCode.SCHEMA_INVALID_ATTRIBUTE), errorMsg);
|
|
2364
1913
|
this._diagnostics.push(diag);
|
|
2365
1914
|
}
|
|
2366
1915
|
}
|
|
2367
1916
|
};
|
|
2368
1917
|
|
|
2369
|
-
// bazel-out/
|
|
2370
|
-
import { ExpressionType, ExternalExpr
|
|
2371
|
-
import
|
|
1918
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/environment.mjs
|
|
1919
|
+
import { ExpressionType, ExternalExpr, TypeModifier } from "@angular/compiler";
|
|
1920
|
+
import ts17 from "typescript";
|
|
2372
1921
|
|
|
2373
|
-
// bazel-out/
|
|
2374
|
-
import
|
|
1922
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/ts_util.mjs
|
|
1923
|
+
import ts12 from "typescript";
|
|
2375
1924
|
var SAFE_TO_CAST_WITHOUT_PARENS = /* @__PURE__ */ new Set([
|
|
2376
|
-
|
|
2377
|
-
|
|
2378
|
-
|
|
2379
|
-
|
|
2380
|
-
|
|
2381
|
-
|
|
2382
|
-
|
|
2383
|
-
|
|
2384
|
-
|
|
2385
|
-
|
|
2386
|
-
|
|
2387
|
-
|
|
2388
|
-
|
|
2389
|
-
|
|
1925
|
+
ts12.SyntaxKind.ParenthesizedExpression,
|
|
1926
|
+
ts12.SyntaxKind.Identifier,
|
|
1927
|
+
ts12.SyntaxKind.CallExpression,
|
|
1928
|
+
ts12.SyntaxKind.NonNullExpression,
|
|
1929
|
+
ts12.SyntaxKind.ElementAccessExpression,
|
|
1930
|
+
ts12.SyntaxKind.PropertyAccessExpression,
|
|
1931
|
+
ts12.SyntaxKind.ArrayLiteralExpression,
|
|
1932
|
+
ts12.SyntaxKind.ObjectLiteralExpression,
|
|
1933
|
+
ts12.SyntaxKind.StringLiteral,
|
|
1934
|
+
ts12.SyntaxKind.NumericLiteral,
|
|
1935
|
+
ts12.SyntaxKind.TrueKeyword,
|
|
1936
|
+
ts12.SyntaxKind.FalseKeyword,
|
|
1937
|
+
ts12.SyntaxKind.NullKeyword,
|
|
1938
|
+
ts12.SyntaxKind.UndefinedKeyword
|
|
2390
1939
|
]);
|
|
2391
1940
|
function tsCastToAny(expr) {
|
|
2392
1941
|
if (!SAFE_TO_CAST_WITHOUT_PARENS.has(expr.kind)) {
|
|
2393
|
-
expr =
|
|
1942
|
+
expr = ts12.factory.createParenthesizedExpression(expr);
|
|
2394
1943
|
}
|
|
2395
|
-
return
|
|
1944
|
+
return ts12.factory.createParenthesizedExpression(ts12.factory.createAsExpression(expr, ts12.factory.createKeywordTypeNode(ts12.SyntaxKind.AnyKeyword)));
|
|
2396
1945
|
}
|
|
2397
1946
|
function tsCreateElement(tagName) {
|
|
2398
|
-
const createElement =
|
|
2399
|
-
return
|
|
1947
|
+
const createElement = ts12.factory.createPropertyAccessExpression(ts12.factory.createIdentifier("document"), "createElement");
|
|
1948
|
+
return ts12.factory.createCallExpression(createElement, void 0, [ts12.factory.createStringLiteral(tagName)]);
|
|
2400
1949
|
}
|
|
2401
1950
|
function tsDeclareVariable(id, type) {
|
|
2402
|
-
const decl =
|
|
2403
|
-
return
|
|
1951
|
+
const decl = ts12.factory.createVariableDeclaration(id, void 0, type, ts12.factory.createNonNullExpression(ts12.factory.createNull()));
|
|
1952
|
+
return ts12.factory.createVariableStatement(void 0, [decl]);
|
|
2404
1953
|
}
|
|
2405
1954
|
function tsCreateTypeQueryForCoercedInput(typeName, coercedInputName) {
|
|
2406
|
-
return
|
|
1955
|
+
return ts12.factory.createTypeQueryNode(ts12.factory.createQualifiedName(typeName, `ngAcceptInputType_${coercedInputName}`));
|
|
2407
1956
|
}
|
|
2408
1957
|
function tsCreateVariable(id, initializer) {
|
|
2409
|
-
const decl =
|
|
2410
|
-
return
|
|
1958
|
+
const decl = ts12.factory.createVariableDeclaration(id, void 0, void 0, initializer);
|
|
1959
|
+
return ts12.factory.createVariableStatement(void 0, [decl]);
|
|
2411
1960
|
}
|
|
2412
1961
|
function tsCallMethod(receiver, methodName, args = []) {
|
|
2413
|
-
const methodAccess =
|
|
2414
|
-
return
|
|
1962
|
+
const methodAccess = ts12.factory.createPropertyAccessExpression(receiver, methodName);
|
|
1963
|
+
return ts12.factory.createCallExpression(methodAccess, void 0, args);
|
|
2415
1964
|
}
|
|
2416
1965
|
function checkIfClassIsExported(node) {
|
|
2417
|
-
if (node.modifiers !== void 0 && node.modifiers.some((mod) => mod.kind ===
|
|
1966
|
+
if (node.modifiers !== void 0 && node.modifiers.some((mod) => mod.kind === ts12.SyntaxKind.ExportKeyword)) {
|
|
2418
1967
|
return true;
|
|
2419
|
-
} else if (node.parent !== void 0 &&
|
|
1968
|
+
} else if (node.parent !== void 0 && ts12.isSourceFile(node.parent) && checkIfFileHasExport(node.parent, node.name.text)) {
|
|
2420
1969
|
return true;
|
|
2421
1970
|
}
|
|
2422
1971
|
return false;
|
|
2423
1972
|
}
|
|
2424
1973
|
function checkIfFileHasExport(sf, name) {
|
|
2425
1974
|
for (const stmt of sf.statements) {
|
|
2426
|
-
if (
|
|
1975
|
+
if (ts12.isExportDeclaration(stmt) && stmt.exportClause !== void 0 && ts12.isNamedExports(stmt.exportClause)) {
|
|
2427
1976
|
for (const element of stmt.exportClause.elements) {
|
|
2428
1977
|
if (element.propertyName === void 0 && element.name.text === name) {
|
|
2429
1978
|
return true;
|
|
@@ -2436,20 +1985,20 @@ function checkIfFileHasExport(sf, name) {
|
|
|
2436
1985
|
return false;
|
|
2437
1986
|
}
|
|
2438
1987
|
function isAccessExpression(node) {
|
|
2439
|
-
return
|
|
1988
|
+
return ts12.isPropertyAccessExpression(node) || ts12.isElementAccessExpression(node);
|
|
2440
1989
|
}
|
|
2441
1990
|
|
|
2442
|
-
// bazel-out/
|
|
2443
|
-
import ts18 from "typescript";
|
|
2444
|
-
|
|
2445
|
-
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/tcb_util.mjs
|
|
2446
|
-
import ts17 from "typescript";
|
|
2447
|
-
|
|
2448
|
-
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_parameter_emitter.mjs
|
|
1991
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_constructor.mjs
|
|
2449
1992
|
import ts16 from "typescript";
|
|
2450
1993
|
|
|
2451
|
-
// bazel-out/
|
|
1994
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/tcb_util.mjs
|
|
2452
1995
|
import ts15 from "typescript";
|
|
1996
|
+
|
|
1997
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_parameter_emitter.mjs
|
|
1998
|
+
import ts14 from "typescript";
|
|
1999
|
+
|
|
2000
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_emitter.mjs
|
|
2001
|
+
import ts13 from "typescript";
|
|
2453
2002
|
var INELIGIBLE = {};
|
|
2454
2003
|
function canEmitType(type, canEmit) {
|
|
2455
2004
|
return canEmitTypeWorker(type);
|
|
@@ -2457,13 +2006,13 @@ function canEmitType(type, canEmit) {
|
|
|
2457
2006
|
return visitNode(type2) !== INELIGIBLE;
|
|
2458
2007
|
}
|
|
2459
2008
|
function visitNode(node) {
|
|
2460
|
-
if (
|
|
2009
|
+
if (ts13.isImportTypeNode(node)) {
|
|
2461
2010
|
return INELIGIBLE;
|
|
2462
2011
|
}
|
|
2463
|
-
if (
|
|
2012
|
+
if (ts13.isTypeReferenceNode(node) && !canEmitTypeReference(node)) {
|
|
2464
2013
|
return INELIGIBLE;
|
|
2465
2014
|
} else {
|
|
2466
|
-
return
|
|
2015
|
+
return ts13.forEachChild(node, visitNode);
|
|
2467
2016
|
}
|
|
2468
2017
|
}
|
|
2469
2018
|
function canEmitTypeReference(type2) {
|
|
@@ -2480,22 +2029,22 @@ var TypeEmitter = class {
|
|
|
2480
2029
|
emitType(type) {
|
|
2481
2030
|
const typeReferenceTransformer = (context) => {
|
|
2482
2031
|
const visitNode = (node) => {
|
|
2483
|
-
if (
|
|
2032
|
+
if (ts13.isImportTypeNode(node)) {
|
|
2484
2033
|
throw new Error("Unable to emit import type");
|
|
2485
2034
|
}
|
|
2486
|
-
if (
|
|
2035
|
+
if (ts13.isTypeReferenceNode(node)) {
|
|
2487
2036
|
return this.emitTypeReference(node);
|
|
2488
|
-
} else if (
|
|
2489
|
-
const clone =
|
|
2490
|
-
|
|
2037
|
+
} else if (ts13.isLiteralExpression(node)) {
|
|
2038
|
+
const clone = ts13.getMutableClone(node);
|
|
2039
|
+
ts13.setTextRange(clone, { pos: -1, end: -1 });
|
|
2491
2040
|
return clone;
|
|
2492
2041
|
} else {
|
|
2493
|
-
return
|
|
2042
|
+
return ts13.visitEachChild(node, visitNode, context);
|
|
2494
2043
|
}
|
|
2495
2044
|
};
|
|
2496
|
-
return (node) =>
|
|
2045
|
+
return (node) => ts13.visitNode(node, visitNode);
|
|
2497
2046
|
};
|
|
2498
|
-
return
|
|
2047
|
+
return ts13.transform(type, [typeReferenceTransformer]).transformed[0];
|
|
2499
2048
|
}
|
|
2500
2049
|
emitTypeReference(type) {
|
|
2501
2050
|
const translatedType = this.translator(type);
|
|
@@ -2504,13 +2053,13 @@ var TypeEmitter = class {
|
|
|
2504
2053
|
}
|
|
2505
2054
|
let typeArguments = void 0;
|
|
2506
2055
|
if (type.typeArguments !== void 0) {
|
|
2507
|
-
typeArguments =
|
|
2056
|
+
typeArguments = ts13.factory.createNodeArray(type.typeArguments.map((typeArg) => this.emitType(typeArg)));
|
|
2508
2057
|
}
|
|
2509
|
-
return
|
|
2058
|
+
return ts13.factory.updateTypeReferenceNode(type, translatedType.typeName, typeArguments);
|
|
2510
2059
|
}
|
|
2511
2060
|
};
|
|
2512
2061
|
|
|
2513
|
-
// bazel-out/
|
|
2062
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_parameter_emitter.mjs
|
|
2514
2063
|
var TypeParameterEmitter = class {
|
|
2515
2064
|
constructor(typeParameters, reflector) {
|
|
2516
2065
|
this.typeParameters = typeParameters;
|
|
@@ -2547,11 +2096,11 @@ var TypeParameterEmitter = class {
|
|
|
2547
2096
|
return this.typeParameters.map((typeParam) => {
|
|
2548
2097
|
const constraint = typeParam.constraint !== void 0 ? emitter.emitType(typeParam.constraint) : void 0;
|
|
2549
2098
|
const defaultType = typeParam.default !== void 0 ? emitter.emitType(typeParam.default) : void 0;
|
|
2550
|
-
return
|
|
2099
|
+
return ts14.factory.updateTypeParameterDeclaration(typeParam, typeParam.name, constraint, defaultType);
|
|
2551
2100
|
});
|
|
2552
2101
|
}
|
|
2553
2102
|
resolveTypeReference(type) {
|
|
2554
|
-
const target =
|
|
2103
|
+
const target = ts14.isIdentifier(type.typeName) ? type.typeName : type.typeName.right;
|
|
2555
2104
|
const declaration = this.reflector.getDeclarationOfIdentifier(target);
|
|
2556
2105
|
if (declaration === null || declaration.node === null) {
|
|
2557
2106
|
return null;
|
|
@@ -2577,8 +2126,8 @@ var TypeParameterEmitter = class {
|
|
|
2577
2126
|
if (typeNode === null) {
|
|
2578
2127
|
return null;
|
|
2579
2128
|
}
|
|
2580
|
-
if (!
|
|
2581
|
-
throw new Error(`Expected TypeReferenceNode for emitted reference, got ${
|
|
2129
|
+
if (!ts14.isTypeReferenceNode(typeNode)) {
|
|
2130
|
+
throw new Error(`Expected TypeReferenceNode for emitted reference, got ${ts14.SyntaxKind[typeNode.kind]}.`);
|
|
2582
2131
|
}
|
|
2583
2132
|
return typeNode;
|
|
2584
2133
|
}
|
|
@@ -2587,7 +2136,7 @@ var TypeParameterEmitter = class {
|
|
|
2587
2136
|
}
|
|
2588
2137
|
};
|
|
2589
2138
|
|
|
2590
|
-
// bazel-out/
|
|
2139
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/tcb_util.mjs
|
|
2591
2140
|
var TcbInliningRequirement;
|
|
2592
2141
|
(function(TcbInliningRequirement2) {
|
|
2593
2142
|
TcbInliningRequirement2[TcbInliningRequirement2["MustInline"] = 0] = "MustInline";
|
|
@@ -2620,14 +2169,14 @@ function getTemplateMapping(shimSf, position, resolver, isDiagnosticRequest) {
|
|
|
2620
2169
|
}
|
|
2621
2170
|
function findTypeCheckBlock(file, id, isDiagnosticRequest) {
|
|
2622
2171
|
for (const stmt of file.statements) {
|
|
2623
|
-
if (
|
|
2172
|
+
if (ts15.isFunctionDeclaration(stmt) && getTemplateId2(stmt, file, isDiagnosticRequest) === id) {
|
|
2624
2173
|
return stmt;
|
|
2625
2174
|
}
|
|
2626
2175
|
}
|
|
2627
2176
|
return null;
|
|
2628
2177
|
}
|
|
2629
2178
|
function findSourceLocation(node, sourceFile, isDiagnosticsRequest) {
|
|
2630
|
-
while (node !== void 0 && !
|
|
2179
|
+
while (node !== void 0 && !ts15.isFunctionDeclaration(node)) {
|
|
2631
2180
|
if (hasIgnoreForDiagnosticsMarker(node, sourceFile) && isDiagnosticsRequest) {
|
|
2632
2181
|
return null;
|
|
2633
2182
|
}
|
|
@@ -2644,7 +2193,7 @@ function findSourceLocation(node, sourceFile, isDiagnosticsRequest) {
|
|
|
2644
2193
|
return null;
|
|
2645
2194
|
}
|
|
2646
2195
|
function getTemplateId2(node, sourceFile, isDiagnosticRequest) {
|
|
2647
|
-
while (!
|
|
2196
|
+
while (!ts15.isFunctionDeclaration(node)) {
|
|
2648
2197
|
if (hasIgnoreForDiagnosticsMarker(node, sourceFile) && isDiagnosticRequest) {
|
|
2649
2198
|
return null;
|
|
2650
2199
|
}
|
|
@@ -2654,8 +2203,8 @@ function getTemplateId2(node, sourceFile, isDiagnosticRequest) {
|
|
|
2654
2203
|
}
|
|
2655
2204
|
}
|
|
2656
2205
|
const start = node.getFullStart();
|
|
2657
|
-
return
|
|
2658
|
-
if (kind !==
|
|
2206
|
+
return ts15.forEachLeadingCommentRange(sourceFile.text, start, (pos, end, kind) => {
|
|
2207
|
+
if (kind !== ts15.SyntaxKind.MultiLineCommentTrivia) {
|
|
2659
2208
|
return null;
|
|
2660
2209
|
}
|
|
2661
2210
|
const commentText = sourceFile.text.substring(pos + 2, end - 2);
|
|
@@ -2667,32 +2216,32 @@ function checkIfGenericTypeBoundsCanBeEmitted(node, reflector, env) {
|
|
|
2667
2216
|
return emitter.canEmit((ref) => env.canReferenceType(ref));
|
|
2668
2217
|
}
|
|
2669
2218
|
|
|
2670
|
-
// bazel-out/
|
|
2219
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_constructor.mjs
|
|
2671
2220
|
function generateTypeCtorDeclarationFn(node, meta, nodeTypeRef, typeParams) {
|
|
2672
2221
|
const rawTypeArgs = typeParams !== void 0 ? generateGenericArgs(typeParams) : void 0;
|
|
2673
|
-
const rawType =
|
|
2222
|
+
const rawType = ts16.factory.createTypeReferenceNode(nodeTypeRef, rawTypeArgs);
|
|
2674
2223
|
const initParam = constructTypeCtorParameter(node, meta, rawType);
|
|
2675
2224
|
const typeParameters = typeParametersWithDefaultTypes(typeParams);
|
|
2676
2225
|
if (meta.body) {
|
|
2677
|
-
const fnType =
|
|
2678
|
-
const decl =
|
|
2679
|
-
const declList =
|
|
2680
|
-
return
|
|
2226
|
+
const fnType = ts16.factory.createFunctionTypeNode(typeParameters, [initParam], rawType);
|
|
2227
|
+
const decl = ts16.factory.createVariableDeclaration(meta.fnName, void 0, fnType, ts16.factory.createNonNullExpression(ts16.factory.createNull()));
|
|
2228
|
+
const declList = ts16.factory.createVariableDeclarationList([decl], ts16.NodeFlags.Const);
|
|
2229
|
+
return ts16.factory.createVariableStatement(void 0, declList);
|
|
2681
2230
|
} else {
|
|
2682
|
-
return
|
|
2231
|
+
return ts16.factory.createFunctionDeclaration(void 0, [ts16.factory.createModifier(ts16.SyntaxKind.DeclareKeyword)], void 0, meta.fnName, typeParameters, [initParam], rawType, void 0);
|
|
2683
2232
|
}
|
|
2684
2233
|
}
|
|
2685
2234
|
function generateInlineTypeCtor(node, meta) {
|
|
2686
2235
|
const rawTypeArgs = node.typeParameters !== void 0 ? generateGenericArgs(node.typeParameters) : void 0;
|
|
2687
|
-
const rawType =
|
|
2236
|
+
const rawType = ts16.factory.createTypeReferenceNode(node.name, rawTypeArgs);
|
|
2688
2237
|
const initParam = constructTypeCtorParameter(node, meta, rawType);
|
|
2689
2238
|
let body = void 0;
|
|
2690
2239
|
if (meta.body) {
|
|
2691
|
-
body =
|
|
2692
|
-
|
|
2240
|
+
body = ts16.factory.createBlock([
|
|
2241
|
+
ts16.factory.createReturnStatement(ts16.factory.createNonNullExpression(ts16.factory.createNull()))
|
|
2693
2242
|
]);
|
|
2694
2243
|
}
|
|
2695
|
-
return
|
|
2244
|
+
return ts16.factory.createMethodDeclaration(void 0, [ts16.factory.createModifier(ts16.SyntaxKind.StaticKeyword)], void 0, meta.fnName, void 0, typeParametersWithDefaultTypes(node.typeParameters), [initParam], rawType, body);
|
|
2696
2245
|
}
|
|
2697
2246
|
function constructTypeCtorParameter(node, meta, rawType) {
|
|
2698
2247
|
let initType = null;
|
|
@@ -2701,26 +2250,26 @@ function constructTypeCtorParameter(node, meta, rawType) {
|
|
|
2701
2250
|
const coercedKeys = [];
|
|
2702
2251
|
for (const key of keys) {
|
|
2703
2252
|
if (!meta.coercedInputFields.has(key)) {
|
|
2704
|
-
plainKeys.push(
|
|
2253
|
+
plainKeys.push(ts16.factory.createLiteralTypeNode(ts16.factory.createStringLiteral(key)));
|
|
2705
2254
|
} else {
|
|
2706
|
-
coercedKeys.push(
|
|
2255
|
+
coercedKeys.push(ts16.factory.createPropertySignature(void 0, key, void 0, tsCreateTypeQueryForCoercedInput(rawType.typeName, key)));
|
|
2707
2256
|
}
|
|
2708
2257
|
}
|
|
2709
2258
|
if (plainKeys.length > 0) {
|
|
2710
|
-
const keyTypeUnion =
|
|
2711
|
-
initType =
|
|
2259
|
+
const keyTypeUnion = ts16.factory.createUnionTypeNode(plainKeys);
|
|
2260
|
+
initType = ts16.factory.createTypeReferenceNode("Pick", [rawType, keyTypeUnion]);
|
|
2712
2261
|
}
|
|
2713
2262
|
if (coercedKeys.length > 0) {
|
|
2714
|
-
const coercedLiteral =
|
|
2715
|
-
initType = initType !== null ?
|
|
2263
|
+
const coercedLiteral = ts16.factory.createTypeLiteralNode(coercedKeys);
|
|
2264
|
+
initType = initType !== null ? ts16.factory.createIntersectionTypeNode([initType, coercedLiteral]) : coercedLiteral;
|
|
2716
2265
|
}
|
|
2717
2266
|
if (initType === null) {
|
|
2718
|
-
initType =
|
|
2267
|
+
initType = ts16.factory.createTypeLiteralNode([]);
|
|
2719
2268
|
}
|
|
2720
|
-
return
|
|
2269
|
+
return ts16.factory.createParameterDeclaration(void 0, void 0, void 0, "init", void 0, initType, void 0);
|
|
2721
2270
|
}
|
|
2722
2271
|
function generateGenericArgs(params) {
|
|
2723
|
-
return params.map((param) =>
|
|
2272
|
+
return params.map((param) => ts16.factory.createTypeReferenceNode(param.name, void 0));
|
|
2724
2273
|
}
|
|
2725
2274
|
function requiresInlineTypeCtor(node, host, env) {
|
|
2726
2275
|
return !checkIfGenericTypeBoundsCanBeEmitted(node, host, env);
|
|
@@ -2731,14 +2280,14 @@ function typeParametersWithDefaultTypes(params) {
|
|
|
2731
2280
|
}
|
|
2732
2281
|
return params.map((param) => {
|
|
2733
2282
|
if (param.default === void 0) {
|
|
2734
|
-
return
|
|
2283
|
+
return ts16.factory.updateTypeParameterDeclaration(param, param.name, param.constraint, ts16.factory.createKeywordTypeNode(ts16.SyntaxKind.AnyKeyword));
|
|
2735
2284
|
} else {
|
|
2736
2285
|
return param;
|
|
2737
2286
|
}
|
|
2738
2287
|
});
|
|
2739
2288
|
}
|
|
2740
2289
|
|
|
2741
|
-
// bazel-out/
|
|
2290
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/environment.mjs
|
|
2742
2291
|
var Environment = class {
|
|
2743
2292
|
constructor(config, importManager, refEmitter, reflector, contextFile) {
|
|
2744
2293
|
this.config = config;
|
|
@@ -2763,13 +2312,13 @@ var Environment = class {
|
|
|
2763
2312
|
}
|
|
2764
2313
|
if (requiresInlineTypeCtor(node, this.reflector, this)) {
|
|
2765
2314
|
const ref = this.reference(dirRef);
|
|
2766
|
-
const typeCtorExpr =
|
|
2315
|
+
const typeCtorExpr = ts17.factory.createPropertyAccessExpression(ref, "ngTypeCtor");
|
|
2767
2316
|
this.typeCtors.set(node, typeCtorExpr);
|
|
2768
2317
|
return typeCtorExpr;
|
|
2769
2318
|
} else {
|
|
2770
2319
|
const fnName = `_ctor${this.nextIds.typeCtor++}`;
|
|
2771
2320
|
const nodeTypeRef = this.referenceType(dirRef);
|
|
2772
|
-
if (!
|
|
2321
|
+
if (!ts17.isTypeReferenceNode(nodeTypeRef)) {
|
|
2773
2322
|
throw new Error(`Expected TypeReferenceNode from reference to ${dirRef.debugName}`);
|
|
2774
2323
|
}
|
|
2775
2324
|
const meta = {
|
|
@@ -2785,7 +2334,7 @@ var Environment = class {
|
|
|
2785
2334
|
const typeParams = this.emitTypeParameters(node);
|
|
2786
2335
|
const typeCtor = generateTypeCtorDeclarationFn(node, meta, nodeTypeRef.typeName, typeParams);
|
|
2787
2336
|
this.typeCtorStatements.push(typeCtor);
|
|
2788
|
-
const fnId =
|
|
2337
|
+
const fnId = ts17.factory.createIdentifier(fnName);
|
|
2789
2338
|
this.typeCtors.set(node, fnId);
|
|
2790
2339
|
return fnId;
|
|
2791
2340
|
}
|
|
@@ -2795,7 +2344,7 @@ var Environment = class {
|
|
|
2795
2344
|
return this.pipeInsts.get(ref.node);
|
|
2796
2345
|
}
|
|
2797
2346
|
const pipeType = this.referenceType(ref);
|
|
2798
|
-
const pipeInstId =
|
|
2347
|
+
const pipeInstId = ts17.factory.createIdentifier(`_pipe${this.nextIds.pipeInst++}`);
|
|
2799
2348
|
this.pipeInstStatements.push(tsDeclareVariable(pipeInstId, pipeType));
|
|
2800
2349
|
this.pipeInsts.set(ref.node, pipeInstId);
|
|
2801
2350
|
return pipeInstId;
|
|
@@ -2819,7 +2368,7 @@ var Environment = class {
|
|
|
2819
2368
|
return emitter.emit((ref) => this.referenceType(ref));
|
|
2820
2369
|
}
|
|
2821
2370
|
referenceExternalType(moduleName, name, typeParams) {
|
|
2822
|
-
const external = new
|
|
2371
|
+
const external = new ExternalExpr({ moduleName, name });
|
|
2823
2372
|
return translateType(new ExpressionType(external, TypeModifier.None, typeParams), this.importManager);
|
|
2824
2373
|
}
|
|
2825
2374
|
getPreludeStatements() {
|
|
@@ -2830,9 +2379,9 @@ var Environment = class {
|
|
|
2830
2379
|
}
|
|
2831
2380
|
};
|
|
2832
2381
|
|
|
2833
|
-
// bazel-out/
|
|
2382
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/oob.mjs
|
|
2834
2383
|
import { TmplAstElement as TmplAstElement2 } from "@angular/compiler";
|
|
2835
|
-
import
|
|
2384
|
+
import ts18 from "typescript";
|
|
2836
2385
|
var OutOfBandDiagnosticRecorderImpl = class {
|
|
2837
2386
|
constructor(resolver) {
|
|
2838
2387
|
this.resolver = resolver;
|
|
@@ -2846,7 +2395,7 @@ var OutOfBandDiagnosticRecorderImpl = class {
|
|
|
2846
2395
|
const mapping = this.resolver.getSourceMapping(templateId);
|
|
2847
2396
|
const value = ref.value.trim();
|
|
2848
2397
|
const errorMsg = `No directive found with exportAs '${value}'.`;
|
|
2849
|
-
this._diagnostics.push(makeTemplateDiagnostic(templateId, mapping, ref.valueSpan || ref.sourceSpan,
|
|
2398
|
+
this._diagnostics.push(makeTemplateDiagnostic(templateId, mapping, ref.valueSpan || ref.sourceSpan, ts18.DiagnosticCategory.Error, ngErrorCode(ErrorCode.MISSING_REFERENCE_TARGET), errorMsg));
|
|
2850
2399
|
}
|
|
2851
2400
|
missingPipe(templateId, ast) {
|
|
2852
2401
|
if (this.recordedPipes.has(ast)) {
|
|
@@ -2858,7 +2407,7 @@ var OutOfBandDiagnosticRecorderImpl = class {
|
|
|
2858
2407
|
if (sourceSpan === null) {
|
|
2859
2408
|
throw new Error(`Assertion failure: no SourceLocation found for usage of pipe '${ast.name}'.`);
|
|
2860
2409
|
}
|
|
2861
|
-
this._diagnostics.push(makeTemplateDiagnostic(templateId, mapping, sourceSpan,
|
|
2410
|
+
this._diagnostics.push(makeTemplateDiagnostic(templateId, mapping, sourceSpan, ts18.DiagnosticCategory.Error, ngErrorCode(ErrorCode.MISSING_PIPE), errorMsg));
|
|
2862
2411
|
this.recordedPipes.add(ast);
|
|
2863
2412
|
}
|
|
2864
2413
|
illegalAssignmentToTemplateVar(templateId, assignment, target) {
|
|
@@ -2869,7 +2418,7 @@ var OutOfBandDiagnosticRecorderImpl = class {
|
|
|
2869
2418
|
if (sourceSpan === null) {
|
|
2870
2419
|
throw new Error(`Assertion failure: no SourceLocation found for property binding.`);
|
|
2871
2420
|
}
|
|
2872
|
-
this._diagnostics.push(makeTemplateDiagnostic(templateId, mapping, sourceSpan,
|
|
2421
|
+
this._diagnostics.push(makeTemplateDiagnostic(templateId, mapping, sourceSpan, ts18.DiagnosticCategory.Error, ngErrorCode(ErrorCode.WRITE_TO_READ_ONLY_VARIABLE), errorMsg, [{
|
|
2873
2422
|
text: `The variable ${assignment.name} is declared here.`,
|
|
2874
2423
|
start: ((_a = target.valueSpan) == null ? void 0 : _a.start.offset) || target.sourceSpan.start.offset,
|
|
2875
2424
|
end: ((_b = target.valueSpan) == null ? void 0 : _b.end.offset) || target.sourceSpan.end.offset,
|
|
@@ -2879,7 +2428,7 @@ var OutOfBandDiagnosticRecorderImpl = class {
|
|
|
2879
2428
|
duplicateTemplateVar(templateId, variable, firstDecl) {
|
|
2880
2429
|
const mapping = this.resolver.getSourceMapping(templateId);
|
|
2881
2430
|
const errorMsg = `Cannot redeclare variable '${variable.name}' as it was previously declared elsewhere for the same template.`;
|
|
2882
|
-
this._diagnostics.push(makeTemplateDiagnostic(templateId, mapping, variable.sourceSpan,
|
|
2431
|
+
this._diagnostics.push(makeTemplateDiagnostic(templateId, mapping, variable.sourceSpan, ts18.DiagnosticCategory.Error, ngErrorCode(ErrorCode.DUPLICATE_VARIABLE_DECLARATION), errorMsg, [{
|
|
2883
2432
|
text: `The variable '${firstDecl.name}' was first declared here.`,
|
|
2884
2433
|
start: firstDecl.sourceSpan.start.offset,
|
|
2885
2434
|
end: firstDecl.sourceSpan.end.offset,
|
|
@@ -2918,7 +2467,7 @@ var OutOfBandDiagnosticRecorderImpl = class {
|
|
|
2918
2467
|
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.
|
|
2919
2468
|
|
|
2920
2469
|
Consider enabling the 'strictTemplates' option in your tsconfig.json for better type inference within this template.`;
|
|
2921
|
-
this._diagnostics.push(makeTemplateDiagnostic(templateId, mapping, diagnosticVar.keySpan,
|
|
2470
|
+
this._diagnostics.push(makeTemplateDiagnostic(templateId, mapping, diagnosticVar.keySpan, ts18.DiagnosticCategory.Suggestion, ngErrorCode(ErrorCode.SUGGEST_SUBOPTIMAL_TYPE_INFERENCE), message));
|
|
2922
2471
|
}
|
|
2923
2472
|
splitTwoWayBinding(templateId, input, output, inputConsumer, outputConsumer) {
|
|
2924
2473
|
const mapping = this.resolver.getSourceMapping(templateId);
|
|
@@ -2952,7 +2501,7 @@ Consider enabling the 'strictTemplates' option in your tsconfig.json for better
|
|
|
2952
2501
|
sourceFile: outputConsumer.name.getSourceFile()
|
|
2953
2502
|
});
|
|
2954
2503
|
}
|
|
2955
|
-
this._diagnostics.push(makeTemplateDiagnostic(templateId, mapping, input.keySpan,
|
|
2504
|
+
this._diagnostics.push(makeTemplateDiagnostic(templateId, mapping, input.keySpan, ts18.DiagnosticCategory.Error, ngErrorCode(ErrorCode.SPLIT_TWO_WAY_BINDING), errorMsg, relatedMessages));
|
|
2956
2505
|
}
|
|
2957
2506
|
};
|
|
2958
2507
|
function makeInlineDiagnostic(templateId, code, node, messageText, relatedInformation) {
|
|
@@ -2962,8 +2511,8 @@ function makeInlineDiagnostic(templateId, code, node, messageText, relatedInform
|
|
|
2962
2511
|
});
|
|
2963
2512
|
}
|
|
2964
2513
|
|
|
2965
|
-
// bazel-out/
|
|
2966
|
-
import
|
|
2514
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/shim.mjs
|
|
2515
|
+
import ts19 from "typescript";
|
|
2967
2516
|
var TypeCheckShimGenerator = class {
|
|
2968
2517
|
constructor() {
|
|
2969
2518
|
this.extensionPrefix = "ngtypecheck";
|
|
@@ -2973,25 +2522,25 @@ var TypeCheckShimGenerator = class {
|
|
|
2973
2522
|
if (priorShimSf !== null) {
|
|
2974
2523
|
return priorShimSf;
|
|
2975
2524
|
}
|
|
2976
|
-
return
|
|
2525
|
+
return ts19.createSourceFile(genFilePath, "export const USED_FOR_NG_TYPE_CHECKING = true;", ts19.ScriptTarget.Latest, true, ts19.ScriptKind.TS);
|
|
2977
2526
|
}
|
|
2978
2527
|
static shimFor(fileName) {
|
|
2979
2528
|
return absoluteFrom(fileName.replace(/\.tsx?$/, ".ngtypecheck.ts"));
|
|
2980
2529
|
}
|
|
2981
2530
|
};
|
|
2982
2531
|
|
|
2983
|
-
// bazel-out/
|
|
2532
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_check_block.mjs
|
|
2984
2533
|
import { BindingPipe, Call as Call2, DYNAMIC_TYPE, ImplicitReceiver as ImplicitReceiver4, PropertyRead as PropertyRead4, PropertyWrite as PropertyWrite3, SafeCall, SafePropertyRead as SafePropertyRead3, ThisReceiver, TmplAstBoundAttribute, TmplAstBoundText, TmplAstElement as TmplAstElement3, TmplAstIcu, TmplAstReference as TmplAstReference3, TmplAstTemplate as TmplAstTemplate2, TmplAstTextAttribute as TmplAstTextAttribute2, TmplAstVariable as TmplAstVariable2 } from "@angular/compiler";
|
|
2985
|
-
import
|
|
2534
|
+
import ts22 from "typescript";
|
|
2986
2535
|
|
|
2987
|
-
// bazel-out/
|
|
2536
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/diagnostics.mjs
|
|
2988
2537
|
import { AbsoluteSourceSpan as AbsoluteSourceSpan3 } from "@angular/compiler";
|
|
2989
|
-
import
|
|
2538
|
+
import ts20 from "typescript";
|
|
2990
2539
|
function wrapForDiagnostics(expr) {
|
|
2991
|
-
return
|
|
2540
|
+
return ts20.factory.createParenthesizedExpression(expr);
|
|
2992
2541
|
}
|
|
2993
2542
|
function wrapForTypeChecker(expr) {
|
|
2994
|
-
return
|
|
2543
|
+
return ts20.factory.createParenthesizedExpression(expr);
|
|
2995
2544
|
}
|
|
2996
2545
|
function addParseSpanInfo(node, span) {
|
|
2997
2546
|
let commentText;
|
|
@@ -3000,10 +2549,10 @@ function addParseSpanInfo(node, span) {
|
|
|
3000
2549
|
} else {
|
|
3001
2550
|
commentText = `${span.start.offset},${span.end.offset}`;
|
|
3002
2551
|
}
|
|
3003
|
-
|
|
2552
|
+
ts20.addSyntheticTrailingComment(node, ts20.SyntaxKind.MultiLineCommentTrivia, commentText, false);
|
|
3004
2553
|
}
|
|
3005
2554
|
function addTemplateId(tcb, id) {
|
|
3006
|
-
|
|
2555
|
+
ts20.addSyntheticLeadingComment(tcb, ts20.SyntaxKind.MultiLineCommentTrivia, id, true);
|
|
3007
2556
|
}
|
|
3008
2557
|
function shouldReportDiagnostic(diagnostic) {
|
|
3009
2558
|
const { code } = diagnostic;
|
|
@@ -3030,34 +2579,34 @@ function translateDiagnostic(diagnostic, resolver) {
|
|
|
3030
2579
|
return makeTemplateDiagnostic(sourceLocation.id, templateSourceMapping, span, diagnostic.category, diagnostic.code, diagnostic.messageText);
|
|
3031
2580
|
}
|
|
3032
2581
|
|
|
3033
|
-
// bazel-out/
|
|
2582
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/expression.mjs
|
|
3034
2583
|
import { ASTWithSource as ASTWithSource2, Call, EmptyExpr as EmptyExpr2, PropertyRead as PropertyRead3, SafeKeyedRead, SafePropertyRead as SafePropertyRead2 } from "@angular/compiler";
|
|
3035
|
-
import
|
|
3036
|
-
var NULL_AS_ANY =
|
|
3037
|
-
var UNDEFINED =
|
|
2584
|
+
import ts21 from "typescript";
|
|
2585
|
+
var NULL_AS_ANY = ts21.factory.createAsExpression(ts21.factory.createNull(), ts21.factory.createKeywordTypeNode(ts21.SyntaxKind.AnyKeyword));
|
|
2586
|
+
var UNDEFINED = ts21.factory.createIdentifier("undefined");
|
|
3038
2587
|
var UNARY_OPS = /* @__PURE__ */ new Map([
|
|
3039
|
-
["+",
|
|
3040
|
-
["-",
|
|
2588
|
+
["+", ts21.SyntaxKind.PlusToken],
|
|
2589
|
+
["-", ts21.SyntaxKind.MinusToken]
|
|
3041
2590
|
]);
|
|
3042
2591
|
var BINARY_OPS = /* @__PURE__ */ new Map([
|
|
3043
|
-
["+",
|
|
3044
|
-
["-",
|
|
3045
|
-
["<",
|
|
3046
|
-
[">",
|
|
3047
|
-
["<=",
|
|
3048
|
-
[">=",
|
|
3049
|
-
["==",
|
|
3050
|
-
["===",
|
|
3051
|
-
["*",
|
|
3052
|
-
["/",
|
|
3053
|
-
["%",
|
|
3054
|
-
["!=",
|
|
3055
|
-
["!==",
|
|
3056
|
-
["||",
|
|
3057
|
-
["&&",
|
|
3058
|
-
["&",
|
|
3059
|
-
["|",
|
|
3060
|
-
["??",
|
|
2592
|
+
["+", ts21.SyntaxKind.PlusToken],
|
|
2593
|
+
["-", ts21.SyntaxKind.MinusToken],
|
|
2594
|
+
["<", ts21.SyntaxKind.LessThanToken],
|
|
2595
|
+
[">", ts21.SyntaxKind.GreaterThanToken],
|
|
2596
|
+
["<=", ts21.SyntaxKind.LessThanEqualsToken],
|
|
2597
|
+
[">=", ts21.SyntaxKind.GreaterThanEqualsToken],
|
|
2598
|
+
["==", ts21.SyntaxKind.EqualsEqualsToken],
|
|
2599
|
+
["===", ts21.SyntaxKind.EqualsEqualsEqualsToken],
|
|
2600
|
+
["*", ts21.SyntaxKind.AsteriskToken],
|
|
2601
|
+
["/", ts21.SyntaxKind.SlashToken],
|
|
2602
|
+
["%", ts21.SyntaxKind.PercentToken],
|
|
2603
|
+
["!=", ts21.SyntaxKind.ExclamationEqualsToken],
|
|
2604
|
+
["!==", ts21.SyntaxKind.ExclamationEqualsEqualsToken],
|
|
2605
|
+
["||", ts21.SyntaxKind.BarBarToken],
|
|
2606
|
+
["&&", ts21.SyntaxKind.AmpersandAmpersandToken],
|
|
2607
|
+
["&", ts21.SyntaxKind.AmpersandToken],
|
|
2608
|
+
["|", ts21.SyntaxKind.BarToken],
|
|
2609
|
+
["??", ts21.SyntaxKind.QuestionQuestionToken]
|
|
3061
2610
|
]);
|
|
3062
2611
|
function astToTypescript(ast, maybeResolve, config) {
|
|
3063
2612
|
const translator = new AstTranslator(maybeResolve, config);
|
|
@@ -3073,7 +2622,7 @@ var AstTranslator = class {
|
|
|
3073
2622
|
ast = ast.ast;
|
|
3074
2623
|
}
|
|
3075
2624
|
if (ast instanceof EmptyExpr2) {
|
|
3076
|
-
const res =
|
|
2625
|
+
const res = ts21.factory.createIdentifier("undefined");
|
|
3077
2626
|
addParseSpanInfo(res, ast.sourceSpan);
|
|
3078
2627
|
return res;
|
|
3079
2628
|
}
|
|
@@ -3089,7 +2638,7 @@ var AstTranslator = class {
|
|
|
3089
2638
|
if (op === void 0) {
|
|
3090
2639
|
throw new Error(`Unsupported Unary.operator: ${ast.operator}`);
|
|
3091
2640
|
}
|
|
3092
|
-
const node = wrapForDiagnostics(
|
|
2641
|
+
const node = wrapForDiagnostics(ts21.factory.createPrefixUnaryExpression(op, expr));
|
|
3093
2642
|
addParseSpanInfo(node, ast.sourceSpan);
|
|
3094
2643
|
return node;
|
|
3095
2644
|
}
|
|
@@ -3100,13 +2649,13 @@ var AstTranslator = class {
|
|
|
3100
2649
|
if (op === void 0) {
|
|
3101
2650
|
throw new Error(`Unsupported Binary.operation: ${ast.operation}`);
|
|
3102
2651
|
}
|
|
3103
|
-
const node =
|
|
2652
|
+
const node = ts21.factory.createBinaryExpression(lhs, op, rhs);
|
|
3104
2653
|
addParseSpanInfo(node, ast.sourceSpan);
|
|
3105
2654
|
return node;
|
|
3106
2655
|
}
|
|
3107
2656
|
visitChain(ast) {
|
|
3108
2657
|
const elements = ast.expressions.map((expr) => this.translate(expr));
|
|
3109
|
-
const node = wrapForDiagnostics(
|
|
2658
|
+
const node = wrapForDiagnostics(ts21.factory.createCommaListExpression(elements));
|
|
3110
2659
|
addParseSpanInfo(node, ast.sourceSpan);
|
|
3111
2660
|
return node;
|
|
3112
2661
|
}
|
|
@@ -3114,7 +2663,7 @@ var AstTranslator = class {
|
|
|
3114
2663
|
const condExpr = this.translate(ast.condition);
|
|
3115
2664
|
const trueExpr = this.translate(ast.trueExp);
|
|
3116
2665
|
const falseExpr = wrapForTypeChecker(this.translate(ast.falseExp));
|
|
3117
|
-
const node =
|
|
2666
|
+
const node = ts21.factory.createParenthesizedExpression(ts21.factory.createConditionalExpression(condExpr, void 0, trueExpr, void 0, falseExpr));
|
|
3118
2667
|
addParseSpanInfo(node, ast.sourceSpan);
|
|
3119
2668
|
return node;
|
|
3120
2669
|
}
|
|
@@ -3125,26 +2674,26 @@ var AstTranslator = class {
|
|
|
3125
2674
|
throw new Error("Method not implemented.");
|
|
3126
2675
|
}
|
|
3127
2676
|
visitInterpolation(ast) {
|
|
3128
|
-
return ast.expressions.reduce((lhs, ast2) =>
|
|
2677
|
+
return ast.expressions.reduce((lhs, ast2) => ts21.factory.createBinaryExpression(lhs, ts21.SyntaxKind.PlusToken, wrapForTypeChecker(this.translate(ast2))), ts21.factory.createStringLiteral(""));
|
|
3129
2678
|
}
|
|
3130
2679
|
visitKeyedRead(ast) {
|
|
3131
2680
|
const receiver = wrapForDiagnostics(this.translate(ast.receiver));
|
|
3132
2681
|
const key = this.translate(ast.key);
|
|
3133
|
-
const node =
|
|
2682
|
+
const node = ts21.factory.createElementAccessExpression(receiver, key);
|
|
3134
2683
|
addParseSpanInfo(node, ast.sourceSpan);
|
|
3135
2684
|
return node;
|
|
3136
2685
|
}
|
|
3137
2686
|
visitKeyedWrite(ast) {
|
|
3138
2687
|
const receiver = wrapForDiagnostics(this.translate(ast.receiver));
|
|
3139
|
-
const left =
|
|
2688
|
+
const left = ts21.factory.createElementAccessExpression(receiver, this.translate(ast.key));
|
|
3140
2689
|
const right = wrapForTypeChecker(this.translate(ast.value));
|
|
3141
|
-
const node = wrapForDiagnostics(
|
|
2690
|
+
const node = wrapForDiagnostics(ts21.factory.createBinaryExpression(left, ts21.SyntaxKind.EqualsToken, right));
|
|
3142
2691
|
addParseSpanInfo(node, ast.sourceSpan);
|
|
3143
2692
|
return node;
|
|
3144
2693
|
}
|
|
3145
2694
|
visitLiteralArray(ast) {
|
|
3146
2695
|
const elements = ast.expressions.map((expr) => this.translate(expr));
|
|
3147
|
-
const literal =
|
|
2696
|
+
const literal = ts21.factory.createArrayLiteralExpression(elements);
|
|
3148
2697
|
const node = this.config.strictLiteralTypes ? literal : tsCastToAny(literal);
|
|
3149
2698
|
addParseSpanInfo(node, ast.sourceSpan);
|
|
3150
2699
|
return node;
|
|
@@ -3152,9 +2701,9 @@ var AstTranslator = class {
|
|
|
3152
2701
|
visitLiteralMap(ast) {
|
|
3153
2702
|
const properties = ast.keys.map(({ key }, idx) => {
|
|
3154
2703
|
const value = this.translate(ast.values[idx]);
|
|
3155
|
-
return
|
|
2704
|
+
return ts21.factory.createPropertyAssignment(ts21.factory.createStringLiteral(key), value);
|
|
3156
2705
|
});
|
|
3157
|
-
const literal =
|
|
2706
|
+
const literal = ts21.factory.createObjectLiteralExpression(properties, true);
|
|
3158
2707
|
const node = this.config.strictLiteralTypes ? literal : tsCastToAny(literal);
|
|
3159
2708
|
addParseSpanInfo(node, ast.sourceSpan);
|
|
3160
2709
|
return node;
|
|
@@ -3162,18 +2711,24 @@ var AstTranslator = class {
|
|
|
3162
2711
|
visitLiteralPrimitive(ast) {
|
|
3163
2712
|
let node;
|
|
3164
2713
|
if (ast.value === void 0) {
|
|
3165
|
-
node =
|
|
2714
|
+
node = ts21.factory.createIdentifier("undefined");
|
|
3166
2715
|
} else if (ast.value === null) {
|
|
3167
|
-
node =
|
|
2716
|
+
node = ts21.factory.createNull();
|
|
2717
|
+
} else if (typeof ast.value === "string") {
|
|
2718
|
+
node = ts21.factory.createStringLiteral(ast.value);
|
|
2719
|
+
} else if (typeof ast.value === "number") {
|
|
2720
|
+
node = ts21.factory.createNumericLiteral(ast.value);
|
|
2721
|
+
} else if (typeof ast.value === "boolean") {
|
|
2722
|
+
node = ast.value ? ts21.factory.createTrue() : ts21.factory.createFalse();
|
|
3168
2723
|
} else {
|
|
3169
|
-
|
|
2724
|
+
throw Error(`Unsupported AST value of type ${typeof ast.value}`);
|
|
3170
2725
|
}
|
|
3171
2726
|
addParseSpanInfo(node, ast.sourceSpan);
|
|
3172
2727
|
return node;
|
|
3173
2728
|
}
|
|
3174
2729
|
visitNonNullAssert(ast) {
|
|
3175
2730
|
const expr = wrapForDiagnostics(this.translate(ast.expression));
|
|
3176
|
-
const node =
|
|
2731
|
+
const node = ts21.factory.createNonNullExpression(expr);
|
|
3177
2732
|
addParseSpanInfo(node, ast.sourceSpan);
|
|
3178
2733
|
return node;
|
|
3179
2734
|
}
|
|
@@ -3182,13 +2737,13 @@ var AstTranslator = class {
|
|
|
3182
2737
|
}
|
|
3183
2738
|
visitPrefixNot(ast) {
|
|
3184
2739
|
const expression = wrapForDiagnostics(this.translate(ast.expression));
|
|
3185
|
-
const node =
|
|
2740
|
+
const node = ts21.factory.createLogicalNot(expression);
|
|
3186
2741
|
addParseSpanInfo(node, ast.sourceSpan);
|
|
3187
2742
|
return node;
|
|
3188
2743
|
}
|
|
3189
2744
|
visitPropertyRead(ast) {
|
|
3190
2745
|
const receiver = wrapForDiagnostics(this.translate(ast.receiver));
|
|
3191
|
-
const name =
|
|
2746
|
+
const name = ts21.factory.createPropertyAccessExpression(receiver, ast.name);
|
|
3192
2747
|
addParseSpanInfo(name, ast.nameSpan);
|
|
3193
2748
|
const node = wrapForDiagnostics(name);
|
|
3194
2749
|
addParseSpanInfo(node, ast.sourceSpan);
|
|
@@ -3196,29 +2751,26 @@ var AstTranslator = class {
|
|
|
3196
2751
|
}
|
|
3197
2752
|
visitPropertyWrite(ast) {
|
|
3198
2753
|
const receiver = wrapForDiagnostics(this.translate(ast.receiver));
|
|
3199
|
-
const left =
|
|
2754
|
+
const left = ts21.factory.createPropertyAccessExpression(receiver, ast.name);
|
|
3200
2755
|
addParseSpanInfo(left, ast.nameSpan);
|
|
3201
2756
|
const leftWithPath = wrapForDiagnostics(left);
|
|
3202
2757
|
addParseSpanInfo(leftWithPath, ast.sourceSpan);
|
|
3203
2758
|
const right = wrapForTypeChecker(this.translate(ast.value));
|
|
3204
|
-
const node = wrapForDiagnostics(
|
|
2759
|
+
const node = wrapForDiagnostics(ts21.factory.createBinaryExpression(leftWithPath, ts21.SyntaxKind.EqualsToken, right));
|
|
3205
2760
|
addParseSpanInfo(node, ast.sourceSpan);
|
|
3206
2761
|
return node;
|
|
3207
2762
|
}
|
|
3208
|
-
visitQuote(ast) {
|
|
3209
|
-
return NULL_AS_ANY;
|
|
3210
|
-
}
|
|
3211
2763
|
visitSafePropertyRead(ast) {
|
|
3212
2764
|
let node;
|
|
3213
2765
|
const receiver = wrapForDiagnostics(this.translate(ast.receiver));
|
|
3214
2766
|
if (this.config.strictSafeNavigationTypes) {
|
|
3215
|
-
const expr =
|
|
2767
|
+
const expr = ts21.factory.createPropertyAccessExpression(ts21.factory.createNonNullExpression(receiver), ast.name);
|
|
3216
2768
|
addParseSpanInfo(expr, ast.nameSpan);
|
|
3217
|
-
node =
|
|
2769
|
+
node = ts21.factory.createParenthesizedExpression(ts21.factory.createConditionalExpression(NULL_AS_ANY, void 0, expr, void 0, UNDEFINED));
|
|
3218
2770
|
} else if (VeSafeLhsInferenceBugDetector.veWillInferAnyFor(ast)) {
|
|
3219
|
-
node =
|
|
2771
|
+
node = ts21.factory.createPropertyAccessExpression(tsCastToAny(receiver), ast.name);
|
|
3220
2772
|
} else {
|
|
3221
|
-
const expr =
|
|
2773
|
+
const expr = ts21.factory.createPropertyAccessExpression(ts21.factory.createNonNullExpression(receiver), ast.name);
|
|
3222
2774
|
addParseSpanInfo(expr, ast.nameSpan);
|
|
3223
2775
|
node = tsCastToAny(expr);
|
|
3224
2776
|
}
|
|
@@ -3230,13 +2782,13 @@ var AstTranslator = class {
|
|
|
3230
2782
|
const key = this.translate(ast.key);
|
|
3231
2783
|
let node;
|
|
3232
2784
|
if (this.config.strictSafeNavigationTypes) {
|
|
3233
|
-
const expr =
|
|
2785
|
+
const expr = ts21.factory.createElementAccessExpression(ts21.factory.createNonNullExpression(receiver), key);
|
|
3234
2786
|
addParseSpanInfo(expr, ast.sourceSpan);
|
|
3235
|
-
node =
|
|
2787
|
+
node = ts21.factory.createParenthesizedExpression(ts21.factory.createConditionalExpression(NULL_AS_ANY, void 0, expr, void 0, UNDEFINED));
|
|
3236
2788
|
} else if (VeSafeLhsInferenceBugDetector.veWillInferAnyFor(ast)) {
|
|
3237
|
-
node =
|
|
2789
|
+
node = ts21.factory.createElementAccessExpression(tsCastToAny(receiver), key);
|
|
3238
2790
|
} else {
|
|
3239
|
-
const expr =
|
|
2791
|
+
const expr = ts21.factory.createElementAccessExpression(ts21.factory.createNonNullExpression(receiver), key);
|
|
3240
2792
|
addParseSpanInfo(expr, ast.sourceSpan);
|
|
3241
2793
|
node = tsCastToAny(expr);
|
|
3242
2794
|
}
|
|
@@ -3253,7 +2805,7 @@ var AstTranslator = class {
|
|
|
3253
2805
|
expr = resolved;
|
|
3254
2806
|
} else {
|
|
3255
2807
|
const propertyReceiver = wrapForDiagnostics(this.translate(receiver.receiver));
|
|
3256
|
-
expr =
|
|
2808
|
+
expr = ts21.factory.createPropertyAccessExpression(propertyReceiver, receiver.name);
|
|
3257
2809
|
addParseSpanInfo(expr, receiver.nameSpan);
|
|
3258
2810
|
}
|
|
3259
2811
|
} else {
|
|
@@ -3263,7 +2815,7 @@ var AstTranslator = class {
|
|
|
3263
2815
|
if (ast.receiver instanceof SafePropertyRead2 || ast.receiver instanceof SafeKeyedRead) {
|
|
3264
2816
|
node = this.convertToSafeCall(ast, expr, args);
|
|
3265
2817
|
} else {
|
|
3266
|
-
node =
|
|
2818
|
+
node = ts21.factory.createCallExpression(expr, void 0, args);
|
|
3267
2819
|
}
|
|
3268
2820
|
addParseSpanInfo(node, ast.sourceSpan);
|
|
3269
2821
|
return node;
|
|
@@ -3277,13 +2829,13 @@ var AstTranslator = class {
|
|
|
3277
2829
|
}
|
|
3278
2830
|
convertToSafeCall(ast, expr, args) {
|
|
3279
2831
|
if (this.config.strictSafeNavigationTypes) {
|
|
3280
|
-
const call =
|
|
3281
|
-
return
|
|
2832
|
+
const call = ts21.factory.createCallExpression(ts21.factory.createNonNullExpression(expr), void 0, args);
|
|
2833
|
+
return ts21.factory.createParenthesizedExpression(ts21.factory.createConditionalExpression(NULL_AS_ANY, void 0, call, void 0, UNDEFINED));
|
|
3282
2834
|
}
|
|
3283
2835
|
if (VeSafeLhsInferenceBugDetector.veWillInferAnyFor(ast)) {
|
|
3284
|
-
return
|
|
2836
|
+
return ts21.factory.createCallExpression(tsCastToAny(expr), void 0, args);
|
|
3285
2837
|
}
|
|
3286
|
-
return tsCastToAny(
|
|
2838
|
+
return tsCastToAny(ts21.factory.createCallExpression(ts21.factory.createNonNullExpression(expr), void 0, args));
|
|
3287
2839
|
}
|
|
3288
2840
|
};
|
|
3289
2841
|
var VeSafeLhsInferenceBugDetector = class {
|
|
@@ -3348,9 +2900,6 @@ var VeSafeLhsInferenceBugDetector = class {
|
|
|
3348
2900
|
visitPropertyWrite(ast) {
|
|
3349
2901
|
return false;
|
|
3350
2902
|
}
|
|
3351
|
-
visitQuote(ast) {
|
|
3352
|
-
return false;
|
|
3353
|
-
}
|
|
3354
2903
|
visitSafePropertyRead(ast) {
|
|
3355
2904
|
return false;
|
|
3356
2905
|
}
|
|
@@ -3360,7 +2909,7 @@ var VeSafeLhsInferenceBugDetector = class {
|
|
|
3360
2909
|
};
|
|
3361
2910
|
VeSafeLhsInferenceBugDetector.SINGLETON = new VeSafeLhsInferenceBugDetector();
|
|
3362
2911
|
|
|
3363
|
-
// bazel-out/
|
|
2912
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/template_semantics.mjs
|
|
3364
2913
|
import { ImplicitReceiver as ImplicitReceiver3, RecursiveAstVisitor as RecursiveAstVisitor2, TmplAstVariable } from "@angular/compiler";
|
|
3365
2914
|
var ExpressionSemanticVisitor = class extends RecursiveAstVisitor2 {
|
|
3366
2915
|
constructor(templateId, boundTarget, oob) {
|
|
@@ -3384,7 +2933,7 @@ var ExpressionSemanticVisitor = class extends RecursiveAstVisitor2 {
|
|
|
3384
2933
|
}
|
|
3385
2934
|
};
|
|
3386
2935
|
|
|
3387
|
-
// bazel-out/
|
|
2936
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_check_block.mjs
|
|
3388
2937
|
var TcbGenericContextBehavior;
|
|
3389
2938
|
(function(TcbGenericContextBehavior2) {
|
|
3390
2939
|
TcbGenericContextBehavior2[TcbGenericContextBehavior2["UseEmitter"] = 0] = "UseEmitter";
|
|
@@ -3395,7 +2944,7 @@ function generateTypeCheckBlock(env, ref, name, meta, domSchemaChecker, oobRecor
|
|
|
3395
2944
|
const tcb = new Context(env, domSchemaChecker, oobRecorder, meta.id, meta.boundTarget, meta.pipes, meta.schemas);
|
|
3396
2945
|
const scope = Scope.forNodes(tcb, null, tcb.boundTarget.target.template, null);
|
|
3397
2946
|
const ctxRawType = env.referenceType(ref);
|
|
3398
|
-
if (!
|
|
2947
|
+
if (!ts22.isTypeReferenceNode(ctxRawType)) {
|
|
3399
2948
|
throw new Error(`Expected TypeReferenceNode when referencing the ctx param for ${ref.debugName}`);
|
|
3400
2949
|
}
|
|
3401
2950
|
let typeParameters = void 0;
|
|
@@ -3407,25 +2956,25 @@ function generateTypeCheckBlock(env, ref, name, meta, domSchemaChecker, oobRecor
|
|
|
3407
2956
|
switch (genericContextBehavior) {
|
|
3408
2957
|
case TcbGenericContextBehavior.UseEmitter:
|
|
3409
2958
|
typeParameters = new TypeParameterEmitter(ref.node.typeParameters, env.reflector).emit((typeRef) => env.referenceType(typeRef));
|
|
3410
|
-
typeArguments = typeParameters.map((param) =>
|
|
2959
|
+
typeArguments = typeParameters.map((param) => ts22.factory.createTypeReferenceNode(param.name));
|
|
3411
2960
|
break;
|
|
3412
2961
|
case TcbGenericContextBehavior.CopyClassNodes:
|
|
3413
2962
|
typeParameters = [...ref.node.typeParameters];
|
|
3414
|
-
typeArguments = typeParameters.map((param) =>
|
|
2963
|
+
typeArguments = typeParameters.map((param) => ts22.factory.createTypeReferenceNode(param.name));
|
|
3415
2964
|
break;
|
|
3416
2965
|
case TcbGenericContextBehavior.FallbackToAny:
|
|
3417
|
-
typeArguments = ref.node.typeParameters.map(() =>
|
|
2966
|
+
typeArguments = ref.node.typeParameters.map(() => ts22.factory.createKeywordTypeNode(ts22.SyntaxKind.AnyKeyword));
|
|
3418
2967
|
break;
|
|
3419
2968
|
}
|
|
3420
2969
|
}
|
|
3421
2970
|
const paramList = [tcbCtxParam(ref.node, ctxRawType.typeName, typeArguments)];
|
|
3422
2971
|
const scopeStatements = scope.render();
|
|
3423
|
-
const innerBody =
|
|
2972
|
+
const innerBody = ts22.factory.createBlock([
|
|
3424
2973
|
...env.getPreludeStatements(),
|
|
3425
2974
|
...scopeStatements
|
|
3426
2975
|
]);
|
|
3427
|
-
const body =
|
|
3428
|
-
const fnDecl =
|
|
2976
|
+
const body = ts22.factory.createBlock([ts22.factory.createIfStatement(ts22.factory.createTrue(), innerBody, void 0)]);
|
|
2977
|
+
const fnDecl = ts22.factory.createFunctionDeclaration(void 0, void 0, void 0, name, env.config.useContextGenericType ? typeParameters : void 0, paramList, void 0, body);
|
|
3429
2978
|
addTemplateId(fnDecl, meta.id);
|
|
3430
2979
|
return fnDecl;
|
|
3431
2980
|
}
|
|
@@ -3466,7 +3015,7 @@ var TcbVariableOp = class extends TcbOp {
|
|
|
3466
3015
|
execute() {
|
|
3467
3016
|
const ctx = this.scope.resolve(this.template);
|
|
3468
3017
|
const id = this.tcb.allocateId();
|
|
3469
|
-
const initializer =
|
|
3018
|
+
const initializer = ts22.factory.createPropertyAccessExpression(ctx, this.variable.value || "$implicit");
|
|
3470
3019
|
addParseSpanInfo(id, this.variable.keySpan);
|
|
3471
3020
|
let variable;
|
|
3472
3021
|
if (this.variable.valueSpan !== void 0) {
|
|
@@ -3489,7 +3038,7 @@ var TcbTemplateContextOp = class extends TcbOp {
|
|
|
3489
3038
|
}
|
|
3490
3039
|
execute() {
|
|
3491
3040
|
const ctx = this.tcb.allocateId();
|
|
3492
|
-
const type =
|
|
3041
|
+
const type = ts22.factory.createKeywordTypeNode(ts22.SyntaxKind.AnyKeyword);
|
|
3493
3042
|
this.scope.addStatement(tsDeclareVariable(ctx, type));
|
|
3494
3043
|
return ctx;
|
|
3495
3044
|
}
|
|
@@ -3542,16 +3091,16 @@ var TcbTemplateBodyOp = class extends TcbOp {
|
|
|
3542
3091
|
}
|
|
3543
3092
|
let guard = null;
|
|
3544
3093
|
if (directiveGuards.length > 0) {
|
|
3545
|
-
guard = directiveGuards.reduce((expr, dirGuard) =>
|
|
3094
|
+
guard = directiveGuards.reduce((expr, dirGuard) => ts22.factory.createBinaryExpression(expr, ts22.SyntaxKind.AmpersandAmpersandToken, dirGuard), directiveGuards.pop());
|
|
3546
3095
|
}
|
|
3547
3096
|
const tmplScope = Scope.forNodes(this.tcb, this.scope, this.template, guard);
|
|
3548
3097
|
const statements = tmplScope.render();
|
|
3549
3098
|
if (statements.length === 0) {
|
|
3550
3099
|
return null;
|
|
3551
3100
|
}
|
|
3552
|
-
let tmplBlock =
|
|
3101
|
+
let tmplBlock = ts22.factory.createBlock(statements);
|
|
3553
3102
|
if (guard !== null) {
|
|
3554
|
-
tmplBlock =
|
|
3103
|
+
tmplBlock = ts22.factory.createIfStatement(guard, tmplBlock);
|
|
3555
3104
|
}
|
|
3556
3105
|
this.scope.addStatement(tmplBlock);
|
|
3557
3106
|
return null;
|
|
@@ -3569,7 +3118,7 @@ var TcbTextInterpolationOp = class extends TcbOp {
|
|
|
3569
3118
|
}
|
|
3570
3119
|
execute() {
|
|
3571
3120
|
const expr = tcbExpression(this.binding.value, this.tcb, this.scope);
|
|
3572
|
-
this.scope.addStatement(
|
|
3121
|
+
this.scope.addStatement(ts22.factory.createExpressionStatement(expr));
|
|
3573
3122
|
return null;
|
|
3574
3123
|
}
|
|
3575
3124
|
};
|
|
@@ -3591,11 +3140,11 @@ var TcbDirectiveTypeOpBase = class extends TcbOp {
|
|
|
3591
3140
|
if (this.dir.isGeneric === false || dirRef.node.typeParameters === void 0) {
|
|
3592
3141
|
type = rawType;
|
|
3593
3142
|
} else {
|
|
3594
|
-
if (!
|
|
3143
|
+
if (!ts22.isTypeReferenceNode(rawType)) {
|
|
3595
3144
|
throw new Error(`Expected TypeReferenceNode when referencing the type for ${this.dir.ref.debugName}`);
|
|
3596
3145
|
}
|
|
3597
|
-
const typeArguments = dirRef.node.typeParameters.map(() =>
|
|
3598
|
-
type =
|
|
3146
|
+
const typeArguments = dirRef.node.typeParameters.map(() => ts22.factory.createKeywordTypeNode(ts22.SyntaxKind.AnyKeyword));
|
|
3147
|
+
type = ts22.factory.createTypeReferenceNode(rawType.typeName, typeArguments);
|
|
3599
3148
|
}
|
|
3600
3149
|
const id = this.tcb.allocateId();
|
|
3601
3150
|
addExpressionIdentifier(type, ExpressionIdentifier.DIRECTIVE);
|
|
@@ -3636,11 +3185,11 @@ var TcbReferenceOp = class extends TcbOp {
|
|
|
3636
3185
|
const id = this.tcb.allocateId();
|
|
3637
3186
|
let initializer = this.target instanceof TmplAstTemplate2 || this.target instanceof TmplAstElement3 ? this.scope.resolve(this.target) : this.scope.resolve(this.host, this.target);
|
|
3638
3187
|
if (this.target instanceof TmplAstElement3 && !this.tcb.env.config.checkTypeOfDomReferences || !this.tcb.env.config.checkTypeOfNonDomReferences) {
|
|
3639
|
-
initializer =
|
|
3188
|
+
initializer = ts22.factory.createAsExpression(initializer, ts22.factory.createKeywordTypeNode(ts22.SyntaxKind.AnyKeyword));
|
|
3640
3189
|
} else if (this.target instanceof TmplAstTemplate2) {
|
|
3641
|
-
initializer =
|
|
3642
|
-
initializer =
|
|
3643
|
-
initializer =
|
|
3190
|
+
initializer = ts22.factory.createAsExpression(initializer, ts22.factory.createKeywordTypeNode(ts22.SyntaxKind.AnyKeyword));
|
|
3191
|
+
initializer = ts22.factory.createAsExpression(initializer, this.tcb.env.referenceExternalType("@angular/core", "TemplateRef", [DYNAMIC_TYPE]));
|
|
3192
|
+
initializer = ts22.factory.createParenthesizedExpression(initializer);
|
|
3644
3193
|
}
|
|
3645
3194
|
addParseSpanInfo(initializer, this.node.sourceSpan);
|
|
3646
3195
|
addParseSpanInfo(id, this.node.keySpan);
|
|
@@ -3730,7 +3279,7 @@ var TcbDirectiveInputsOp = class extends TcbOp {
|
|
|
3730
3279
|
let target;
|
|
3731
3280
|
if (this.dir.coercedInputFields.has(fieldName)) {
|
|
3732
3281
|
const dirTypeRef = this.tcb.env.referenceType(this.dir.ref);
|
|
3733
|
-
if (!
|
|
3282
|
+
if (!ts22.isTypeReferenceNode(dirTypeRef)) {
|
|
3734
3283
|
throw new Error(`Expected TypeReferenceNode from reference to ${this.dir.ref.debugName}`);
|
|
3735
3284
|
}
|
|
3736
3285
|
const id = this.tcb.allocateId();
|
|
@@ -3745,10 +3294,10 @@ var TcbDirectiveInputsOp = class extends TcbOp {
|
|
|
3745
3294
|
}
|
|
3746
3295
|
const id = this.tcb.allocateId();
|
|
3747
3296
|
const dirTypeRef = this.tcb.env.referenceType(this.dir.ref);
|
|
3748
|
-
if (!
|
|
3297
|
+
if (!ts22.isTypeReferenceNode(dirTypeRef)) {
|
|
3749
3298
|
throw new Error(`Expected TypeReferenceNode from reference to ${this.dir.ref.debugName}`);
|
|
3750
3299
|
}
|
|
3751
|
-
const type =
|
|
3300
|
+
const type = ts22.factory.createIndexedAccessTypeNode(ts22.factory.createTypeQueryNode(dirId), ts22.factory.createLiteralTypeNode(ts22.factory.createStringLiteral(fieldName)));
|
|
3752
3301
|
const temp = tsDeclareVariable(id, type);
|
|
3753
3302
|
this.scope.addStatement(temp);
|
|
3754
3303
|
target = id;
|
|
@@ -3756,18 +3305,18 @@ var TcbDirectiveInputsOp = class extends TcbOp {
|
|
|
3756
3305
|
if (dirId === null) {
|
|
3757
3306
|
dirId = this.scope.resolve(this.node, this.dir);
|
|
3758
3307
|
}
|
|
3759
|
-
target = this.dir.stringLiteralInputFields.has(fieldName) ?
|
|
3308
|
+
target = this.dir.stringLiteralInputFields.has(fieldName) ? ts22.factory.createElementAccessExpression(dirId, ts22.factory.createStringLiteral(fieldName)) : ts22.factory.createPropertyAccessExpression(dirId, ts22.factory.createIdentifier(fieldName));
|
|
3760
3309
|
}
|
|
3761
3310
|
if (input.attribute.keySpan !== void 0) {
|
|
3762
3311
|
addParseSpanInfo(target, input.attribute.keySpan);
|
|
3763
3312
|
}
|
|
3764
|
-
assignment =
|
|
3313
|
+
assignment = ts22.factory.createBinaryExpression(target, ts22.SyntaxKind.EqualsToken, assignment);
|
|
3765
3314
|
}
|
|
3766
3315
|
addParseSpanInfo(assignment, input.attribute.sourceSpan);
|
|
3767
3316
|
if (!this.tcb.env.config.checkTypeOfAttributes && input.attribute instanceof TmplAstTextAttribute2) {
|
|
3768
3317
|
markIgnoreDiagnostics(assignment);
|
|
3769
3318
|
}
|
|
3770
|
-
this.scope.addStatement(
|
|
3319
|
+
this.scope.addStatement(ts22.factory.createExpressionStatement(assignment));
|
|
3771
3320
|
}
|
|
3772
3321
|
return null;
|
|
3773
3322
|
}
|
|
@@ -3786,7 +3335,7 @@ var TcbDirectiveCtorCircularFallbackOp = class extends TcbOp {
|
|
|
3786
3335
|
execute() {
|
|
3787
3336
|
const id = this.tcb.allocateId();
|
|
3788
3337
|
const typeCtor = this.tcb.env.typeCtorFor(this.dir);
|
|
3789
|
-
const circularPlaceholder =
|
|
3338
|
+
const circularPlaceholder = ts22.factory.createCallExpression(typeCtor, void 0, [ts22.factory.createNonNullExpression(ts22.factory.createNull())]);
|
|
3790
3339
|
this.scope.addStatement(tsCreateVariable(id, circularPlaceholder));
|
|
3791
3340
|
return id;
|
|
3792
3341
|
}
|
|
@@ -3852,15 +3401,15 @@ var TcbUnclaimedInputsOp = class extends TcbOp {
|
|
|
3852
3401
|
elId = this.scope.resolve(this.element);
|
|
3853
3402
|
}
|
|
3854
3403
|
const propertyName = ATTR_TO_PROP[binding.name] || binding.name;
|
|
3855
|
-
const prop =
|
|
3856
|
-
const stmt =
|
|
3404
|
+
const prop = ts22.factory.createElementAccessExpression(elId, ts22.factory.createStringLiteral(propertyName));
|
|
3405
|
+
const stmt = ts22.factory.createBinaryExpression(prop, ts22.SyntaxKind.EqualsToken, wrapForDiagnostics(expr));
|
|
3857
3406
|
addParseSpanInfo(stmt, binding.sourceSpan);
|
|
3858
|
-
this.scope.addStatement(
|
|
3407
|
+
this.scope.addStatement(ts22.factory.createExpressionStatement(stmt));
|
|
3859
3408
|
} else {
|
|
3860
|
-
this.scope.addStatement(
|
|
3409
|
+
this.scope.addStatement(ts22.factory.createExpressionStatement(expr));
|
|
3861
3410
|
}
|
|
3862
3411
|
} else {
|
|
3863
|
-
this.scope.addStatement(
|
|
3412
|
+
this.scope.addStatement(ts22.factory.createExpressionStatement(expr));
|
|
3864
3413
|
}
|
|
3865
3414
|
}
|
|
3866
3415
|
return null;
|
|
@@ -3892,18 +3441,18 @@ var TcbDirectiveOutputsOp = class extends TcbOp {
|
|
|
3892
3441
|
if (dirId === null) {
|
|
3893
3442
|
dirId = this.scope.resolve(this.node, this.dir);
|
|
3894
3443
|
}
|
|
3895
|
-
const outputField =
|
|
3444
|
+
const outputField = ts22.factory.createElementAccessExpression(dirId, ts22.factory.createStringLiteral(field));
|
|
3896
3445
|
addParseSpanInfo(outputField, output.keySpan);
|
|
3897
3446
|
if (this.tcb.env.config.checkTypeOfOutputEvents) {
|
|
3898
3447
|
const handler = tcbCreateEventHandler(output, this.tcb, this.scope, 0);
|
|
3899
|
-
const subscribeFn =
|
|
3900
|
-
const call =
|
|
3448
|
+
const subscribeFn = ts22.factory.createPropertyAccessExpression(outputField, "subscribe");
|
|
3449
|
+
const call = ts22.factory.createCallExpression(subscribeFn, void 0, [handler]);
|
|
3901
3450
|
addParseSpanInfo(call, output.sourceSpan);
|
|
3902
|
-
this.scope.addStatement(
|
|
3451
|
+
this.scope.addStatement(ts22.factory.createExpressionStatement(call));
|
|
3903
3452
|
} else {
|
|
3904
|
-
this.scope.addStatement(
|
|
3453
|
+
this.scope.addStatement(ts22.factory.createExpressionStatement(outputField));
|
|
3905
3454
|
const handler = tcbCreateEventHandler(output, this.tcb, this.scope, 1);
|
|
3906
|
-
this.scope.addStatement(
|
|
3455
|
+
this.scope.addStatement(ts22.factory.createExpressionStatement(handler));
|
|
3907
3456
|
}
|
|
3908
3457
|
ExpressionSemanticVisitor.visit(output.handler, this.tcb.id, this.tcb.boundTarget, this.tcb.oobRecorder);
|
|
3909
3458
|
}
|
|
@@ -3936,20 +3485,20 @@ var TcbUnclaimedOutputsOp = class extends TcbOp {
|
|
|
3936
3485
|
if (output.type === 1) {
|
|
3937
3486
|
const eventType = this.tcb.env.config.checkTypeOfAnimationEvents ? this.tcb.env.referenceExternalType("@angular/animations", "AnimationEvent") : 1;
|
|
3938
3487
|
const handler = tcbCreateEventHandler(output, this.tcb, this.scope, eventType);
|
|
3939
|
-
this.scope.addStatement(
|
|
3488
|
+
this.scope.addStatement(ts22.factory.createExpressionStatement(handler));
|
|
3940
3489
|
} else if (this.tcb.env.config.checkTypeOfDomEvents) {
|
|
3941
3490
|
const handler = tcbCreateEventHandler(output, this.tcb, this.scope, 0);
|
|
3942
3491
|
if (elId === null) {
|
|
3943
3492
|
elId = this.scope.resolve(this.element);
|
|
3944
3493
|
}
|
|
3945
|
-
const propertyAccess =
|
|
3494
|
+
const propertyAccess = ts22.factory.createPropertyAccessExpression(elId, "addEventListener");
|
|
3946
3495
|
addParseSpanInfo(propertyAccess, output.keySpan);
|
|
3947
|
-
const call =
|
|
3496
|
+
const call = ts22.factory.createCallExpression(propertyAccess, void 0, [ts22.factory.createStringLiteral(output.name), handler]);
|
|
3948
3497
|
addParseSpanInfo(call, output.sourceSpan);
|
|
3949
|
-
this.scope.addStatement(
|
|
3498
|
+
this.scope.addStatement(ts22.factory.createExpressionStatement(call));
|
|
3950
3499
|
} else {
|
|
3951
3500
|
const handler = tcbCreateEventHandler(output, this.tcb, this.scope, 1);
|
|
3952
|
-
this.scope.addStatement(
|
|
3501
|
+
this.scope.addStatement(ts22.factory.createExpressionStatement(handler));
|
|
3953
3502
|
}
|
|
3954
3503
|
ExpressionSemanticVisitor.visit(output.handler, this.tcb.id, this.tcb.boundTarget, this.tcb.oobRecorder);
|
|
3955
3504
|
}
|
|
@@ -3963,15 +3512,15 @@ var TcbComponentContextCompletionOp = class extends TcbOp {
|
|
|
3963
3512
|
this.optional = false;
|
|
3964
3513
|
}
|
|
3965
3514
|
execute() {
|
|
3966
|
-
const ctx =
|
|
3967
|
-
const ctxDot =
|
|
3515
|
+
const ctx = ts22.factory.createIdentifier("ctx");
|
|
3516
|
+
const ctxDot = ts22.factory.createPropertyAccessExpression(ctx, "");
|
|
3968
3517
|
markIgnoreDiagnostics(ctxDot);
|
|
3969
3518
|
addExpressionIdentifier(ctxDot, ExpressionIdentifier.COMPONENT_COMPLETION);
|
|
3970
|
-
this.scope.addStatement(
|
|
3519
|
+
this.scope.addStatement(ts22.factory.createExpressionStatement(ctxDot));
|
|
3971
3520
|
return null;
|
|
3972
3521
|
}
|
|
3973
3522
|
};
|
|
3974
|
-
var INFER_TYPE_FOR_CIRCULAR_OP_EXPR =
|
|
3523
|
+
var INFER_TYPE_FOR_CIRCULAR_OP_EXPR = ts22.factory.createNonNullExpression(ts22.factory.createNull());
|
|
3975
3524
|
var Context = class {
|
|
3976
3525
|
constructor(env, domSchemaChecker, oobRecorder, id, boundTarget, pipes, schemas) {
|
|
3977
3526
|
this.env = env;
|
|
@@ -3984,7 +3533,7 @@ var Context = class {
|
|
|
3984
3533
|
this.nextId = 1;
|
|
3985
3534
|
}
|
|
3986
3535
|
allocateId() {
|
|
3987
|
-
return
|
|
3536
|
+
return ts22.factory.createIdentifier(`_t${this.nextId++}`);
|
|
3988
3537
|
}
|
|
3989
3538
|
getPipeByName(name) {
|
|
3990
3539
|
if (!this.pipes.has(name)) {
|
|
@@ -4036,8 +3585,8 @@ var Scope = class {
|
|
|
4036
3585
|
resolve(node, directive) {
|
|
4037
3586
|
const res = this.resolveLocal(node, directive);
|
|
4038
3587
|
if (res !== null) {
|
|
4039
|
-
const clone =
|
|
4040
|
-
|
|
3588
|
+
const clone = ts22.getMutableClone(res);
|
|
3589
|
+
ts22.setSyntheticTrailingComments(clone, []);
|
|
4041
3590
|
return clone;
|
|
4042
3591
|
} else if (this.parent !== null) {
|
|
4043
3592
|
return this.parent.resolve(node, directive);
|
|
@@ -4065,7 +3614,7 @@ var Scope = class {
|
|
|
4065
3614
|
} else if (parentGuards === null) {
|
|
4066
3615
|
return this.guard;
|
|
4067
3616
|
} else {
|
|
4068
|
-
return
|
|
3617
|
+
return ts22.factory.createBinaryExpression(parentGuards, ts22.SyntaxKind.AmpersandAmpersandToken, this.guard);
|
|
4069
3618
|
}
|
|
4070
3619
|
}
|
|
4071
3620
|
resolveLocal(ref, directive) {
|
|
@@ -4245,8 +3794,8 @@ var Scope = class {
|
|
|
4245
3794
|
}
|
|
4246
3795
|
};
|
|
4247
3796
|
function tcbCtxParam(node, name, typeArguments) {
|
|
4248
|
-
const type =
|
|
4249
|
-
return
|
|
3797
|
+
const type = ts22.factory.createTypeReferenceNode(name, typeArguments);
|
|
3798
|
+
return ts22.factory.createParameterDeclaration(void 0, void 0, void 0, "ctx", void 0, type, void 0);
|
|
4250
3799
|
}
|
|
4251
3800
|
function tcbExpression(ast, tcb, scope) {
|
|
4252
3801
|
const translator = new TcbExpressionTranslator(tcb, scope);
|
|
@@ -4269,11 +3818,11 @@ var TcbExpressionTranslator = class {
|
|
|
4269
3818
|
return null;
|
|
4270
3819
|
}
|
|
4271
3820
|
const expr = this.translate(ast.value);
|
|
4272
|
-
const result =
|
|
3821
|
+
const result = ts22.factory.createParenthesizedExpression(ts22.factory.createBinaryExpression(target, ts22.SyntaxKind.EqualsToken, expr));
|
|
4273
3822
|
addParseSpanInfo(result, ast.sourceSpan);
|
|
4274
3823
|
return result;
|
|
4275
3824
|
} else if (ast instanceof ImplicitReceiver4) {
|
|
4276
|
-
return
|
|
3825
|
+
return ts22.factory.createIdentifier("ctx");
|
|
4277
3826
|
} else if (ast instanceof BindingPipe) {
|
|
4278
3827
|
const expr = this.translate(ast.exp);
|
|
4279
3828
|
const pipeRef = this.tcb.getPipeByName(ast.name);
|
|
@@ -4285,19 +3834,19 @@ var TcbExpressionTranslator = class {
|
|
|
4285
3834
|
pipe = this.tcb.env.pipeInst(pipeRef);
|
|
4286
3835
|
}
|
|
4287
3836
|
const args = ast.args.map((arg) => this.translate(arg));
|
|
4288
|
-
let methodAccess =
|
|
3837
|
+
let methodAccess = ts22.factory.createPropertyAccessExpression(pipe, "transform");
|
|
4289
3838
|
addParseSpanInfo(methodAccess, ast.nameSpan);
|
|
4290
3839
|
if (!this.tcb.env.config.checkTypeOfPipes) {
|
|
4291
|
-
methodAccess =
|
|
3840
|
+
methodAccess = ts22.factory.createAsExpression(methodAccess, ts22.factory.createKeywordTypeNode(ts22.SyntaxKind.AnyKeyword));
|
|
4292
3841
|
}
|
|
4293
|
-
const result =
|
|
3842
|
+
const result = ts22.factory.createCallExpression(methodAccess, void 0, [expr, ...args]);
|
|
4294
3843
|
addParseSpanInfo(result, ast.sourceSpan);
|
|
4295
3844
|
return result;
|
|
4296
3845
|
} else if ((ast instanceof Call2 || ast instanceof SafeCall) && (ast.receiver instanceof PropertyRead4 || ast.receiver instanceof SafePropertyRead3)) {
|
|
4297
3846
|
if (ast.receiver.receiver instanceof ImplicitReceiver4 && !(ast.receiver.receiver instanceof ThisReceiver) && ast.receiver.name === "$any" && ast.args.length === 1) {
|
|
4298
3847
|
const expr = this.translate(ast.args[0]);
|
|
4299
|
-
const exprAsAny =
|
|
4300
|
-
const result =
|
|
3848
|
+
const exprAsAny = ts22.factory.createAsExpression(expr, ts22.factory.createKeywordTypeNode(ts22.SyntaxKind.AnyKeyword));
|
|
3849
|
+
const result = ts22.factory.createParenthesizedExpression(exprAsAny);
|
|
4301
3850
|
addParseSpanInfo(result, ast.sourceSpan);
|
|
4302
3851
|
return result;
|
|
4303
3852
|
}
|
|
@@ -4308,7 +3857,7 @@ var TcbExpressionTranslator = class {
|
|
|
4308
3857
|
const method = wrapForDiagnostics(receiver);
|
|
4309
3858
|
addParseSpanInfo(method, ast.receiver.nameSpan);
|
|
4310
3859
|
const args = ast.args.map((arg) => this.translate(arg));
|
|
4311
|
-
const node =
|
|
3860
|
+
const node = ts22.factory.createCallExpression(method, void 0, args);
|
|
4312
3861
|
addParseSpanInfo(node, ast.sourceSpan);
|
|
4313
3862
|
return node;
|
|
4314
3863
|
} else {
|
|
@@ -4328,17 +3877,17 @@ var TcbExpressionTranslator = class {
|
|
|
4328
3877
|
function tcbCallTypeCtor(dir, tcb, inputs) {
|
|
4329
3878
|
const typeCtor = tcb.env.typeCtorFor(dir);
|
|
4330
3879
|
const members = inputs.map((input) => {
|
|
4331
|
-
const propertyName =
|
|
3880
|
+
const propertyName = ts22.factory.createStringLiteral(input.field);
|
|
4332
3881
|
if (input.type === "binding") {
|
|
4333
3882
|
const expr = widenBinding(input.expression, tcb);
|
|
4334
|
-
const assignment =
|
|
3883
|
+
const assignment = ts22.factory.createPropertyAssignment(propertyName, wrapForDiagnostics(expr));
|
|
4335
3884
|
addParseSpanInfo(assignment, input.sourceSpan);
|
|
4336
3885
|
return assignment;
|
|
4337
3886
|
} else {
|
|
4338
|
-
return
|
|
3887
|
+
return ts22.factory.createPropertyAssignment(propertyName, NULL_AS_ANY);
|
|
4339
3888
|
}
|
|
4340
3889
|
});
|
|
4341
|
-
return
|
|
3890
|
+
return ts22.factory.createCallExpression(typeCtor, void 0, [ts22.factory.createObjectLiteralExpression(members)]);
|
|
4342
3891
|
}
|
|
4343
3892
|
function getBoundInputs(directive, node, tcb) {
|
|
4344
3893
|
const boundInputs = [];
|
|
@@ -4364,17 +3913,17 @@ function translateInput(attr, tcb, scope) {
|
|
|
4364
3913
|
if (attr instanceof TmplAstBoundAttribute) {
|
|
4365
3914
|
return tcbExpression(attr.value, tcb, scope);
|
|
4366
3915
|
} else {
|
|
4367
|
-
return
|
|
3916
|
+
return ts22.factory.createStringLiteral(attr.value);
|
|
4368
3917
|
}
|
|
4369
3918
|
}
|
|
4370
3919
|
function widenBinding(expr, tcb) {
|
|
4371
3920
|
if (!tcb.env.config.checkTypeOfInputBindings) {
|
|
4372
3921
|
return tsCastToAny(expr);
|
|
4373
3922
|
} else if (!tcb.env.config.strictNullInputBindings) {
|
|
4374
|
-
if (
|
|
3923
|
+
if (ts22.isObjectLiteralExpression(expr) || ts22.isArrayLiteralExpression(expr)) {
|
|
4375
3924
|
return expr;
|
|
4376
3925
|
} else {
|
|
4377
|
-
return
|
|
3926
|
+
return ts22.factory.createNonNullExpression(expr);
|
|
4378
3927
|
}
|
|
4379
3928
|
} else {
|
|
4380
3929
|
return expr;
|
|
@@ -4387,18 +3936,18 @@ function tcbCreateEventHandler(event, tcb, scope, eventType) {
|
|
|
4387
3936
|
if (eventType === 0) {
|
|
4388
3937
|
eventParamType = void 0;
|
|
4389
3938
|
} else if (eventType === 1) {
|
|
4390
|
-
eventParamType =
|
|
3939
|
+
eventParamType = ts22.factory.createKeywordTypeNode(ts22.SyntaxKind.AnyKeyword);
|
|
4391
3940
|
} else {
|
|
4392
3941
|
eventParamType = eventType;
|
|
4393
3942
|
}
|
|
4394
3943
|
const guards = scope.guards();
|
|
4395
|
-
let body =
|
|
3944
|
+
let body = ts22.factory.createExpressionStatement(handler);
|
|
4396
3945
|
if (guards !== null) {
|
|
4397
|
-
body =
|
|
3946
|
+
body = ts22.factory.createIfStatement(guards, body);
|
|
4398
3947
|
}
|
|
4399
|
-
const eventParam =
|
|
3948
|
+
const eventParam = ts22.factory.createParameterDeclaration(void 0, void 0, void 0, EVENT_PARAMETER, void 0, eventParamType);
|
|
4400
3949
|
addExpressionIdentifier(eventParam, ExpressionIdentifier.EVENT_PARAMETER);
|
|
4401
|
-
return
|
|
3950
|
+
return ts22.factory.createFunctionExpression(void 0, void 0, void 0, void 0, [eventParam], ts22.factory.createKeywordTypeNode(ts22.SyntaxKind.AnyKeyword), ts22.factory.createBlock([body]));
|
|
4402
3951
|
}
|
|
4403
3952
|
function tcbEventHandlerExpression(ast, tcb, scope) {
|
|
4404
3953
|
const translator = new TcbEventHandlerTranslator(tcb, scope);
|
|
@@ -4426,7 +3975,7 @@ function isSplitTwoWayBinding(inputName, output, inputs, tcb) {
|
|
|
4426
3975
|
var TcbEventHandlerTranslator = class extends TcbExpressionTranslator {
|
|
4427
3976
|
resolve(ast) {
|
|
4428
3977
|
if (ast instanceof PropertyRead4 && ast.receiver instanceof ImplicitReceiver4 && !(ast.receiver instanceof ThisReceiver) && ast.name === EVENT_PARAMETER) {
|
|
4429
|
-
const event =
|
|
3978
|
+
const event = ts22.factory.createIdentifier(EVENT_PARAMETER);
|
|
4430
3979
|
addParseSpanInfo(event, ast.nameSpan);
|
|
4431
3980
|
return event;
|
|
4432
3981
|
}
|
|
@@ -4434,33 +3983,33 @@ var TcbEventHandlerTranslator = class extends TcbExpressionTranslator {
|
|
|
4434
3983
|
}
|
|
4435
3984
|
};
|
|
4436
3985
|
|
|
4437
|
-
// bazel-out/
|
|
4438
|
-
import
|
|
3986
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_check_file.mjs
|
|
3987
|
+
import ts23 from "typescript";
|
|
4439
3988
|
var TypeCheckFile = class extends Environment {
|
|
4440
3989
|
constructor(fileName, config, refEmitter, reflector, compilerHost) {
|
|
4441
|
-
super(config, new ImportManager(new NoopImportRewriter(), "i"), refEmitter, reflector,
|
|
3990
|
+
super(config, new ImportManager(new NoopImportRewriter(), "i"), refEmitter, reflector, ts23.createSourceFile(compilerHost.getCanonicalFileName(fileName), "", ts23.ScriptTarget.Latest, true));
|
|
4442
3991
|
this.fileName = fileName;
|
|
4443
3992
|
this.nextTcbId = 1;
|
|
4444
3993
|
this.tcbStatements = [];
|
|
4445
3994
|
}
|
|
4446
3995
|
addTypeCheckBlock(ref, meta, domSchemaChecker, oobRecorder, genericContextBehavior) {
|
|
4447
|
-
const fnId =
|
|
3996
|
+
const fnId = ts23.factory.createIdentifier(`_tcb${this.nextTcbId++}`);
|
|
4448
3997
|
const fn = generateTypeCheckBlock(this, ref, fnId, meta, domSchemaChecker, oobRecorder, genericContextBehavior);
|
|
4449
3998
|
this.tcbStatements.push(fn);
|
|
4450
3999
|
}
|
|
4451
4000
|
render(removeComments) {
|
|
4452
4001
|
let source = this.importManager.getAllImports(this.contextFile.fileName).map((i) => `import * as ${i.qualifier.text} from '${i.specifier}';`).join("\n") + "\n\n";
|
|
4453
|
-
const printer =
|
|
4002
|
+
const printer = ts23.createPrinter({ removeComments });
|
|
4454
4003
|
source += "\n";
|
|
4455
4004
|
for (const stmt of this.pipeInstStatements) {
|
|
4456
|
-
source += printer.printNode(
|
|
4005
|
+
source += printer.printNode(ts23.EmitHint.Unspecified, stmt, this.contextFile) + "\n";
|
|
4457
4006
|
}
|
|
4458
4007
|
for (const stmt of this.typeCtorStatements) {
|
|
4459
|
-
source += printer.printNode(
|
|
4008
|
+
source += printer.printNode(ts23.EmitHint.Unspecified, stmt, this.contextFile) + "\n";
|
|
4460
4009
|
}
|
|
4461
4010
|
source += "\n";
|
|
4462
4011
|
for (const stmt of this.tcbStatements) {
|
|
4463
|
-
source += printer.printNode(
|
|
4012
|
+
source += printer.printNode(ts23.EmitHint.Unspecified, stmt, this.contextFile) + "\n";
|
|
4464
4013
|
}
|
|
4465
4014
|
source += "\nexport const IS_A_MODULE = true;\n";
|
|
4466
4015
|
return source;
|
|
@@ -4470,7 +4019,7 @@ var TypeCheckFile = class extends Environment {
|
|
|
4470
4019
|
}
|
|
4471
4020
|
};
|
|
4472
4021
|
|
|
4473
|
-
// bazel-out/
|
|
4022
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/context.mjs
|
|
4474
4023
|
var InliningMode;
|
|
4475
4024
|
(function(InliningMode2) {
|
|
4476
4025
|
InliningMode2[InliningMode2["InlineOps"] = 0] = "InlineOps";
|
|
@@ -4568,7 +4117,7 @@ var TypeCheckContextImpl = class {
|
|
|
4568
4117
|
const importManager = new ImportManager(new NoopImportRewriter(), "_i");
|
|
4569
4118
|
const ops = this.opMap.get(sf).sort(orderOps);
|
|
4570
4119
|
const textParts = splitStringAtPoints(sf.text, ops.map((op) => op.splitPoint));
|
|
4571
|
-
const printer =
|
|
4120
|
+
const printer = ts24.createPrinter({ omitTrailingSemicolon: true });
|
|
4572
4121
|
let code = textParts[0];
|
|
4573
4122
|
ops.forEach((op, idx) => {
|
|
4574
4123
|
const text = op.execute(importManager, sf, this.refEmitter, printer);
|
|
@@ -4649,7 +4198,7 @@ var TypeCheckContextImpl = class {
|
|
|
4649
4198
|
if (span.start.offset === span.end.offset) {
|
|
4650
4199
|
span.end.offset++;
|
|
4651
4200
|
}
|
|
4652
|
-
return makeTemplateDiagnostic(templateId, sourceMapping, span,
|
|
4201
|
+
return makeTemplateDiagnostic(templateId, sourceMapping, span, ts24.DiagnosticCategory.Error, ngErrorCode(ErrorCode.TEMPLATE_PARSE_ERROR), error.msg);
|
|
4653
4202
|
});
|
|
4654
4203
|
}
|
|
4655
4204
|
};
|
|
@@ -4667,9 +4216,9 @@ var InlineTcbOp = class {
|
|
|
4667
4216
|
}
|
|
4668
4217
|
execute(im, sf, refEmitter, printer) {
|
|
4669
4218
|
const env = new Environment(this.config, im, refEmitter, this.reflector, sf);
|
|
4670
|
-
const fnName =
|
|
4219
|
+
const fnName = ts24.factory.createIdentifier(`_tcb_${this.ref.node.pos}`);
|
|
4671
4220
|
const fn = generateTypeCheckBlock(env, this.ref, fnName, this.meta, this.domSchemaChecker, this.oobRecorder, TcbGenericContextBehavior.CopyClassNodes);
|
|
4672
|
-
return printer.printNode(
|
|
4221
|
+
return printer.printNode(ts24.EmitHint.Unspecified, fn, sf);
|
|
4673
4222
|
}
|
|
4674
4223
|
};
|
|
4675
4224
|
var TypeCtorOp = class {
|
|
@@ -4682,7 +4231,7 @@ var TypeCtorOp = class {
|
|
|
4682
4231
|
}
|
|
4683
4232
|
execute(im, sf, refEmitter, printer) {
|
|
4684
4233
|
const tcb = generateInlineTypeCtor(this.ref.node, this.meta);
|
|
4685
|
-
return printer.printNode(
|
|
4234
|
+
return printer.printNode(ts24.EmitHint.Unspecified, tcb, sf);
|
|
4686
4235
|
}
|
|
4687
4236
|
};
|
|
4688
4237
|
function orderOps(op1, op2) {
|
|
@@ -4700,10 +4249,10 @@ function splitStringAtPoints(str, points) {
|
|
|
4700
4249
|
return splits;
|
|
4701
4250
|
}
|
|
4702
4251
|
|
|
4703
|
-
// bazel-out/
|
|
4252
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/source.mjs
|
|
4704
4253
|
import { ParseLocation, ParseSourceSpan } from "@angular/compiler";
|
|
4705
4254
|
|
|
4706
|
-
// bazel-out/
|
|
4255
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/line_mappings.mjs
|
|
4707
4256
|
var LF_CHAR = 10;
|
|
4708
4257
|
var CR_CHAR = 13;
|
|
4709
4258
|
var LINE_SEP_CHAR = 8232;
|
|
@@ -4744,7 +4293,7 @@ function findClosestLineStartPosition(linesMap, position, low = 0, high = linesM
|
|
|
4744
4293
|
return low - 1;
|
|
4745
4294
|
}
|
|
4746
4295
|
|
|
4747
|
-
// bazel-out/
|
|
4296
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/source.mjs
|
|
4748
4297
|
var TemplateSource = class {
|
|
4749
4298
|
constructor(mapping, file) {
|
|
4750
4299
|
this.mapping = mapping;
|
|
@@ -4795,12 +4344,13 @@ var TemplateSourceManager = class {
|
|
|
4795
4344
|
}
|
|
4796
4345
|
};
|
|
4797
4346
|
|
|
4798
|
-
// bazel-out/
|
|
4347
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/template_symbol_builder.mjs
|
|
4799
4348
|
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";
|
|
4800
|
-
import
|
|
4349
|
+
import ts25 from "typescript";
|
|
4801
4350
|
var SymbolBuilder = class {
|
|
4802
|
-
constructor(
|
|
4803
|
-
this.
|
|
4351
|
+
constructor(tcbPath, tcbIsShim, typeCheckBlock, templateData, componentScopeReader, getTypeChecker) {
|
|
4352
|
+
this.tcbPath = tcbPath;
|
|
4353
|
+
this.tcbIsShim = tcbIsShim;
|
|
4804
4354
|
this.typeCheckBlock = typeCheckBlock;
|
|
4805
4355
|
this.templateData = templateData;
|
|
4806
4356
|
this.componentScopeReader = componentScopeReader;
|
|
@@ -4840,7 +4390,7 @@ var SymbolBuilder = class {
|
|
|
4840
4390
|
getSymbolOfElement(element) {
|
|
4841
4391
|
var _a;
|
|
4842
4392
|
const elementSourceSpan = (_a = element.startSourceSpan) != null ? _a : element.sourceSpan;
|
|
4843
|
-
const node = findFirstMatchingNode(this.typeCheckBlock, { withSpan: elementSourceSpan, filter:
|
|
4393
|
+
const node = findFirstMatchingNode(this.typeCheckBlock, { withSpan: elementSourceSpan, filter: ts25.isVariableDeclaration });
|
|
4844
4394
|
if (node === null) {
|
|
4845
4395
|
return null;
|
|
4846
4396
|
}
|
|
@@ -4859,12 +4409,12 @@ var SymbolBuilder = class {
|
|
|
4859
4409
|
var _a;
|
|
4860
4410
|
const elementSourceSpan = (_a = element.startSourceSpan) != null ? _a : element.sourceSpan;
|
|
4861
4411
|
const tcbSourceFile = this.typeCheckBlock.getSourceFile();
|
|
4862
|
-
const isDirectiveDeclaration = (node) => (
|
|
4412
|
+
const isDirectiveDeclaration = (node) => (ts25.isTypeNode(node) || ts25.isIdentifier(node)) && ts25.isVariableDeclaration(node.parent) && hasExpressionIdentifier(tcbSourceFile, node, ExpressionIdentifier.DIRECTIVE);
|
|
4863
4413
|
const nodes = findAllMatchingNodes(this.typeCheckBlock, { withSpan: elementSourceSpan, filter: isDirectiveDeclaration });
|
|
4864
4414
|
return nodes.map((node) => {
|
|
4865
4415
|
var _a2;
|
|
4866
4416
|
const symbol = this.getSymbolOfTsNode(node.parent);
|
|
4867
|
-
if (symbol === null || !isSymbolWithValueDeclaration(symbol.tsSymbol) || !
|
|
4417
|
+
if (symbol === null || !isSymbolWithValueDeclaration(symbol.tsSymbol) || !ts25.isClassDeclaration(symbol.tsSymbol.valueDeclaration)) {
|
|
4868
4418
|
return null;
|
|
4869
4419
|
}
|
|
4870
4420
|
const meta = this.getDirectiveMeta(element, symbol.tsSymbol.valueDeclaration);
|
|
@@ -4933,23 +4483,23 @@ var SymbolBuilder = class {
|
|
|
4933
4483
|
if (!isAccessExpression(n)) {
|
|
4934
4484
|
return false;
|
|
4935
4485
|
}
|
|
4936
|
-
if (
|
|
4486
|
+
if (ts25.isPropertyAccessExpression(n)) {
|
|
4937
4487
|
return n.name.getText() === expectedAccess;
|
|
4938
4488
|
} else {
|
|
4939
|
-
return
|
|
4489
|
+
return ts25.isStringLiteral(n.argumentExpression) && n.argumentExpression.text === expectedAccess;
|
|
4940
4490
|
}
|
|
4941
4491
|
}
|
|
4942
4492
|
const outputFieldAccesses = findAllMatchingNodes(this.typeCheckBlock, { withSpan: eventBinding.keySpan, filter });
|
|
4943
4493
|
const bindings = [];
|
|
4944
4494
|
for (const outputFieldAccess of outputFieldAccesses) {
|
|
4945
4495
|
if (consumer instanceof TmplAstTemplate3 || consumer instanceof TmplAstElement4) {
|
|
4946
|
-
if (!
|
|
4496
|
+
if (!ts25.isPropertyAccessExpression(outputFieldAccess)) {
|
|
4947
4497
|
continue;
|
|
4948
4498
|
}
|
|
4949
4499
|
const addEventListener = outputFieldAccess.name;
|
|
4950
4500
|
const tsSymbol = this.getTypeChecker().getSymbolAtLocation(addEventListener);
|
|
4951
4501
|
const tsType = this.getTypeChecker().getTypeAtLocation(addEventListener);
|
|
4952
|
-
const
|
|
4502
|
+
const positionInFile = this.getTcbPositionForNode(addEventListener);
|
|
4953
4503
|
const target = this.getSymbol(consumer);
|
|
4954
4504
|
if (target === null || tsSymbol === void 0) {
|
|
4955
4505
|
continue;
|
|
@@ -4959,10 +4509,14 @@ var SymbolBuilder = class {
|
|
|
4959
4509
|
tsSymbol,
|
|
4960
4510
|
tsType,
|
|
4961
4511
|
target,
|
|
4962
|
-
|
|
4512
|
+
tcbLocation: {
|
|
4513
|
+
tcbPath: this.tcbPath,
|
|
4514
|
+
isShimFile: this.tcbIsShim,
|
|
4515
|
+
positionInFile
|
|
4516
|
+
}
|
|
4963
4517
|
});
|
|
4964
4518
|
} else {
|
|
4965
|
-
if (!
|
|
4519
|
+
if (!ts25.isElementAccessExpression(outputFieldAccess)) {
|
|
4966
4520
|
continue;
|
|
4967
4521
|
}
|
|
4968
4522
|
const tsSymbol = this.getTypeChecker().getSymbolAtLocation(outputFieldAccess.argumentExpression);
|
|
@@ -4973,14 +4527,18 @@ var SymbolBuilder = class {
|
|
|
4973
4527
|
if (target === null) {
|
|
4974
4528
|
continue;
|
|
4975
4529
|
}
|
|
4976
|
-
const
|
|
4530
|
+
const positionInFile = this.getTcbPositionForNode(outputFieldAccess);
|
|
4977
4531
|
const tsType = this.getTypeChecker().getTypeAtLocation(outputFieldAccess);
|
|
4978
4532
|
bindings.push({
|
|
4979
4533
|
kind: SymbolKind.Binding,
|
|
4980
4534
|
tsSymbol,
|
|
4981
4535
|
tsType,
|
|
4982
4536
|
target,
|
|
4983
|
-
|
|
4537
|
+
tcbLocation: {
|
|
4538
|
+
tcbPath: this.tcbPath,
|
|
4539
|
+
isShimFile: this.tcbIsShim,
|
|
4540
|
+
positionInFile
|
|
4541
|
+
}
|
|
4984
4542
|
});
|
|
4985
4543
|
}
|
|
4986
4544
|
}
|
|
@@ -5030,11 +4588,11 @@ var SymbolBuilder = class {
|
|
|
5030
4588
|
return null;
|
|
5031
4589
|
}
|
|
5032
4590
|
const [declaration] = tsSymbol.declarations;
|
|
5033
|
-
if (!
|
|
4591
|
+
if (!ts25.isVariableDeclaration(declaration) || !hasExpressionIdentifier(declaration.getSourceFile(), (_a = declaration.type) != null ? _a : declaration.name, ExpressionIdentifier.DIRECTIVE)) {
|
|
5034
4592
|
return null;
|
|
5035
4593
|
}
|
|
5036
4594
|
const symbol = this.getSymbolOfTsNode(declaration);
|
|
5037
|
-
if (symbol === null || !isSymbolWithValueDeclaration(symbol.tsSymbol) || !
|
|
4595
|
+
if (symbol === null || !isSymbolWithValueDeclaration(symbol.tsSymbol) || !ts25.isClassDeclaration(symbol.tsSymbol.valueDeclaration)) {
|
|
5038
4596
|
return null;
|
|
5039
4597
|
}
|
|
5040
4598
|
const ngModule = this.getDirectiveModule(symbol.tsSymbol.valueDeclaration);
|
|
@@ -5042,7 +4600,7 @@ var SymbolBuilder = class {
|
|
|
5042
4600
|
kind: SymbolKind.Directive,
|
|
5043
4601
|
tsSymbol: symbol.tsSymbol,
|
|
5044
4602
|
tsType: symbol.tsType,
|
|
5045
|
-
|
|
4603
|
+
tcbLocation: symbol.tcbLocation,
|
|
5046
4604
|
isComponent,
|
|
5047
4605
|
isStructural,
|
|
5048
4606
|
selector,
|
|
@@ -5050,7 +4608,7 @@ var SymbolBuilder = class {
|
|
|
5050
4608
|
};
|
|
5051
4609
|
}
|
|
5052
4610
|
getSymbolOfVariable(variable) {
|
|
5053
|
-
const node = findFirstMatchingNode(this.typeCheckBlock, { withSpan: variable.sourceSpan, filter:
|
|
4611
|
+
const node = findFirstMatchingNode(this.typeCheckBlock, { withSpan: variable.sourceSpan, filter: ts25.isVariableDeclaration });
|
|
5054
4612
|
if (node === null || node.initializer === void 0) {
|
|
5055
4613
|
return null;
|
|
5056
4614
|
}
|
|
@@ -5061,22 +4619,23 @@ var SymbolBuilder = class {
|
|
|
5061
4619
|
return {
|
|
5062
4620
|
tsType: expressionSymbol.tsType,
|
|
5063
4621
|
tsSymbol: expressionSymbol.tsSymbol,
|
|
5064
|
-
initializerLocation: expressionSymbol.
|
|
4622
|
+
initializerLocation: expressionSymbol.tcbLocation,
|
|
5065
4623
|
kind: SymbolKind.Variable,
|
|
5066
4624
|
declaration: variable,
|
|
5067
4625
|
localVarLocation: {
|
|
5068
|
-
|
|
5069
|
-
|
|
4626
|
+
tcbPath: this.tcbPath,
|
|
4627
|
+
isShimFile: this.tcbIsShim,
|
|
4628
|
+
positionInFile: this.getTcbPositionForNode(node.name)
|
|
5070
4629
|
}
|
|
5071
4630
|
};
|
|
5072
4631
|
}
|
|
5073
4632
|
getSymbolOfReference(ref) {
|
|
5074
4633
|
const target = this.templateData.boundTarget.getReferenceTarget(ref);
|
|
5075
|
-
let node = findFirstMatchingNode(this.typeCheckBlock, { withSpan: ref.sourceSpan, filter:
|
|
4634
|
+
let node = findFirstMatchingNode(this.typeCheckBlock, { withSpan: ref.sourceSpan, filter: ts25.isVariableDeclaration });
|
|
5076
4635
|
if (node === null || target === null || node.initializer === void 0) {
|
|
5077
4636
|
return null;
|
|
5078
4637
|
}
|
|
5079
|
-
const originalDeclaration =
|
|
4638
|
+
const originalDeclaration = ts25.isParenthesizedExpression(node.initializer) && ts25.isAsExpression(node.initializer.expression) ? this.getTypeChecker().getSymbolAtLocation(node.name) : this.getTypeChecker().getSymbolAtLocation(node.initializer);
|
|
5080
4639
|
if (originalDeclaration === void 0 || originalDeclaration.valueDeclaration === void 0) {
|
|
5081
4640
|
return null;
|
|
5082
4641
|
}
|
|
@@ -5084,9 +4643,10 @@ var SymbolBuilder = class {
|
|
|
5084
4643
|
if (symbol === null || symbol.tsSymbol === null) {
|
|
5085
4644
|
return null;
|
|
5086
4645
|
}
|
|
5087
|
-
const
|
|
5088
|
-
|
|
5089
|
-
|
|
4646
|
+
const referenceVarTcbLocation = {
|
|
4647
|
+
tcbPath: this.tcbPath,
|
|
4648
|
+
isShimFile: this.tcbIsShim,
|
|
4649
|
+
positionInFile: this.getTcbPositionForNode(node)
|
|
5090
4650
|
};
|
|
5091
4651
|
if (target instanceof TmplAstTemplate3 || target instanceof TmplAstElement4) {
|
|
5092
4652
|
return {
|
|
@@ -5095,11 +4655,11 @@ var SymbolBuilder = class {
|
|
|
5095
4655
|
tsType: symbol.tsType,
|
|
5096
4656
|
target,
|
|
5097
4657
|
declaration: ref,
|
|
5098
|
-
targetLocation: symbol.
|
|
5099
|
-
referenceVarLocation:
|
|
4658
|
+
targetLocation: symbol.tcbLocation,
|
|
4659
|
+
referenceVarLocation: referenceVarTcbLocation
|
|
5100
4660
|
};
|
|
5101
4661
|
} else {
|
|
5102
|
-
if (!
|
|
4662
|
+
if (!ts25.isClassDeclaration(target.directive.ref.node)) {
|
|
5103
4663
|
return null;
|
|
5104
4664
|
}
|
|
5105
4665
|
return {
|
|
@@ -5108,13 +4668,13 @@ var SymbolBuilder = class {
|
|
|
5108
4668
|
tsType: symbol.tsType,
|
|
5109
4669
|
declaration: ref,
|
|
5110
4670
|
target: target.directive.ref.node,
|
|
5111
|
-
targetLocation: symbol.
|
|
5112
|
-
referenceVarLocation:
|
|
4671
|
+
targetLocation: symbol.tcbLocation,
|
|
4672
|
+
referenceVarLocation: referenceVarTcbLocation
|
|
5113
4673
|
};
|
|
5114
4674
|
}
|
|
5115
4675
|
}
|
|
5116
4676
|
getSymbolOfPipe(expression) {
|
|
5117
|
-
const methodAccess = findFirstMatchingNode(this.typeCheckBlock, { withSpan: expression.nameSpan, filter:
|
|
4677
|
+
const methodAccess = findFirstMatchingNode(this.typeCheckBlock, { withSpan: expression.nameSpan, filter: ts25.isPropertyAccessExpression });
|
|
5118
4678
|
if (methodAccess === null) {
|
|
5119
4679
|
return null;
|
|
5120
4680
|
}
|
|
@@ -5153,7 +4713,7 @@ var SymbolBuilder = class {
|
|
|
5153
4713
|
}
|
|
5154
4714
|
let node = null;
|
|
5155
4715
|
if (expression instanceof PropertyRead5) {
|
|
5156
|
-
node = findFirstMatchingNode(this.typeCheckBlock, { withSpan, filter:
|
|
4716
|
+
node = findFirstMatchingNode(this.typeCheckBlock, { withSpan, filter: ts25.isPropertyAccessExpression });
|
|
5157
4717
|
}
|
|
5158
4718
|
if (node === null) {
|
|
5159
4719
|
node = findFirstMatchingNode(this.typeCheckBlock, { withSpan, filter: anyNodeFilter });
|
|
@@ -5161,10 +4721,10 @@ var SymbolBuilder = class {
|
|
|
5161
4721
|
if (node === null) {
|
|
5162
4722
|
return null;
|
|
5163
4723
|
}
|
|
5164
|
-
while (
|
|
4724
|
+
while (ts25.isParenthesizedExpression(node)) {
|
|
5165
4725
|
node = node.expression;
|
|
5166
4726
|
}
|
|
5167
|
-
if (expression instanceof SafePropertyRead4 &&
|
|
4727
|
+
if (expression instanceof SafePropertyRead4 && ts25.isConditionalExpression(node)) {
|
|
5168
4728
|
const whenTrueSymbol = this.getSymbolOfTsNode(node.whenTrue);
|
|
5169
4729
|
if (whenTrueSymbol === null) {
|
|
5170
4730
|
return null;
|
|
@@ -5180,33 +4740,37 @@ var SymbolBuilder = class {
|
|
|
5180
4740
|
}
|
|
5181
4741
|
getSymbolOfTsNode(node) {
|
|
5182
4742
|
var _a;
|
|
5183
|
-
while (
|
|
4743
|
+
while (ts25.isParenthesizedExpression(node)) {
|
|
5184
4744
|
node = node.expression;
|
|
5185
4745
|
}
|
|
5186
4746
|
let tsSymbol;
|
|
5187
|
-
if (
|
|
4747
|
+
if (ts25.isPropertyAccessExpression(node)) {
|
|
5188
4748
|
tsSymbol = this.getTypeChecker().getSymbolAtLocation(node.name);
|
|
5189
|
-
} else if (
|
|
4749
|
+
} else if (ts25.isElementAccessExpression(node)) {
|
|
5190
4750
|
tsSymbol = this.getTypeChecker().getSymbolAtLocation(node.argumentExpression);
|
|
5191
4751
|
} else {
|
|
5192
4752
|
tsSymbol = this.getTypeChecker().getSymbolAtLocation(node);
|
|
5193
4753
|
}
|
|
5194
|
-
const
|
|
4754
|
+
const positionInFile = this.getTcbPositionForNode(node);
|
|
5195
4755
|
const type = this.getTypeChecker().getTypeAtLocation(node);
|
|
5196
4756
|
return {
|
|
5197
4757
|
tsSymbol: (_a = tsSymbol != null ? tsSymbol : type.symbol) != null ? _a : null,
|
|
5198
4758
|
tsType: type,
|
|
5199
|
-
|
|
4759
|
+
tcbLocation: {
|
|
4760
|
+
tcbPath: this.tcbPath,
|
|
4761
|
+
isShimFile: this.tcbIsShim,
|
|
4762
|
+
positionInFile
|
|
4763
|
+
}
|
|
5200
4764
|
};
|
|
5201
4765
|
}
|
|
5202
|
-
|
|
5203
|
-
if (
|
|
5204
|
-
return this.
|
|
5205
|
-
} else if (
|
|
4766
|
+
getTcbPositionForNode(node) {
|
|
4767
|
+
if (ts25.isTypeReferenceNode(node)) {
|
|
4768
|
+
return this.getTcbPositionForNode(node.typeName);
|
|
4769
|
+
} else if (ts25.isQualifiedName(node)) {
|
|
5206
4770
|
return node.right.getStart();
|
|
5207
|
-
} else if (
|
|
4771
|
+
} else if (ts25.isPropertyAccessExpression(node)) {
|
|
5208
4772
|
return node.name.getStart();
|
|
5209
|
-
} else if (
|
|
4773
|
+
} else if (ts25.isElementAccessExpression(node)) {
|
|
5210
4774
|
return node.argumentExpression.getStart();
|
|
5211
4775
|
} else {
|
|
5212
4776
|
return node.getStart();
|
|
@@ -5220,7 +4784,7 @@ function sourceSpanEqual(a, b) {
|
|
|
5220
4784
|
return a.start.offset === b.start.offset && a.end.offset === b.end.offset;
|
|
5221
4785
|
}
|
|
5222
4786
|
|
|
5223
|
-
// bazel-out/
|
|
4787
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/checker.mjs
|
|
5224
4788
|
var REGISTRY2 = new DomElementSchemaRegistry2();
|
|
5225
4789
|
var TemplateTypeCheckerImpl = class {
|
|
5226
4790
|
constructor(originalProgram, programDriver, typeCheckAdapter, config, refEmitter, reflector, compilerHost, priorBuild, componentScopeReader, typeCheckScopeRegistry, perf) {
|
|
@@ -5256,7 +4820,7 @@ var TemplateTypeCheckerImpl = class {
|
|
|
5256
4820
|
const shimPath = TypeCheckShimGenerator.shimFor(sfPath);
|
|
5257
4821
|
const fileRecord = this.getFileData(sfPath);
|
|
5258
4822
|
if (!fileRecord.shimData.has(shimPath)) {
|
|
5259
|
-
return { data: null, tcb: null, shimPath };
|
|
4823
|
+
return { data: null, tcb: null, tcbPath: shimPath, tcbIsShim: true };
|
|
5260
4824
|
}
|
|
5261
4825
|
const templateId = fileRecord.sourceManager.getTemplateId(component);
|
|
5262
4826
|
const shimRecord = fileRecord.shimData.get(shimPath);
|
|
@@ -5267,19 +4831,38 @@ var TemplateTypeCheckerImpl = class {
|
|
|
5267
4831
|
throw new Error(`Error: no shim file in program: ${shimPath}`);
|
|
5268
4832
|
}
|
|
5269
4833
|
let tcb = findTypeCheckBlock(shimSf, id, false);
|
|
4834
|
+
let tcbPath = shimPath;
|
|
5270
4835
|
if (tcb === null) {
|
|
5271
4836
|
const inlineSf = getSourceFileOrError(program, sfPath);
|
|
5272
4837
|
tcb = findTypeCheckBlock(inlineSf, id, false);
|
|
4838
|
+
if (tcb !== null) {
|
|
4839
|
+
tcbPath = sfPath;
|
|
4840
|
+
}
|
|
5273
4841
|
}
|
|
5274
4842
|
let data = null;
|
|
5275
4843
|
if (shimRecord.templates.has(templateId)) {
|
|
5276
4844
|
data = shimRecord.templates.get(templateId);
|
|
5277
4845
|
}
|
|
5278
|
-
return { data, tcb, shimPath };
|
|
4846
|
+
return { data, tcb, tcbPath, tcbIsShim: tcbPath === shimPath };
|
|
5279
4847
|
}
|
|
5280
4848
|
isTrackedTypeCheckFile(filePath) {
|
|
5281
4849
|
return this.getFileAndShimRecordsForPath(filePath) !== null;
|
|
5282
4850
|
}
|
|
4851
|
+
getFileRecordForTcbLocation({ tcbPath, isShimFile }) {
|
|
4852
|
+
if (!isShimFile) {
|
|
4853
|
+
if (this.state.has(tcbPath)) {
|
|
4854
|
+
return this.state.get(tcbPath);
|
|
4855
|
+
} else {
|
|
4856
|
+
return null;
|
|
4857
|
+
}
|
|
4858
|
+
}
|
|
4859
|
+
const records = this.getFileAndShimRecordsForPath(tcbPath);
|
|
4860
|
+
if (records !== null) {
|
|
4861
|
+
return records.fileRecord;
|
|
4862
|
+
} else {
|
|
4863
|
+
return null;
|
|
4864
|
+
}
|
|
4865
|
+
}
|
|
5283
4866
|
getFileAndShimRecordsForPath(shimPath) {
|
|
5284
4867
|
for (const fileRecord of this.state.values()) {
|
|
5285
4868
|
if (fileRecord.shimData.has(shimPath)) {
|
|
@@ -5288,17 +4871,16 @@ var TemplateTypeCheckerImpl = class {
|
|
|
5288
4871
|
}
|
|
5289
4872
|
return null;
|
|
5290
4873
|
}
|
|
5291
|
-
|
|
5292
|
-
const
|
|
5293
|
-
if (
|
|
4874
|
+
getTemplateMappingAtTcbLocation(tcbLocation) {
|
|
4875
|
+
const fileRecord = this.getFileRecordForTcbLocation(tcbLocation);
|
|
4876
|
+
if (fileRecord === null) {
|
|
5294
4877
|
return null;
|
|
5295
4878
|
}
|
|
5296
|
-
const
|
|
5297
|
-
const shimSf = this.programDriver.getProgram().getSourceFile(absoluteFrom(shimPath));
|
|
4879
|
+
const shimSf = this.programDriver.getProgram().getSourceFile(tcbLocation.tcbPath);
|
|
5298
4880
|
if (shimSf === void 0) {
|
|
5299
4881
|
return null;
|
|
5300
4882
|
}
|
|
5301
|
-
return getTemplateMapping(shimSf,
|
|
4883
|
+
return getTemplateMapping(shimSf, tcbLocation.positionInFile, fileRecord.sourceManager, false);
|
|
5302
4884
|
}
|
|
5303
4885
|
generateAllTypeCheckBlocks() {
|
|
5304
4886
|
this.ensureAllShimsForAllFiles();
|
|
@@ -5410,11 +4992,11 @@ var TemplateTypeCheckerImpl = class {
|
|
|
5410
4992
|
if (this.completionCache.has(component)) {
|
|
5411
4993
|
return this.completionCache.get(component);
|
|
5412
4994
|
}
|
|
5413
|
-
const { tcb, data,
|
|
4995
|
+
const { tcb, data, tcbPath, tcbIsShim } = this.getLatestComponentState(component);
|
|
5414
4996
|
if (tcb === null || data === null) {
|
|
5415
4997
|
return null;
|
|
5416
4998
|
}
|
|
5417
|
-
const engine = new CompletionEngine(tcb, data,
|
|
4999
|
+
const engine = new CompletionEngine(tcb, data, tcbPath, tcbIsShim);
|
|
5418
5000
|
this.completionCache.set(component, engine);
|
|
5419
5001
|
return engine;
|
|
5420
5002
|
}
|
|
@@ -5538,11 +5120,11 @@ var TemplateTypeCheckerImpl = class {
|
|
|
5538
5120
|
if (this.symbolBuilderCache.has(component)) {
|
|
5539
5121
|
return this.symbolBuilderCache.get(component);
|
|
5540
5122
|
}
|
|
5541
|
-
const { tcb, data,
|
|
5123
|
+
const { tcb, data, tcbPath, tcbIsShim } = this.getLatestComponentState(component);
|
|
5542
5124
|
if (tcb === null || data === null) {
|
|
5543
5125
|
return null;
|
|
5544
5126
|
}
|
|
5545
|
-
const builder = new SymbolBuilder(
|
|
5127
|
+
const builder = new SymbolBuilder(tcbPath, tcbIsShim, tcb, data, this.componentScopeReader, () => this.programDriver.getProgram().getTypeChecker());
|
|
5546
5128
|
this.symbolBuilderCache.set(component, builder);
|
|
5547
5129
|
return builder;
|
|
5548
5130
|
}
|
|
@@ -5577,7 +5159,7 @@ var TemplateTypeCheckerImpl = class {
|
|
|
5577
5159
|
const scope = this.getScopeData(component);
|
|
5578
5160
|
if (scope !== null) {
|
|
5579
5161
|
for (const directive of scope.directives) {
|
|
5580
|
-
for (const selector of
|
|
5162
|
+
for (const selector of CssSelector.parse(directive.selector)) {
|
|
5581
5163
|
if (selector.element === null || tagMap.has(selector.element)) {
|
|
5582
5164
|
continue;
|
|
5583
5165
|
}
|
|
@@ -5736,10 +5318,10 @@ var SingleShimTypeCheckingHost = class extends SingleFileTypeCheckingHost {
|
|
|
5736
5318
|
}
|
|
5737
5319
|
};
|
|
5738
5320
|
|
|
5739
|
-
// bazel-out/
|
|
5321
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/invalid_banana_in_box/index.mjs
|
|
5740
5322
|
import { TmplAstBoundEvent as TmplAstBoundEvent2 } from "@angular/compiler";
|
|
5741
5323
|
|
|
5742
|
-
// bazel-out/
|
|
5324
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/api/api.mjs
|
|
5743
5325
|
import { ASTWithSource as ASTWithSource4, RecursiveAstVisitor as RecursiveAstVisitor3 } from "@angular/compiler";
|
|
5744
5326
|
var TemplateCheckWithVisitor = class {
|
|
5745
5327
|
run(ctx, component, template) {
|
|
@@ -5816,7 +5398,7 @@ var TemplateVisitor2 = class extends RecursiveAstVisitor3 {
|
|
|
5816
5398
|
}
|
|
5817
5399
|
};
|
|
5818
5400
|
|
|
5819
|
-
// bazel-out/
|
|
5401
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/invalid_banana_in_box/index.mjs
|
|
5820
5402
|
var InvalidBananaInBoxCheck = class extends TemplateCheckWithVisitor {
|
|
5821
5403
|
constructor() {
|
|
5822
5404
|
super(...arguments);
|
|
@@ -5841,9 +5423,9 @@ var factory = {
|
|
|
5841
5423
|
create: () => new InvalidBananaInBoxCheck()
|
|
5842
5424
|
};
|
|
5843
5425
|
|
|
5844
|
-
// bazel-out/
|
|
5426
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/checks/nullish_coalescing_not_nullable/index.mjs
|
|
5845
5427
|
import { Binary } from "@angular/compiler";
|
|
5846
|
-
import
|
|
5428
|
+
import ts26 from "typescript";
|
|
5847
5429
|
var NullishCoalescingNotNullableCheck = class extends TemplateCheckWithVisitor {
|
|
5848
5430
|
constructor() {
|
|
5849
5431
|
super(...arguments);
|
|
@@ -5857,7 +5439,7 @@ var NullishCoalescingNotNullableCheck = class extends TemplateCheckWithVisitor {
|
|
|
5857
5439
|
return [];
|
|
5858
5440
|
}
|
|
5859
5441
|
const typeLeft = symbolLeft.tsType;
|
|
5860
|
-
if (typeLeft.flags & (
|
|
5442
|
+
if (typeLeft.flags & (ts26.TypeFlags.Any | ts26.TypeFlags.Unknown)) {
|
|
5861
5443
|
return [];
|
|
5862
5444
|
}
|
|
5863
5445
|
if (typeLeft.getNonNullableType() !== typeLeft)
|
|
@@ -5866,8 +5448,11 @@ var NullishCoalescingNotNullableCheck = class extends TemplateCheckWithVisitor {
|
|
|
5866
5448
|
if (symbol.kind !== SymbolKind.Expression) {
|
|
5867
5449
|
return [];
|
|
5868
5450
|
}
|
|
5869
|
-
const
|
|
5870
|
-
|
|
5451
|
+
const templateMapping = ctx.templateTypeChecker.getTemplateMappingAtTcbLocation(symbol.tcbLocation);
|
|
5452
|
+
if (templateMapping === null) {
|
|
5453
|
+
return [];
|
|
5454
|
+
}
|
|
5455
|
+
const diagnostic = ctx.makeTemplateDiagnostic(templateMapping.span, `The left side of this nullish coalescing operation does not include 'null' or 'undefined' in its type, therefore the '??' operator can be safely removed.`);
|
|
5871
5456
|
return [diagnostic];
|
|
5872
5457
|
}
|
|
5873
5458
|
};
|
|
@@ -5883,10 +5468,10 @@ var factory2 = {
|
|
|
5883
5468
|
}
|
|
5884
5469
|
};
|
|
5885
5470
|
|
|
5886
|
-
// bazel-out/
|
|
5887
|
-
import
|
|
5471
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/src/extended_template_checker.mjs
|
|
5472
|
+
import ts27 from "typescript";
|
|
5888
5473
|
|
|
5889
|
-
// bazel-out/
|
|
5474
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/core/api/src/public_options.mjs
|
|
5890
5475
|
var DiagnosticCategoryLabel;
|
|
5891
5476
|
(function(DiagnosticCategoryLabel2) {
|
|
5892
5477
|
DiagnosticCategoryLabel2["Warning"] = "warning";
|
|
@@ -5894,7 +5479,7 @@ var DiagnosticCategoryLabel;
|
|
|
5894
5479
|
DiagnosticCategoryLabel2["Suppress"] = "suppress";
|
|
5895
5480
|
})(DiagnosticCategoryLabel || (DiagnosticCategoryLabel = {}));
|
|
5896
5481
|
|
|
5897
|
-
// bazel-out/
|
|
5482
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/src/extended_template_checker.mjs
|
|
5898
5483
|
var ExtendedTemplateCheckerImpl = class {
|
|
5899
5484
|
constructor(templateTypeChecker, typeChecker, templateCheckFactories, options) {
|
|
5900
5485
|
var _a, _b, _c, _d, _e;
|
|
@@ -5932,9 +5517,9 @@ var ExtendedTemplateCheckerImpl = class {
|
|
|
5932
5517
|
function diagnosticLabelToCategory(label) {
|
|
5933
5518
|
switch (label) {
|
|
5934
5519
|
case DiagnosticCategoryLabel.Warning:
|
|
5935
|
-
return
|
|
5520
|
+
return ts27.DiagnosticCategory.Warning;
|
|
5936
5521
|
case DiagnosticCategoryLabel.Error:
|
|
5937
|
-
return
|
|
5522
|
+
return ts27.DiagnosticCategory.Error;
|
|
5938
5523
|
case DiagnosticCategoryLabel.Suppress:
|
|
5939
5524
|
return null;
|
|
5940
5525
|
default:
|
|
@@ -5946,13 +5531,13 @@ function assertNever(value) {
|
|
|
5946
5531
|
${value}`);
|
|
5947
5532
|
}
|
|
5948
5533
|
|
|
5949
|
-
// bazel-out/
|
|
5534
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/extended/index.mjs
|
|
5950
5535
|
var ALL_DIAGNOSTIC_FACTORIES = [
|
|
5951
5536
|
factory,
|
|
5952
5537
|
factory2
|
|
5953
5538
|
];
|
|
5954
5539
|
|
|
5955
|
-
// bazel-out/
|
|
5540
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/core/src/compiler.mjs
|
|
5956
5541
|
var CompilationTicketKind;
|
|
5957
5542
|
(function(CompilationTicketKind2) {
|
|
5958
5543
|
CompilationTicketKind2[CompilationTicketKind2["Fresh"] = 0] = "Fresh";
|
|
@@ -6029,7 +5614,7 @@ var NgCompiler = class {
|
|
|
6029
5614
|
this.currentProgram = inputProgram;
|
|
6030
5615
|
this.closureCompilerEnabled = !!this.options.annotateForClosureCompiler;
|
|
6031
5616
|
this.entryPoint = adapter.entryPoint !== null ? getSourceFileOrNull(inputProgram, adapter.entryPoint) : null;
|
|
6032
|
-
const moduleResolutionCache =
|
|
5617
|
+
const moduleResolutionCache = ts28.createModuleResolutionCache(this.adapter.getCurrentDirectory(), this.adapter.getCanonicalFileName.bind(this.adapter));
|
|
6033
5618
|
this.moduleResolver = new ModuleResolver(inputProgram, this.options, this.adapter, moduleResolutionCache);
|
|
6034
5619
|
this.resourceManager = new AdapterResourceLoader(adapter, this.options);
|
|
6035
5620
|
this.cycleAnalyzer = new CycleAnalyzer(new ImportGraph(inputProgram.getTypeChecker(), this.delegatingPerfRecorder));
|
|
@@ -6085,7 +5670,7 @@ var NgCompiler = class {
|
|
|
6085
5670
|
}
|
|
6086
5671
|
for (const clazz of classesToUpdate) {
|
|
6087
5672
|
this.compilation.traitCompiler.updateResources(clazz);
|
|
6088
|
-
if (!
|
|
5673
|
+
if (!ts28.isClassDeclaration(clazz)) {
|
|
6089
5674
|
continue;
|
|
6090
5675
|
}
|
|
6091
5676
|
this.compilation.templateTypeChecker.invalidateClass(clazz);
|
|
@@ -6436,12 +6021,12 @@ var NgCompiler = class {
|
|
|
6436
6021
|
const localMetaRegistry = new LocalMetadataRegistry();
|
|
6437
6022
|
const localMetaReader = localMetaRegistry;
|
|
6438
6023
|
const depScopeReader = new MetadataDtsModuleScopeResolver(dtsReader, aliasingHost);
|
|
6439
|
-
const
|
|
6024
|
+
const metaReader = new CompoundMetadataReader([localMetaReader, dtsReader]);
|
|
6025
|
+
const scopeRegistry = new LocalModuleScopeRegistry(localMetaReader, metaReader, depScopeReader, refEmitter, aliasingHost);
|
|
6440
6026
|
const scopeReader = scopeRegistry;
|
|
6441
6027
|
const semanticDepGraphUpdater = this.incrementalCompilation.semanticDepGraphUpdater;
|
|
6442
6028
|
const metaRegistry = new CompoundMetadataRegistry([localMetaRegistry, scopeRegistry]);
|
|
6443
6029
|
const injectableRegistry = new InjectableClassRegistry(reflector);
|
|
6444
|
-
const metaReader = new CompoundMetadataReader([localMetaReader, dtsReader]);
|
|
6445
6030
|
const typeCheckScopeRegistry = new TypeCheckScopeRegistry(scopeReader, metaReader);
|
|
6446
6031
|
let referencesRegistry;
|
|
6447
6032
|
let exportReferenceGraph = null;
|
|
@@ -6457,7 +6042,7 @@ var NgCompiler = class {
|
|
|
6457
6042
|
const compilationMode = this.options.compilationMode === "partial" && !isCore ? CompilationMode.PARTIAL : CompilationMode.FULL;
|
|
6458
6043
|
const cycleHandlingStrategy = compilationMode === CompilationMode.FULL ? 0 : 1;
|
|
6459
6044
|
const handlers = [
|
|
6460
|
-
new ComponentDecoratorHandler(reflector, evaluator, metaRegistry, metaReader, scopeReader, scopeRegistry, typeCheckScopeRegistry, resourceRegistry, isCore, this.resourceManager, this.adapter.rootDirs, this.options.preserveWhitespaces || false, this.options.i18nUseExternalIds !== false, this.options.enableI18nLegacyMessageIdFormat !== false, this.usePoisonedData, this.options.i18nNormalizeLineEndingsInICUs, this.moduleResolver, this.cycleAnalyzer, cycleHandlingStrategy, refEmitter, this.incrementalCompilation.depGraph, injectableRegistry, semanticDepGraphUpdater, this.closureCompilerEnabled, this.delegatingPerfRecorder),
|
|
6045
|
+
new ComponentDecoratorHandler(reflector, evaluator, metaRegistry, metaReader, scopeReader, depScopeReader, scopeRegistry, typeCheckScopeRegistry, resourceRegistry, isCore, 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, this.incrementalCompilation.depGraph, injectableRegistry, semanticDepGraphUpdater, this.closureCompilerEnabled, this.delegatingPerfRecorder),
|
|
6461
6046
|
new DirectiveDecoratorHandler(reflector, evaluator, metaRegistry, scopeRegistry, metaReader, injectableRegistry, isCore, semanticDepGraphUpdater, this.closureCompilerEnabled, false, this.delegatingPerfRecorder),
|
|
6462
6047
|
new PipeDecoratorHandler(reflector, evaluator, metaRegistry, scopeRegistry, injectableRegistry, isCore, this.delegatingPerfRecorder),
|
|
6463
6048
|
new InjectableDecoratorHandler(reflector, isCore, this.options.strictInjectionParameters || false, injectableRegistry, this.delegatingPerfRecorder),
|
|
@@ -6493,17 +6078,17 @@ function isAngularCorePackage(program) {
|
|
|
6493
6078
|
return false;
|
|
6494
6079
|
}
|
|
6495
6080
|
return r3Symbols.statements.some((stmt) => {
|
|
6496
|
-
if (!
|
|
6081
|
+
if (!ts28.isVariableStatement(stmt)) {
|
|
6497
6082
|
return false;
|
|
6498
6083
|
}
|
|
6499
|
-
if (stmt.modifiers === void 0 || !stmt.modifiers.some((mod) => mod.kind ===
|
|
6084
|
+
if (stmt.modifiers === void 0 || !stmt.modifiers.some((mod) => mod.kind === ts28.SyntaxKind.ExportKeyword)) {
|
|
6500
6085
|
return false;
|
|
6501
6086
|
}
|
|
6502
6087
|
return stmt.declarationList.declarations.some((decl) => {
|
|
6503
|
-
if (!
|
|
6088
|
+
if (!ts28.isIdentifier(decl.name) || decl.name.text !== "ITS_JUST_ANGULAR") {
|
|
6504
6089
|
return false;
|
|
6505
6090
|
}
|
|
6506
|
-
if (decl.initializer === void 0 || decl.initializer.kind !==
|
|
6091
|
+
if (decl.initializer === void 0 || decl.initializer.kind !== ts28.SyntaxKind.TrueKeyword) {
|
|
6507
6092
|
return false;
|
|
6508
6093
|
}
|
|
6509
6094
|
return true;
|
|
@@ -6517,7 +6102,7 @@ function* verifyCompatibleTypeCheckOptions(options) {
|
|
|
6517
6102
|
var _a, _b, _c;
|
|
6518
6103
|
if (options.fullTemplateTypeCheck === false && options.strictTemplates === true) {
|
|
6519
6104
|
yield makeConfigDiagnostic({
|
|
6520
|
-
category:
|
|
6105
|
+
category: ts28.DiagnosticCategory.Error,
|
|
6521
6106
|
code: ErrorCode.CONFIG_STRICT_TEMPLATES_IMPLIES_FULL_TEMPLATE_TYPECHECK,
|
|
6522
6107
|
messageText: `
|
|
6523
6108
|
Angular compiler option "strictTemplates" is enabled, however "fullTemplateTypeCheck" is disabled.
|
|
@@ -6536,7 +6121,7 @@ https://angular.io/guide/template-typecheck
|
|
|
6536
6121
|
}
|
|
6537
6122
|
if (options.extendedDiagnostics && options.strictTemplates === false) {
|
|
6538
6123
|
yield makeConfigDiagnostic({
|
|
6539
|
-
category:
|
|
6124
|
+
category: ts28.DiagnosticCategory.Error,
|
|
6540
6125
|
code: ErrorCode.CONFIG_EXTENDED_DIAGNOSTICS_IMPLIES_STRICT_TEMPLATES,
|
|
6541
6126
|
messageText: `
|
|
6542
6127
|
Angular compiler option "extendedDiagnostics" is configured, however "strictTemplates" is disabled.
|
|
@@ -6553,7 +6138,7 @@ One of the following actions is required:
|
|
|
6553
6138
|
const defaultCategory = (_a = options.extendedDiagnostics) == null ? void 0 : _a.defaultCategory;
|
|
6554
6139
|
if (defaultCategory && !allowedCategoryLabels.includes(defaultCategory)) {
|
|
6555
6140
|
yield makeConfigDiagnostic({
|
|
6556
|
-
category:
|
|
6141
|
+
category: ts28.DiagnosticCategory.Error,
|
|
6557
6142
|
code: ErrorCode.CONFIG_EXTENDED_DIAGNOSTICS_UNKNOWN_CATEGORY_LABEL,
|
|
6558
6143
|
messageText: `
|
|
6559
6144
|
Angular compiler option "extendedDiagnostics.defaultCategory" has an unknown diagnostic category: "${defaultCategory}".
|
|
@@ -6567,7 +6152,7 @@ ${allowedCategoryLabels.join("\n")}
|
|
|
6567
6152
|
for (const [checkName, category] of Object.entries((_c = (_b = options.extendedDiagnostics) == null ? void 0 : _b.checks) != null ? _c : {})) {
|
|
6568
6153
|
if (!allExtendedDiagnosticNames.includes(checkName)) {
|
|
6569
6154
|
yield makeConfigDiagnostic({
|
|
6570
|
-
category:
|
|
6155
|
+
category: ts28.DiagnosticCategory.Error,
|
|
6571
6156
|
code: ErrorCode.CONFIG_EXTENDED_DIAGNOSTICS_UNKNOWN_CHECK,
|
|
6572
6157
|
messageText: `
|
|
6573
6158
|
Angular compiler option "extendedDiagnostics.checks" has an unknown check: "${checkName}".
|
|
@@ -6579,7 +6164,7 @@ ${allExtendedDiagnosticNames.join("\n")}
|
|
|
6579
6164
|
}
|
|
6580
6165
|
if (!allowedCategoryLabels.includes(category)) {
|
|
6581
6166
|
yield makeConfigDiagnostic({
|
|
6582
|
-
category:
|
|
6167
|
+
category: ts28.DiagnosticCategory.Error,
|
|
6583
6168
|
code: ErrorCode.CONFIG_EXTENDED_DIAGNOSTICS_UNKNOWN_CATEGORY_LABEL,
|
|
6584
6169
|
messageText: `
|
|
6585
6170
|
Angular compiler option "extendedDiagnostics.checks['${checkName}']" has an unknown diagnostic category: "${category}".
|
|
@@ -6609,7 +6194,7 @@ var ReferenceGraphAdapter = class {
|
|
|
6609
6194
|
for (const { node } of references) {
|
|
6610
6195
|
let sourceFile = node.getSourceFile();
|
|
6611
6196
|
if (sourceFile === void 0) {
|
|
6612
|
-
sourceFile =
|
|
6197
|
+
sourceFile = ts28.getOriginalNode(node).getSourceFile();
|
|
6613
6198
|
}
|
|
6614
6199
|
if (sourceFile === void 0 || !isDtsPath(sourceFile.fileName)) {
|
|
6615
6200
|
this.graph.add(source, node);
|
|
@@ -6647,8 +6232,8 @@ function versionMapFromProgram(program, driver) {
|
|
|
6647
6232
|
return versions;
|
|
6648
6233
|
}
|
|
6649
6234
|
|
|
6650
|
-
// bazel-out/
|
|
6651
|
-
import
|
|
6235
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/core/src/host.mjs
|
|
6236
|
+
import ts29 from "typescript";
|
|
6652
6237
|
var DelegatingCompilerHost2 = class {
|
|
6653
6238
|
constructor(delegate) {
|
|
6654
6239
|
this.delegate = delegate;
|
|
@@ -6738,7 +6323,7 @@ var NgCompilerHost = class extends DelegatingCompilerHost2 {
|
|
|
6738
6323
|
entryPoint = findFlatIndexEntryPoint(normalizedTsInputFiles);
|
|
6739
6324
|
if (entryPoint === null) {
|
|
6740
6325
|
diagnostics.push({
|
|
6741
|
-
category:
|
|
6326
|
+
category: ts29.DiagnosticCategory.Error,
|
|
6742
6327
|
code: ngErrorCode(ErrorCode.CONFIG_FLAT_MODULE_NO_INDEX),
|
|
6743
6328
|
file: void 0,
|
|
6744
6329
|
start: void 0,
|
|
@@ -6778,17 +6363,17 @@ var NgCompilerHost = class extends DelegatingCompilerHost2 {
|
|
|
6778
6363
|
return this.fileNameToModuleName !== void 0 ? this : null;
|
|
6779
6364
|
}
|
|
6780
6365
|
createCachedResolveModuleNamesFunction() {
|
|
6781
|
-
const moduleResolutionCache =
|
|
6366
|
+
const moduleResolutionCache = ts29.createModuleResolutionCache(this.getCurrentDirectory(), this.getCanonicalFileName.bind(this));
|
|
6782
6367
|
return (moduleNames, containingFile, reusedNames, redirectedReference, options) => {
|
|
6783
6368
|
return moduleNames.map((moduleName) => {
|
|
6784
|
-
const module =
|
|
6369
|
+
const module = ts29.resolveModuleName(moduleName, containingFile, options, this, moduleResolutionCache, redirectedReference);
|
|
6785
6370
|
return module.resolvedModule;
|
|
6786
6371
|
});
|
|
6787
6372
|
};
|
|
6788
6373
|
}
|
|
6789
6374
|
};
|
|
6790
6375
|
|
|
6791
|
-
// bazel-out/
|
|
6376
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/program.mjs
|
|
6792
6377
|
var NgtscProgram = class {
|
|
6793
6378
|
constructor(rootNames, options, delegateHost, oldProgram) {
|
|
6794
6379
|
this.options = options;
|
|
@@ -6802,7 +6387,7 @@ var NgtscProgram = class {
|
|
|
6802
6387
|
if (reuseProgram !== void 0) {
|
|
6803
6388
|
retagAllTsFiles(reuseProgram);
|
|
6804
6389
|
}
|
|
6805
|
-
this.tsProgram = perfRecorder.inPhase(PerfPhase.TypeScriptProgramCreate, () =>
|
|
6390
|
+
this.tsProgram = perfRecorder.inPhase(PerfPhase.TypeScriptProgramCreate, () => ts30.createProgram(this.host.inputFiles, options, this.host, reuseProgram));
|
|
6806
6391
|
perfRecorder.phase(PerfPhase.Unaccounted);
|
|
6807
6392
|
perfRecorder.memory(PerfCheckpoint.TypeScriptProgramCreate);
|
|
6808
6393
|
this.host.postProgramCreationCleanup();
|
|
@@ -6995,38 +6580,38 @@ function mergeEmitResults(emitResults) {
|
|
|
6995
6580
|
return { diagnostics, emitSkipped, emittedFiles };
|
|
6996
6581
|
}
|
|
6997
6582
|
|
|
6998
|
-
// bazel-out/
|
|
6583
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/transformers/program.mjs
|
|
6999
6584
|
function createProgram({ rootNames, options, host, oldProgram }) {
|
|
7000
6585
|
return new NgtscProgram(rootNames, options, host, oldProgram);
|
|
7001
6586
|
}
|
|
7002
6587
|
|
|
7003
|
-
// bazel-out/
|
|
7004
|
-
import
|
|
6588
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/perform_compile.mjs
|
|
6589
|
+
import ts32 from "typescript";
|
|
7005
6590
|
|
|
7006
|
-
// bazel-out/
|
|
7007
|
-
import
|
|
6591
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/transformers/util.mjs
|
|
6592
|
+
import ts31 from "typescript";
|
|
7008
6593
|
var GENERATED_FILES = /(.*?)\.(ngfactory|shim\.ngstyle|ngstyle|ngsummary)\.(js|d\.ts|ts)$/;
|
|
7009
6594
|
function createMessageDiagnostic(messageText) {
|
|
7010
6595
|
return {
|
|
7011
6596
|
file: void 0,
|
|
7012
6597
|
start: void 0,
|
|
7013
6598
|
length: void 0,
|
|
7014
|
-
category:
|
|
6599
|
+
category: ts31.DiagnosticCategory.Message,
|
|
7015
6600
|
messageText,
|
|
7016
6601
|
code: DEFAULT_ERROR_CODE,
|
|
7017
6602
|
source: SOURCE
|
|
7018
6603
|
};
|
|
7019
6604
|
}
|
|
7020
6605
|
|
|
7021
|
-
// bazel-out/
|
|
6606
|
+
// bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/perform_compile.mjs
|
|
7022
6607
|
var defaultFormatHost = {
|
|
7023
|
-
getCurrentDirectory: () =>
|
|
6608
|
+
getCurrentDirectory: () => ts32.sys.getCurrentDirectory(),
|
|
7024
6609
|
getCanonicalFileName: (fileName) => fileName,
|
|
7025
|
-
getNewLine: () =>
|
|
6610
|
+
getNewLine: () => ts32.sys.newLine
|
|
7026
6611
|
};
|
|
7027
6612
|
function formatDiagnostics(diags, host = defaultFormatHost) {
|
|
7028
6613
|
if (diags && diags.length) {
|
|
7029
|
-
return diags.map((diagnostic) => replaceTsWithNgInErrors(
|
|
6614
|
+
return diags.map((diagnostic) => replaceTsWithNgInErrors(ts32.formatDiagnosticsWithColorAndContext([diagnostic], host))).join("");
|
|
7030
6615
|
} else {
|
|
7031
6616
|
return "";
|
|
7032
6617
|
}
|
|
@@ -7043,7 +6628,7 @@ function readConfiguration(project, existingOptions, host = getFileSystem()) {
|
|
|
7043
6628
|
var _a, _b;
|
|
7044
6629
|
try {
|
|
7045
6630
|
const fs = getFileSystem();
|
|
7046
|
-
const readConfigFile = (configFile) =>
|
|
6631
|
+
const readConfigFile = (configFile) => ts32.readConfigFile(configFile, (file) => host.readFile(host.resolve(file)));
|
|
7047
6632
|
const readAngularCompilerOptions = (configFile, parentOptions = {}) => {
|
|
7048
6633
|
const { config: config2, error: error2 } = readConfigFile(configFile);
|
|
7049
6634
|
if (error2) {
|
|
@@ -7075,7 +6660,7 @@ function readConfiguration(project, existingOptions, host = getFileSystem()) {
|
|
|
7075
6660
|
basePath
|
|
7076
6661
|
}, readAngularCompilerOptions(configFileName)), existingOptions);
|
|
7077
6662
|
const parseConfigHost = createParseConfigHost(host, fs);
|
|
7078
|
-
const { options, errors, fileNames: rootNames, projectReferences } =
|
|
6663
|
+
const { options, errors, fileNames: rootNames, projectReferences } = ts32.parseJsonConfigFileContent(config, parseConfigHost, basePath, existingCompilerOptions, configFileName);
|
|
7079
6664
|
options.enableIvy = !!((_a = options.enableIvy) != null ? _a : true);
|
|
7080
6665
|
let emitFlags = EmitFlags.Default;
|
|
7081
6666
|
if (!(options.skipMetadataEmit || options.flatModuleOutFile)) {
|
|
@@ -7087,7 +6672,7 @@ function readConfiguration(project, existingOptions, host = getFileSystem()) {
|
|
|
7087
6672
|
return { project: projectFile, rootNames, projectReferences, options, errors, emitFlags };
|
|
7088
6673
|
} catch (e) {
|
|
7089
6674
|
const errors = [{
|
|
7090
|
-
category:
|
|
6675
|
+
category: ts32.DiagnosticCategory.Error,
|
|
7091
6676
|
messageText: (_b = e.stack) != null ? _b : e.message,
|
|
7092
6677
|
file: void 0,
|
|
7093
6678
|
start: void 0,
|
|
@@ -7101,7 +6686,7 @@ function readConfiguration(project, existingOptions, host = getFileSystem()) {
|
|
|
7101
6686
|
function createParseConfigHost(host, fs = getFileSystem()) {
|
|
7102
6687
|
return {
|
|
7103
6688
|
fileExists: host.exists.bind(host),
|
|
7104
|
-
readDirectory:
|
|
6689
|
+
readDirectory: ts32.sys.readDirectory,
|
|
7105
6690
|
readFile: host.readFile.bind(host),
|
|
7106
6691
|
useCaseSensitiveFileNames: fs.isCaseSensitive()
|
|
7107
6692
|
};
|
|
@@ -7121,7 +6706,7 @@ function getExtendedConfigPathWorker(configFile, extendsValue, host, fs) {
|
|
|
7121
6706
|
}
|
|
7122
6707
|
} else {
|
|
7123
6708
|
const parseConfigHost = createParseConfigHost(host, fs);
|
|
7124
|
-
const { resolvedModule } =
|
|
6709
|
+
const { resolvedModule } = ts32.nodeModuleNameResolver(extendsValue, configFile, { moduleResolution: ts32.ModuleResolutionKind.NodeJs, resolveJsonModule: true }, parseConfigHost);
|
|
7125
6710
|
if (resolvedModule) {
|
|
7126
6711
|
return absoluteFrom(resolvedModule.resolvedFileName);
|
|
7127
6712
|
}
|
|
@@ -7131,7 +6716,7 @@ function getExtendedConfigPathWorker(configFile, extendsValue, host, fs) {
|
|
|
7131
6716
|
function exitCodeFromResult(diags) {
|
|
7132
6717
|
if (!diags)
|
|
7133
6718
|
return 0;
|
|
7134
|
-
if (diags.every((diag) => diag.category !==
|
|
6719
|
+
if (diags.every((diag) => diag.category !== ts32.DiagnosticCategory.Error)) {
|
|
7135
6720
|
return 0;
|
|
7136
6721
|
}
|
|
7137
6722
|
return diags.some((d) => d.source === "angular" && d.code === UNKNOWN_ERROR_CODE) ? 2 : 1;
|
|
@@ -7164,7 +6749,7 @@ function performCompilation({ rootNames, options, host, oldProgram, emitCallback
|
|
|
7164
6749
|
} catch (e) {
|
|
7165
6750
|
program = void 0;
|
|
7166
6751
|
allDiagnostics.push({
|
|
7167
|
-
category:
|
|
6752
|
+
category: ts32.DiagnosticCategory.Error,
|
|
7168
6753
|
messageText: (_a = e.stack) != null ? _a : e.message,
|
|
7169
6754
|
code: UNKNOWN_ERROR_CODE,
|
|
7170
6755
|
file: void 0,
|
|
@@ -7191,7 +6776,7 @@ function defaultGatherDiagnostics(program) {
|
|
|
7191
6776
|
return allDiagnostics;
|
|
7192
6777
|
}
|
|
7193
6778
|
function hasErrors(diags) {
|
|
7194
|
-
return diags.some((d) => d.category ===
|
|
6779
|
+
return diags.some((d) => d.category === ts32.DiagnosticCategory.Error);
|
|
7195
6780
|
}
|
|
7196
6781
|
|
|
7197
6782
|
export {
|
|
@@ -7205,9 +6790,6 @@ export {
|
|
|
7205
6790
|
ImportGraph,
|
|
7206
6791
|
TsCreateProgramDriver,
|
|
7207
6792
|
PatchedProgramIncrementalBuildStrategy,
|
|
7208
|
-
MetadataDtsModuleScopeResolver,
|
|
7209
|
-
LocalModuleScopeRegistry,
|
|
7210
|
-
TypeCheckScopeRegistry,
|
|
7211
6793
|
OptimizeFor,
|
|
7212
6794
|
freshCompilationTicket,
|
|
7213
6795
|
incrementalFromStateTicket,
|
|
@@ -7231,4 +6813,4 @@ export {
|
|
|
7231
6813
|
* Use of this source code is governed by an MIT-style license that can be
|
|
7232
6814
|
* found in the LICENSE file at https://angular.io/license
|
|
7233
6815
|
*/
|
|
7234
|
-
//# sourceMappingURL=chunk-
|
|
6816
|
+
//# sourceMappingURL=chunk-MGNOHKS6.js.map
|