| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022 |
- import {createRequire as __cjsCompatRequire} from 'module';
- const require = __cjsCompatRequire(import.meta.url);
-
- import {
- Context,
- ExpressionTranslatorVisitor
- } from "./chunk-JCLVSACV.js";
- import {
- SourceFileLoader
- } from "./chunk-OULZQUKT.js";
- // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/linker/src/fatal_linker_error.mjs
- var FatalLinkerError = class extends Error {
- constructor(node, message) {
- super(message);
- this.node = node;
- this.type = "FatalLinkerError";
- }
- };
- function isFatalLinkerError(e) {
- return e && e.type === "FatalLinkerError";
- }
- // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/linker/src/ast/utils.mjs
- function assert(node, predicate, expected) {
- if (!predicate(node)) {
- throw new FatalLinkerError(node, `Unsupported syntax, expected ${expected}.`);
- }
- }
- // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/linker/src/ast/ast_value.mjs
- import * as o from "@angular/compiler";
- var AstObject = class {
- static parse(expression, host) {
- const obj = host.parseObjectLiteral(expression);
- return new AstObject(expression, obj, host);
- }
- constructor(expression, obj, host) {
- this.expression = expression;
- this.obj = obj;
- this.host = host;
- }
- has(propertyName) {
- return this.obj.has(propertyName);
- }
- getNumber(propertyName) {
- return this.host.parseNumericLiteral(this.getRequiredProperty(propertyName));
- }
- getString(propertyName) {
- return this.host.parseStringLiteral(this.getRequiredProperty(propertyName));
- }
- getBoolean(propertyName) {
- return this.host.parseBooleanLiteral(this.getRequiredProperty(propertyName));
- }
- getObject(propertyName) {
- const expr = this.getRequiredProperty(propertyName);
- const obj = this.host.parseObjectLiteral(expr);
- return new AstObject(expr, obj, this.host);
- }
- getArray(propertyName) {
- const arr = this.host.parseArrayLiteral(this.getRequiredProperty(propertyName));
- return arr.map((entry) => new AstValue(entry, this.host));
- }
- getOpaque(propertyName) {
- return new o.WrappedNodeExpr(this.getRequiredProperty(propertyName));
- }
- getNode(propertyName) {
- return this.getRequiredProperty(propertyName);
- }
- getValue(propertyName) {
- return new AstValue(this.getRequiredProperty(propertyName), this.host);
- }
- toLiteral(mapper) {
- const result = {};
- for (const [key, expression] of this.obj) {
- result[key] = mapper(new AstValue(expression, this.host), key);
- }
- return result;
- }
- toMap(mapper) {
- const result = /* @__PURE__ */ new Map();
- for (const [key, expression] of this.obj) {
- result.set(key, mapper(new AstValue(expression, this.host)));
- }
- return result;
- }
- getRequiredProperty(propertyName) {
- if (!this.obj.has(propertyName)) {
- throw new FatalLinkerError(this.expression, `Expected property '${propertyName}' to be present.`);
- }
- return this.obj.get(propertyName);
- }
- };
- var AstValue = class {
- constructor(expression, host) {
- this.expression = expression;
- this.host = host;
- }
- getSymbolName() {
- return this.host.getSymbolName(this.expression);
- }
- isNumber() {
- return this.host.isNumericLiteral(this.expression);
- }
- getNumber() {
- return this.host.parseNumericLiteral(this.expression);
- }
- isString() {
- return this.host.isStringLiteral(this.expression);
- }
- getString() {
- return this.host.parseStringLiteral(this.expression);
- }
- isBoolean() {
- return this.host.isBooleanLiteral(this.expression);
- }
- getBoolean() {
- return this.host.parseBooleanLiteral(this.expression);
- }
- isObject() {
- return this.host.isObjectLiteral(this.expression);
- }
- getObject() {
- return AstObject.parse(this.expression, this.host);
- }
- isArray() {
- return this.host.isArrayLiteral(this.expression);
- }
- getArray() {
- const arr = this.host.parseArrayLiteral(this.expression);
- return arr.map((entry) => new AstValue(entry, this.host));
- }
- isFunction() {
- return this.host.isFunctionExpression(this.expression);
- }
- getFunctionReturnValue() {
- return new AstValue(this.host.parseReturnValue(this.expression), this.host);
- }
- isCallExpression() {
- return this.host.isCallExpression(this.expression);
- }
- getCallee() {
- return new AstValue(this.host.parseCallee(this.expression), this.host);
- }
- getArguments() {
- const args = this.host.parseArguments(this.expression);
- return args.map((arg) => new AstValue(arg, this.host));
- }
- getOpaque() {
- return new o.WrappedNodeExpr(this.expression);
- }
- getRange() {
- return this.host.getRange(this.expression);
- }
- };
- // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/linker/src/file_linker/emit_scopes/emit_scope.mjs
- import { ConstantPool } from "@angular/compiler";
- // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/linker/src/linker_import_generator.mjs
- var LinkerImportGenerator = class {
- constructor(ngImport) {
- this.ngImport = ngImport;
- }
- generateNamespaceImport(moduleName) {
- this.assertModuleName(moduleName);
- return this.ngImport;
- }
- generateNamedImport(moduleName, originalSymbol) {
- this.assertModuleName(moduleName);
- return { moduleImport: this.ngImport, symbol: originalSymbol };
- }
- assertModuleName(moduleName) {
- if (moduleName !== "@angular/core") {
- throw new FatalLinkerError(this.ngImport, `Unable to import from anything other than '@angular/core'`);
- }
- }
- };
- // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/linker/src/file_linker/emit_scopes/emit_scope.mjs
- var EmitScope = class {
- constructor(ngImport, translator, factory) {
- this.ngImport = ngImport;
- this.translator = translator;
- this.factory = factory;
- this.constantPool = new ConstantPool();
- }
- translateDefinition(definition) {
- const expression = this.translator.translateExpression(definition.expression, new LinkerImportGenerator(this.ngImport));
- if (definition.statements.length > 0) {
- const importGenerator = new LinkerImportGenerator(this.ngImport);
- return this.wrapInIifeWithStatements(expression, definition.statements.map((statement) => this.translator.translateStatement(statement, importGenerator)));
- } else {
- return expression;
- }
- }
- getConstantStatements() {
- const importGenerator = new LinkerImportGenerator(this.ngImport);
- return this.constantPool.statements.map((statement) => this.translator.translateStatement(statement, importGenerator));
- }
- wrapInIifeWithStatements(expression, statements) {
- const returnStatement = this.factory.createReturnStatement(expression);
- const body = this.factory.createBlock([...statements, returnStatement]);
- const fn = this.factory.createFunctionExpression(null, [], body);
- return this.factory.createCallExpression(fn, [], false);
- }
- };
- // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/linker/src/file_linker/emit_scopes/local_emit_scope.mjs
- var LocalEmitScope = class extends EmitScope {
- translateDefinition(definition) {
- return super.translateDefinition({
- expression: definition.expression,
- statements: [...this.constantPool.statements, ...definition.statements]
- });
- }
- getConstantStatements() {
- throw new Error("BUG - LocalEmitScope should not expose any constant statements");
- }
- };
- // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_linker_selector.mjs
- import semver from "semver";
- // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/linker/src/file_linker/get_source_file.mjs
- function createGetSourceFile(sourceUrl, code, loader) {
- if (loader === null) {
- return () => null;
- } else {
- let sourceFile = void 0;
- return () => {
- if (sourceFile === void 0) {
- sourceFile = loader.loadSourceFile(sourceUrl, code);
- }
- return sourceFile;
- };
- }
- }
- // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_class_metadata_linker_1.mjs
- import { compileClassMetadata } from "@angular/compiler";
- var PartialClassMetadataLinkerVersion1 = class {
- linkPartialDeclaration(constantPool, metaObj) {
- const meta = toR3ClassMetadata(metaObj);
- return {
- expression: compileClassMetadata(meta),
- statements: []
- };
- }
- };
- function toR3ClassMetadata(metaObj) {
- return {
- type: metaObj.getOpaque("type"),
- decorators: metaObj.getOpaque("decorators"),
- ctorParameters: metaObj.has("ctorParameters") ? metaObj.getOpaque("ctorParameters") : null,
- propDecorators: metaObj.has("propDecorators") ? metaObj.getOpaque("propDecorators") : null
- };
- }
- // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_component_linker_1.mjs
- import { ChangeDetectionStrategy, compileComponentFromMetadata, DEFAULT_INTERPOLATION_CONFIG, InterpolationConfig, makeBindingParser as makeBindingParser2, parseTemplate, R3TemplateDependencyKind, ViewEncapsulation } from "@angular/compiler";
- // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_directive_linker_1.mjs
- import { compileDirectiveFromMetadata, makeBindingParser, ParseLocation, ParseSourceFile, ParseSourceSpan } from "@angular/compiler";
- // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/linker/src/file_linker/partial_linkers/util.mjs
- import { createMayBeForwardRefExpression, outputAst as o2 } from "@angular/compiler";
- function wrapReference(wrapped) {
- return { value: wrapped, type: wrapped };
- }
- function parseEnum(value, Enum) {
- const symbolName = value.getSymbolName();
- if (symbolName === null) {
- throw new FatalLinkerError(value.expression, "Expected value to have a symbol name");
- }
- const enumValue = Enum[symbolName];
- if (enumValue === void 0) {
- throw new FatalLinkerError(value.expression, `Unsupported enum value for ${Enum}`);
- }
- return enumValue;
- }
- function getDependency(depObj) {
- const isAttribute = depObj.has("attribute") && depObj.getBoolean("attribute");
- const token = depObj.getOpaque("token");
- const attributeNameType = isAttribute ? o2.literal("unknown") : null;
- return {
- token,
- attributeNameType,
- host: depObj.has("host") && depObj.getBoolean("host"),
- optional: depObj.has("optional") && depObj.getBoolean("optional"),
- self: depObj.has("self") && depObj.getBoolean("self"),
- skipSelf: depObj.has("skipSelf") && depObj.getBoolean("skipSelf")
- };
- }
- function extractForwardRef(expr) {
- if (!expr.isCallExpression()) {
- return createMayBeForwardRefExpression(expr.getOpaque(), 0);
- }
- const callee = expr.getCallee();
- if (callee.getSymbolName() !== "forwardRef") {
- throw new FatalLinkerError(callee.expression, "Unsupported expression, expected a `forwardRef()` call or a type reference");
- }
- const args = expr.getArguments();
- if (args.length !== 1) {
- throw new FatalLinkerError(expr, "Unsupported `forwardRef(fn)` call, expected a single argument");
- }
- const wrapperFn = args[0];
- if (!wrapperFn.isFunction()) {
- throw new FatalLinkerError(wrapperFn, "Unsupported `forwardRef(fn)` call, expected its argument to be a function");
- }
- return createMayBeForwardRefExpression(wrapperFn.getFunctionReturnValue().getOpaque(), 2);
- }
- // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_directive_linker_1.mjs
- var PartialDirectiveLinkerVersion1 = class {
- constructor(sourceUrl, code) {
- this.sourceUrl = sourceUrl;
- this.code = code;
- }
- linkPartialDeclaration(constantPool, metaObj) {
- const meta = toR3DirectiveMeta(metaObj, this.code, this.sourceUrl);
- return compileDirectiveFromMetadata(meta, constantPool, makeBindingParser());
- }
- };
- function toR3DirectiveMeta(metaObj, code, sourceUrl) {
- const typeExpr = metaObj.getValue("type");
- const typeName = typeExpr.getSymbolName();
- if (typeName === null) {
- throw new FatalLinkerError(typeExpr.expression, "Unsupported type, its name could not be determined");
- }
- return {
- typeSourceSpan: createSourceSpan(typeExpr.getRange(), code, sourceUrl),
- type: wrapReference(typeExpr.getOpaque()),
- typeArgumentCount: 0,
- deps: null,
- host: toHostMetadata(metaObj),
- inputs: metaObj.has("inputs") ? metaObj.getObject("inputs").toLiteral(toInputMapping) : {},
- outputs: metaObj.has("outputs") ? metaObj.getObject("outputs").toLiteral((value) => value.getString()) : {},
- queries: metaObj.has("queries") ? metaObj.getArray("queries").map((entry) => toQueryMetadata(entry.getObject())) : [],
- viewQueries: metaObj.has("viewQueries") ? metaObj.getArray("viewQueries").map((entry) => toQueryMetadata(entry.getObject())) : [],
- providers: metaObj.has("providers") ? metaObj.getOpaque("providers") : null,
- fullInheritance: false,
- selector: metaObj.has("selector") ? metaObj.getString("selector") : null,
- exportAs: metaObj.has("exportAs") ? metaObj.getArray("exportAs").map((entry) => entry.getString()) : null,
- lifecycle: {
- usesOnChanges: metaObj.has("usesOnChanges") ? metaObj.getBoolean("usesOnChanges") : false
- },
- name: typeName,
- usesInheritance: metaObj.has("usesInheritance") ? metaObj.getBoolean("usesInheritance") : false,
- isStandalone: metaObj.has("isStandalone") ? metaObj.getBoolean("isStandalone") : false,
- hostDirectives: metaObj.has("hostDirectives") ? toHostDirectivesMetadata(metaObj.getValue("hostDirectives")) : null
- };
- }
- function toInputMapping(value, key) {
- if (value.isString()) {
- return { bindingPropertyName: value.getString(), classPropertyName: key, required: false };
- }
- const values = value.getArray().map((innerValue) => innerValue.getString());
- if (values.length !== 2) {
- throw new FatalLinkerError(value.expression, "Unsupported input, expected a string or an array containing exactly two strings");
- }
- return { bindingPropertyName: values[0], classPropertyName: values[1], required: false };
- }
- function toHostMetadata(metaObj) {
- if (!metaObj.has("host")) {
- return {
- attributes: {},
- listeners: {},
- properties: {},
- specialAttributes: {}
- };
- }
- const host = metaObj.getObject("host");
- const specialAttributes = {};
- if (host.has("styleAttribute")) {
- specialAttributes.styleAttr = host.getString("styleAttribute");
- }
- if (host.has("classAttribute")) {
- specialAttributes.classAttr = host.getString("classAttribute");
- }
- return {
- attributes: host.has("attributes") ? host.getObject("attributes").toLiteral((value) => value.getOpaque()) : {},
- listeners: host.has("listeners") ? host.getObject("listeners").toLiteral((value) => value.getString()) : {},
- properties: host.has("properties") ? host.getObject("properties").toLiteral((value) => value.getString()) : {},
- specialAttributes
- };
- }
- function toQueryMetadata(obj) {
- let predicate;
- const predicateExpr = obj.getValue("predicate");
- if (predicateExpr.isArray()) {
- predicate = predicateExpr.getArray().map((entry) => entry.getString());
- } else {
- predicate = extractForwardRef(predicateExpr);
- }
- return {
- propertyName: obj.getString("propertyName"),
- first: obj.has("first") ? obj.getBoolean("first") : false,
- predicate,
- descendants: obj.has("descendants") ? obj.getBoolean("descendants") : false,
- emitDistinctChangesOnly: obj.has("emitDistinctChangesOnly") ? obj.getBoolean("emitDistinctChangesOnly") : true,
- read: obj.has("read") ? obj.getOpaque("read") : null,
- static: obj.has("static") ? obj.getBoolean("static") : false
- };
- }
- function toHostDirectivesMetadata(hostDirectives) {
- return hostDirectives.getArray().map((hostDirective) => {
- const hostObject = hostDirective.getObject();
- const type = extractForwardRef(hostObject.getValue("directive"));
- const meta = {
- directive: wrapReference(type.expression),
- isForwardReference: type.forwardRef !== 0,
- inputs: hostObject.has("inputs") ? getHostDirectiveBindingMapping(hostObject.getArray("inputs")) : null,
- outputs: hostObject.has("outputs") ? getHostDirectiveBindingMapping(hostObject.getArray("outputs")) : null
- };
- return meta;
- });
- }
- function getHostDirectiveBindingMapping(array) {
- let result = null;
- for (let i = 1; i < array.length; i += 2) {
- result = result || {};
- result[array[i - 1].getString()] = array[i].getString();
- }
- return result;
- }
- function createSourceSpan(range, code, sourceUrl) {
- const sourceFile = new ParseSourceFile(code, sourceUrl);
- const startLocation = new ParseLocation(sourceFile, range.startPos, range.startLine, range.startCol);
- return new ParseSourceSpan(startLocation, startLocation.moveBy(range.endPos - range.startPos));
- }
- // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_component_linker_1.mjs
- function makeDirectiveMetadata(directiveExpr, typeExpr, isComponentByDefault = null) {
- return {
- kind: R3TemplateDependencyKind.Directive,
- isComponent: isComponentByDefault || directiveExpr.has("kind") && directiveExpr.getString("kind") === "component",
- type: typeExpr,
- selector: directiveExpr.getString("selector"),
- inputs: directiveExpr.has("inputs") ? directiveExpr.getArray("inputs").map((input) => input.getString()) : [],
- outputs: directiveExpr.has("outputs") ? directiveExpr.getArray("outputs").map((input) => input.getString()) : [],
- exportAs: directiveExpr.has("exportAs") ? directiveExpr.getArray("exportAs").map((exportAs) => exportAs.getString()) : null
- };
- }
- var PartialComponentLinkerVersion1 = class {
- constructor(getSourceFile, sourceUrl, code) {
- this.getSourceFile = getSourceFile;
- this.sourceUrl = sourceUrl;
- this.code = code;
- }
- linkPartialDeclaration(constantPool, metaObj) {
- const meta = this.toR3ComponentMeta(metaObj);
- return compileComponentFromMetadata(meta, constantPool, makeBindingParser2());
- }
- toR3ComponentMeta(metaObj) {
- const interpolation = parseInterpolationConfig(metaObj);
- const templateSource = metaObj.getValue("template");
- const isInline = metaObj.has("isInline") ? metaObj.getBoolean("isInline") : false;
- const templateInfo = this.getTemplateInfo(templateSource, isInline);
- const template = parseTemplate(templateInfo.code, templateInfo.sourceUrl, {
- escapedString: templateInfo.isEscaped,
- interpolationConfig: interpolation,
- range: templateInfo.range,
- enableI18nLegacyMessageIdFormat: false,
- preserveWhitespaces: metaObj.has("preserveWhitespaces") ? metaObj.getBoolean("preserveWhitespaces") : false,
- i18nNormalizeLineEndingsInICUs: isInline
- });
- if (template.errors !== null) {
- const errors = template.errors.map((err) => err.toString()).join("\n");
- throw new FatalLinkerError(templateSource.expression, `Errors found in the template:
- ${errors}`);
- }
- let declarationListEmitMode = 0;
- const extractDeclarationTypeExpr = (type) => {
- const { expression, forwardRef } = extractForwardRef(type);
- if (forwardRef === 2) {
- declarationListEmitMode = 1;
- }
- return expression;
- };
- let declarations = [];
- if (metaObj.has("components")) {
- declarations.push(...metaObj.getArray("components").map((dir) => {
- const dirExpr = dir.getObject();
- const typeExpr = extractDeclarationTypeExpr(dirExpr.getValue("type"));
- return makeDirectiveMetadata(dirExpr, typeExpr, true);
- }));
- }
- if (metaObj.has("directives")) {
- declarations.push(...metaObj.getArray("directives").map((dir) => {
- const dirExpr = dir.getObject();
- const typeExpr = extractDeclarationTypeExpr(dirExpr.getValue("type"));
- return makeDirectiveMetadata(dirExpr, typeExpr);
- }));
- }
- if (metaObj.has("pipes")) {
- const pipes = metaObj.getObject("pipes").toMap((pipe) => pipe);
- for (const [name, type] of pipes) {
- const typeExpr = extractDeclarationTypeExpr(type);
- declarations.push({
- kind: R3TemplateDependencyKind.Pipe,
- name,
- type: typeExpr
- });
- }
- }
- if (metaObj.has("dependencies")) {
- for (const dep of metaObj.getArray("dependencies")) {
- const depObj = dep.getObject();
- const typeExpr = extractDeclarationTypeExpr(depObj.getValue("type"));
- switch (depObj.getString("kind")) {
- case "directive":
- case "component":
- declarations.push(makeDirectiveMetadata(depObj, typeExpr));
- break;
- case "pipe":
- const pipeObj = depObj;
- declarations.push({
- kind: R3TemplateDependencyKind.Pipe,
- name: pipeObj.getString("name"),
- type: typeExpr
- });
- break;
- case "ngmodule":
- declarations.push({
- kind: R3TemplateDependencyKind.NgModule,
- type: typeExpr
- });
- break;
- default:
- continue;
- }
- }
- }
- return {
- ...toR3DirectiveMeta(metaObj, this.code, this.sourceUrl),
- viewProviders: metaObj.has("viewProviders") ? metaObj.getOpaque("viewProviders") : null,
- template: {
- nodes: template.nodes,
- ngContentSelectors: template.ngContentSelectors
- },
- declarationListEmitMode,
- styles: metaObj.has("styles") ? metaObj.getArray("styles").map((entry) => entry.getString()) : [],
- encapsulation: metaObj.has("encapsulation") ? parseEncapsulation(metaObj.getValue("encapsulation")) : ViewEncapsulation.Emulated,
- interpolation,
- changeDetection: metaObj.has("changeDetection") ? parseChangeDetectionStrategy(metaObj.getValue("changeDetection")) : ChangeDetectionStrategy.Default,
- animations: metaObj.has("animations") ? metaObj.getOpaque("animations") : null,
- relativeContextFilePath: this.sourceUrl,
- i18nUseExternalIds: false,
- declarations
- };
- }
- getTemplateInfo(templateNode, isInline) {
- const range = templateNode.getRange();
- if (!isInline) {
- const externalTemplate = this.tryExternalTemplate(range);
- if (externalTemplate !== null) {
- return externalTemplate;
- }
- }
- return this.templateFromPartialCode(templateNode, range);
- }
- tryExternalTemplate(range) {
- const sourceFile = this.getSourceFile();
- if (sourceFile === null) {
- return null;
- }
- const pos = sourceFile.getOriginalLocation(range.startLine, range.startCol);
- if (pos === null || pos.file === this.sourceUrl || /\.[jt]s$/.test(pos.file) || pos.line !== 0 || pos.column !== 0) {
- return null;
- }
- const templateContents = sourceFile.sources.find((src) => (src == null ? void 0 : src.sourcePath) === pos.file).contents;
- return {
- code: templateContents,
- sourceUrl: pos.file,
- range: { startPos: 0, startLine: 0, startCol: 0, endPos: templateContents.length },
- isEscaped: false
- };
- }
- templateFromPartialCode(templateNode, { startPos, endPos, startLine, startCol }) {
- if (!/["'`]/.test(this.code[startPos]) || this.code[startPos] !== this.code[endPos - 1]) {
- throw new FatalLinkerError(templateNode.expression, `Expected the template string to be wrapped in quotes but got: ${this.code.substring(startPos, endPos)}`);
- }
- return {
- code: this.code,
- sourceUrl: this.sourceUrl,
- range: { startPos: startPos + 1, endPos: endPos - 1, startLine, startCol: startCol + 1 },
- isEscaped: true
- };
- }
- };
- function parseInterpolationConfig(metaObj) {
- if (!metaObj.has("interpolation")) {
- return DEFAULT_INTERPOLATION_CONFIG;
- }
- const interpolationExpr = metaObj.getValue("interpolation");
- const values = interpolationExpr.getArray().map((entry) => entry.getString());
- if (values.length !== 2) {
- throw new FatalLinkerError(interpolationExpr.expression, "Unsupported interpolation config, expected an array containing exactly two strings");
- }
- return InterpolationConfig.fromArray(values);
- }
- function parseEncapsulation(encapsulation) {
- const symbolName = encapsulation.getSymbolName();
- if (symbolName === null) {
- throw new FatalLinkerError(encapsulation.expression, "Expected encapsulation to have a symbol name");
- }
- const enumValue = ViewEncapsulation[symbolName];
- if (enumValue === void 0) {
- throw new FatalLinkerError(encapsulation.expression, "Unsupported encapsulation");
- }
- return enumValue;
- }
- function parseChangeDetectionStrategy(changeDetectionStrategy) {
- const symbolName = changeDetectionStrategy.getSymbolName();
- if (symbolName === null) {
- throw new FatalLinkerError(changeDetectionStrategy.expression, "Expected change detection strategy to have a symbol name");
- }
- const enumValue = ChangeDetectionStrategy[symbolName];
- if (enumValue === void 0) {
- throw new FatalLinkerError(changeDetectionStrategy.expression, "Unsupported change detection strategy");
- }
- return enumValue;
- }
- // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_factory_linker_1.mjs
- import { compileFactoryFunction, FactoryTarget } from "@angular/compiler";
- var PartialFactoryLinkerVersion1 = class {
- linkPartialDeclaration(constantPool, metaObj) {
- const meta = toR3FactoryMeta(metaObj);
- return compileFactoryFunction(meta);
- }
- };
- function toR3FactoryMeta(metaObj) {
- const typeExpr = metaObj.getValue("type");
- const typeName = typeExpr.getSymbolName();
- if (typeName === null) {
- throw new FatalLinkerError(typeExpr.expression, "Unsupported type, its name could not be determined");
- }
- return {
- name: typeName,
- type: wrapReference(typeExpr.getOpaque()),
- typeArgumentCount: 0,
- target: parseEnum(metaObj.getValue("target"), FactoryTarget),
- deps: getDependencies(metaObj, "deps")
- };
- }
- function getDependencies(metaObj, propName) {
- if (!metaObj.has(propName)) {
- return null;
- }
- const deps = metaObj.getValue(propName);
- if (deps.isArray()) {
- return deps.getArray().map((dep) => getDependency(dep.getObject()));
- }
- if (deps.isString()) {
- return "invalid";
- }
- return null;
- }
- // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_injectable_linker_1.mjs
- import { compileInjectable, createMayBeForwardRefExpression as createMayBeForwardRefExpression2, outputAst as o3 } from "@angular/compiler";
- var PartialInjectableLinkerVersion1 = class {
- linkPartialDeclaration(constantPool, metaObj) {
- const meta = toR3InjectableMeta(metaObj);
- return compileInjectable(meta, false);
- }
- };
- function toR3InjectableMeta(metaObj) {
- const typeExpr = metaObj.getValue("type");
- const typeName = typeExpr.getSymbolName();
- if (typeName === null) {
- throw new FatalLinkerError(typeExpr.expression, "Unsupported type, its name could not be determined");
- }
- const meta = {
- name: typeName,
- type: wrapReference(typeExpr.getOpaque()),
- typeArgumentCount: 0,
- providedIn: metaObj.has("providedIn") ? extractForwardRef(metaObj.getValue("providedIn")) : createMayBeForwardRefExpression2(o3.literal(null), 0)
- };
- if (metaObj.has("useClass")) {
- meta.useClass = extractForwardRef(metaObj.getValue("useClass"));
- }
- if (metaObj.has("useFactory")) {
- meta.useFactory = metaObj.getOpaque("useFactory");
- }
- if (metaObj.has("useExisting")) {
- meta.useExisting = extractForwardRef(metaObj.getValue("useExisting"));
- }
- if (metaObj.has("useValue")) {
- meta.useValue = extractForwardRef(metaObj.getValue("useValue"));
- }
- if (metaObj.has("deps")) {
- meta.deps = metaObj.getArray("deps").map((dep) => getDependency(dep.getObject()));
- }
- return meta;
- }
- // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_injector_linker_1.mjs
- import { compileInjector } from "@angular/compiler";
- var PartialInjectorLinkerVersion1 = class {
- linkPartialDeclaration(constantPool, metaObj) {
- const meta = toR3InjectorMeta(metaObj);
- return compileInjector(meta);
- }
- };
- function toR3InjectorMeta(metaObj) {
- const typeExpr = metaObj.getValue("type");
- const typeName = typeExpr.getSymbolName();
- if (typeName === null) {
- throw new FatalLinkerError(typeExpr.expression, "Unsupported type, its name could not be determined");
- }
- return {
- name: typeName,
- type: wrapReference(typeExpr.getOpaque()),
- providers: metaObj.has("providers") ? metaObj.getOpaque("providers") : null,
- imports: metaObj.has("imports") ? metaObj.getArray("imports").map((i) => i.getOpaque()) : []
- };
- }
- // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_ng_module_linker_1.mjs
- import { compileNgModule, R3SelectorScopeMode } from "@angular/compiler";
- var PartialNgModuleLinkerVersion1 = class {
- constructor(emitInline) {
- this.emitInline = emitInline;
- }
- linkPartialDeclaration(constantPool, metaObj) {
- const meta = toR3NgModuleMeta(metaObj, this.emitInline);
- return compileNgModule(meta);
- }
- };
- function toR3NgModuleMeta(metaObj, supportJit) {
- const wrappedType = metaObj.getOpaque("type");
- const meta = {
- type: wrapReference(wrappedType),
- bootstrap: [],
- declarations: [],
- publicDeclarationTypes: null,
- includeImportTypes: true,
- imports: [],
- exports: [],
- selectorScopeMode: supportJit ? R3SelectorScopeMode.Inline : R3SelectorScopeMode.Omit,
- containsForwardDecls: false,
- schemas: [],
- id: metaObj.has("id") ? metaObj.getOpaque("id") : null
- };
- if (metaObj.has("bootstrap")) {
- const bootstrap = metaObj.getValue("bootstrap");
- if (bootstrap.isFunction()) {
- meta.containsForwardDecls = true;
- meta.bootstrap = wrapReferences(unwrapForwardRefs(bootstrap));
- } else
- meta.bootstrap = wrapReferences(bootstrap);
- }
- if (metaObj.has("declarations")) {
- const declarations = metaObj.getValue("declarations");
- if (declarations.isFunction()) {
- meta.containsForwardDecls = true;
- meta.declarations = wrapReferences(unwrapForwardRefs(declarations));
- } else
- meta.declarations = wrapReferences(declarations);
- }
- if (metaObj.has("imports")) {
- const imports = metaObj.getValue("imports");
- if (imports.isFunction()) {
- meta.containsForwardDecls = true;
- meta.imports = wrapReferences(unwrapForwardRefs(imports));
- } else
- meta.imports = wrapReferences(imports);
- }
- if (metaObj.has("exports")) {
- const exports = metaObj.getValue("exports");
- if (exports.isFunction()) {
- meta.containsForwardDecls = true;
- meta.exports = wrapReferences(unwrapForwardRefs(exports));
- } else
- meta.exports = wrapReferences(exports);
- }
- if (metaObj.has("schemas")) {
- const schemas = metaObj.getValue("schemas");
- meta.schemas = wrapReferences(schemas);
- }
- return meta;
- }
- function unwrapForwardRefs(field) {
- return field.getFunctionReturnValue();
- }
- function wrapReferences(values) {
- return values.getArray().map((i) => wrapReference(i.getOpaque()));
- }
- // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_pipe_linker_1.mjs
- import { compilePipeFromMetadata } from "@angular/compiler";
- var PartialPipeLinkerVersion1 = class {
- constructor() {
- }
- linkPartialDeclaration(constantPool, metaObj) {
- const meta = toR3PipeMeta(metaObj);
- return compilePipeFromMetadata(meta);
- }
- };
- function toR3PipeMeta(metaObj) {
- const typeExpr = metaObj.getValue("type");
- const typeName = typeExpr.getSymbolName();
- if (typeName === null) {
- throw new FatalLinkerError(typeExpr.expression, "Unsupported type, its name could not be determined");
- }
- const pure = metaObj.has("pure") ? metaObj.getBoolean("pure") : true;
- const isStandalone = metaObj.has("isStandalone") ? metaObj.getBoolean("isStandalone") : false;
- return {
- name: typeName,
- type: wrapReference(typeExpr.getOpaque()),
- typeArgumentCount: 0,
- deps: null,
- pipeName: metaObj.getString("name"),
- pure,
- isStandalone
- };
- }
- // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_linker_selector.mjs
- var \u0275\u0275ngDeclareDirective = "\u0275\u0275ngDeclareDirective";
- var \u0275\u0275ngDeclareClassMetadata = "\u0275\u0275ngDeclareClassMetadata";
- var \u0275\u0275ngDeclareComponent = "\u0275\u0275ngDeclareComponent";
- var \u0275\u0275ngDeclareFactory = "\u0275\u0275ngDeclareFactory";
- var \u0275\u0275ngDeclareInjectable = "\u0275\u0275ngDeclareInjectable";
- var \u0275\u0275ngDeclareInjector = "\u0275\u0275ngDeclareInjector";
- var \u0275\u0275ngDeclareNgModule = "\u0275\u0275ngDeclareNgModule";
- var \u0275\u0275ngDeclarePipe = "\u0275\u0275ngDeclarePipe";
- var declarationFunctions = [
- \u0275\u0275ngDeclareDirective,
- \u0275\u0275ngDeclareClassMetadata,
- \u0275\u0275ngDeclareComponent,
- \u0275\u0275ngDeclareFactory,
- \u0275\u0275ngDeclareInjectable,
- \u0275\u0275ngDeclareInjector,
- \u0275\u0275ngDeclareNgModule,
- \u0275\u0275ngDeclarePipe
- ];
- function createLinkerMap(environment, sourceUrl, code) {
- const linkers = /* @__PURE__ */ new Map();
- const LATEST_VERSION_RANGE = getRange("<=", "16.0.4");
- linkers.set(\u0275\u0275ngDeclareDirective, [
- { range: LATEST_VERSION_RANGE, linker: new PartialDirectiveLinkerVersion1(sourceUrl, code) }
- ]);
- linkers.set(\u0275\u0275ngDeclareClassMetadata, [
- { range: LATEST_VERSION_RANGE, linker: new PartialClassMetadataLinkerVersion1() }
- ]);
- linkers.set(\u0275\u0275ngDeclareComponent, [
- {
- range: LATEST_VERSION_RANGE,
- linker: new PartialComponentLinkerVersion1(createGetSourceFile(sourceUrl, code, environment.sourceFileLoader), sourceUrl, code)
- }
- ]);
- linkers.set(\u0275\u0275ngDeclareFactory, [
- { range: LATEST_VERSION_RANGE, linker: new PartialFactoryLinkerVersion1() }
- ]);
- linkers.set(\u0275\u0275ngDeclareInjectable, [
- { range: LATEST_VERSION_RANGE, linker: new PartialInjectableLinkerVersion1() }
- ]);
- linkers.set(\u0275\u0275ngDeclareInjector, [
- { range: LATEST_VERSION_RANGE, linker: new PartialInjectorLinkerVersion1() }
- ]);
- linkers.set(\u0275\u0275ngDeclareNgModule, [
- {
- range: LATEST_VERSION_RANGE,
- linker: new PartialNgModuleLinkerVersion1(environment.options.linkerJitMode)
- }
- ]);
- linkers.set(\u0275\u0275ngDeclarePipe, [
- { range: LATEST_VERSION_RANGE, linker: new PartialPipeLinkerVersion1() }
- ]);
- return linkers;
- }
- var PartialLinkerSelector = class {
- constructor(linkers, logger, unknownDeclarationVersionHandling) {
- this.linkers = linkers;
- this.logger = logger;
- this.unknownDeclarationVersionHandling = unknownDeclarationVersionHandling;
- }
- supportsDeclaration(functionName) {
- return this.linkers.has(functionName);
- }
- getLinker(functionName, minVersion, version) {
- if (!this.linkers.has(functionName)) {
- throw new Error(`Unknown partial declaration function ${functionName}.`);
- }
- const linkerRanges = this.linkers.get(functionName);
- if (version === "16.0.4") {
- return linkerRanges[linkerRanges.length - 1].linker;
- }
- const declarationRange = getRange(">=", minVersion);
- for (const { range: linkerRange, linker } of linkerRanges) {
- if (semver.intersects(declarationRange, linkerRange)) {
- return linker;
- }
- }
- const message = `This application depends upon a library published using Angular version ${version}, which requires Angular version ${minVersion} or newer to work correctly.
- Consider upgrading your application to use a more recent version of Angular.`;
- if (this.unknownDeclarationVersionHandling === "error") {
- throw new Error(message);
- } else if (this.unknownDeclarationVersionHandling === "warn") {
- this.logger.warn(`${message}
- Attempting to continue using this version of Angular.`);
- }
- return linkerRanges[linkerRanges.length - 1].linker;
- }
- };
- function getRange(comparator, versionStr) {
- const version = new semver.SemVer(versionStr);
- version.prerelease = [];
- return new semver.Range(`${comparator}${version.format()}`);
- }
- // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/linker/src/file_linker/file_linker.mjs
- var FileLinker = class {
- constructor(linkerEnvironment, sourceUrl, code) {
- this.linkerEnvironment = linkerEnvironment;
- this.emitScopes = /* @__PURE__ */ new Map();
- this.linkerSelector = new PartialLinkerSelector(createLinkerMap(this.linkerEnvironment, sourceUrl, code), this.linkerEnvironment.logger, this.linkerEnvironment.options.unknownDeclarationVersionHandling);
- }
- isPartialDeclaration(calleeName) {
- return this.linkerSelector.supportsDeclaration(calleeName);
- }
- linkPartialDeclaration(declarationFn, args, declarationScope) {
- if (args.length !== 1) {
- throw new Error(`Invalid function call: It should have only a single object literal argument, but contained ${args.length}.`);
- }
- const metaObj = AstObject.parse(args[0], this.linkerEnvironment.host);
- const ngImport = metaObj.getNode("ngImport");
- const emitScope = this.getEmitScope(ngImport, declarationScope);
- const minVersion = metaObj.getString("minVersion");
- const version = metaObj.getString("version");
- const linker = this.linkerSelector.getLinker(declarationFn, minVersion, version);
- const definition = linker.linkPartialDeclaration(emitScope.constantPool, metaObj);
- return emitScope.translateDefinition(definition);
- }
- getConstantStatements() {
- const results = [];
- for (const [constantScope, emitScope] of this.emitScopes.entries()) {
- const statements = emitScope.getConstantStatements();
- results.push({ constantScope, statements });
- }
- return results;
- }
- getEmitScope(ngImport, declarationScope) {
- const constantScope = declarationScope.getConstantScopeRef(ngImport);
- if (constantScope === null) {
- return new LocalEmitScope(ngImport, this.linkerEnvironment.translator, this.linkerEnvironment.factory);
- }
- if (!this.emitScopes.has(constantScope)) {
- this.emitScopes.set(constantScope, new EmitScope(ngImport, this.linkerEnvironment.translator, this.linkerEnvironment.factory));
- }
- return this.emitScopes.get(constantScope);
- }
- };
- // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/linker/src/file_linker/linker_options.mjs
- var DEFAULT_LINKER_OPTIONS = {
- sourceMapping: true,
- linkerJitMode: false,
- unknownDeclarationVersionHandling: "error"
- };
- // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/linker/src/file_linker/translator.mjs
- var Translator = class {
- constructor(factory) {
- this.factory = factory;
- }
- translateExpression(expression, imports, options = {}) {
- return expression.visitExpression(new ExpressionTranslatorVisitor(this.factory, imports, options), new Context(false));
- }
- translateStatement(statement, imports, options = {}) {
- return statement.visitStatement(new ExpressionTranslatorVisitor(this.factory, imports, options), new Context(true));
- }
- };
- // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/linker/src/file_linker/linker_environment.mjs
- var LinkerEnvironment = class {
- constructor(fileSystem, logger, host, factory, options) {
- this.fileSystem = fileSystem;
- this.logger = logger;
- this.host = host;
- this.factory = factory;
- this.options = options;
- this.translator = new Translator(this.factory);
- this.sourceFileLoader = this.options.sourceMapping ? new SourceFileLoader(this.fileSystem, this.logger, {}) : null;
- }
- static create(fileSystem, logger, host, factory, options) {
- var _a, _b, _c;
- return new LinkerEnvironment(fileSystem, logger, host, factory, {
- sourceMapping: (_a = options.sourceMapping) != null ? _a : DEFAULT_LINKER_OPTIONS.sourceMapping,
- linkerJitMode: (_b = options.linkerJitMode) != null ? _b : DEFAULT_LINKER_OPTIONS.linkerJitMode,
- unknownDeclarationVersionHandling: (_c = options.unknownDeclarationVersionHandling) != null ? _c : DEFAULT_LINKER_OPTIONS.unknownDeclarationVersionHandling
- });
- }
- };
- // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/linker/src/file_linker/needs_linking.mjs
- function needsLinking(path, source) {
- return declarationFunctions.some((fn) => source.includes(fn));
- }
- export {
- FatalLinkerError,
- isFatalLinkerError,
- assert,
- FileLinker,
- DEFAULT_LINKER_OPTIONS,
- LinkerEnvironment,
- needsLinking
- };
- /**
- * @license
- * Copyright Google LLC All Rights Reserved.
- *
- * Use of this source code is governed by an MIT-style license that can be
- * found in the LICENSE file at https://angular.io/license
- */
- //# sourceMappingURL=chunk-JVASWB7F.js.map
|