@angular/compiler-cli 21.0.0-next.7 → 21.0.0-next.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/{chunk-O7L4BBZY.js → chunk-3UF7UI6H.js} +233 -38
- package/bundles/chunk-DT6FD4OE.js +1 -1
- package/bundles/{chunk-WX6HCNBV.js → chunk-HRLHX4UA.js} +1 -1
- package/bundles/{chunk-CXWG7H5K.js → chunk-IE2YQNTQ.js} +1 -1
- package/bundles/{chunk-3I7LEC2O.js → chunk-SIOKS4LN.js} +367 -242
- package/bundles/index.js +4 -4
- package/bundles/private/migrations.js +1 -1
- package/bundles/private/tooling.js +2 -2
- package/bundles/src/bin/ng_xi18n.js +4 -4
- package/bundles/src/bin/ngc.js +4 -4
- package/linker/src/file_linker/partial_linkers/util.d.ts +1 -1
- package/package.json +2 -2
- package/src/ngtsc/annotations/common/src/metadata.d.ts +5 -3
- package/src/ngtsc/annotations/component/src/handler.d.ts +1 -0
- package/src/ngtsc/annotations/directive/src/handler.d.ts +1 -0
- package/src/ngtsc/annotations/directive/src/shared.d.ts +6 -1
- package/src/ngtsc/diagnostics/src/error_code.d.ts +11 -0
- package/src/ngtsc/diagnostics/src/extended_template_diagnostic_name.d.ts +2 -1
- package/src/ngtsc/docs/src/class_extractor.d.ts +4 -5
- package/src/ngtsc/docs/src/entities.d.ts +7 -2
- package/src/ngtsc/docs/src/interface_extractor.d.ts +11 -0
- package/src/ngtsc/docs/src/properties_extractor.d.ts +96 -0
- package/src/ngtsc/typecheck/api/checker.d.ts +4 -0
- package/src/ngtsc/typecheck/extended/api/api.d.ts +0 -10
- package/src/ngtsc/typecheck/extended/checks/defer_trigger_misconfiguration/index.d.ts +10 -0
- package/src/ngtsc/typecheck/src/checker.d.ts +1 -0
|
@@ -61,6 +61,7 @@ var ErrorCode;
|
|
|
61
61
|
ErrorCode2[ErrorCode2["MISSING_NAMED_TEMPLATE_DEPENDENCY"] = 2024] = "MISSING_NAMED_TEMPLATE_DEPENDENCY";
|
|
62
62
|
ErrorCode2[ErrorCode2["INCORRECT_NAMED_TEMPLATE_DEPENDENCY_TYPE"] = 2025] = "INCORRECT_NAMED_TEMPLATE_DEPENDENCY_TYPE";
|
|
63
63
|
ErrorCode2[ErrorCode2["UNSUPPORTED_SELECTORLESS_COMPONENT_FIELD"] = 2026] = "UNSUPPORTED_SELECTORLESS_COMPONENT_FIELD";
|
|
64
|
+
ErrorCode2[ErrorCode2["COMPONENT_ANIMATIONS_CONFLICT"] = 2027] = "COMPONENT_ANIMATIONS_CONFLICT";
|
|
64
65
|
ErrorCode2[ErrorCode2["SYMBOL_NOT_EXPORTED"] = 3001] = "SYMBOL_NOT_EXPORTED";
|
|
65
66
|
ErrorCode2[ErrorCode2["IMPORT_CYCLE_DETECTED"] = 3003] = "IMPORT_CYCLE_DETECTED";
|
|
66
67
|
ErrorCode2[ErrorCode2["IMPORT_GENERATION_FAILURE"] = 3004] = "IMPORT_GENERATION_FAILURE";
|
|
@@ -102,6 +103,7 @@ var ErrorCode;
|
|
|
102
103
|
ErrorCode2[ErrorCode2["UNCLAIMED_DIRECTIVE_BINDING"] = 8018] = "UNCLAIMED_DIRECTIVE_BINDING";
|
|
103
104
|
ErrorCode2[ErrorCode2["DEFER_IMPLICIT_TRIGGER_MISSING_PLACEHOLDER"] = 8019] = "DEFER_IMPLICIT_TRIGGER_MISSING_PLACEHOLDER";
|
|
104
105
|
ErrorCode2[ErrorCode2["DEFER_IMPLICIT_TRIGGER_INVALID_PLACEHOLDER"] = 8020] = "DEFER_IMPLICIT_TRIGGER_INVALID_PLACEHOLDER";
|
|
106
|
+
ErrorCode2[ErrorCode2["DEFER_TRIGGER_MISCONFIGURATION"] = 8021] = "DEFER_TRIGGER_MISCONFIGURATION";
|
|
105
107
|
ErrorCode2[ErrorCode2["INVALID_BANANA_IN_BOX"] = 8101] = "INVALID_BANANA_IN_BOX";
|
|
106
108
|
ErrorCode2[ErrorCode2["NULLISH_COALESCING_NOT_NULLABLE"] = 8102] = "NULLISH_COALESCING_NOT_NULLABLE";
|
|
107
109
|
ErrorCode2[ErrorCode2["MISSING_CONTROL_FLOW_DIRECTIVE"] = 8103] = "MISSING_CONTROL_FLOW_DIRECTIVE";
|
|
@@ -249,6 +251,7 @@ var ExtendedTemplateDiagnosticName;
|
|
|
249
251
|
ExtendedTemplateDiagnosticName2["UNUSED_STANDALONE_IMPORTS"] = "unusedStandaloneImports";
|
|
250
252
|
ExtendedTemplateDiagnosticName2["UNPARENTHESIZED_NULLISH_COALESCING"] = "unparenthesizedNullishCoalescing";
|
|
251
253
|
ExtendedTemplateDiagnosticName2["UNINVOKED_FUNCTION_IN_TEXT_INTERPOLATION"] = "uninvokedFunctionInTextInterpolation";
|
|
254
|
+
ExtendedTemplateDiagnosticName2["DEFER_TRIGGER_MISCONFIGURATION"] = "deferTriggerMisconfiguration";
|
|
252
255
|
})(ExtendedTemplateDiagnosticName || (ExtendedTemplateDiagnosticName = {}));
|
|
253
256
|
|
|
254
257
|
// packages/compiler-cli/src/ngtsc/reflection/src/typescript.js
|
|
@@ -3145,8 +3148,8 @@ var StaticInterpreter = class {
|
|
|
3145
3148
|
if (ts13.isIdentifier(node) || ts13.isStringLiteral(node) || ts13.isNumericLiteral(node)) {
|
|
3146
3149
|
return node.text;
|
|
3147
3150
|
} else if (ts13.isComputedPropertyName(node)) {
|
|
3148
|
-
const
|
|
3149
|
-
return typeof
|
|
3151
|
+
const literal4 = this.visitExpression(node.expression, context);
|
|
3152
|
+
return typeof literal4 === "string" ? literal4 : void 0;
|
|
3150
3153
|
} else {
|
|
3151
3154
|
return void 0;
|
|
3152
3155
|
}
|
|
@@ -7365,7 +7368,7 @@ var InjectableClassRegistry = class {
|
|
|
7365
7368
|
// packages/compiler-cli/src/ngtsc/annotations/common/src/metadata.js
|
|
7366
7369
|
import { ArrowFunctionExpr, LiteralArrayExpr, LiteralExpr as LiteralExpr2, literalMap, WrappedNodeExpr as WrappedNodeExpr4 } from "@angular/compiler";
|
|
7367
7370
|
import ts35 from "typescript";
|
|
7368
|
-
function extractClassMetadata(clazz, reflection, isCore, annotateForClosureCompiler, angularDecoratorTransform = (dec) => dec) {
|
|
7371
|
+
function extractClassMetadata(clazz, reflection, isCore, annotateForClosureCompiler, angularDecoratorTransform = (dec) => dec, undecoratedMetadataExtractor = () => null) {
|
|
7369
7372
|
if (!reflection.isClass(clazz)) {
|
|
7370
7373
|
return null;
|
|
7371
7374
|
}
|
|
@@ -7386,15 +7389,41 @@ function extractClassMetadata(clazz, reflection, isCore, annotateForClosureCompi
|
|
|
7386
7389
|
metaCtorParameters = new ArrowFunctionExpr([], new LiteralArrayExpr(ctorParameters));
|
|
7387
7390
|
}
|
|
7388
7391
|
let metaPropDecorators = null;
|
|
7389
|
-
const classMembers = reflection.getMembersOfClass(clazz).filter((member) => !member.isStatic &&
|
|
7392
|
+
const classMembers = reflection.getMembersOfClass(clazz).filter((member) => !member.isStatic && // Private fields are not supported in the metadata emit
|
|
7390
7393
|
member.accessLevel !== ClassMemberAccessLevel.EcmaScriptPrivate);
|
|
7391
|
-
const
|
|
7392
|
-
|
|
7394
|
+
const decoratedMembers = [];
|
|
7395
|
+
const seenMemberNames = /* @__PURE__ */ new Set();
|
|
7396
|
+
let duplicateDecoratedMembers = null;
|
|
7397
|
+
for (const member of classMembers) {
|
|
7398
|
+
const shouldQuoteName = member.nameNode !== null && ts35.isStringLiteralLike(member.nameNode);
|
|
7399
|
+
if (member.decorators !== null && member.decorators.length > 0) {
|
|
7400
|
+
decoratedMembers.push({
|
|
7401
|
+
key: member.name,
|
|
7402
|
+
quoted: shouldQuoteName,
|
|
7403
|
+
value: decoratedClassMemberToMetadata(member.decorators, isCore)
|
|
7404
|
+
});
|
|
7405
|
+
if (seenMemberNames.has(member.name)) {
|
|
7406
|
+
duplicateDecoratedMembers ??= [];
|
|
7407
|
+
duplicateDecoratedMembers.push(member);
|
|
7408
|
+
} else {
|
|
7409
|
+
seenMemberNames.add(member.name);
|
|
7410
|
+
}
|
|
7411
|
+
} else {
|
|
7412
|
+
const undecoratedMetadata = undecoratedMetadataExtractor(member);
|
|
7413
|
+
if (undecoratedMetadata !== null) {
|
|
7414
|
+
decoratedMembers.push({
|
|
7415
|
+
key: member.name,
|
|
7416
|
+
quoted: shouldQuoteName,
|
|
7417
|
+
value: undecoratedMetadata
|
|
7418
|
+
});
|
|
7419
|
+
}
|
|
7420
|
+
}
|
|
7421
|
+
}
|
|
7422
|
+
if (duplicateDecoratedMembers !== null) {
|
|
7393
7423
|
throw new FatalDiagnosticError(ErrorCode.DUPLICATE_DECORATED_PROPERTIES, duplicateDecoratedMembers[0].nameNode ?? clazz, `Duplicate decorated properties found on class '${clazz.name.text}': ` + duplicateDecoratedMembers.map((member) => member.name).join(", "));
|
|
7394
7424
|
}
|
|
7395
|
-
const decoratedMembers = classMembers.map((member) => classMemberToMetadata(member.nameNode ?? member.name, member.decorators, isCore));
|
|
7396
7425
|
if (decoratedMembers.length > 0) {
|
|
7397
|
-
metaPropDecorators =
|
|
7426
|
+
metaPropDecorators = literalMap(decoratedMembers);
|
|
7398
7427
|
}
|
|
7399
7428
|
return {
|
|
7400
7429
|
type: new WrappedNodeExpr4(id),
|
|
@@ -7415,10 +7444,9 @@ function ctorParameterToMetadata(param, isCore) {
|
|
|
7415
7444
|
}
|
|
7416
7445
|
return literalMap(mapEntries);
|
|
7417
7446
|
}
|
|
7418
|
-
function
|
|
7419
|
-
const ngDecorators = decorators.filter((dec) => isAngularDecorator2(dec, isCore)).map((decorator) => decoratorToMetadata(decorator));
|
|
7420
|
-
|
|
7421
|
-
return ts35.factory.createPropertyAssignment(name, decoratorMeta);
|
|
7447
|
+
function decoratedClassMemberToMetadata(decorators, isCore) {
|
|
7448
|
+
const ngDecorators = decorators.filter((dec) => isAngularDecorator2(dec, isCore)).map((decorator) => new WrappedNodeExpr4(decoratorToMetadata(decorator)));
|
|
7449
|
+
return new LiteralArrayExpr(ngDecorators);
|
|
7422
7450
|
}
|
|
7423
7451
|
function decoratorToMetadata(decorator, wrapFunctionsInParens) {
|
|
7424
7452
|
if (decorator.identifier === null) {
|
|
@@ -8647,7 +8675,7 @@ import { compileClassMetadata, compileDeclareClassMetadata, compileDeclareDirect
|
|
|
8647
8675
|
import ts65 from "typescript";
|
|
8648
8676
|
|
|
8649
8677
|
// packages/compiler-cli/src/ngtsc/annotations/directive/src/shared.js
|
|
8650
|
-
import { createMayBeForwardRefExpression as createMayBeForwardRefExpression2, emitDistinctChangesOnlyDefaultValue, ExternalExpr as ExternalExpr6, ExternalReference as ExternalReference2, getSafePropertyAccessString, parseHostBindings, verifyHostBindings, WrappedNodeExpr as WrappedNodeExpr6 } from "@angular/compiler";
|
|
8678
|
+
import { createMayBeForwardRefExpression as createMayBeForwardRefExpression2, emitDistinctChangesOnlyDefaultValue, ExternalExpr as ExternalExpr6, ExternalReference as ExternalReference2, getSafePropertyAccessString, LiteralArrayExpr as LiteralArrayExpr2, literalMap as literalMap2, parseHostBindings, verifyHostBindings, R3Identifiers, ArrowFunctionExpr as ArrowFunctionExpr2, WrappedNodeExpr as WrappedNodeExpr6, literal as literal3 } from "@angular/compiler";
|
|
8651
8679
|
import ts43 from "typescript";
|
|
8652
8680
|
|
|
8653
8681
|
// packages/compiler-cli/src/ngtsc/annotations/directive/src/initializer_function_access.js
|
|
@@ -9322,6 +9350,108 @@ function parseFieldStringArrayValue(directive, field, evaluator) {
|
|
|
9322
9350
|
}
|
|
9323
9351
|
return value;
|
|
9324
9352
|
}
|
|
9353
|
+
function getDirectiveUndecoratedMetadataExtractor(reflector, importTracker) {
|
|
9354
|
+
return (member) => {
|
|
9355
|
+
const input = tryParseSignalInputMapping(member, reflector, importTracker);
|
|
9356
|
+
if (input !== null) {
|
|
9357
|
+
return getDecoratorMetaArray([
|
|
9358
|
+
[new ExternalExpr6(R3Identifiers.inputDecorator), memberMetadataFromSignalInput(input)]
|
|
9359
|
+
]);
|
|
9360
|
+
}
|
|
9361
|
+
const output = tryParseInitializerBasedOutput(member, reflector, importTracker);
|
|
9362
|
+
if (output !== null) {
|
|
9363
|
+
return getDecoratorMetaArray([
|
|
9364
|
+
[
|
|
9365
|
+
new ExternalExpr6(R3Identifiers.outputDecorator),
|
|
9366
|
+
memberMetadataFromInitializerOutput(output.metadata)
|
|
9367
|
+
]
|
|
9368
|
+
]);
|
|
9369
|
+
}
|
|
9370
|
+
const model = tryParseSignalModelMapping(member, reflector, importTracker);
|
|
9371
|
+
if (model !== null) {
|
|
9372
|
+
return getDecoratorMetaArray([
|
|
9373
|
+
[
|
|
9374
|
+
new ExternalExpr6(R3Identifiers.inputDecorator),
|
|
9375
|
+
memberMetadataFromSignalInput(model.input)
|
|
9376
|
+
],
|
|
9377
|
+
[
|
|
9378
|
+
new ExternalExpr6(R3Identifiers.outputDecorator),
|
|
9379
|
+
memberMetadataFromInitializerOutput(model.output)
|
|
9380
|
+
]
|
|
9381
|
+
]);
|
|
9382
|
+
}
|
|
9383
|
+
const query = tryParseSignalQueryFromInitializer(member, reflector, importTracker);
|
|
9384
|
+
if (query !== null) {
|
|
9385
|
+
let identifier;
|
|
9386
|
+
if (query.name === "viewChild") {
|
|
9387
|
+
identifier = R3Identifiers.viewChildDecorator;
|
|
9388
|
+
} else if (query.name === "viewChildren") {
|
|
9389
|
+
identifier = R3Identifiers.viewChildrenDecorator;
|
|
9390
|
+
} else if (query.name === "contentChild") {
|
|
9391
|
+
identifier = R3Identifiers.contentChildDecorator;
|
|
9392
|
+
} else if (query.name === "contentChildren") {
|
|
9393
|
+
identifier = R3Identifiers.contentChildrenDecorator;
|
|
9394
|
+
} else {
|
|
9395
|
+
return null;
|
|
9396
|
+
}
|
|
9397
|
+
return getDecoratorMetaArray([
|
|
9398
|
+
[new ExternalExpr6(identifier), memberMetadataFromSignalQuery(query.call)]
|
|
9399
|
+
]);
|
|
9400
|
+
}
|
|
9401
|
+
return null;
|
|
9402
|
+
};
|
|
9403
|
+
}
|
|
9404
|
+
function getDecoratorMetaArray(decorators) {
|
|
9405
|
+
return new LiteralArrayExpr2(decorators.map(([type, args]) => literalMap2([
|
|
9406
|
+
{ key: "type", value: type, quoted: false },
|
|
9407
|
+
{ key: "args", value: args, quoted: false }
|
|
9408
|
+
])));
|
|
9409
|
+
}
|
|
9410
|
+
function memberMetadataFromSignalInput(input) {
|
|
9411
|
+
return new LiteralArrayExpr2([
|
|
9412
|
+
literalMap2([
|
|
9413
|
+
{
|
|
9414
|
+
key: "isSignal",
|
|
9415
|
+
value: literal3(true),
|
|
9416
|
+
quoted: false
|
|
9417
|
+
},
|
|
9418
|
+
{
|
|
9419
|
+
key: "alias",
|
|
9420
|
+
value: literal3(input.bindingPropertyName),
|
|
9421
|
+
quoted: false
|
|
9422
|
+
},
|
|
9423
|
+
{
|
|
9424
|
+
key: "required",
|
|
9425
|
+
value: literal3(input.required),
|
|
9426
|
+
quoted: false
|
|
9427
|
+
}
|
|
9428
|
+
])
|
|
9429
|
+
]);
|
|
9430
|
+
}
|
|
9431
|
+
function memberMetadataFromInitializerOutput(output) {
|
|
9432
|
+
return new LiteralArrayExpr2([literal3(output.bindingPropertyName)]);
|
|
9433
|
+
}
|
|
9434
|
+
function memberMetadataFromSignalQuery(call) {
|
|
9435
|
+
const firstArg = call.arguments[0];
|
|
9436
|
+
const firstArgMeta = ts43.isStringLiteralLike(firstArg) || ts43.isCallExpression(firstArg) ? new WrappedNodeExpr6(firstArg) : (
|
|
9437
|
+
// If the first argument is a class reference, we need to wrap it in a `forwardRef`
|
|
9438
|
+
// because the reference might occur after the current class. This wouldn't be flagged
|
|
9439
|
+
// on the query initializer, because it executes after the class is initialized, whereas
|
|
9440
|
+
// `setClassMetadata` runs immediately.
|
|
9441
|
+
new ExternalExpr6(R3Identifiers.forwardRef).callFn([
|
|
9442
|
+
new ArrowFunctionExpr2([], new WrappedNodeExpr6(firstArg))
|
|
9443
|
+
])
|
|
9444
|
+
);
|
|
9445
|
+
const entries = [
|
|
9446
|
+
// We use wrapped nodes here, because the output AST doesn't support spread assignments.
|
|
9447
|
+
firstArgMeta,
|
|
9448
|
+
new WrappedNodeExpr6(ts43.factory.createObjectLiteralExpression([
|
|
9449
|
+
...call.arguments.length > 1 ? [ts43.factory.createSpreadAssignment(call.arguments[1])] : [],
|
|
9450
|
+
ts43.factory.createPropertyAssignment("isSignal", ts43.factory.createTrue())
|
|
9451
|
+
]))
|
|
9452
|
+
];
|
|
9453
|
+
return new LiteralArrayExpr2(entries);
|
|
9454
|
+
}
|
|
9325
9455
|
function isStringArrayOrDie(value, name, node) {
|
|
9326
9456
|
if (!Array.isArray(value)) {
|
|
9327
9457
|
return false;
|
|
@@ -12178,11 +12308,11 @@ var ReferenceEmitEnvironment = class {
|
|
|
12178
12308
|
};
|
|
12179
12309
|
|
|
12180
12310
|
// packages/compiler-cli/src/ngtsc/typecheck/src/type_constructor.js
|
|
12181
|
-
import { ExpressionType as ExpressionType2, R3Identifiers as
|
|
12311
|
+
import { ExpressionType as ExpressionType2, R3Identifiers as R3Identifiers3, WrappedNodeExpr as WrappedNodeExpr7 } from "@angular/compiler";
|
|
12182
12312
|
import ts54 from "typescript";
|
|
12183
12313
|
|
|
12184
12314
|
// packages/compiler-cli/src/ngtsc/typecheck/src/tcb_util.js
|
|
12185
|
-
import { R3Identifiers } from "@angular/compiler";
|
|
12315
|
+
import { R3Identifiers as R3Identifiers2 } from "@angular/compiler";
|
|
12186
12316
|
import ts53 from "typescript";
|
|
12187
12317
|
|
|
12188
12318
|
// packages/compiler-cli/src/ngtsc/typecheck/src/type_parameter_emitter.js
|
|
@@ -12277,12 +12407,12 @@ var TypeParameterEmitter = class {
|
|
|
12277
12407
|
import { BindingType, CssSelector as CssSelector2, makeBindingParser, TmplAstBoundAttribute, TmplAstBoundEvent, TmplAstHostElement, AbsoluteSourceSpan as AbsoluteSourceSpan2, ParseSpan, PropertyRead as PropertyRead2, ParsedEventType, Call, ThisReceiver, KeyedRead, LiteralPrimitive, RecursiveAstVisitor, ASTWithName, SafeCall, ImplicitReceiver as ImplicitReceiver2 } from "@angular/compiler";
|
|
12278
12408
|
import ts52 from "typescript";
|
|
12279
12409
|
var GUARD_COMMENT_TEXT = "hostBindingsBlockGuard";
|
|
12280
|
-
function createHostElement(type, selector, sourceNode,
|
|
12410
|
+
function createHostElement(type, selector, sourceNode, literal4, bindingDecorators, listenerDecorators) {
|
|
12281
12411
|
const bindings = [];
|
|
12282
12412
|
const listeners = [];
|
|
12283
12413
|
let parser = null;
|
|
12284
|
-
if (
|
|
12285
|
-
for (const prop of
|
|
12414
|
+
if (literal4 !== null) {
|
|
12415
|
+
for (const prop of literal4.properties) {
|
|
12286
12416
|
if (ts52.isPropertyAssignment(prop) && ts52.isStringLiteralLike(prop.initializer) && isStaticName(prop.name)) {
|
|
12287
12417
|
parser ??= makeBindingParser();
|
|
12288
12418
|
createNodeFromHostLiteralProperty(prop, parser, bindings, listeners);
|
|
@@ -12508,7 +12638,7 @@ var TCB_FILE_IMPORT_GRAPH_PREPARE_IDENTIFIERS = [
|
|
|
12508
12638
|
// Imports may be added for signal input checking. We wouldn't want to change the
|
|
12509
12639
|
// import graph for incremental compilations when suddenly a signal input is used,
|
|
12510
12640
|
// or removed.
|
|
12511
|
-
|
|
12641
|
+
R3Identifiers2.InputSignalBrandWriteType
|
|
12512
12642
|
];
|
|
12513
12643
|
var TcbInliningRequirement;
|
|
12514
12644
|
(function(TcbInliningRequirement2) {
|
|
@@ -12742,7 +12872,7 @@ function constructTypeCtorParameter(env, meta, rawType) {
|
|
|
12742
12872
|
}
|
|
12743
12873
|
if (signalInputKeys.length > 0) {
|
|
12744
12874
|
const keyTypeUnion = ts54.factory.createUnionTypeNode(signalInputKeys);
|
|
12745
|
-
const unwrapDirectiveSignalInputsExpr = env.referenceExternalType(
|
|
12875
|
+
const unwrapDirectiveSignalInputsExpr = env.referenceExternalType(R3Identifiers3.UnwrapDirectiveSignalInputs.moduleName, R3Identifiers3.UnwrapDirectiveSignalInputs.name, [
|
|
12746
12876
|
// TODO:
|
|
12747
12877
|
new ExpressionType2(new WrappedNodeExpr7(rawType)),
|
|
12748
12878
|
new ExpressionType2(new WrappedNodeExpr7(keyTypeUnion))
|
|
@@ -13118,10 +13248,10 @@ Deferred blocks can only access triggers in same view, a parent embedded view or
|
|
|
13118
13248
|
this._diagnostics.push(makeTemplateDiagnostic(id, this.resolver.getTemplateSourceMapping(id), node.keySpan || node.sourceSpan, ts56.DiagnosticCategory.Error, ngErrorCode(ErrorCode.UNCLAIMED_DIRECTIVE_BINDING), errorMsg));
|
|
13119
13249
|
}
|
|
13120
13250
|
deferImplicitTriggerMissingPlaceholder(id, trigger) {
|
|
13121
|
-
this._diagnostics.push(makeTemplateDiagnostic(id, this.resolver.getTemplateSourceMapping(id), trigger.sourceSpan, ts56.DiagnosticCategory.Error, ngErrorCode(ErrorCode.DEFER_IMPLICIT_TRIGGER_MISSING_PLACEHOLDER), "Trigger with no
|
|
13251
|
+
this._diagnostics.push(makeTemplateDiagnostic(id, this.resolver.getTemplateSourceMapping(id), trigger.sourceSpan, ts56.DiagnosticCategory.Error, ngErrorCode(ErrorCode.DEFER_IMPLICIT_TRIGGER_MISSING_PLACEHOLDER), "Trigger with no target can only be placed on an @defer that has a @placeholder block"));
|
|
13122
13252
|
}
|
|
13123
13253
|
deferImplicitTriggerInvalidPlaceholder(id, trigger) {
|
|
13124
|
-
this._diagnostics.push(makeTemplateDiagnostic(id, this.resolver.getTemplateSourceMapping(id), trigger.sourceSpan, ts56.DiagnosticCategory.Error, ngErrorCode(ErrorCode.DEFER_IMPLICIT_TRIGGER_INVALID_PLACEHOLDER), "Trigger with no
|
|
13254
|
+
this._diagnostics.push(makeTemplateDiagnostic(id, this.resolver.getTemplateSourceMapping(id), trigger.sourceSpan, ts56.DiagnosticCategory.Error, ngErrorCode(ErrorCode.DEFER_IMPLICIT_TRIGGER_INVALID_PLACEHOLDER), "Trigger with no target can only be placed on an @defer that has a @placeholder block with exactly one root element node"));
|
|
13125
13255
|
}
|
|
13126
13256
|
};
|
|
13127
13257
|
function makeInlineDiagnostic(id, code, node, messageText, relatedInformation) {
|
|
@@ -13149,7 +13279,7 @@ var TypeCheckShimGenerator = class {
|
|
|
13149
13279
|
};
|
|
13150
13280
|
|
|
13151
13281
|
// packages/compiler-cli/src/ngtsc/typecheck/src/type_check_block.js
|
|
13152
|
-
import { BindingPipe, BindingType as BindingType2, Call as Call3, createCssSelectorFromNode, CssSelector as CssSelector3, DYNAMIC_TYPE, ImplicitReceiver as ImplicitReceiver3, ParsedEventType as ParsedEventType2, PropertyRead as PropertyRead4, R3Identifiers as
|
|
13282
|
+
import { BindingPipe, BindingType as BindingType2, Call as Call3, createCssSelectorFromNode, CssSelector as CssSelector3, DYNAMIC_TYPE, ImplicitReceiver as ImplicitReceiver3, ParsedEventType as ParsedEventType2, PropertyRead as PropertyRead4, R3Identifiers as R3Identifiers4, SafeCall as SafeCall2, SafePropertyRead as SafePropertyRead3, SelectorMatcher as SelectorMatcher2, ThisReceiver as ThisReceiver2, TmplAstBoundAttribute as TmplAstBoundAttribute2, TmplAstBoundText, TmplAstContent, TmplAstDeferredBlock, TmplAstElement as TmplAstElement2, TmplAstForLoopBlock, TmplAstIcu, TmplAstIfBlock, TmplAstIfBlockBranch, TmplAstLetDeclaration as TmplAstLetDeclaration2, TmplAstReference as TmplAstReference2, TmplAstSwitchBlock, TmplAstTemplate, TmplAstText, TmplAstTextAttribute as TmplAstTextAttribute2, TmplAstVariable, TmplAstHostElement as TmplAstHostElement2, TransplantedType, TmplAstComponent as TmplAstComponent2, TmplAstDirective as TmplAstDirective2, Binary } from "@angular/compiler";
|
|
13153
13283
|
import ts60 from "typescript";
|
|
13154
13284
|
|
|
13155
13285
|
// packages/compiler-cli/src/ngtsc/typecheck/src/diagnostics.js
|
|
@@ -13339,8 +13469,8 @@ var AstTranslator = class {
|
|
|
13339
13469
|
}
|
|
13340
13470
|
visitLiteralArray(ast) {
|
|
13341
13471
|
const elements = ast.expressions.map((expr) => this.translate(expr));
|
|
13342
|
-
const
|
|
13343
|
-
const node = this.config.strictLiteralTypes ?
|
|
13472
|
+
const literal4 = ts59.factory.createArrayLiteralExpression(elements);
|
|
13473
|
+
const node = this.config.strictLiteralTypes ? literal4 : tsCastToAny(literal4);
|
|
13344
13474
|
addParseSpanInfo(node, ast.sourceSpan);
|
|
13345
13475
|
return node;
|
|
13346
13476
|
}
|
|
@@ -13349,8 +13479,8 @@ var AstTranslator = class {
|
|
|
13349
13479
|
const value = this.translate(ast.values[idx]);
|
|
13350
13480
|
return ts59.factory.createPropertyAssignment(ts59.factory.createStringLiteral(key), value);
|
|
13351
13481
|
});
|
|
13352
|
-
const
|
|
13353
|
-
const node = this.config.strictLiteralTypes ?
|
|
13482
|
+
const literal4 = ts59.factory.createObjectLiteralExpression(properties, true);
|
|
13483
|
+
const node = this.config.strictLiteralTypes ? literal4 : tsCastToAny(literal4);
|
|
13354
13484
|
addParseSpanInfo(node, ast.sourceSpan);
|
|
13355
13485
|
return node;
|
|
13356
13486
|
}
|
|
@@ -14124,9 +14254,9 @@ var TcbDirectiveInputsOp = class extends TcbOp {
|
|
|
14124
14254
|
target = this.dir.stringLiteralInputFields.has(fieldName) ? ts60.factory.createElementAccessExpression(dirId, ts60.factory.createStringLiteral(fieldName)) : ts60.factory.createPropertyAccessExpression(dirId, ts60.factory.createIdentifier(fieldName));
|
|
14125
14255
|
}
|
|
14126
14256
|
if (isSignal) {
|
|
14127
|
-
const inputSignalBrandWriteSymbol = this.tcb.env.referenceExternalSymbol(
|
|
14257
|
+
const inputSignalBrandWriteSymbol = this.tcb.env.referenceExternalSymbol(R3Identifiers4.InputSignalBrandWriteType.moduleName, R3Identifiers4.InputSignalBrandWriteType.name);
|
|
14128
14258
|
if (!ts60.isIdentifier(inputSignalBrandWriteSymbol) && !ts60.isPropertyAccessExpression(inputSignalBrandWriteSymbol)) {
|
|
14129
|
-
throw new Error(`Expected identifier or property access for reference to ${
|
|
14259
|
+
throw new Error(`Expected identifier or property access for reference to ${R3Identifiers4.InputSignalBrandWriteType.name}`);
|
|
14130
14260
|
}
|
|
14131
14261
|
target = ts60.factory.createElementAccessExpression(target, inputSignalBrandWriteSymbol);
|
|
14132
14262
|
}
|
|
@@ -14745,6 +14875,25 @@ var TcbForOfOp = class extends TcbOp {
|
|
|
14745
14875
|
return null;
|
|
14746
14876
|
}
|
|
14747
14877
|
};
|
|
14878
|
+
var TcbIntersectionObserverOp = class extends TcbOp {
|
|
14879
|
+
tcb;
|
|
14880
|
+
scope;
|
|
14881
|
+
options;
|
|
14882
|
+
constructor(tcb, scope, options) {
|
|
14883
|
+
super();
|
|
14884
|
+
this.tcb = tcb;
|
|
14885
|
+
this.scope = scope;
|
|
14886
|
+
this.options = options;
|
|
14887
|
+
}
|
|
14888
|
+
optional = false;
|
|
14889
|
+
execute() {
|
|
14890
|
+
const options = tcbExpression(this.options, this.tcb, this.scope);
|
|
14891
|
+
const callback = ts60.factory.createNonNullExpression(ts60.factory.createNull());
|
|
14892
|
+
const expression = ts60.factory.createNewExpression(ts60.factory.createIdentifier("IntersectionObserver"), void 0, [callback, options]);
|
|
14893
|
+
this.scope.addStatement(ts60.factory.createExpressionStatement(expression));
|
|
14894
|
+
return null;
|
|
14895
|
+
}
|
|
14896
|
+
};
|
|
14748
14897
|
var Context2 = class {
|
|
14749
14898
|
env;
|
|
14750
14899
|
domSchemaChecker;
|
|
@@ -15370,6 +15519,9 @@ var Scope = class _Scope {
|
|
|
15370
15519
|
if (triggers.when !== void 0) {
|
|
15371
15520
|
this.opQueue.push(new TcbExpressionOp(this.tcb, this, triggers.when.value));
|
|
15372
15521
|
}
|
|
15522
|
+
if (triggers.viewport !== void 0 && triggers.viewport.options !== null) {
|
|
15523
|
+
this.opQueue.push(new TcbIntersectionObserverOp(this.tcb, this, triggers.viewport.options));
|
|
15524
|
+
}
|
|
15373
15525
|
if (triggers.hover !== void 0) {
|
|
15374
15526
|
this.validateReferenceBasedDeferredTrigger(block, triggers.hover);
|
|
15375
15527
|
}
|
|
@@ -15637,7 +15789,7 @@ function widenBinding(expr, tcb) {
|
|
|
15637
15789
|
}
|
|
15638
15790
|
}
|
|
15639
15791
|
function unwrapWritableSignal(expression, tcb) {
|
|
15640
|
-
const unwrapRef = tcb.env.referenceExternalSymbol(
|
|
15792
|
+
const unwrapRef = tcb.env.referenceExternalSymbol(R3Identifiers4.unwrapWritableSignal.moduleName, R3Identifiers4.unwrapWritableSignal.name);
|
|
15641
15793
|
return ts60.factory.createCallExpression(unwrapRef, void 0, [expression]);
|
|
15642
15794
|
}
|
|
15643
15795
|
var EVENT_PARAMETER = "$event";
|
|
@@ -16254,7 +16406,7 @@ var DirectiveSourceManager = class {
|
|
|
16254
16406
|
};
|
|
16255
16407
|
|
|
16256
16408
|
// packages/compiler-cli/src/ngtsc/typecheck/src/template_symbol_builder.js
|
|
16257
|
-
import { AST, ASTWithName as ASTWithName2, ASTWithSource as ASTWithSource2, Binary as Binary2, BindingPipe as BindingPipe2, PropertyRead as PropertyRead5, R3Identifiers as
|
|
16409
|
+
import { AST, ASTWithName as ASTWithName2, ASTWithSource as ASTWithSource2, Binary as Binary2, BindingPipe as BindingPipe2, PropertyRead as PropertyRead5, R3Identifiers as R3Identifiers5, SafePropertyRead as SafePropertyRead4, TmplAstBoundAttribute as TmplAstBoundAttribute3, TmplAstBoundEvent as TmplAstBoundEvent3, TmplAstComponent as TmplAstComponent3, TmplAstDirective as TmplAstDirective3, TmplAstElement as TmplAstElement3, TmplAstLetDeclaration as TmplAstLetDeclaration3, TmplAstReference as TmplAstReference3, TmplAstTemplate as TmplAstTemplate2, TmplAstTextAttribute as TmplAstTextAttribute3, TmplAstVariable as TmplAstVariable2 } from "@angular/compiler";
|
|
16258
16410
|
import ts63 from "typescript";
|
|
16259
16411
|
var SymbolBuilder = class {
|
|
16260
16412
|
tcbPath;
|
|
@@ -16884,7 +17036,7 @@ function unwrapSignalInputWriteTAccessor(expr) {
|
|
|
16884
17036
|
if (!ts63.isElementAccessExpression(expr) || !ts63.isPropertyAccessExpression(expr.argumentExpression)) {
|
|
16885
17037
|
return null;
|
|
16886
17038
|
}
|
|
16887
|
-
if (!ts63.isIdentifier(expr.argumentExpression.name) || expr.argumentExpression.name.text !==
|
|
17039
|
+
if (!ts63.isIdentifier(expr.argumentExpression.name) || expr.argumentExpression.name.text !== R3Identifiers5.InputSignalBrandWriteType.name) {
|
|
16888
17040
|
return null;
|
|
16889
17041
|
}
|
|
16890
17042
|
if (!ts63.isPropertyAccessExpression(expr.expression) && !ts63.isElementAccessExpression(expr.expression) && !ts63.isIdentifier(expr.expression)) {
|
|
@@ -16990,6 +17142,9 @@ var TemplateTypeCheckerImpl = class {
|
|
|
16990
17142
|
const { data } = this.getLatestComponentState(directive, optimizeFor);
|
|
16991
17143
|
return data?.hostElement ?? null;
|
|
16992
17144
|
}
|
|
17145
|
+
getDirectivesOfNode(component, node) {
|
|
17146
|
+
return this.getLatestComponentState(component).data?.boundTarget.getDirectivesOfNode(node) ?? null;
|
|
17147
|
+
}
|
|
16993
17148
|
getUsedDirectives(component) {
|
|
16994
17149
|
return this.getLatestComponentState(component).data?.boundTarget.getUsedDirectives() ?? null;
|
|
16995
17150
|
}
|
|
@@ -18148,9 +18303,11 @@ var DirectiveDecoratorHandler = class {
|
|
|
18148
18303
|
this.usePoisonedData = usePoisonedData;
|
|
18149
18304
|
this.typeCheckHostBindings = typeCheckHostBindings;
|
|
18150
18305
|
this.emitDeclarationOnly = emitDeclarationOnly;
|
|
18306
|
+
this.undecoratedMetadataExtractor = getDirectiveUndecoratedMetadataExtractor(reflector, importTracker);
|
|
18151
18307
|
}
|
|
18152
18308
|
precedence = HandlerPrecedence.PRIMARY;
|
|
18153
18309
|
name = "DirectiveDecoratorHandler";
|
|
18310
|
+
undecoratedMetadataExtractor;
|
|
18154
18311
|
detect(node, decorators) {
|
|
18155
18312
|
if (!decorators) {
|
|
18156
18313
|
const angularField = this.findClassFieldWithAngularFeatures(node);
|
|
@@ -18202,7 +18359,7 @@ var DirectiveDecoratorHandler = class {
|
|
|
18202
18359
|
meta: analysis,
|
|
18203
18360
|
hostDirectives: directiveResult.hostDirectives,
|
|
18204
18361
|
rawHostDirectives: directiveResult.rawHostDirectives,
|
|
18205
|
-
classMetadata: this.includeClassMetadata ? extractClassMetadata(node, this.reflector, this.isCore, this.annotateForClosureCompiler) : null,
|
|
18362
|
+
classMetadata: this.includeClassMetadata ? extractClassMetadata(node, this.reflector, this.isCore, this.annotateForClosureCompiler, void 0, this.undecoratedMetadataExtractor) : null,
|
|
18206
18363
|
baseClass: readBaseClass(node, this.reflector, this.evaluator),
|
|
18207
18364
|
typeCheckMeta: extractDirectiveTypeCheckMeta(node, directiveResult.inputs, this.reflector),
|
|
18208
18365
|
providersRequiringFactory,
|
|
@@ -18376,7 +18533,7 @@ var DirectiveDecoratorHandler = class {
|
|
|
18376
18533
|
};
|
|
18377
18534
|
|
|
18378
18535
|
// packages/compiler-cli/src/ngtsc/annotations/ng_module/src/handler.js
|
|
18379
|
-
import { compileClassMetadata as compileClassMetadata2, compileDeclareClassMetadata as compileDeclareClassMetadata2, compileDeclareInjectorFromMetadata, compileDeclareNgModuleFromMetadata, compileInjector, compileNgModule, ExternalExpr as ExternalExpr9, FactoryTarget as FactoryTarget2, FunctionExpr, InvokeFunctionExpr, LiteralArrayExpr as
|
|
18536
|
+
import { compileClassMetadata as compileClassMetadata2, compileDeclareClassMetadata as compileDeclareClassMetadata2, compileDeclareInjectorFromMetadata, compileDeclareNgModuleFromMetadata, compileInjector, compileNgModule, ExternalExpr as ExternalExpr9, FactoryTarget as FactoryTarget2, FunctionExpr, InvokeFunctionExpr, LiteralArrayExpr as LiteralArrayExpr3, R3Identifiers as R3Identifiers6, R3NgModuleMetadataKind, R3SelectorScopeMode, ReturnStatement, WrappedNodeExpr as WrappedNodeExpr10 } from "@angular/compiler";
|
|
18380
18537
|
import ts67 from "typescript";
|
|
18381
18538
|
|
|
18382
18539
|
// packages/compiler-cli/src/ngtsc/annotations/ng_module/src/module_with_providers.js
|
|
@@ -19012,14 +19169,14 @@ var NgModuleDecoratorHandler = class {
|
|
|
19012
19169
|
assertSuccessfulReferenceEmit(type, node, "pipe");
|
|
19013
19170
|
return type.expression;
|
|
19014
19171
|
});
|
|
19015
|
-
const directiveArray = new
|
|
19016
|
-
const pipesArray = new
|
|
19172
|
+
const directiveArray = new LiteralArrayExpr3(directives);
|
|
19173
|
+
const pipesArray = new LiteralArrayExpr3(pipes);
|
|
19017
19174
|
const directiveExpr = remoteScopesMayRequireCycleProtection && directives.length > 0 ? new FunctionExpr([], [new ReturnStatement(directiveArray)]) : directiveArray;
|
|
19018
19175
|
const pipesExpr = remoteScopesMayRequireCycleProtection && pipes.length > 0 ? new FunctionExpr([], [new ReturnStatement(pipesArray)]) : pipesArray;
|
|
19019
19176
|
const componentType = this.refEmitter.emit(decl, context);
|
|
19020
19177
|
assertSuccessfulReferenceEmit(componentType, node, "component");
|
|
19021
19178
|
const declExpr = componentType.expression;
|
|
19022
|
-
const setComponentScope = new ExternalExpr9(
|
|
19179
|
+
const setComponentScope = new ExternalExpr9(R3Identifiers6.setComponentScope);
|
|
19023
19180
|
const callExpr = new InvokeFunctionExpr(setComponentScope, [
|
|
19024
19181
|
declExpr,
|
|
19025
19182
|
directiveExpr,
|
|
@@ -19979,6 +20136,32 @@ var SelectorlessDirectivesAnalyzer = class extends CombinedRecursiveAstVisitor {
|
|
|
19979
20136
|
}
|
|
19980
20137
|
};
|
|
19981
20138
|
|
|
20139
|
+
// packages/compiler-cli/src/ngtsc/annotations/component/src/animations.js
|
|
20140
|
+
import { CombinedRecursiveAstVisitor as CombinedRecursiveAstVisitor2, tmplAstVisitAll as tmplAstVisitAll2 } from "@angular/compiler";
|
|
20141
|
+
var ANIMATE_ENTER = "animate.enter";
|
|
20142
|
+
var ANIMATE_LEAVE = `animate.leave`;
|
|
20143
|
+
function analyzeTemplateForAnimations(template) {
|
|
20144
|
+
const analyzer = new AnimationsAnalyzer();
|
|
20145
|
+
tmplAstVisitAll2(analyzer, template);
|
|
20146
|
+
return { hasAnimations: analyzer.hasAnimations };
|
|
20147
|
+
}
|
|
20148
|
+
var AnimationsAnalyzer = class extends CombinedRecursiveAstVisitor2 {
|
|
20149
|
+
hasAnimations = false;
|
|
20150
|
+
visitElement(element) {
|
|
20151
|
+
for (const attr of element.attributes) {
|
|
20152
|
+
if (attr.name === ANIMATE_LEAVE || attr.name === ANIMATE_ENTER) {
|
|
20153
|
+
this.hasAnimations = true;
|
|
20154
|
+
}
|
|
20155
|
+
}
|
|
20156
|
+
for (const input of element.inputs) {
|
|
20157
|
+
if (input.name === ANIMATE_LEAVE || input.name === ANIMATE_ENTER) {
|
|
20158
|
+
this.hasAnimations = true;
|
|
20159
|
+
}
|
|
20160
|
+
}
|
|
20161
|
+
super.visitElement(element);
|
|
20162
|
+
}
|
|
20163
|
+
};
|
|
20164
|
+
|
|
19982
20165
|
// packages/compiler-cli/src/ngtsc/annotations/component/src/handler.js
|
|
19983
20166
|
var EMPTY_ARRAY2 = [];
|
|
19984
20167
|
var isUsedDirective = (decl) => decl.kind === R3TemplateDependencyKind.Directive;
|
|
@@ -20086,10 +20269,12 @@ var ComponentDecoratorHandler = class {
|
|
|
20086
20269
|
enableSelectorless: this.enableSelectorless,
|
|
20087
20270
|
preserveSignificantWhitespace: this.i18nPreserveSignificantWhitespace
|
|
20088
20271
|
};
|
|
20272
|
+
this.undecoratedMetadataExtractor = getDirectiveUndecoratedMetadataExtractor(reflector, importTracker);
|
|
20089
20273
|
this.canDeferDeps = !enableHmr;
|
|
20090
20274
|
}
|
|
20091
20275
|
literalCache = /* @__PURE__ */ new Map();
|
|
20092
20276
|
elementSchemaRegistry = new DomElementSchemaRegistry3();
|
|
20277
|
+
undecoratedMetadataExtractor;
|
|
20093
20278
|
/**
|
|
20094
20279
|
* During the asynchronous preanalyze phase, it's necessary to parse the template to extract
|
|
20095
20280
|
* any potential <link> tags which might need to be loaded. This cache ensures that work is not
|
|
@@ -20334,6 +20519,16 @@ var ComponentDecoratorHandler = class {
|
|
|
20334
20519
|
}
|
|
20335
20520
|
}
|
|
20336
20521
|
}
|
|
20522
|
+
if (component.has("animations")) {
|
|
20523
|
+
const { hasAnimations } = analyzeTemplateForAnimations(template.nodes);
|
|
20524
|
+
if (hasAnimations) {
|
|
20525
|
+
if (diagnostics === void 0) {
|
|
20526
|
+
diagnostics = [];
|
|
20527
|
+
}
|
|
20528
|
+
diagnostics.push(makeDiagnostic(ErrorCode.COMPONENT_ANIMATIONS_CONFLICT, component.get("animations"), `A component cannot have both the '@Component.animations' property (legacy animations) and use 'animate.enter' or 'animate.leave' in the template.`));
|
|
20529
|
+
isPoisoned = true;
|
|
20530
|
+
}
|
|
20531
|
+
}
|
|
20337
20532
|
const templateResource = template.declaration.isInline ? { path: null, node: component.get("template") } : {
|
|
20338
20533
|
path: absoluteFrom(template.declaration.resolvedTemplateUrl),
|
|
20339
20534
|
node: template.sourceMapping.node
|
|
@@ -20475,7 +20670,7 @@ var ComponentDecoratorHandler = class {
|
|
|
20475
20670
|
relativeTemplatePath
|
|
20476
20671
|
},
|
|
20477
20672
|
typeCheckMeta: extractDirectiveTypeCheckMeta(node, inputs, this.reflector),
|
|
20478
|
-
classMetadata: this.includeClassMetadata ? extractClassMetadata(node, this.reflector, this.isCore, this.annotateForClosureCompiler, (dec) => transformDecoratorResources(dec, component, styles, template)) : null,
|
|
20673
|
+
classMetadata: this.includeClassMetadata ? extractClassMetadata(node, this.reflector, this.isCore, this.annotateForClosureCompiler, (dec) => transformDecoratorResources(dec, component, styles, template), this.undecoratedMetadataExtractor) : null,
|
|
20479
20674
|
classDebugInfo: extractClassDebugInfo(
|
|
20480
20675
|
node,
|
|
20481
20676
|
this.reflector,
|
|
@@ -455,7 +455,7 @@ import { compileDirectiveFromMetadata, makeBindingParser, ParseLocation, ParseSo
|
|
|
455
455
|
// packages/compiler-cli/linker/src/file_linker/partial_linkers/util.js
|
|
456
456
|
import { createMayBeForwardRefExpression, outputAst as o2 } from "@angular/compiler";
|
|
457
457
|
import semver from "semver";
|
|
458
|
-
var PLACEHOLDER_VERSION = "21.0.0-next.
|
|
458
|
+
var PLACEHOLDER_VERSION = "21.0.0-next.9";
|
|
459
459
|
function wrapReference(wrapped) {
|
|
460
460
|
return { value: wrapped, type: wrapped };
|
|
461
461
|
}
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
tryParseSignalInputMapping,
|
|
17
17
|
tryParseSignalModelMapping,
|
|
18
18
|
tryParseSignalQueryFromInitializer
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-3UF7UI6H.js";
|
|
20
20
|
|
|
21
21
|
// packages/compiler-cli/src/ngtsc/transform/jit/src/downlevel_decorators_transform.js
|
|
22
22
|
import ts from "typescript";
|