@angular/compiler-cli 17.1.0-next.2 → 17.1.0-next.4
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-QWNQBN2Z.js → chunk-5QWOGIJL.js} +2 -2
- package/bundles/{chunk-RLZPCAR3.js → chunk-EFMKZSXJ.js} +34 -7
- package/bundles/chunk-EFMKZSXJ.js.map +6 -0
- package/bundles/{chunk-OYL5JDZA.js → chunk-HQUXRCDO.js} +138 -65
- package/bundles/chunk-HQUXRCDO.js.map +6 -0
- package/bundles/{chunk-6GUXR7F5.js → chunk-MFE4YVWE.js} +6 -5
- package/bundles/chunk-MFE4YVWE.js.map +6 -0
- package/bundles/{chunk-54K5L6NG.js → chunk-OZXTEOXW.js} +7 -5
- package/bundles/chunk-OZXTEOXW.js.map +6 -0
- package/bundles/{chunk-VOXK3NAL.js → chunk-U4EFDEE4.js} +216 -92
- package/bundles/chunk-U4EFDEE4.js.map +6 -0
- package/bundles/{chunk-TNVYLY25.js → chunk-YGXKICXB.js} +2 -2
- package/bundles/index.js +6 -7
- package/bundles/index.js.map +1 -1
- package/bundles/linker/babel/index.js +8 -8
- package/bundles/linker/babel/index.js.map +1 -1
- package/bundles/linker/index.js +3 -3
- package/bundles/private/migrations.js +3 -4
- package/bundles/private/tooling.js +2 -3
- package/bundles/src/bin/ng_xi18n.js +5 -6
- package/bundles/src/bin/ng_xi18n.js.map +1 -1
- package/bundles/src/bin/ngc.js +5 -6
- package/bundles/src/bin/ngc.js.map +1 -1
- package/bundles_metadata.json +1 -1
- package/linker/babel/src/ast/babel_ast_factory.d.ts +0 -1
- package/linker/babel/src/ast/babel_ast_host.d.ts +0 -1
- package/linker/babel/src/babel_declaration_scope.d.ts +2 -5
- package/linker/babel/src/babel_plugin.d.ts +0 -1
- package/linker/babel/src/es2015_linker_plugin.d.ts +0 -1
- package/linker/src/file_linker/partial_linkers/util.d.ts +1 -1
- package/package.json +2 -2
- package/private/babel.d.ts +6 -20
- package/src/ngtsc/annotations/directive/src/input_function.d.ts +23 -0
- package/src/ngtsc/annotations/directive/src/shared.d.ts +15 -3
- package/src/ngtsc/diagnostics/src/extended_template_diagnostic_name.d.ts +2 -1
- package/src/ngtsc/imports/src/emitter.d.ts +5 -1
- package/src/ngtsc/imports/src/references.d.ts +3 -1
- package/src/ngtsc/metadata/src/api.d.ts +25 -3
- package/src/ngtsc/metadata/src/property_mapping.d.ts +3 -1
- package/src/ngtsc/program_driver/src/ts_create_program_driver.d.ts +2 -1
- package/src/ngtsc/reflection/src/host.d.ts +6 -1
- package/src/ngtsc/reflection/src/typescript.d.ts +1 -0
- package/src/ngtsc/typecheck/api/api.d.ts +4 -0
- package/src/ngtsc/typecheck/extended/index.d.ts +1 -0
- package/src/ngtsc/typecheck/src/environment.d.ts +2 -27
- package/src/ngtsc/typecheck/src/oob.d.ts +3 -2
- package/src/ngtsc/typecheck/src/reference_emit_environment.d.ts +50 -0
- package/src/ngtsc/typecheck/src/tcb_util.d.ts +7 -8
- package/src/ngtsc/typecheck/src/type_check_block.d.ts +2 -1
- package/src/ngtsc/typecheck/src/type_constructor.d.ts +3 -3
- package/bundles/chunk-54K5L6NG.js.map +0 -6
- package/bundles/chunk-6GUXR7F5.js.map +0 -6
- package/bundles/chunk-OYL5JDZA.js.map +0 -6
- package/bundles/chunk-RLZPCAR3.js.map +0 -6
- package/bundles/chunk-UHYH6BYB.js +0 -12
- package/bundles/chunk-UHYH6BYB.js.map +0 -6
- package/bundles/chunk-VOXK3NAL.js.map +0 -6
- /package/bundles/{chunk-QWNQBN2Z.js.map → chunk-5QWOGIJL.js.map} +0 -0
- /package/bundles/{chunk-TNVYLY25.js.map → chunk-YGXKICXB.js.map} +0 -0
|
@@ -36,17 +36,18 @@ import {
|
|
|
36
36
|
aliasTransformFactory,
|
|
37
37
|
declarationTransformFactory,
|
|
38
38
|
ivyTransformFactory
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-U4EFDEE4.js";
|
|
40
40
|
import {
|
|
41
41
|
ImportManager,
|
|
42
42
|
TypeEmitter,
|
|
43
43
|
canEmitType,
|
|
44
44
|
translateExpression,
|
|
45
45
|
translateType
|
|
46
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-MFE4YVWE.js";
|
|
47
47
|
import {
|
|
48
48
|
AbsoluteModuleStrategy,
|
|
49
49
|
AliasStrategy,
|
|
50
|
+
AmbientImport,
|
|
50
51
|
COMPILER_ERRORS_WITH_GUIDES,
|
|
51
52
|
DefaultImportTracker,
|
|
52
53
|
DeferredSymbolTracker,
|
|
@@ -85,7 +86,7 @@ import {
|
|
|
85
86
|
relativePathBetween,
|
|
86
87
|
replaceTsWithNgInErrors,
|
|
87
88
|
toUnredirectedSourceFile
|
|
88
|
-
} from "./chunk-
|
|
89
|
+
} from "./chunk-EFMKZSXJ.js";
|
|
89
90
|
import {
|
|
90
91
|
ActivePerfRecorder,
|
|
91
92
|
DelegatingPerfRecorder,
|
|
@@ -1393,6 +1394,12 @@ var ShimReferenceTagger = class {
|
|
|
1393
1394
|
|
|
1394
1395
|
// bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/program_driver/src/ts_create_program_driver.mjs
|
|
1395
1396
|
var DelegatingCompilerHost = class {
|
|
1397
|
+
get jsDocParsingMode() {
|
|
1398
|
+
return this.delegate.jsDocParsingMode;
|
|
1399
|
+
}
|
|
1400
|
+
set jsDocParsingMode(mode) {
|
|
1401
|
+
this.delegate.jsDocParsingMode = mode;
|
|
1402
|
+
}
|
|
1396
1403
|
constructor(delegate) {
|
|
1397
1404
|
this.delegate = delegate;
|
|
1398
1405
|
this.createHash = this.delegateMethod("createHash");
|
|
@@ -1418,7 +1425,6 @@ var DelegatingCompilerHost = class {
|
|
|
1418
1425
|
this.hasInvalidatedResolutions = this.delegateMethod("hasInvalidatedResolutions");
|
|
1419
1426
|
this.resolveModuleNameLiterals = this.delegateMethod("resolveModuleNameLiterals");
|
|
1420
1427
|
this.resolveTypeReferenceDirectiveReferences = this.delegateMethod("resolveTypeReferenceDirectiveReferences");
|
|
1421
|
-
this.jsDocParsingMode = this.delegateMethod("jsDocParsingMode");
|
|
1422
1428
|
}
|
|
1423
1429
|
delegateMethod(name) {
|
|
1424
1430
|
return this.delegate[name] !== void 0 ? this.delegate[name].bind(this.delegate) : void 0;
|
|
@@ -1432,10 +1438,10 @@ var UpdatedProgramHost = class extends DelegatingCompilerHost {
|
|
|
1432
1438
|
this.shimTagger = new ShimReferenceTagger(this.shimExtensionPrefixes);
|
|
1433
1439
|
this.sfMap = sfMap;
|
|
1434
1440
|
}
|
|
1435
|
-
getSourceFile(fileName,
|
|
1441
|
+
getSourceFile(fileName, languageVersionOrOptions, onError, shouldCreateNewSourceFile) {
|
|
1436
1442
|
let delegateSf = this.originalProgram.getSourceFile(fileName);
|
|
1437
1443
|
if (delegateSf === void 0) {
|
|
1438
|
-
delegateSf = this.delegate.getSourceFile(fileName,
|
|
1444
|
+
delegateSf = this.delegate.getSourceFile(fileName, languageVersionOrOptions, onError, shouldCreateNewSourceFile);
|
|
1439
1445
|
}
|
|
1440
1446
|
if (delegateSf === void 0) {
|
|
1441
1447
|
return void 0;
|
|
@@ -2480,7 +2486,7 @@ var StandaloneComponentScopeReader = class {
|
|
|
2480
2486
|
};
|
|
2481
2487
|
|
|
2482
2488
|
// bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/checker.mjs
|
|
2483
|
-
import { CssSelector as CssSelector2, DomElementSchemaRegistry as DomElementSchemaRegistry2, ExternalExpr as ExternalExpr2, WrappedNodeExpr } from "@angular/compiler";
|
|
2489
|
+
import { CssSelector as CssSelector2, DomElementSchemaRegistry as DomElementSchemaRegistry2, ExternalExpr as ExternalExpr2, WrappedNodeExpr as WrappedNodeExpr2 } from "@angular/compiler";
|
|
2484
2490
|
|
|
2485
2491
|
// bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/diagnostics/src/diagnostic.mjs
|
|
2486
2492
|
import ts15 from "typescript";
|
|
@@ -2954,9 +2960,39 @@ var RegistryDomSchemaChecker = class {
|
|
|
2954
2960
|
};
|
|
2955
2961
|
|
|
2956
2962
|
// bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/environment.mjs
|
|
2957
|
-
import { ExpressionType, ExternalExpr, TypeModifier } from "@angular/compiler";
|
|
2958
2963
|
import ts23 from "typescript";
|
|
2959
2964
|
|
|
2965
|
+
// bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/reference_emit_environment.mjs
|
|
2966
|
+
import { ExpressionType, ExternalExpr, TypeModifier } from "@angular/compiler";
|
|
2967
|
+
var ReferenceEmitEnvironment = class {
|
|
2968
|
+
constructor(importManager, refEmitter, reflector, contextFile) {
|
|
2969
|
+
this.importManager = importManager;
|
|
2970
|
+
this.refEmitter = refEmitter;
|
|
2971
|
+
this.reflector = reflector;
|
|
2972
|
+
this.contextFile = contextFile;
|
|
2973
|
+
}
|
|
2974
|
+
canReferenceType(ref, flags = ImportFlags.NoAliasing | ImportFlags.AllowTypeImports | ImportFlags.AllowRelativeDtsImports) {
|
|
2975
|
+
const result = this.refEmitter.emit(ref, this.contextFile, flags);
|
|
2976
|
+
return result.kind === 0;
|
|
2977
|
+
}
|
|
2978
|
+
referenceType(ref, flags = ImportFlags.NoAliasing | ImportFlags.AllowTypeImports | ImportFlags.AllowRelativeDtsImports) {
|
|
2979
|
+
const ngExpr = this.refEmitter.emit(ref, this.contextFile, flags);
|
|
2980
|
+
assertSuccessfulReferenceEmit(ngExpr, this.contextFile, "symbol");
|
|
2981
|
+
return translateType(new ExpressionType(ngExpr.expression), this.contextFile, this.reflector, this.refEmitter, this.importManager);
|
|
2982
|
+
}
|
|
2983
|
+
referenceExternalSymbol(moduleName, name) {
|
|
2984
|
+
const external = new ExternalExpr({ moduleName, name });
|
|
2985
|
+
return translateExpression(external, this.importManager);
|
|
2986
|
+
}
|
|
2987
|
+
referenceExternalType(moduleName, name, typeParams) {
|
|
2988
|
+
const external = new ExternalExpr({ moduleName, name });
|
|
2989
|
+
return translateType(new ExpressionType(external, TypeModifier.None, typeParams), this.contextFile, this.reflector, this.refEmitter, this.importManager);
|
|
2990
|
+
}
|
|
2991
|
+
referenceTransplantedType(type) {
|
|
2992
|
+
return translateType(type, this.contextFile, this.reflector, this.refEmitter, this.importManager);
|
|
2993
|
+
}
|
|
2994
|
+
};
|
|
2995
|
+
|
|
2960
2996
|
// bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/ts_util.mjs
|
|
2961
2997
|
import ts19 from "typescript";
|
|
2962
2998
|
var SAFE_TO_CAST_WITHOUT_PARENS = /* @__PURE__ */ new Set([
|
|
@@ -3043,9 +3079,11 @@ function tsNumericExpression(value) {
|
|
|
3043
3079
|
}
|
|
3044
3080
|
|
|
3045
3081
|
// bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_constructor.mjs
|
|
3082
|
+
import { ExpressionType as ExpressionType2, R3Identifiers as R3Identifiers2, WrappedNodeExpr } from "@angular/compiler";
|
|
3046
3083
|
import ts22 from "typescript";
|
|
3047
3084
|
|
|
3048
3085
|
// bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/tcb_util.mjs
|
|
3086
|
+
import { R3Identifiers } from "@angular/compiler";
|
|
3049
3087
|
import ts21 from "typescript";
|
|
3050
3088
|
|
|
3051
3089
|
// bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_parameter_emitter.mjs
|
|
@@ -3099,13 +3137,13 @@ var TypeParameterEmitter = class {
|
|
|
3099
3137
|
return type;
|
|
3100
3138
|
}
|
|
3101
3139
|
let owningModule = null;
|
|
3102
|
-
if (declaration.viaModule
|
|
3140
|
+
if (typeof declaration.viaModule === "string") {
|
|
3103
3141
|
owningModule = {
|
|
3104
3142
|
specifier: declaration.viaModule,
|
|
3105
3143
|
resolutionContext: type.getSourceFile().fileName
|
|
3106
3144
|
};
|
|
3107
3145
|
}
|
|
3108
|
-
return new Reference(declaration.node, owningModule);
|
|
3146
|
+
return new Reference(declaration.node, declaration.viaModule === AmbientImport ? AmbientImport : owningModule);
|
|
3109
3147
|
}
|
|
3110
3148
|
translateTypeReference(type, emitReference) {
|
|
3111
3149
|
const reference = this.resolveTypeReference(type);
|
|
@@ -3127,6 +3165,9 @@ var TypeParameterEmitter = class {
|
|
|
3127
3165
|
};
|
|
3128
3166
|
|
|
3129
3167
|
// bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/tcb_util.mjs
|
|
3168
|
+
var TCB_FILE_IMPORT_GRAPH_PREPARE_MODULES = [
|
|
3169
|
+
R3Identifiers.InputSignalBrandWriteType.moduleName
|
|
3170
|
+
];
|
|
3130
3171
|
var TcbInliningRequirement;
|
|
3131
3172
|
(function(TcbInliningRequirement2) {
|
|
3132
3173
|
TcbInliningRequirement2[TcbInliningRequirement2["MustInline"] = 0] = "MustInline";
|
|
@@ -3201,16 +3242,21 @@ function getTemplateId2(node, sourceFile, isDiagnosticRequest) {
|
|
|
3201
3242
|
return commentText;
|
|
3202
3243
|
}) || null;
|
|
3203
3244
|
}
|
|
3245
|
+
function ensureTypeCheckFilePreparationImports(env) {
|
|
3246
|
+
for (const moduleName of TCB_FILE_IMPORT_GRAPH_PREPARE_MODULES) {
|
|
3247
|
+
env.importManager.generateNamespaceImport(moduleName);
|
|
3248
|
+
}
|
|
3249
|
+
}
|
|
3204
3250
|
function checkIfGenericTypeBoundsCanBeEmitted(node, reflector, env) {
|
|
3205
3251
|
const emitter = new TypeParameterEmitter(node.typeParameters, reflector);
|
|
3206
3252
|
return emitter.canEmit((ref) => env.canReferenceType(ref));
|
|
3207
3253
|
}
|
|
3208
3254
|
|
|
3209
3255
|
// bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_constructor.mjs
|
|
3210
|
-
function generateTypeCtorDeclarationFn(
|
|
3256
|
+
function generateTypeCtorDeclarationFn(env, meta, nodeTypeRef, typeParams) {
|
|
3211
3257
|
const rawTypeArgs = typeParams !== void 0 ? generateGenericArgs(typeParams) : void 0;
|
|
3212
3258
|
const rawType = ts22.factory.createTypeReferenceNode(nodeTypeRef, rawTypeArgs);
|
|
3213
|
-
const initParam = constructTypeCtorParameter(
|
|
3259
|
+
const initParam = constructTypeCtorParameter(env, meta, rawType);
|
|
3214
3260
|
const typeParameters = typeParametersWithDefaultTypes(typeParams);
|
|
3215
3261
|
if (meta.body) {
|
|
3216
3262
|
const fnType = ts22.factory.createFunctionTypeNode(
|
|
@@ -3241,10 +3287,10 @@ function generateTypeCtorDeclarationFn(node, meta, nodeTypeRef, typeParams) {
|
|
|
3241
3287
|
);
|
|
3242
3288
|
}
|
|
3243
3289
|
}
|
|
3244
|
-
function generateInlineTypeCtor(node, meta) {
|
|
3290
|
+
function generateInlineTypeCtor(env, node, meta) {
|
|
3245
3291
|
const rawTypeArgs = node.typeParameters !== void 0 ? generateGenericArgs(node.typeParameters) : void 0;
|
|
3246
3292
|
const rawType = ts22.factory.createTypeReferenceNode(node.name, rawTypeArgs);
|
|
3247
|
-
const initParam = constructTypeCtorParameter(
|
|
3293
|
+
const initParam = constructTypeCtorParameter(env, meta, rawType);
|
|
3248
3294
|
let body = void 0;
|
|
3249
3295
|
if (meta.body) {
|
|
3250
3296
|
body = ts22.factory.createBlock([
|
|
@@ -3262,19 +3308,23 @@ function generateInlineTypeCtor(node, meta) {
|
|
|
3262
3308
|
body
|
|
3263
3309
|
);
|
|
3264
3310
|
}
|
|
3265
|
-
function constructTypeCtorParameter(
|
|
3311
|
+
function constructTypeCtorParameter(env, meta, rawType) {
|
|
3266
3312
|
let initType = null;
|
|
3267
3313
|
const plainKeys = [];
|
|
3268
3314
|
const coercedKeys = [];
|
|
3269
|
-
|
|
3270
|
-
|
|
3315
|
+
const signalInputKeys = [];
|
|
3316
|
+
for (const { classPropertyName, transform, isSignal } of meta.fields.inputs) {
|
|
3317
|
+
if (isSignal) {
|
|
3318
|
+
signalInputKeys.push(ts22.factory.createLiteralTypeNode(ts22.factory.createStringLiteral(classPropertyName)));
|
|
3319
|
+
} else if (!meta.coercedInputFields.has(classPropertyName)) {
|
|
3271
3320
|
plainKeys.push(ts22.factory.createLiteralTypeNode(ts22.factory.createStringLiteral(classPropertyName)));
|
|
3272
3321
|
} else {
|
|
3322
|
+
const coercionType = transform != null ? transform.type.node : tsCreateTypeQueryForCoercedInput(rawType.typeName, classPropertyName);
|
|
3273
3323
|
coercedKeys.push(ts22.factory.createPropertySignature(
|
|
3274
3324
|
void 0,
|
|
3275
3325
|
classPropertyName,
|
|
3276
3326
|
void 0,
|
|
3277
|
-
|
|
3327
|
+
coercionType
|
|
3278
3328
|
));
|
|
3279
3329
|
}
|
|
3280
3330
|
}
|
|
@@ -3286,6 +3336,14 @@ function constructTypeCtorParameter(node, meta, rawType) {
|
|
|
3286
3336
|
const coercedLiteral = ts22.factory.createTypeLiteralNode(coercedKeys);
|
|
3287
3337
|
initType = initType !== null ? ts22.factory.createIntersectionTypeNode([initType, coercedLiteral]) : coercedLiteral;
|
|
3288
3338
|
}
|
|
3339
|
+
if (signalInputKeys.length > 0) {
|
|
3340
|
+
const keyTypeUnion = ts22.factory.createUnionTypeNode(signalInputKeys);
|
|
3341
|
+
const unwrapDirectiveSignalInputsExpr = env.referenceExternalType(R3Identifiers2.UnwrapDirectiveSignalInputs.moduleName, R3Identifiers2.UnwrapDirectiveSignalInputs.name, [
|
|
3342
|
+
new ExpressionType2(new WrappedNodeExpr(rawType)),
|
|
3343
|
+
new ExpressionType2(new WrappedNodeExpr(keyTypeUnion))
|
|
3344
|
+
]);
|
|
3345
|
+
initType = initType !== null ? ts22.factory.createIntersectionTypeNode([initType, unwrapDirectiveSignalInputsExpr]) : unwrapDirectiveSignalInputsExpr;
|
|
3346
|
+
}
|
|
3289
3347
|
if (initType === null) {
|
|
3290
3348
|
initType = ts22.factory.createTypeLiteralNode([]);
|
|
3291
3349
|
}
|
|
@@ -3318,13 +3376,10 @@ function typeParametersWithDefaultTypes(params) {
|
|
|
3318
3376
|
}
|
|
3319
3377
|
|
|
3320
3378
|
// bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/environment.mjs
|
|
3321
|
-
var Environment = class {
|
|
3379
|
+
var Environment = class extends ReferenceEmitEnvironment {
|
|
3322
3380
|
constructor(config, importManager, refEmitter, reflector, contextFile) {
|
|
3381
|
+
super(importManager, refEmitter, reflector, contextFile);
|
|
3323
3382
|
this.config = config;
|
|
3324
|
-
this.importManager = importManager;
|
|
3325
|
-
this.refEmitter = refEmitter;
|
|
3326
|
-
this.reflector = reflector;
|
|
3327
|
-
this.contextFile = contextFile;
|
|
3328
3383
|
this.nextIds = {
|
|
3329
3384
|
pipeInst: 1,
|
|
3330
3385
|
typeCtor: 1
|
|
@@ -3361,7 +3416,7 @@ var Environment = class {
|
|
|
3361
3416
|
coercedInputFields: dir.coercedInputFields
|
|
3362
3417
|
};
|
|
3363
3418
|
const typeParams = this.emitTypeParameters(node);
|
|
3364
|
-
const typeCtor = generateTypeCtorDeclarationFn(
|
|
3419
|
+
const typeCtor = generateTypeCtorDeclarationFn(this, meta, nodeTypeRef.typeName, typeParams);
|
|
3365
3420
|
this.typeCtorStatements.push(typeCtor);
|
|
3366
3421
|
const fnId = ts23.factory.createIdentifier(fnName);
|
|
3367
3422
|
this.typeCtors.set(node, fnId);
|
|
@@ -3383,26 +3438,10 @@ var Environment = class {
|
|
|
3383
3438
|
assertSuccessfulReferenceEmit(ngExpr, this.contextFile, "class");
|
|
3384
3439
|
return translateExpression(ngExpr.expression, this.importManager);
|
|
3385
3440
|
}
|
|
3386
|
-
canReferenceType(ref) {
|
|
3387
|
-
const result = this.refEmitter.emit(ref, this.contextFile, ImportFlags.NoAliasing | ImportFlags.AllowTypeImports | ImportFlags.AllowRelativeDtsImports);
|
|
3388
|
-
return result.kind === 0;
|
|
3389
|
-
}
|
|
3390
|
-
referenceType(ref) {
|
|
3391
|
-
const ngExpr = this.refEmitter.emit(ref, this.contextFile, ImportFlags.NoAliasing | ImportFlags.AllowTypeImports | ImportFlags.AllowRelativeDtsImports);
|
|
3392
|
-
assertSuccessfulReferenceEmit(ngExpr, this.contextFile, "symbol");
|
|
3393
|
-
return translateType(new ExpressionType(ngExpr.expression), this.contextFile, this.reflector, this.refEmitter, this.importManager);
|
|
3394
|
-
}
|
|
3395
3441
|
emitTypeParameters(declaration) {
|
|
3396
3442
|
const emitter = new TypeParameterEmitter(declaration.typeParameters, this.reflector);
|
|
3397
3443
|
return emitter.emit((ref) => this.referenceType(ref));
|
|
3398
3444
|
}
|
|
3399
|
-
referenceExternalType(moduleName, name, typeParams) {
|
|
3400
|
-
const external = new ExternalExpr({ moduleName, name });
|
|
3401
|
-
return translateType(new ExpressionType(external, TypeModifier.None, typeParams), this.contextFile, this.reflector, this.refEmitter, this.importManager);
|
|
3402
|
-
}
|
|
3403
|
-
referenceTransplantedType(type) {
|
|
3404
|
-
return translateType(type, this.contextFile, this.reflector, this.refEmitter, this.importManager);
|
|
3405
|
-
}
|
|
3406
3445
|
getPreludeStatements() {
|
|
3407
3446
|
return [
|
|
3408
3447
|
...this.pipeInstStatements,
|
|
@@ -3558,7 +3597,7 @@ Deferred blocks can only access triggers in same view, a parent embedded view or
|
|
|
3558
3597
|
}
|
|
3559
3598
|
this._diagnostics.push(makeTemplateDiagnostic(templateId, this.resolver.getSourceMapping(templateId), trigger.sourceSpan, ts24.DiagnosticCategory.Error, ngErrorCode(ErrorCode.INACCESSIBLE_DEFERRED_TRIGGER_ELEMENT), message));
|
|
3560
3599
|
}
|
|
3561
|
-
controlFlowPreventingContentProjection(templateId, projectionNode, componentName, slotSelector, controlFlowNode, preservesWhitespaces) {
|
|
3600
|
+
controlFlowPreventingContentProjection(templateId, category, projectionNode, componentName, slotSelector, controlFlowNode, preservesWhitespaces) {
|
|
3562
3601
|
const blockName = controlFlowNode instanceof TmplAstIfBlockBranch ? "@if" : "@for";
|
|
3563
3602
|
const lines = [
|
|
3564
3603
|
`Node matches the "${slotSelector}" slot of the "${componentName}" component, but will not be projected into the specific slot because the surrounding ${blockName} has more than one node at its root. To project the node in the right slot, you can:
|
|
@@ -3568,9 +3607,10 @@ Deferred blocks can only access triggers in same view, a parent embedded view or
|
|
|
3568
3607
|
`3. Remove all content from the ${blockName} block, except for the node being projected.`
|
|
3569
3608
|
];
|
|
3570
3609
|
if (preservesWhitespaces) {
|
|
3571
|
-
lines.push(
|
|
3610
|
+
lines.push("Note: the host component has `preserveWhitespaces: true` which may cause whitespace to affect content projection.");
|
|
3572
3611
|
}
|
|
3573
|
-
|
|
3612
|
+
lines.push("", 'This check can be disabled using the `extendedDiagnostics.checks.controlFlowPreventingContentProjection = "suppress" compiler option.`');
|
|
3613
|
+
this._diagnostics.push(makeTemplateDiagnostic(templateId, this.resolver.getSourceMapping(templateId), projectionNode.startSourceSpan, category, ngErrorCode(ErrorCode.CONTROL_FLOW_PREVENTING_CONTENT_PROJECTION), lines.join("\n")));
|
|
3574
3614
|
}
|
|
3575
3615
|
};
|
|
3576
3616
|
function makeInlineDiagnostic(templateId, code, node, messageText, relatedInformation) {
|
|
@@ -3600,7 +3640,7 @@ var TypeCheckShimGenerator = class {
|
|
|
3600
3640
|
};
|
|
3601
3641
|
|
|
3602
3642
|
// bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_check_block.mjs
|
|
3603
|
-
import { BindingPipe, Call as Call2, createCssSelectorFromNode, CssSelector, DYNAMIC_TYPE, ImplicitReceiver as ImplicitReceiver4, PropertyRead as PropertyRead4, PropertyWrite as PropertyWrite3, SafeCall, SafePropertyRead as SafePropertyRead3, SelectorMatcher, ThisReceiver, TmplAstBoundAttribute, TmplAstBoundText, TmplAstDeferredBlock, TmplAstElement as TmplAstElement3, TmplAstForLoopBlock, TmplAstIcu, TmplAstIfBlock, TmplAstIfBlockBranch as TmplAstIfBlockBranch2, TmplAstReference as TmplAstReference3, TmplAstSwitchBlock, TmplAstTemplate as TmplAstTemplate2, TmplAstText, TmplAstTextAttribute as TmplAstTextAttribute2, TmplAstVariable as TmplAstVariable2, TransplantedType } from "@angular/compiler";
|
|
3643
|
+
import { BindingPipe, Call as Call2, createCssSelectorFromNode, CssSelector, DYNAMIC_TYPE, ImplicitReceiver as ImplicitReceiver4, PropertyRead as PropertyRead4, PropertyWrite as PropertyWrite3, R3Identifiers as R3Identifiers3, SafeCall, SafePropertyRead as SafePropertyRead3, SelectorMatcher, ThisReceiver, TmplAstBoundAttribute, TmplAstBoundText, TmplAstDeferredBlock, TmplAstElement as TmplAstElement3, TmplAstForLoopBlock, TmplAstIcu, TmplAstIfBlock, TmplAstIfBlockBranch as TmplAstIfBlockBranch2, TmplAstReference as TmplAstReference3, TmplAstSwitchBlock, TmplAstTemplate as TmplAstTemplate2, TmplAstText, TmplAstTextAttribute as TmplAstTextAttribute2, TmplAstVariable as TmplAstVariable2, TransplantedType } from "@angular/compiler";
|
|
3604
3644
|
import ts28 from "typescript";
|
|
3605
3645
|
|
|
3606
3646
|
// bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/diagnostics.mjs
|
|
@@ -4320,7 +4360,12 @@ var TcbDirectiveCtorOp = class extends TcbOp {
|
|
|
4320
4360
|
continue;
|
|
4321
4361
|
}
|
|
4322
4362
|
const expression = translateInput(attr.attribute, this.tcb, this.scope);
|
|
4323
|
-
genericInputs.set(fieldName, {
|
|
4363
|
+
genericInputs.set(fieldName, {
|
|
4364
|
+
type: "binding",
|
|
4365
|
+
field: fieldName,
|
|
4366
|
+
expression,
|
|
4367
|
+
sourceSpan: attr.attribute.sourceSpan
|
|
4368
|
+
});
|
|
4324
4369
|
}
|
|
4325
4370
|
}
|
|
4326
4371
|
for (const { classPropertyName } of this.dir.inputs) {
|
|
@@ -4355,7 +4400,7 @@ var TcbDirectiveInputsOp = class extends TcbOp {
|
|
|
4355
4400
|
for (const attr of boundAttrs) {
|
|
4356
4401
|
const expr = widenBinding(translateInput(attr.attribute, this.tcb, this.scope), this.tcb);
|
|
4357
4402
|
let assignment = wrapForDiagnostics(expr);
|
|
4358
|
-
for (const { fieldName, required, transformType } of attr.inputs) {
|
|
4403
|
+
for (const { fieldName, required, transformType, isSignal } of attr.inputs) {
|
|
4359
4404
|
let target;
|
|
4360
4405
|
if (required) {
|
|
4361
4406
|
seenRequiredInputs.add(fieldName);
|
|
@@ -4395,6 +4440,13 @@ var TcbDirectiveInputsOp = class extends TcbOp {
|
|
|
4395
4440
|
}
|
|
4396
4441
|
target = this.dir.stringLiteralInputFields.has(fieldName) ? ts28.factory.createElementAccessExpression(dirId, ts28.factory.createStringLiteral(fieldName)) : ts28.factory.createPropertyAccessExpression(dirId, ts28.factory.createIdentifier(fieldName));
|
|
4397
4442
|
}
|
|
4443
|
+
if (isSignal) {
|
|
4444
|
+
const inputSignalBrandWriteSymbol = this.tcb.env.referenceExternalSymbol(R3Identifiers3.InputSignalBrandWriteType.moduleName, R3Identifiers3.InputSignalBrandWriteType.name);
|
|
4445
|
+
if (!ts28.isIdentifier(inputSignalBrandWriteSymbol) && !ts28.isPropertyAccessExpression(inputSignalBrandWriteSymbol)) {
|
|
4446
|
+
throw new Error(`Expected identifier or property access for reference to ${R3Identifiers3.InputSignalBrandWriteType.name}`);
|
|
4447
|
+
}
|
|
4448
|
+
target = ts28.factory.createElementAccessExpression(target, inputSignalBrandWriteSymbol);
|
|
4449
|
+
}
|
|
4398
4450
|
if (attr.attribute.keySpan !== void 0) {
|
|
4399
4451
|
addParseSpanInfo(target, attr.attribute.keySpan);
|
|
4400
4452
|
}
|
|
@@ -4478,6 +4530,7 @@ var TcbControlFlowContentProjectionOp = class extends TcbOp {
|
|
|
4478
4530
|
this.ngContentSelectors = ngContentSelectors;
|
|
4479
4531
|
this.componentName = componentName;
|
|
4480
4532
|
this.optional = false;
|
|
4533
|
+
this.category = tcb.env.config.controlFlowPreventingContentProjection === "error" ? ts28.DiagnosticCategory.Error : ts28.DiagnosticCategory.Warning;
|
|
4481
4534
|
}
|
|
4482
4535
|
execute() {
|
|
4483
4536
|
const controlFlowToCheck = this.findPotentialControlFlowNodes();
|
|
@@ -4492,7 +4545,7 @@ var TcbControlFlowContentProjectionOp = class extends TcbOp {
|
|
|
4492
4545
|
for (const child of root.children) {
|
|
4493
4546
|
if (child instanceof TmplAstElement3 || child instanceof TmplAstTemplate2) {
|
|
4494
4547
|
matcher.match(createCssSelectorFromNode(child), (_, originalSelector) => {
|
|
4495
|
-
this.tcb.oobRecorder.controlFlowPreventingContentProjection(this.tcb.id, child, this.componentName, originalSelector, root, this.tcb.hostPreserveWhitespaces);
|
|
4548
|
+
this.tcb.oobRecorder.controlFlowPreventingContentProjection(this.tcb.id, this.category, child, this.componentName, originalSelector, root, this.tcb.hostPreserveWhitespaces);
|
|
4496
4549
|
});
|
|
4497
4550
|
}
|
|
4498
4551
|
}
|
|
@@ -4706,9 +4759,7 @@ var TcbBlockImplicitVariableOp = class extends TcbOp {
|
|
|
4706
4759
|
this.scope = scope;
|
|
4707
4760
|
this.type = type;
|
|
4708
4761
|
this.variable = variable;
|
|
4709
|
-
|
|
4710
|
-
get optional() {
|
|
4711
|
-
return false;
|
|
4762
|
+
this.optional = true;
|
|
4712
4763
|
}
|
|
4713
4764
|
execute() {
|
|
4714
4765
|
const id = this.tcb.allocateId();
|
|
@@ -4844,7 +4895,11 @@ var TcbForOfOp = class extends TcbOp {
|
|
|
4844
4895
|
}
|
|
4845
4896
|
execute() {
|
|
4846
4897
|
const loopScope = Scope.forNodes(this.tcb, this.scope, this.block, this.block.children, null);
|
|
4847
|
-
const
|
|
4898
|
+
const initializerId = loopScope.resolve(this.block.item);
|
|
4899
|
+
if (!ts28.isIdentifier(initializerId)) {
|
|
4900
|
+
throw new Error(`Could not resolve for loop variable ${this.block.item.name} to an identifier`);
|
|
4901
|
+
}
|
|
4902
|
+
const initializer = ts28.factory.createVariableDeclarationList([ts28.factory.createVariableDeclaration(initializerId)], ts28.NodeFlags.Const);
|
|
4848
4903
|
const expression = ts28.factory.createNonNullExpression(tcbExpression(this.block.expression, this.tcb, loopScope));
|
|
4849
4904
|
const trackTranslator = new TcbForLoopTrackTranslator(this.tcb, loopScope, this.block);
|
|
4850
4905
|
const trackExpression = trackTranslator.translate(this.block.trackBy);
|
|
@@ -4915,7 +4970,9 @@ var _Scope = class {
|
|
|
4915
4970
|
this.registerVariable(scope, expressionAlias, new TcbBlockVariableOp(tcb, scope, tcbExpression(expression, tcb, scope), expressionAlias));
|
|
4916
4971
|
}
|
|
4917
4972
|
} else if (scopedNode instanceof TmplAstForLoopBlock) {
|
|
4918
|
-
|
|
4973
|
+
const loopInitializer = tcb.allocateId();
|
|
4974
|
+
addParseSpanInfo(loopInitializer, scopedNode.item.sourceSpan);
|
|
4975
|
+
scope.varMap.set(scopedNode.item, loopInitializer);
|
|
4919
4976
|
for (const [name, variable] of Object.entries(scopedNode.contextVariables)) {
|
|
4920
4977
|
if (!this.forLoopContextVariableTypes.has(name)) {
|
|
4921
4978
|
throw new Error(`Unrecognized for loop context variable ${name}`);
|
|
@@ -4980,7 +5037,8 @@ var _Scope = class {
|
|
|
4980
5037
|
if (ref instanceof TmplAstReference3 && this.referenceOpMap.has(ref)) {
|
|
4981
5038
|
return this.resolveOp(this.referenceOpMap.get(ref));
|
|
4982
5039
|
} else if (ref instanceof TmplAstVariable2 && this.varMap.has(ref)) {
|
|
4983
|
-
|
|
5040
|
+
const opIndexOrNode = this.varMap.get(ref);
|
|
5041
|
+
return typeof opIndexOrNode === "number" ? this.resolveOp(opIndexOrNode) : opIndexOrNode;
|
|
4984
5042
|
} else if (ref instanceof TmplAstTemplate2 && directive === void 0 && this.templateCtxOpMap.has(ref)) {
|
|
4985
5043
|
return this.resolveOp(this.templateCtxOpMap.get(ref));
|
|
4986
5044
|
} else if ((ref instanceof TmplAstElement3 || ref instanceof TmplAstTemplate2) && directive !== void 0 && this.directiveOpMap.has(ref)) {
|
|
@@ -5020,7 +5078,9 @@ var _Scope = class {
|
|
|
5020
5078
|
if (node instanceof TmplAstElement3) {
|
|
5021
5079
|
const opIndex = this.opQueue.push(new TcbElementOp(this.tcb, this, node)) - 1;
|
|
5022
5080
|
this.elementOpMap.set(node, opIndex);
|
|
5023
|
-
this.
|
|
5081
|
+
if (this.tcb.env.config.controlFlowPreventingContentProjection !== "suppress") {
|
|
5082
|
+
this.appendContentProjectionCheckOp(node);
|
|
5083
|
+
}
|
|
5024
5084
|
this.appendDirectivesAndInputsOfNode(node);
|
|
5025
5085
|
this.appendOutputsOfNode(node);
|
|
5026
5086
|
this.appendChildren(node);
|
|
@@ -5344,7 +5404,8 @@ function getBoundAttributes(directive, node) {
|
|
|
5344
5404
|
return {
|
|
5345
5405
|
fieldName: input.classPropertyName,
|
|
5346
5406
|
required: input.required,
|
|
5347
|
-
transformType: ((_a = input.transform) == null ? void 0 : _a.type) || null
|
|
5407
|
+
transformType: ((_a = input.transform) == null ? void 0 : _a.type) || null,
|
|
5408
|
+
isSignal: input.isSignal
|
|
5348
5409
|
};
|
|
5349
5410
|
})
|
|
5350
5411
|
});
|
|
@@ -5474,6 +5535,7 @@ var TypeCheckFile = class extends Environment {
|
|
|
5474
5535
|
this.tcbStatements.push(fn);
|
|
5475
5536
|
}
|
|
5476
5537
|
render(removeComments) {
|
|
5538
|
+
ensureTypeCheckFilePreparationImports(this);
|
|
5477
5539
|
let source = this.importManager.getAllImports(this.contextFile.fileName).map((i) => `import * as ${i.qualifier.text} from '${i.specifier}';`).join("\n") + "\n\n";
|
|
5478
5540
|
const printer = ts29.createPrinter({ removeComments });
|
|
5479
5541
|
source += "\n";
|
|
@@ -5591,7 +5653,7 @@ var TypeCheckContextImpl = class {
|
|
|
5591
5653
|
this.opMap.set(sf, []);
|
|
5592
5654
|
}
|
|
5593
5655
|
const ops = this.opMap.get(sf);
|
|
5594
|
-
ops.push(new TypeCtorOp(ref, ctorMeta));
|
|
5656
|
+
ops.push(new TypeCtorOp(ref, this.reflector, ctorMeta));
|
|
5595
5657
|
fileData.hasInlines = true;
|
|
5596
5658
|
}
|
|
5597
5659
|
transform(sf) {
|
|
@@ -5706,15 +5768,17 @@ var InlineTcbOp = class {
|
|
|
5706
5768
|
}
|
|
5707
5769
|
};
|
|
5708
5770
|
var TypeCtorOp = class {
|
|
5709
|
-
constructor(ref, meta) {
|
|
5771
|
+
constructor(ref, reflector, meta) {
|
|
5710
5772
|
this.ref = ref;
|
|
5773
|
+
this.reflector = reflector;
|
|
5711
5774
|
this.meta = meta;
|
|
5712
5775
|
}
|
|
5713
5776
|
get splitPoint() {
|
|
5714
5777
|
return this.ref.node.end - 1;
|
|
5715
5778
|
}
|
|
5716
5779
|
execute(im, sf, refEmitter, printer) {
|
|
5717
|
-
const
|
|
5780
|
+
const emitEnv = new ReferenceEmitEnvironment(im, refEmitter, this.reflector, sf);
|
|
5781
|
+
const tcb = generateInlineTypeCtor(emitEnv, this.ref.node, this.meta);
|
|
5718
5782
|
return printer.printNode(ts30.EmitHint.Unspecified, tcb, sf);
|
|
5719
5783
|
}
|
|
5720
5784
|
};
|
|
@@ -6809,7 +6873,7 @@ var TemplateTypeCheckerImpl = class {
|
|
|
6809
6873
|
return null;
|
|
6810
6874
|
}
|
|
6811
6875
|
const emitted = emittedRef.expression;
|
|
6812
|
-
if (emitted instanceof
|
|
6876
|
+
if (emitted instanceof WrappedNodeExpr2) {
|
|
6813
6877
|
if (refTo.node === inContext) {
|
|
6814
6878
|
return null;
|
|
6815
6879
|
}
|
|
@@ -7504,6 +7568,10 @@ var ALL_DIAGNOSTIC_FACTORIES = [
|
|
|
7504
7568
|
factory7,
|
|
7505
7569
|
factory
|
|
7506
7570
|
];
|
|
7571
|
+
var SUPPORTED_DIAGNOSTIC_NAMES = /* @__PURE__ */ new Set([
|
|
7572
|
+
ExtendedTemplateDiagnosticName.CONTROL_FLOW_PREVENTING_CONTENT_PROJECTION,
|
|
7573
|
+
...ALL_DIAGNOSTIC_FACTORIES.map((factory9) => factory9.name)
|
|
7574
|
+
]);
|
|
7507
7575
|
|
|
7508
7576
|
// bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/core/src/compiler.mjs
|
|
7509
7577
|
var CompilationTicketKind;
|
|
@@ -7839,6 +7907,7 @@ var NgCompiler = class {
|
|
|
7839
7907
|
return strictTemplates || !!this.options.fullTemplateTypeCheck;
|
|
7840
7908
|
}
|
|
7841
7909
|
getTypeCheckingConfig() {
|
|
7910
|
+
var _a, _b, _c, _d;
|
|
7842
7911
|
const strictTemplates = !!this.options.strictTemplates;
|
|
7843
7912
|
const useInlineTypeConstructors = this.programDriver.supportsInlineOperations;
|
|
7844
7913
|
let typeCheckingConfig;
|
|
@@ -7864,7 +7933,8 @@ var NgCompiler = class {
|
|
|
7864
7933
|
strictLiteralTypes: true,
|
|
7865
7934
|
enableTemplateTypeChecker: this.enableTemplateTypeChecker,
|
|
7866
7935
|
useInlineTypeConstructors,
|
|
7867
|
-
suggestionsForSuboptimalTypeInference: this.enableTemplateTypeChecker && !strictTemplates
|
|
7936
|
+
suggestionsForSuboptimalTypeInference: this.enableTemplateTypeChecker && !strictTemplates,
|
|
7937
|
+
controlFlowPreventingContentProjection: ((_a = this.options.extendedDiagnostics) == null ? void 0 : _a.defaultCategory) || DiagnosticCategoryLabel.Warning
|
|
7868
7938
|
};
|
|
7869
7939
|
} else {
|
|
7870
7940
|
typeCheckingConfig = {
|
|
@@ -7888,7 +7958,8 @@ var NgCompiler = class {
|
|
|
7888
7958
|
strictLiteralTypes: false,
|
|
7889
7959
|
enableTemplateTypeChecker: this.enableTemplateTypeChecker,
|
|
7890
7960
|
useInlineTypeConstructors,
|
|
7891
|
-
suggestionsForSuboptimalTypeInference: false
|
|
7961
|
+
suggestionsForSuboptimalTypeInference: false,
|
|
7962
|
+
controlFlowPreventingContentProjection: ((_b = this.options.extendedDiagnostics) == null ? void 0 : _b.defaultCategory) || DiagnosticCategoryLabel.Warning
|
|
7892
7963
|
};
|
|
7893
7964
|
}
|
|
7894
7965
|
if (this.options.strictInputTypes !== void 0) {
|
|
@@ -7923,6 +7994,9 @@ var NgCompiler = class {
|
|
|
7923
7994
|
if (this.options.strictLiteralTypes !== void 0) {
|
|
7924
7995
|
typeCheckingConfig.strictLiteralTypes = this.options.strictLiteralTypes;
|
|
7925
7996
|
}
|
|
7997
|
+
if (((_d = (_c = this.options.extendedDiagnostics) == null ? void 0 : _c.checks) == null ? void 0 : _d.controlFlowPreventingContentProjection) !== void 0) {
|
|
7998
|
+
typeCheckingConfig.controlFlowPreventingContentProjection = this.options.extendedDiagnostics.checks.controlFlowPreventingContentProjection;
|
|
7999
|
+
}
|
|
7926
8000
|
return typeCheckingConfig;
|
|
7927
8001
|
}
|
|
7928
8002
|
getTemplateDiagnostics() {
|
|
@@ -8181,9 +8255,8 @@ ${allowedCategoryLabels.join("\n")}
|
|
|
8181
8255
|
`.trim()
|
|
8182
8256
|
});
|
|
8183
8257
|
}
|
|
8184
|
-
const allExtendedDiagnosticNames = ALL_DIAGNOSTIC_FACTORIES.map((factory9) => factory9.name);
|
|
8185
8258
|
for (const [checkName, category] of Object.entries((_c = (_b = options.extendedDiagnostics) == null ? void 0 : _b.checks) != null ? _c : {})) {
|
|
8186
|
-
if (!
|
|
8259
|
+
if (!SUPPORTED_DIAGNOSTIC_NAMES.has(checkName)) {
|
|
8187
8260
|
yield makeConfigDiagnostic({
|
|
8188
8261
|
category: ts35.DiagnosticCategory.Error,
|
|
8189
8262
|
code: ErrorCode.CONFIG_EXTENDED_DIAGNOSTICS_UNKNOWN_CHECK,
|
|
@@ -8191,7 +8264,7 @@ ${allowedCategoryLabels.join("\n")}
|
|
|
8191
8264
|
Angular compiler option "extendedDiagnostics.checks" has an unknown check: "${checkName}".
|
|
8192
8265
|
|
|
8193
8266
|
Allowed check names are:
|
|
8194
|
-
${
|
|
8267
|
+
${Array.from(SUPPORTED_DIAGNOSTIC_NAMES).join("\n")}
|
|
8195
8268
|
`.trim()
|
|
8196
8269
|
});
|
|
8197
8270
|
}
|
|
@@ -8866,4 +8939,4 @@ export {
|
|
|
8866
8939
|
* Use of this source code is governed by an MIT-style license that can be
|
|
8867
8940
|
* found in the LICENSE file at https://angular.io/license
|
|
8868
8941
|
*/
|
|
8869
|
-
//# sourceMappingURL=chunk-
|
|
8942
|
+
//# sourceMappingURL=chunk-HQUXRCDO.js.map
|