Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@angular/compiler-cli

Package Overview
Dependencies
Maintainers
2
Versions
1059
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@angular/compiler-cli - npm Package Compare versions

Comparing version
22.0.1
to
22.1.0-next.0
+647
bundles/chunk-7DYNTB5R.js
import {createRequire as __cjsCompatRequire} from 'module';
const require = __cjsCompatRequire(import.meta.url);
import {
NgCompiler,
NgCompilerHost,
TrackedIncrementalBuildStrategy,
freshCompilationTicket,
incrementalFromCompilerTicket
} from "./chunk-XE56E3TQ.js";
import {
ActivePerfRecorder,
PerfCheckpoint,
PerfEvent,
PerfPhase,
TsCreateProgramDriver,
retagAllTsFiles
} from "./chunk-7N525RD4.js";
import {
OptimizeFor,
replaceTsWithNgInErrors
} from "./chunk-ZYZIM6UT.js";
import {
absoluteFrom,
createFileSystemTsReadDirectoryFn,
getFileSystem,
resolve
} from "./chunk-UTWH365F.js";
// packages/compiler-cli/src/transformers/api.js
var DEFAULT_ERROR_CODE = 100;
var UNKNOWN_ERROR_CODE = 500;
var SOURCE = "angular";
function isTsDiagnostic(diagnostic) {
return diagnostic != null && diagnostic.source !== "angular";
}
var EmitFlags;
(function(EmitFlags2) {
EmitFlags2[EmitFlags2["DTS"] = 1] = "DTS";
EmitFlags2[EmitFlags2["JS"] = 2] = "JS";
EmitFlags2[EmitFlags2["Metadata"] = 4] = "Metadata";
EmitFlags2[EmitFlags2["I18nBundle"] = 8] = "I18nBundle";
EmitFlags2[EmitFlags2["Codegen"] = 16] = "Codegen";
EmitFlags2[EmitFlags2["Default"] = 19] = "Default";
EmitFlags2[EmitFlags2["All"] = 31] = "All";
})(EmitFlags || (EmitFlags = {}));
// packages/compiler-cli/src/transformers/compiler_host.js
import ts from "typescript";
var wrapHostForTest = null;
function createCompilerHost({ options, tsHost = ts.createCompilerHost(options, true) }) {
if (wrapHostForTest !== null) {
tsHost = wrapHostForTest(tsHost);
}
return tsHost;
}
// packages/compiler-cli/src/ngtsc/program.js
import { HtmlParser, MessageBundle } from "@angular/compiler";
import ts3 from "typescript";
// packages/compiler-cli/src/transformers/i18n.js
import { Xliff, Xliff2, Xmb } from "@angular/compiler";
import * as path from "path";
function i18nGetExtension(formatName) {
const format = formatName.toLowerCase();
switch (format) {
case "xmb":
return "xmb";
case "xlf":
case "xlif":
case "xliff":
case "xlf2":
case "xliff2":
return "xlf";
}
throw new Error(`Unsupported format "${formatName}"`);
}
function i18nExtract(formatName, outFile, host, options, bundle, pathResolve = path.resolve) {
formatName = formatName || "xlf";
const ext = i18nGetExtension(formatName);
const content = i18nSerialize(bundle, formatName, options);
const dstFile = outFile || `messages.${ext}`;
const dstPath = pathResolve(options.outDir || options.basePath, dstFile);
host.writeFile(dstPath, content, false, void 0, []);
return [dstPath];
}
function i18nSerialize(bundle, formatName, options) {
const format = formatName.toLowerCase();
let serializer;
switch (format) {
case "xmb":
serializer = new Xmb();
break;
case "xliff2":
case "xlf2":
serializer = new Xliff2();
break;
case "xlf":
case "xliff":
default:
serializer = new Xliff();
}
return bundle.write(serializer, getPathNormalizer(options.basePath));
}
function getPathNormalizer(basePath) {
return (sourcePath) => {
sourcePath = basePath ? path.relative(basePath, sourcePath) : sourcePath;
return sourcePath.split(path.sep).join("/");
};
}
// packages/compiler-cli/src/typescript_support.js
import ts2 from "typescript";
// packages/compiler-cli/src/version_helpers.js
function toNumbers(value) {
const suffixIndex = value.lastIndexOf("-");
return value.slice(0, suffixIndex === -1 ? value.length : suffixIndex).split(".").map((segment) => {
const parsed = parseInt(segment, 10);
if (isNaN(parsed)) {
throw Error(`Unable to parse version string ${value}.`);
}
return parsed;
});
}
function compareNumbers(a, b) {
const max = Math.max(a.length, b.length);
const min = Math.min(a.length, b.length);
for (let i = 0; i < min; i++) {
if (a[i] > b[i])
return 1;
if (a[i] < b[i])
return -1;
}
if (min !== max) {
const longestArray = a.length === max ? a : b;
const comparisonResult = a.length === max ? 1 : -1;
for (let i = min; i < max; i++) {
if (longestArray[i] > 0) {
return comparisonResult;
}
}
}
return 0;
}
function compareVersions(v1, v2) {
return compareNumbers(toNumbers(v1), toNumbers(v2));
}
// packages/compiler-cli/src/typescript_support.js
var MIN_TS_VERSION = "6.0.0";
var MAX_TS_VERSION = "6.1.0";
var tsVersion = ts2.version;
function checkVersion(version, minVersion, maxVersion) {
if (compareVersions(version, minVersion) < 0 || compareVersions(version, maxVersion) >= 0) {
throw new Error(`The Angular Compiler requires TypeScript >=${minVersion} and <${maxVersion} but ${version} was found instead.`);
}
}
function verifySupportedTypeScriptVersion() {
checkVersion(tsVersion, MIN_TS_VERSION, MAX_TS_VERSION);
}
// packages/compiler-cli/src/ngtsc/program.js
var NgtscProgram = class {
options;
compiler;
/**
* The primary TypeScript program, which is used for analysis and emit.
*/
tsProgram;
host;
incrementalStrategy;
constructor(rootNames, options, delegateHost, oldProgram) {
this.options = options;
const perfRecorder = ActivePerfRecorder.zeroedToNow();
perfRecorder.phase(PerfPhase.Setup);
if (!options.disableTypeScriptVersionCheck) {
verifySupportedTypeScriptVersion();
}
if (options.compilationMode === "experimental-local") {
options.noEmitOnError = false;
}
const reuseProgram = oldProgram?.compiler.getCurrentProgram();
this.host = NgCompilerHost.wrap(delegateHost, rootNames, options, reuseProgram ?? null);
if (reuseProgram !== void 0) {
retagAllTsFiles(reuseProgram);
}
this.tsProgram = perfRecorder.inPhase(PerfPhase.TypeScriptProgramCreate, () => ts3.createProgram(this.host.inputFiles, options, this.host, reuseProgram));
perfRecorder.phase(PerfPhase.Unaccounted);
perfRecorder.memory(PerfCheckpoint.TypeScriptProgramCreate);
this.host.postProgramCreationCleanup();
const programDriver = new TsCreateProgramDriver(this.tsProgram, this.host, this.options, this.host.shimExtensionPrefixes);
this.incrementalStrategy = oldProgram !== void 0 ? oldProgram.incrementalStrategy.toNextBuildStrategy() : new TrackedIncrementalBuildStrategy();
const modifiedResourceFiles = /* @__PURE__ */ new Set();
if (this.host.getModifiedResourceFiles !== void 0) {
const strings = this.host.getModifiedResourceFiles();
if (strings !== void 0) {
for (const fileString of strings) {
modifiedResourceFiles.add(absoluteFrom(fileString));
}
}
}
let ticket;
if (oldProgram === void 0) {
ticket = freshCompilationTicket(
this.tsProgram,
options,
this.incrementalStrategy,
programDriver,
perfRecorder,
/* enableTemplateTypeChecker */
false,
/* usePoisonedData */
false
);
} else {
ticket = incrementalFromCompilerTicket(oldProgram.compiler, this.tsProgram, this.incrementalStrategy, programDriver, modifiedResourceFiles, perfRecorder);
}
this.compiler = NgCompiler.fromTicket(ticket, this.host);
}
getTsProgram() {
return this.tsProgram;
}
getReuseTsProgram() {
return this.compiler.getCurrentProgram();
}
getTsOptionDiagnostics(cancellationToken) {
return this.compiler.perfRecorder.inPhase(PerfPhase.TypeScriptDiagnostics, () => this.tsProgram.getOptionsDiagnostics(cancellationToken));
}
getTsSyntacticDiagnostics(sourceFile, cancellationToken) {
return this.compiler.perfRecorder.inPhase(PerfPhase.TypeScriptDiagnostics, () => {
const ignoredFiles = this.compiler.ignoreForDiagnostics;
let res;
if (sourceFile !== void 0) {
if (ignoredFiles.has(sourceFile)) {
return [];
}
res = this.tsProgram.getSyntacticDiagnostics(sourceFile, cancellationToken);
} else {
const diagnostics = [];
for (const sf of this.tsProgram.getSourceFiles()) {
if (!ignoredFiles.has(sf)) {
diagnostics.push(...this.tsProgram.getSyntacticDiagnostics(sf, cancellationToken));
}
}
res = diagnostics;
}
return res;
});
}
getTsSemanticDiagnostics(sourceFile, cancellationToken) {
if (this.options.compilationMode === "experimental-local") {
return [];
}
return this.compiler.perfRecorder.inPhase(PerfPhase.TypeScriptDiagnostics, () => {
const ignoredFiles = this.compiler.ignoreForDiagnostics;
let res;
if (sourceFile !== void 0) {
if (ignoredFiles.has(sourceFile)) {
return [];
}
res = this.tsProgram.getSemanticDiagnostics(sourceFile, cancellationToken);
} else {
const diagnostics = [];
for (const sf of this.tsProgram.getSourceFiles()) {
if (!ignoredFiles.has(sf)) {
diagnostics.push(...this.tsProgram.getSemanticDiagnostics(sf, cancellationToken));
}
}
res = diagnostics;
}
return res;
});
}
getNgOptionDiagnostics(cancellationToken) {
return this.compiler.getOptionDiagnostics();
}
getNgStructuralDiagnostics(cancellationToken) {
return [];
}
getNgSemanticDiagnostics(fileName, cancellationToken) {
let sf = void 0;
if (fileName !== void 0) {
sf = this.tsProgram.getSourceFile(fileName);
if (sf === void 0) {
return [];
}
}
if (sf === void 0) {
return this.compiler.getDiagnostics();
} else {
return this.compiler.getDiagnosticsForFile(sf, OptimizeFor.WholeProgram);
}
}
/**
* Ensure that the `NgCompiler` has properly analyzed the program, and allow for the asynchronous
* loading of any resources during the process.
*
* This is used by the Angular CLI to allow for spawning (async) child compilations for things
* like SASS files used in `styleUrls`.
*/
loadNgStructureAsync() {
return this.compiler.analyzeAsync();
}
listLazyRoutes(entryRoute) {
return [];
}
emitXi18n() {
const ctx = new MessageBundle(new HtmlParser(), [], {}, this.options.i18nOutLocale ?? null, this.options.i18nPreserveWhitespaceForLegacyExtraction);
this.compiler.xi18n(ctx);
i18nExtract(this.options.i18nOutFormat ?? null, this.options.i18nOutFile ?? null, this.host, this.options, ctx, resolve);
}
emit(opts) {
if (opts !== void 0 && opts.emitFlags !== void 0 && opts.emitFlags & EmitFlags.I18nBundle) {
this.emitXi18n();
if (!(opts.emitFlags & EmitFlags.JS)) {
return {
diagnostics: [],
emitSkipped: true,
emittedFiles: []
};
}
}
const forceEmit = opts?.forceEmit ?? false;
this.compiler.perfRecorder.memory(PerfCheckpoint.PreEmit);
const res = this.compiler.perfRecorder.inPhase(PerfPhase.TypeScriptEmit, () => {
const { transformers } = this.compiler.prepareEmit();
const ignoreFiles = this.compiler.ignoreForEmit;
const emitCallback = opts?.emitCallback ?? defaultEmitCallback;
const writeFile = (fileName, data, writeByteOrderMark, onError, sourceFiles) => {
if (sourceFiles !== void 0) {
for (const writtenSf of sourceFiles) {
if (writtenSf.isDeclarationFile) {
continue;
}
this.compiler.incrementalCompilation.recordSuccessfulEmit(writtenSf);
}
}
this.host.writeFile(fileName, data, writeByteOrderMark, onError, sourceFiles);
};
const customTransforms = opts && opts.customTransformers;
const beforeTransforms = transformers.before || [];
const afterDeclarationsTransforms = transformers.afterDeclarations;
if (customTransforms !== void 0 && customTransforms.beforeTs !== void 0) {
beforeTransforms.push(...customTransforms.beforeTs);
}
const emitResults = [];
for (const targetSourceFile of this.tsProgram.getSourceFiles()) {
if (targetSourceFile.isDeclarationFile || ignoreFiles.has(targetSourceFile)) {
continue;
}
if (!forceEmit && this.compiler.incrementalCompilation.safeToSkipEmit(targetSourceFile)) {
this.compiler.perfRecorder.eventCount(PerfEvent.EmitSkipSourceFile);
continue;
}
this.compiler.perfRecorder.eventCount(PerfEvent.EmitSourceFile);
emitResults.push(emitCallback({
targetSourceFile,
program: this.tsProgram,
host: this.host,
options: this.options,
emitOnlyDtsFiles: false,
writeFile,
customTransformers: {
before: beforeTransforms,
after: customTransforms && customTransforms.afterTs,
afterDeclarations: afterDeclarationsTransforms
}
}));
}
this.compiler.perfRecorder.memory(PerfCheckpoint.Emit);
return (opts && opts.mergeEmitResultsCallback || mergeEmitResults)(emitResults);
});
if (this.options.tracePerformance !== void 0) {
const perf = this.compiler.perfRecorder.finalize();
getFileSystem().writeFile(getFileSystem().resolve(this.options.tracePerformance), JSON.stringify(perf, null, 2));
}
return res;
}
getIndexedComponents() {
return this.compiler.getIndexedComponents();
}
/**
* Gets information for the current program that may be used to generate API
* reference documentation. This includes Angular-specific information, such
* as component inputs and outputs.
*
* @param entryPoint Path to the entry point for the package for which API
* docs should be extracted.
*/
getApiDocumentation(entryPoint, privateModules) {
return this.compiler.getApiDocumentation(entryPoint, privateModules);
}
getEmittedSourceFiles() {
throw new Error("Method not implemented.");
}
};
var defaultEmitCallback = ({ program, targetSourceFile, writeFile, cancellationToken, emitOnlyDtsFiles, customTransformers }) => program.emit(targetSourceFile, writeFile, cancellationToken, emitOnlyDtsFiles, customTransformers);
function mergeEmitResults(emitResults) {
const diagnostics = [];
let emitSkipped = false;
const emittedFiles = [];
for (const er of emitResults) {
diagnostics.push(...er.diagnostics);
emitSkipped = emitSkipped || er.emitSkipped;
emittedFiles.push(...er.emittedFiles || []);
}
return { diagnostics, emitSkipped, emittedFiles };
}
// packages/compiler-cli/src/transformers/program.js
function createProgram({ rootNames, options, host, oldProgram }) {
return new NgtscProgram(rootNames, options, host, oldProgram);
}
// packages/compiler-cli/src/perform_compile.js
import ts5 from "typescript";
// packages/compiler-cli/src/transformers/util.js
import ts4 from "typescript";
function createMessageDiagnostic(messageText) {
return {
file: void 0,
start: void 0,
length: void 0,
category: ts4.DiagnosticCategory.Message,
messageText,
code: DEFAULT_ERROR_CODE,
source: SOURCE
};
}
// packages/compiler-cli/src/perform_compile.js
var defaultFormatHost = {
getCurrentDirectory: () => ts5.sys.getCurrentDirectory(),
getCanonicalFileName: (fileName) => fileName,
getNewLine: () => ts5.sys.newLine
};
function formatDiagnostics(diags, host = defaultFormatHost) {
if (diags && diags.length) {
return diags.map((diagnostic) => replaceTsWithNgInErrors(ts5.formatDiagnosticsWithColorAndContext([diagnostic], host))).join("");
} else {
return "";
}
}
function calcProjectFileAndBasePath(project, host = getFileSystem()) {
const absProject = host.resolve(project);
const projectIsDir = host.lstat(absProject).isDirectory();
const projectFile = projectIsDir ? host.join(absProject, "tsconfig.json") : absProject;
const projectDir = projectIsDir ? absProject : host.dirname(absProject);
const basePath = host.resolve(projectDir);
return { projectFile, basePath };
}
function readConfiguration(project, existingOptions, host = getFileSystem()) {
try {
const fs = getFileSystem();
const readConfigFile = (configFile) => ts5.readConfigFile(configFile, (file) => host.readFile(host.resolve(file)));
const readAngularCompilerOptions = (configFile, parentOptions = {}) => {
const { config: config2, error: error2 } = readConfigFile(configFile);
if (error2) {
return parentOptions;
}
const angularCompilerOptions = config2.angularCompilerOptions ?? config2.bazelOptions?.angularCompilerOptions;
let existingNgCompilerOptions = { ...angularCompilerOptions, ...parentOptions };
if (!config2.extends) {
return existingNgCompilerOptions;
}
const extendsPaths = typeof config2.extends === "string" ? [config2.extends] : config2.extends;
return [...extendsPaths].reverse().reduce((prevOptions, extendsPath) => {
const extendedConfigPath = getExtendedConfigPath(configFile, extendsPath, host, fs);
return extendedConfigPath === null ? prevOptions : readAngularCompilerOptions(extendedConfigPath, prevOptions);
}, existingNgCompilerOptions);
};
const { projectFile, basePath } = calcProjectFileAndBasePath(project, host);
const configFileName = host.resolve(host.pwd(), projectFile);
const { config, error } = readConfigFile(projectFile);
if (error) {
return {
project,
errors: [error],
rootNames: [],
options: {},
emitFlags: EmitFlags.Default
};
}
const existingCompilerOptions = {
genDir: basePath,
basePath,
...readAngularCompilerOptions(configFileName),
...existingOptions
};
const parseConfigHost = createParseConfigHost(host, fs);
const { options, errors, fileNames: rootNames, projectReferences } = ts5.parseJsonConfigFileContent(config, parseConfigHost, basePath, existingCompilerOptions, configFileName);
let emitFlags = EmitFlags.Default;
if (!(options["skipMetadataEmit"] || options["flatModuleOutFile"])) {
emitFlags |= EmitFlags.Metadata;
}
if (options["skipTemplateCodegen"]) {
emitFlags = emitFlags & ~EmitFlags.Codegen;
}
return { project: projectFile, rootNames, projectReferences, options, errors, emitFlags };
} catch (e) {
const errors = [
{
category: ts5.DiagnosticCategory.Error,
messageText: e.stack ?? e.message,
file: void 0,
start: void 0,
length: void 0,
source: "angular",
code: UNKNOWN_ERROR_CODE
}
];
return { project: "", errors, rootNames: [], options: {}, emitFlags: EmitFlags.Default };
}
}
function createParseConfigHost(host, fs = getFileSystem()) {
return {
fileExists: host.exists.bind(host),
readDirectory: createFileSystemTsReadDirectoryFn(fs),
readFile: host.readFile.bind(host),
useCaseSensitiveFileNames: fs.isCaseSensitive()
};
}
function getExtendedConfigPath(configFile, extendsValue, host, fs) {
const result = getExtendedConfigPathWorker(configFile, extendsValue, host, fs);
if (result !== null) {
return result;
}
return getExtendedConfigPathWorker(configFile, `${extendsValue}.json`, host, fs);
}
function getExtendedConfigPathWorker(configFile, extendsValue, host, fs) {
if (extendsValue.startsWith(".") || fs.isRooted(extendsValue)) {
const extendedConfigPath = host.resolve(host.dirname(configFile), extendsValue);
if (host.exists(extendedConfigPath)) {
return extendedConfigPath;
}
} else {
const parseConfigHost = createParseConfigHost(host, fs);
const { resolvedModule } = ts5.nodeModuleNameResolver(extendsValue, configFile, { moduleResolution: ts5.ModuleResolutionKind.NodeNext, resolveJsonModule: true }, parseConfigHost);
if (resolvedModule) {
return absoluteFrom(resolvedModule.resolvedFileName);
}
}
return null;
}
function exitCodeFromResult(diags) {
if (!diags)
return 0;
if (diags.every((diag) => diag.category !== ts5.DiagnosticCategory.Error)) {
return 0;
}
return diags.some((d) => d.source === "angular" && d.code === UNKNOWN_ERROR_CODE) ? 2 : 1;
}
function performCompilation({ rootNames, options, host, oldProgram, emitCallback, mergeEmitResultsCallback, gatherDiagnostics = defaultGatherDiagnostics, customTransformers, emitFlags = EmitFlags.Default, forceEmit = false, modifiedResourceFiles = null }) {
let program;
let emitResult;
let allDiagnostics = [];
try {
if (!host) {
host = createCompilerHost({ options });
}
if (modifiedResourceFiles) {
host.getModifiedResourceFiles = () => modifiedResourceFiles;
}
program = createProgram({ rootNames, host, options, oldProgram });
const beforeDiags = Date.now();
allDiagnostics.push(...gatherDiagnostics(program));
if (options.diagnostics) {
const afterDiags = Date.now();
allDiagnostics.push(createMessageDiagnostic(`Time for diagnostics: ${afterDiags - beforeDiags}ms.`));
}
if (!hasErrors(allDiagnostics)) {
emitResult = program.emit({
emitCallback,
mergeEmitResultsCallback,
customTransformers,
emitFlags,
forceEmit
});
allDiagnostics.push(...emitResult.diagnostics);
return { diagnostics: allDiagnostics, program, emitResult };
}
return { diagnostics: allDiagnostics, program };
} catch (e) {
program = void 0;
allDiagnostics.push({
category: ts5.DiagnosticCategory.Error,
messageText: e.stack ?? e.message,
code: UNKNOWN_ERROR_CODE,
file: void 0,
start: void 0,
length: void 0
});
return { diagnostics: allDiagnostics, program };
}
}
function defaultGatherDiagnostics(program) {
const allDiagnostics = [];
function checkDiagnostics(diags) {
if (diags) {
allDiagnostics.push(...diags);
return !hasErrors(diags);
}
return true;
}
let checkOtherDiagnostics = true;
checkOtherDiagnostics = checkOtherDiagnostics && checkDiagnostics([...program.getTsOptionDiagnostics(), ...program.getNgOptionDiagnostics()]);
checkOtherDiagnostics = checkOtherDiagnostics && checkDiagnostics(program.getTsSyntacticDiagnostics());
checkOtherDiagnostics = checkOtherDiagnostics && checkDiagnostics([
...program.getTsSemanticDiagnostics(),
...program.getNgStructuralDiagnostics()
]);
checkOtherDiagnostics = checkOtherDiagnostics && checkDiagnostics(program.getNgSemanticDiagnostics());
return allDiagnostics;
}
function hasErrors(diags) {
return diags.some((d) => d.category === ts5.DiagnosticCategory.Error);
}
export {
DEFAULT_ERROR_CODE,
UNKNOWN_ERROR_CODE,
SOURCE,
isTsDiagnostic,
EmitFlags,
createCompilerHost,
NgtscProgram,
createProgram,
createMessageDiagnostic,
formatDiagnostics,
calcProjectFileAndBasePath,
readConfiguration,
exitCodeFromResult,
performCompilation,
defaultGatherDiagnostics
};
/**
* @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.dev/license
*/
//# sourceMappingURL=chunk-7DYNTB5R.js.map
{
"version": 3,
"sources": ["../src/transformers/api.ts", "../src/transformers/compiler_host.ts", "../src/ngtsc/program.ts", "../src/transformers/i18n.ts", "../src/typescript_support.ts", "../src/version_helpers.ts", "../src/transformers/program.ts", "../src/perform_compile.ts", "../src/transformers/util.ts"],
"mappings": "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",
"names": ["EmitFlags", "ts", "ts", "ts", "ts", "ts", "ts", "ts", "ts", "config", "error"]
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

import {createRequire as __cjsCompatRequire} from 'module';
const require = __cjsCompatRequire(import.meta.url);
import {
SourceFileLoader
} from "./chunk-Y5V7YWTG.js";
import {
Context,
ExpressionTranslatorVisitor
} from "./chunk-ZUYMYKXC.js";
// packages/compiler-cli/linker/src/fatal_linker_error.js
var FatalLinkerError = class extends Error {
node;
type = "FatalLinkerError";
/**
* Create a new FatalLinkerError.
*
* @param node The AST node where the error occurred.
* @param message A description of the error.
*/
constructor(node, message) {
super(message);
this.node = node;
}
};
function isFatalLinkerError(e) {
return e && e.type === "FatalLinkerError";
}
// packages/compiler-cli/linker/src/ast/utils.js
function assert(node, predicate, expected) {
if (!predicate(node)) {
throw new FatalLinkerError(node, `Unsupported syntax, expected ${expected}.`);
}
}
// packages/compiler-cli/linker/src/ast/ast_value.js
import * as o from "@angular/compiler";
var AstObject = class _AstObject {
expression;
obj;
host;
/**
* Create a new `AstObject` from the given `expression` and `host`.
*/
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;
}
/**
* Returns true if the object has a property called `propertyName`.
*/
has(propertyName) {
return this.obj.has(propertyName);
}
/**
* Returns the number value of the property called `propertyName`.
*
* Throws an error if there is no such property or the property is not a number.
*/
getNumber(propertyName) {
return this.host.parseNumericLiteral(this.getRequiredProperty(propertyName));
}
/**
* Returns the string value of the property called `propertyName`.
*
* Throws an error if there is no such property or the property is not a string.
*/
getString(propertyName) {
return this.host.parseStringLiteral(this.getRequiredProperty(propertyName));
}
/**
* Returns the boolean value of the property called `propertyName`.
*
* Throws an error if there is no such property or the property is not a boolean.
*/
getBoolean(propertyName) {
return this.host.parseBooleanLiteral(this.getRequiredProperty(propertyName));
}
/**
* Returns the nested `AstObject` parsed from the property called `propertyName`.
*
* Throws an error if there is no such property or the property is not an object.
*/
getObject(propertyName) {
const expr = this.getRequiredProperty(propertyName);
const obj = this.host.parseObjectLiteral(expr);
return new _AstObject(expr, obj, this.host);
}
/**
* Returns an array of `AstValue` objects parsed from the property called `propertyName`.
*
* Throws an error if there is no such property or the property is not an array.
*/
getArray(propertyName) {
const arr = this.host.parseArrayLiteral(this.getRequiredProperty(propertyName));
return arr.map((entry) => new AstValue(entry, this.host));
}
/**
* Returns a `WrappedNodeExpr` object that wraps the expression at the property called
* `propertyName`.
*
* Throws an error if there is no such property.
*/
getOpaque(propertyName) {
return new o.WrappedNodeExpr(this.getRequiredProperty(propertyName));
}
/**
* Returns the raw `TExpression` value of the property called `propertyName`.
*
* Throws an error if there is no such property.
*/
getNode(propertyName) {
return this.getRequiredProperty(propertyName);
}
/**
* Returns an `AstValue` that wraps the value of the property called `propertyName`.
*
* Throws an error if there is no such property.
*/
getValue(propertyName) {
return new AstValue(this.getRequiredProperty(propertyName), this.host);
}
/**
* Converts the AstObject to a raw JavaScript object, mapping each property value (as an
* `AstValue`) to the generic type (`T`) via the `mapper` function.
*/
toLiteral(mapper) {
const result = {};
for (const [key, expression] of this.obj) {
result[key] = mapper(new AstValue(expression, this.host), key);
}
return result;
}
/**
* Converts the AstObject to a JavaScript Map, mapping each property value (as an
* `AstValue`) to the generic type (`T`) via the `mapper` function.
*/
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 _AstValue {
expression;
host;
/** Type brand that ensures that the `T` type is respected for assignability. */
\u0275typeBrand = null;
constructor(expression, host) {
this.expression = expression;
this.host = host;
}
/**
* Get the name of the symbol represented by the given expression node, or `null` if it is not a
* symbol.
*/
getSymbolName() {
return this.host.getSymbolName(this.expression);
}
/**
* Is this value a number?
*/
isNumber() {
return this.host.isNumericLiteral(this.expression);
}
/**
* Parse the number from this value, or error if it is not a number.
*/
getNumber() {
return this.host.parseNumericLiteral(this.expression);
}
/**
* Is this value a string?
*/
isString() {
return this.host.isStringLiteral(this.expression);
}
/**
* Parse the string from this value, or error if it is not a string.
*/
getString() {
return this.host.parseStringLiteral(this.expression);
}
/**
* Is this value a boolean?
*/
isBoolean() {
return this.host.isBooleanLiteral(this.expression);
}
/**
* Parse the boolean from this value, or error if it is not a boolean.
*/
getBoolean() {
return this.host.parseBooleanLiteral(this.expression);
}
/**
* Is this value an object literal?
*/
isObject() {
return this.host.isObjectLiteral(this.expression);
}
/**
* Parse this value into an `AstObject`, or error if it is not an object literal.
*/
getObject() {
return AstObject.parse(this.expression, this.host);
}
/**
* Is this value an array literal?
*/
isArray() {
return this.host.isArrayLiteral(this.expression);
}
/** Whether the value is explicitly set to `null`. */
isNull() {
return this.host.isNull(this.expression);
}
/**
* Parse this value into an array of `AstValue` objects, or error if it is not an array literal.
*/
getArray() {
const arr = this.host.parseArrayLiteral(this.expression);
return arr.map((entry) => new _AstValue(entry, this.host));
}
/**
* Is this value a function expression?
*/
isFunction() {
return this.host.isFunctionExpression(this.expression);
}
/**
* Extract the return value as an `AstValue` from this value as a function expression, or error if
* it is not a function expression.
*/
getFunctionReturnValue() {
return new _AstValue(this.host.parseReturnValue(this.expression), this.host);
}
/**
* Extract the parameters from this value as a function expression, or error if it is not a
* function expression.
*/
getFunctionParameters() {
return this.host.parseParameters(this.expression).map((param) => new _AstValue(param, 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));
}
/**
* Return the `TExpression` of this value wrapped in a `WrappedNodeExpr`.
*/
getOpaque() {
return new o.WrappedNodeExpr(this.expression);
}
/**
* Get the range of the location of this value in the original source.
*/
getRange() {
return this.host.getRange(this.expression);
}
};
// packages/compiler-cli/linker/src/file_linker/emit_scopes/emit_scope.js
import { ConstantPool } from "@angular/compiler";
// packages/compiler-cli/linker/src/linker_import_generator.js
var LinkerImportGenerator = class {
factory;
ngImport;
constructor(factory, ngImport) {
this.factory = factory;
this.ngImport = ngImport;
}
addImport(request) {
this.assertModuleName(request.exportModuleSpecifier);
if (request.exportSymbolName === null) {
return this.ngImport;
}
return this.factory.createPropertyAccess(this.ngImport, request.exportSymbolName);
}
assertModuleName(moduleName) {
if (moduleName !== "@angular/core") {
throw new FatalLinkerError(this.ngImport, `Unable to import from anything other than '@angular/core'`);
}
}
};
// packages/compiler-cli/linker/src/file_linker/emit_scopes/emit_scope.js
var EmitScope = class {
ngImport;
translator;
factory;
constantPool = new ConstantPool();
constructor(ngImport, translator, factory) {
this.ngImport = ngImport;
this.translator = translator;
this.factory = factory;
}
/**
* Translate the given Output AST definition expression into a generic `TExpression`.
*
* Use a `LinkerImportGenerator` to handle any imports in the definition.
*/
translateDefinition(definition) {
const expression = this.translator.translateExpression(definition.expression, new LinkerImportGenerator(this.factory, this.ngImport));
if (definition.statements.length > 0) {
const importGenerator = new LinkerImportGenerator(this.factory, this.ngImport);
return this.wrapInIifeWithStatements(expression, definition.statements.map((statement) => this.translator.translateStatement(statement, importGenerator)));
} else {
return expression;
}
}
/**
* Return any constant statements that are shared between all uses of this `EmitScope`.
*/
getConstantStatements() {
const importGenerator = new LinkerImportGenerator(this.factory, 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(
/* name */
null,
/* args */
[],
body
);
return this.factory.createCallExpression(
fn,
/* args */
[],
/* pure */
false
);
}
};
// packages/compiler-cli/linker/src/file_linker/emit_scopes/local_emit_scope.js
var LocalEmitScope = class extends EmitScope {
/**
* Translate the given Output AST definition expression into a generic `TExpression`.
*
* Merges the `ConstantPool` statements with the definition statements when generating the
* definition expression. This means that `ConstantPool` statements will be emitted into an IIFE.
*/
translateDefinition(definition) {
return super.translateDefinition({
expression: definition.expression,
statements: [...this.constantPool.statements, ...definition.statements]
});
}
/**
* It is not valid to call this method, since there will be no shared constant statements - they
* are already emitted in the IIFE alongside the translated definition.
*/
getConstantStatements() {
throw new Error("BUG - LocalEmitScope should not expose any constant statements");
}
};
// packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_linker_selector.js
import semver4 from "semver";
// packages/compiler-cli/linker/src/file_linker/get_source_file.js
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;
};
}
}
// packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_class_metadata_async_linker_1.js
import { compileOpaqueAsyncClassMetadata } from "@angular/compiler";
var PartialClassMetadataAsyncLinkerVersion1 = class {
linkPartialDeclaration(constantPool, metaObj) {
const resolveMetadataKey = "resolveMetadata";
const resolveMetadata = metaObj.getValue(resolveMetadataKey);
if (!resolveMetadata.isFunction()) {
throw new FatalLinkerError(resolveMetadata, `Unsupported \`${resolveMetadataKey}\` value. Expected a function.`);
}
const dependencyResolverFunction = metaObj.getOpaque("resolveDeferredDeps");
const deferredSymbolNames = resolveMetadata.getFunctionParameters().map((p) => p.getSymbolName());
const returnValue = resolveMetadata.getFunctionReturnValue().getObject();
const metadata = {
type: metaObj.getOpaque("type"),
decorators: returnValue.getOpaque("decorators"),
ctorParameters: returnValue.getOpaque("ctorParameters"),
propDecorators: returnValue.getOpaque("propDecorators")
};
return {
expression: compileOpaqueAsyncClassMetadata(metadata, dependencyResolverFunction, deferredSymbolNames),
statements: []
};
}
};
// packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_class_metadata_linker_1.js
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
};
}
// packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_component_linker_1.js
import { ChangeDetectionStrategy, compileComponentFromMetadata, makeBindingParser as makeBindingParser2, parseTemplate, R3TargetBinder, R3TemplateDependencyKind, ViewEncapsulation } from "@angular/compiler";
import semver3 from "semver";
// packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_directive_linker_1.js
import { compileDirectiveFromMetadata, makeBindingParser, ParseLocation, ParseSourceFile, ParseSourceSpan } from "@angular/compiler";
import semver2 from "semver";
// packages/compiler-cli/linker/src/file_linker/partial_linkers/util.js
import { createMayBeForwardRefExpression, outputAst as o2 } from "@angular/compiler";
import semver from "semver";
var PLACEHOLDER_VERSION = "22.1.0-next.0";
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
/* ForwardRefHandling.None */
);
}
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
/* ForwardRefHandling.Unwrapped */
);
}
var STANDALONE_IS_DEFAULT_RANGE = new semver.Range(`>= 19.0.0 || ${PLACEHOLDER_VERSION}`, {
includePrerelease: true
});
function getDefaultStandaloneValue(version) {
return STANDALONE_IS_DEFAULT_RANGE.test(version);
}
// packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_directive_linker_1.js
var PartialDirectiveLinkerVersion1 = class {
sourceUrl;
code;
constructor(sourceUrl, code) {
this.sourceUrl = sourceUrl;
this.code = code;
}
linkPartialDeclaration(constantPool, metaObj, version) {
const meta = toR3DirectiveMeta(metaObj, this.code, this.sourceUrl, version);
return compileDirectiveFromMetadata(meta, constantPool, makeBindingParser());
}
};
function toR3DirectiveMeta(metaObj, code, sourceUrl, version) {
const { major } = new semver2.SemVer(version);
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,
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
},
controlCreate: metaObj.has("controlCreate") ? toControlCreate(metaObj.getObject("controlCreate")) : null,
name: typeName,
usesInheritance: metaObj.has("usesInheritance") ? metaObj.getBoolean("usesInheritance") : false,
isStandalone: metaObj.has("isStandalone") ? metaObj.getBoolean("isStandalone") : getDefaultStandaloneValue(version),
isSignal: metaObj.has("isSignal") ? metaObj.getBoolean("isSignal") : false,
hostDirectives: metaObj.has("hostDirectives") ? toHostDirectivesMetadata(metaObj.getValue("hostDirectives")) : null,
legacyOptionalChaining: major < 22 && version !== PLACEHOLDER_VERSION
};
}
function toInputMapping(value, key) {
if (value.isObject()) {
const obj = value.getObject();
const transformValue = obj.getValue("transformFunction");
return {
classPropertyName: obj.getString("classPropertyName"),
bindingPropertyName: obj.getString("publicName"),
isSignal: obj.getBoolean("isSignal"),
required: obj.getBoolean("isRequired"),
transformFunction: transformValue.isNull() ? null : transformValue.getOpaque()
};
}
return parseLegacyInputPartialOutput(key, value);
}
function toControlCreate(controlCreate) {
const passThroughValue = controlCreate.getValue("passThroughInput");
return {
passThroughInput: passThroughValue.isNull() ? null : passThroughValue.getString()
};
}
function parseLegacyInputPartialOutput(key, value) {
if (value.isString()) {
return {
bindingPropertyName: value.getString(),
classPropertyName: key,
required: false,
transformFunction: null,
isSignal: false
};
}
const values = value.getArray();
if (values.length !== 2 && values.length !== 3) {
throw new FatalLinkerError(value.expression, "Unsupported input, expected a string or an array containing two strings and an optional function");
}
return {
bindingPropertyName: values[0].getString(),
classPropertyName: values[1].getString(),
transformFunction: values.length > 2 ? values[2].getOpaque() : null,
required: false,
isSignal: 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,
isSignal: obj.has("isSignal") ? obj.getBoolean("isSignal") : 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));
}
// packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_component_linker_1.js
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 {
getSourceFile;
sourceUrl;
code;
constructor(getSourceFile, sourceUrl, code) {
this.getSourceFile = getSourceFile;
this.sourceUrl = sourceUrl;
this.code = code;
}
linkPartialDeclaration(constantPool, metaObj, version) {
const meta = this.toR3ComponentMeta(metaObj, version);
return compileComponentFromMetadata(meta, constantPool, makeBindingParser2());
}
/**
* This function derives the `R3ComponentMetadata` from the provided AST object.
*/
toR3ComponentMeta(metaObj, version) {
const templateSource = metaObj.getValue("template");
const isInline = metaObj.has("isInline") ? metaObj.getBoolean("isInline") : false;
const templateInfo = this.getTemplateInfo(templateSource, isInline);
const { major, minor } = new semver3.SemVer(version);
const enableBlockSyntax = major >= 17 || version === PLACEHOLDER_VERSION;
const enableLetSyntax = major > 18 || major === 18 && minor >= 1 || version === PLACEHOLDER_VERSION;
const hasOnPushByDefault = major >= 22 || version === PLACEHOLDER_VERSION;
const template = parseTemplate(templateInfo.code, templateInfo.sourceUrl, {
escapedString: templateInfo.isEscaped,
range: templateInfo.range,
enableI18nLegacyMessageIdFormat: false,
preserveWhitespaces: metaObj.has("preserveWhitespaces") ? metaObj.getBoolean("preserveWhitespaces") : false,
// We normalize line endings if the template is was inline.
i18nNormalizeLineEndingsInICUs: isInline,
enableBlockSyntax,
enableLetSyntax,
// TODO(crisbeto): figure out how this is enabled.
enableSelectorless: false
});
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,
/* isComponentByDefault */
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
});
}
}
const baseMeta = toR3DirectiveMeta(metaObj, this.code, this.sourceUrl, version);
const deferBlockDependencies = this.createR3ComponentDeferMetadata(metaObj, template);
let hasDirectiveDependencies = false;
for (const depFn of deferBlockDependencies.blocks.values()) {
if (depFn !== null) {
hasDirectiveDependencies = true;
}
}
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":
hasDirectiveDependencies = true;
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":
hasDirectiveDependencies = true;
declarations.push({
kind: R3TemplateDependencyKind.NgModule,
type: typeExpr
});
break;
default:
continue;
}
}
}
return {
...baseMeta,
legacyOptionalChaining: major < 22 && version !== PLACEHOLDER_VERSION,
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()) : [],
defer: deferBlockDependencies,
encapsulation: metaObj.has("encapsulation") ? parseEncapsulation(metaObj.getValue("encapsulation")) : ViewEncapsulation.Emulated,
changeDetection: metaObj.has("changeDetection") ? parseChangeDetectionStrategy(metaObj.getValue("changeDetection")) : hasOnPushByDefault ? ChangeDetectionStrategy.OnPush : ChangeDetectionStrategy.Eager,
animations: metaObj.has("animations") ? metaObj.getOpaque("animations") : null,
relativeContextFilePath: this.sourceUrl,
relativeTemplatePath: null,
i18nUseExternalIds: false,
declarations,
hasDirectiveDependencies: !baseMeta.isStandalone || hasDirectiveDependencies,
foreignImports: null
};
}
/**
* Update the range to remove the start and end chars, which should be quotes around the template.
*/
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?.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
};
}
createR3ComponentDeferMetadata(metaObj, template) {
const result = {
mode: 0,
blocks: /* @__PURE__ */ new Map()
};
if (template.nodes.length === 0) {
return result;
}
const boundTarget = new R3TargetBinder(null).bind({ template: template.nodes });
const deferredBlocks = boundTarget.getDeferBlocks();
const dependencies = metaObj.has("deferBlockDependencies") ? metaObj.getArray("deferBlockDependencies") : null;
for (let i = 0; i < deferredBlocks.length; i++) {
const matchingDependencyFn = dependencies?.[i];
if (matchingDependencyFn == null) {
result.blocks.set(deferredBlocks[i], null);
} else {
result.blocks.set(deferredBlocks[i], matchingDependencyFn.isNull() ? null : matchingDependencyFn.getOpaque());
}
}
return result;
}
};
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;
}
// packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_factory_linker_1.js
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;
}
// packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_injectable_linker_1.js
import { compileInjectable, createMayBeForwardRefExpression as createMayBeForwardRefExpression2, outputAst as o3 } from "@angular/compiler";
var PartialInjectableLinkerVersion1 = class {
linkPartialDeclaration(constantPool, metaObj) {
const meta = toR3InjectableMeta(metaObj);
return compileInjectable(
meta,
/* resolveForwardRefs */
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
/* ForwardRefHandling.None */
)
};
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;
}
// packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_injector_linker_1.js
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()) : []
};
}
// packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_ng_module_linker_1.js
import { compileNgModule, R3NgModuleMetadataKind, R3SelectorScopeMode } from "@angular/compiler";
var PartialNgModuleLinkerVersion1 = class {
emitInline;
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 = {
kind: R3NgModuleMetadataKind.Global,
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()));
}
// packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_pipe_linker_1.js
import { compilePipeFromMetadata } from "@angular/compiler";
var PartialPipeLinkerVersion1 = class {
constructor() {
}
linkPartialDeclaration(constantPool, metaObj, version) {
const meta = toR3PipeMeta(metaObj, version);
return compilePipeFromMetadata(meta);
}
};
function toR3PipeMeta(metaObj, version) {
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") : getDefaultStandaloneValue(version);
return {
name: typeName,
type: wrapReference(typeExpr.getOpaque()),
typeArgumentCount: 0,
deps: null,
pipeName: metaObj.getString("name"),
pure,
isStandalone
};
}
// packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_service_linker_1.js
import { compileService } from "@angular/compiler";
var PartialServiceLinkerVersion1 = class {
linkPartialDeclaration(constantPool, metaObj) {
const meta = toR3ServiceMeta(metaObj);
return compileService(
meta,
/* resolveForwardRefs */
false
);
}
};
function toR3ServiceMeta(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,
autoProvided: metaObj.has("autoProvided") ? metaObj.getBoolean("autoProvided") : void 0,
factory: metaObj.has("factory") ? metaObj.getOpaque("factory") : void 0
};
return meta;
}
// packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_linker_selector.js
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 \u0275\u0275ngDeclareClassMetadataAsync = "\u0275\u0275ngDeclareClassMetadataAsync";
var \u0275\u0275ngDeclareService = "\u0275\u0275ngDeclareService";
var declarationFunctions = [
\u0275\u0275ngDeclareDirective,
\u0275\u0275ngDeclareClassMetadata,
\u0275\u0275ngDeclareComponent,
\u0275\u0275ngDeclareFactory,
\u0275\u0275ngDeclareInjectable,
\u0275\u0275ngDeclareInjector,
\u0275\u0275ngDeclareNgModule,
\u0275\u0275ngDeclarePipe,
\u0275\u0275ngDeclareClassMetadataAsync,
\u0275\u0275ngDeclareService
];
function createLinkerMap(environment, sourceUrl, code) {
const linkers = /* @__PURE__ */ new Map();
const LATEST_VERSION_RANGE = getRange("<=", PLACEHOLDER_VERSION);
linkers.set(\u0275\u0275ngDeclareDirective, [
{ range: LATEST_VERSION_RANGE, linker: new PartialDirectiveLinkerVersion1(sourceUrl, code) }
]);
linkers.set(\u0275\u0275ngDeclareClassMetadataAsync, [
{ range: LATEST_VERSION_RANGE, linker: new PartialClassMetadataAsyncLinkerVersion1() }
]);
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() }
]);
linkers.set(\u0275\u0275ngDeclareService, [
{ range: LATEST_VERSION_RANGE, linker: new PartialServiceLinkerVersion1() }
]);
return linkers;
}
var PartialLinkerSelector = class {
linkers;
logger;
unknownDeclarationVersionHandling;
constructor(linkers, logger, unknownDeclarationVersionHandling) {
this.linkers = linkers;
this.logger = logger;
this.unknownDeclarationVersionHandling = unknownDeclarationVersionHandling;
}
/**
* Returns true if there are `PartialLinker` classes that can handle functions with this name.
*/
supportsDeclaration(functionName) {
return this.linkers.has(functionName);
}
/**
* Returns the `PartialLinker` that can handle functions with the given name and version.
* Throws an error if there is none.
*/
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 === PLACEHOLDER_VERSION) {
return linkerRanges[linkerRanges.length - 1].linker;
}
const declarationRange = getRange(">=", minVersion);
for (const { range: linkerRange, linker } of linkerRanges) {
if (semver4.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) {
if (versionStr === "0.0.0" && PLACEHOLDER_VERSION === "0.0.0") {
return new semver4.Range("*.*.*");
}
const version = new semver4.SemVer(versionStr);
version.prerelease = [];
return new semver4.Range(`${comparator}${version.format()}`);
}
// packages/compiler-cli/linker/src/file_linker/file_linker.js
var FileLinker = class {
linkerEnvironment;
linkerSelector;
emitScopes = /* @__PURE__ */ new Map();
constructor(linkerEnvironment, sourceUrl, code) {
this.linkerEnvironment = linkerEnvironment;
this.linkerSelector = new PartialLinkerSelector(createLinkerMap(this.linkerEnvironment, sourceUrl, code), this.linkerEnvironment.logger, this.linkerEnvironment.options.unknownDeclarationVersionHandling);
}
/**
* Return true if the given callee name matches a partial declaration that can be linked.
*/
isPartialDeclaration(calleeName) {
return this.linkerSelector.supportsDeclaration(calleeName);
}
/**
* Link the metadata extracted from the args of a call to a partial declaration function.
*
* The `declarationScope` is used to determine the scope and strategy of emission of the linked
* definition and any shared constant statements.
*
* @param declarationFn the name of the function used to declare the partial declaration - e.g.
* `ɵɵngDeclareDirective`.
* @param args the arguments passed to the declaration function, should be a single object that
* corresponds to the `R3DeclareDirectiveMetadata` or `R3DeclareComponentMetadata` interfaces.
* @param declarationScope the scope that contains this call to the declaration function.
*/
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, version);
return emitScope.translateDefinition(definition);
}
/**
* Return all the shared constant statements and their associated constant scope references, so
* that they can be inserted into the source code.
*/
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);
}
};
// packages/compiler-cli/linker/src/file_linker/linker_options.js
var DEFAULT_LINKER_OPTIONS = {
sourceMapping: true,
linkerJitMode: false,
unknownDeclarationVersionHandling: "error"
};
// packages/compiler-cli/linker/src/file_linker/translator.js
var Translator = class {
factory;
constructor(factory) {
this.factory = factory;
}
/**
* Translate the given output AST in the context of an expression.
*/
translateExpression(expression, imports, options = {}) {
return expression.visitExpression(new ExpressionTranslatorVisitor(this.factory, imports, null, options), new Context(false));
}
/**
* Translate the given output AST in the context of a statement.
*/
translateStatement(statement, imports, options = {}) {
return statement.visitStatement(new ExpressionTranslatorVisitor(this.factory, imports, null, options), new Context(true));
}
};
// packages/compiler-cli/linker/src/file_linker/linker_environment.js
var LinkerEnvironment = class _LinkerEnvironment {
fileSystem;
logger;
host;
factory;
options;
translator;
sourceFileLoader;
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) {
return new _LinkerEnvironment(fileSystem, logger, host, factory, {
sourceMapping: options.sourceMapping ?? DEFAULT_LINKER_OPTIONS.sourceMapping,
linkerJitMode: options.linkerJitMode ?? DEFAULT_LINKER_OPTIONS.linkerJitMode,
unknownDeclarationVersionHandling: options.unknownDeclarationVersionHandling ?? DEFAULT_LINKER_OPTIONS.unknownDeclarationVersionHandling
});
}
};
// packages/compiler-cli/linker/src/file_linker/needs_linking.js
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.dev/license
*/
//# sourceMappingURL=chunk-DYU4R5IG.js.map
{
"version": 3,
"sources": ["../linker/src/fatal_linker_error.ts", "../linker/src/ast/utils.ts", "../linker/src/ast/ast_value.ts", "../linker/src/file_linker/emit_scopes/emit_scope.ts", "../linker/src/linker_import_generator.ts", "../linker/src/file_linker/emit_scopes/local_emit_scope.ts", "../linker/src/file_linker/partial_linkers/partial_linker_selector.ts", "../linker/src/file_linker/get_source_file.ts", "../linker/src/file_linker/partial_linkers/partial_class_metadata_async_linker_1.ts", "../linker/src/file_linker/partial_linkers/partial_class_metadata_linker_1.ts", "../linker/src/file_linker/partial_linkers/partial_component_linker_1.ts", "../linker/src/file_linker/partial_linkers/partial_directive_linker_1.ts", "../linker/src/file_linker/partial_linkers/util.ts", "../linker/src/file_linker/partial_linkers/partial_factory_linker_1.ts", "../linker/src/file_linker/partial_linkers/partial_injectable_linker_1.ts", "../linker/src/file_linker/partial_linkers/partial_injector_linker_1.ts", "../linker/src/file_linker/partial_linkers/partial_ng_module_linker_1.ts", "../linker/src/file_linker/partial_linkers/partial_pipe_linker_1.ts", "../linker/src/file_linker/partial_linkers/partial_service_linker_1.ts", "../linker/src/file_linker/file_linker.ts", "../linker/src/file_linker/linker_options.ts", "../linker/src/file_linker/translator.ts", "../linker/src/file_linker/linker_environment.ts", "../linker/src/file_linker/needs_linking.ts"],
"mappings": "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",
"names": ["semver", "makeBindingParser", "semver", "semver", "o", "o", "semver", "makeBindingParser", "semver", "createMayBeForwardRefExpression", "o", "createMayBeForwardRefExpression", "o", "semver"]
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

import {createRequire as __cjsCompatRequire} from 'module';
const require = __cjsCompatRequire(import.meta.url);
import {
DEFAULT_ERROR_CODE,
EmitFlags,
SOURCE,
createCompilerHost,
createMessageDiagnostic,
exitCodeFromResult,
formatDiagnostics,
performCompilation,
readConfiguration
} from "./chunk-7DYNTB5R.js";
// packages/compiler-cli/src/main.js
import ts2 from "typescript";
import yargs from "yargs";
// packages/compiler-cli/src/perform_watch.js
import * as chokidar from "chokidar";
import * as path from "path";
import ts from "typescript";
function totalCompilationTimeDiagnostic(timeInMillis) {
let duration;
if (timeInMillis > 1e3) {
duration = `${(timeInMillis / 1e3).toPrecision(2)}s`;
} else {
duration = `${timeInMillis}ms`;
}
return {
category: ts.DiagnosticCategory.Message,
messageText: `Total time: ${duration}`,
code: DEFAULT_ERROR_CODE,
source: SOURCE,
file: void 0,
start: void 0,
length: void 0
};
}
var FileChangeEvent;
(function(FileChangeEvent2) {
FileChangeEvent2[FileChangeEvent2["Change"] = 0] = "Change";
FileChangeEvent2[FileChangeEvent2["CreateDelete"] = 1] = "CreateDelete";
FileChangeEvent2[FileChangeEvent2["CreateDeleteDir"] = 2] = "CreateDeleteDir";
})(FileChangeEvent || (FileChangeEvent = {}));
function createPerformWatchHost(configFileName, reportDiagnostics, existingOptions, createEmitCallback) {
return {
reportDiagnostics,
createCompilerHost: (options) => createCompilerHost({ options }),
readConfiguration: () => readConfiguration(configFileName, existingOptions),
createEmitCallback: (options) => createEmitCallback ? createEmitCallback(options) : void 0,
onFileChange: (options, listener, ready) => {
if (!options.basePath) {
reportDiagnostics([
{
category: ts.DiagnosticCategory.Error,
messageText: "Invalid configuration option. baseDir not specified",
source: SOURCE,
code: DEFAULT_ERROR_CODE,
file: void 0,
start: void 0,
length: void 0
}
]);
return { close: () => {
} };
}
const watcher = chokidar.watch(options.basePath, {
// ignore .dotfiles, .js and .map files.
// can't ignore other files as we e.g. want to recompile if an `.html` file changes as well.
ignored: (path2) => /((^[\/\\])\..)|(\.js$)|(\.map$)|(\.metadata\.json|node_modules)/.test(path2),
ignoreInitial: true,
persistent: true
});
watcher.on("all", (event, path2) => {
switch (event) {
case "change":
listener(FileChangeEvent.Change, path2);
break;
case "unlink":
case "add":
listener(FileChangeEvent.CreateDelete, path2);
break;
case "unlinkDir":
case "addDir":
listener(FileChangeEvent.CreateDeleteDir, path2);
break;
}
});
watcher.on("ready", ready);
return { close: () => watcher.close(), ready };
},
setTimeout: ts.sys.clearTimeout && ts.sys.setTimeout || setTimeout,
clearTimeout: ts.sys.setTimeout && ts.sys.clearTimeout || clearTimeout
};
}
function performWatchCompilation(host) {
let cachedProgram;
let cachedCompilerHost;
let cachedOptions;
let timerHandleForRecompilation;
const ignoreFilesForWatch = /* @__PURE__ */ new Set();
const fileCache = /* @__PURE__ */ new Map();
const firstCompileResult = doCompilation();
let resolveReadyPromise;
const readyPromise = new Promise((resolve) => resolveReadyPromise = resolve);
const fileWatcher = host.onFileChange(cachedOptions.options, watchedFileChanged, resolveReadyPromise);
return { close, ready: (cb) => readyPromise.then(cb), firstCompileResult };
function cacheEntry(fileName) {
fileName = path.normalize(fileName);
let entry = fileCache.get(fileName);
if (!entry) {
entry = {};
fileCache.set(fileName, entry);
}
return entry;
}
function close() {
fileWatcher.close();
if (timerHandleForRecompilation) {
host.clearTimeout(timerHandleForRecompilation.timerHandle);
timerHandleForRecompilation = void 0;
}
}
function doCompilation() {
if (!cachedOptions) {
cachedOptions = host.readConfiguration();
}
if (cachedOptions.errors && cachedOptions.errors.length) {
host.reportDiagnostics(cachedOptions.errors);
return cachedOptions.errors;
}
const startTime = Date.now();
if (!cachedCompilerHost) {
cachedCompilerHost = host.createCompilerHost(cachedOptions.options);
const originalWriteFileCallback = cachedCompilerHost.writeFile;
cachedCompilerHost.writeFile = function(fileName, data, writeByteOrderMark, onError, sourceFiles = []) {
ignoreFilesForWatch.add(path.normalize(fileName));
return originalWriteFileCallback(fileName, data, writeByteOrderMark, onError, sourceFiles);
};
const originalFileExists = cachedCompilerHost.fileExists;
cachedCompilerHost.fileExists = function(fileName) {
const ce = cacheEntry(fileName);
if (ce.exists == null) {
ce.exists = originalFileExists.call(this, fileName);
}
return ce.exists;
};
const originalGetSourceFile = cachedCompilerHost.getSourceFile;
cachedCompilerHost.getSourceFile = function(fileName, languageVersion) {
const ce = cacheEntry(fileName);
if (!ce.sf) {
ce.sf = originalGetSourceFile.call(this, fileName, languageVersion);
}
return ce.sf;
};
const originalReadFile = cachedCompilerHost.readFile;
cachedCompilerHost.readFile = function(fileName) {
const ce = cacheEntry(fileName);
if (ce.content == null) {
ce.content = originalReadFile.call(this, fileName);
}
return ce.content;
};
cachedCompilerHost.getModifiedResourceFiles = function() {
if (timerHandleForRecompilation === void 0) {
return void 0;
}
return timerHandleForRecompilation.modifiedResourceFiles;
};
}
ignoreFilesForWatch.clear();
const oldProgram = cachedProgram;
cachedProgram = void 0;
const compileResult = performCompilation({
rootNames: cachedOptions.rootNames,
options: cachedOptions.options,
host: cachedCompilerHost,
oldProgram,
emitCallback: host.createEmitCallback(cachedOptions.options)
});
if (compileResult.diagnostics.length) {
host.reportDiagnostics(compileResult.diagnostics);
}
const endTime = Date.now();
if (cachedOptions.options.diagnostics) {
const totalTime = (endTime - startTime) / 1e3;
host.reportDiagnostics([totalCompilationTimeDiagnostic(endTime - startTime)]);
}
const exitCode = exitCodeFromResult(compileResult.diagnostics);
if (exitCode == 0) {
cachedProgram = compileResult.program;
host.reportDiagnostics([
createMessageDiagnostic("Compilation complete. Watching for file changes.")
]);
} else {
host.reportDiagnostics([
createMessageDiagnostic("Compilation failed. Watching for file changes.")
]);
}
return compileResult.diagnostics;
}
function resetOptions() {
cachedProgram = void 0;
cachedCompilerHost = void 0;
cachedOptions = void 0;
}
function watchedFileChanged(event, fileName) {
const normalizedPath = path.normalize(fileName);
if (cachedOptions && event === FileChangeEvent.Change && // TODO(chuckj): validate that this is sufficient to skip files that were written.
// This assumes that the file path we write is the same file path we will receive in the
// change notification.
normalizedPath === path.normalize(cachedOptions.project)) {
resetOptions();
} else if (event === FileChangeEvent.CreateDelete || event === FileChangeEvent.CreateDeleteDir) {
cachedOptions = void 0;
}
if (event === FileChangeEvent.CreateDeleteDir) {
fileCache.clear();
} else {
fileCache.delete(normalizedPath);
}
if (!ignoreFilesForWatch.has(normalizedPath)) {
startTimerForRecompilation(normalizedPath);
}
}
function startTimerForRecompilation(changedPath) {
if (timerHandleForRecompilation) {
host.clearTimeout(timerHandleForRecompilation.timerHandle);
} else {
timerHandleForRecompilation = {
modifiedResourceFiles: /* @__PURE__ */ new Set(),
timerHandle: void 0
};
}
timerHandleForRecompilation.timerHandle = host.setTimeout(recompile, 250);
timerHandleForRecompilation.modifiedResourceFiles.add(changedPath);
}
function recompile() {
host.reportDiagnostics([
createMessageDiagnostic("File change detected. Starting incremental compilation.")
]);
doCompilation();
timerHandleForRecompilation = void 0;
}
}
// packages/compiler-cli/src/main.js
function main(args, consoleError = console.error, config, customTransformers, programReuse, modifiedResourceFiles) {
let { project, rootNames, options, errors: configErrors, watch: watch2, emitFlags } = config || readNgcCommandLineAndConfiguration(args);
if (configErrors.length) {
return reportErrorsAndExit(
configErrors,
/*options*/
void 0,
consoleError
);
}
if (watch2) {
const result = watchMode(project, options, consoleError);
return reportErrorsAndExit(result.firstCompileResult, options, consoleError);
}
let oldProgram;
if (programReuse !== void 0) {
oldProgram = programReuse.program;
}
const { diagnostics: compileDiags, program } = performCompilation({
rootNames,
options,
emitFlags,
oldProgram,
customTransformers,
modifiedResourceFiles
});
if (programReuse !== void 0) {
programReuse.program = program;
}
return reportErrorsAndExit(compileDiags, options, consoleError);
}
function readNgcCommandLineAndConfiguration(args) {
const options = {};
const parsedArgs = yargs(args).parserConfiguration({ "strip-aliased": true }).option("i18nFile", { type: "string" }).option("i18nFormat", { type: "string" }).option("locale", { type: "string" }).option("missingTranslation", { type: "string", choices: ["error", "warning", "ignore"] }).option("outFile", { type: "string" }).option("watch", { type: "boolean", alias: ["w"] }).parseSync();
if (parsedArgs.i18nFile)
options.i18nInFile = parsedArgs.i18nFile;
if (parsedArgs.i18nFormat)
options.i18nInFormat = parsedArgs.i18nFormat;
if (parsedArgs.locale)
options.i18nInLocale = parsedArgs.locale;
if (parsedArgs.missingTranslation)
options.i18nInMissingTranslations = parsedArgs.missingTranslation;
const config = readCommandLineAndConfiguration(args, options, [
"i18nFile",
"i18nFormat",
"locale",
"missingTranslation",
"watch"
]);
return { ...config, watch: parsedArgs.watch };
}
function readCommandLineAndConfiguration(args, existingOptions = {}, ngCmdLineOptions = []) {
let cmdConfig = ts2.parseCommandLine(args);
const project = cmdConfig.options.project || ".";
const cmdErrors = cmdConfig.errors.filter((e) => {
if (typeof e.messageText === "string") {
const msg = e.messageText;
return !ngCmdLineOptions.some((o) => msg.indexOf(o) >= 0);
}
return true;
});
if (cmdErrors.length) {
return {
project,
rootNames: [],
options: cmdConfig.options,
errors: cmdErrors,
emitFlags: EmitFlags.Default
};
}
const config = readConfiguration(project, cmdConfig.options);
const options = { ...config.options, ...existingOptions };
if (options.locale) {
options.i18nInLocale = options.locale;
}
return {
project,
rootNames: config.rootNames,
options,
errors: config.errors,
emitFlags: config.emitFlags
};
}
function getFormatDiagnosticsHost(options) {
const basePath = options ? options.basePath : void 0;
return {
getCurrentDirectory: () => basePath || ts2.sys.getCurrentDirectory(),
// We need to normalize the path separators here because by default, TypeScript
// compiler hosts use posix canonical paths. In order to print consistent diagnostics,
// we also normalize the paths.
getCanonicalFileName: (fileName) => fileName.replace(/\\/g, "/"),
getNewLine: () => {
if (options && options.newLine !== void 0) {
return options.newLine === ts2.NewLineKind.LineFeed ? "\n" : "\r\n";
}
return ts2.sys.newLine;
}
};
}
function reportErrorsAndExit(allDiagnostics, options, consoleError = console.error) {
const errorsAndWarnings = allDiagnostics.filter((d) => d.category !== ts2.DiagnosticCategory.Message);
printDiagnostics(errorsAndWarnings, options, consoleError);
return exitCodeFromResult(allDiagnostics);
}
function watchMode(project, options, consoleError) {
return performWatchCompilation(createPerformWatchHost(project, (diagnostics) => {
printDiagnostics(diagnostics, options, consoleError);
}, options, void 0));
}
function printDiagnostics(diagnostics, options, consoleError) {
if (diagnostics.length === 0) {
return;
}
const formatHost = getFormatDiagnosticsHost(options);
consoleError(formatDiagnostics(diagnostics, formatHost));
}
export {
main,
readCommandLineAndConfiguration
};
/**
* @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.dev/license
*/
//# sourceMappingURL=chunk-XTZ2FCKL.js.map
{
"version": 3,
"sources": ["../src/main.ts", "../src/perform_watch.ts"],
"mappings": "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",
"names": ["ts", "FileChangeEvent", "path", "watch", "ts"]
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

/**
* @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.dev/license
*/
import { SelectorlessMatcher } from '@angular/compiler';
import ts from 'typescript';
import { ParsedTemplateWithSource } from './resources';
import { ForeignComponentMeta } from '../../../metadata';
/**
* Analyzes the template for invalid use of features relating to foreign components.
*
* @param template The template to analyze.
* @param foreignMatcher A matcher that can be used to identify foreign components.
* @returns A list of diagnostics that should be reported for the template.
*/
export declare function analyzeForeignComponentFeatures(template: ParsedTemplateWithSource, foreignMatcher: SelectorlessMatcher<ForeignComponentMeta> | null): ts.Diagnostic[];
/**
* @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.dev/license
*/
import { ForeignFunctionResolver } from '../../../partial_evaluator';
/**
* A resolver that intercepts any call expression inside `foreignImports` and resolves it
* directly to its first argument (assuming it is an adapter wrapping the foreign component).
*/
export declare const foreignComponentResolver: ForeignFunctionResolver;
+5
-5

@@ -20,3 +20,3 @@

readConfiguration
} from "./chunk-OBEU7PQF.js";
} from "./chunk-7DYNTB5R.js";
import {

@@ -41,3 +41,3 @@ ConsoleLogger,

resourceChangeTicket
} from "./chunk-FOV3WBWP.js";
} from "./chunk-XE56E3TQ.js";
import {

@@ -53,3 +53,3 @@ ActivePerfRecorder,

isShim
} from "./chunk-6ACH6RGL.js";
} from "./chunk-7N525RD4.js";
import {

@@ -77,3 +77,3 @@ CompletionKind,

ngErrorCode
} from "./chunk-3NUMKC7G.js";
} from "./chunk-ZYZIM6UT.js";
import "./chunk-ZUYMYKXC.js";

@@ -109,3 +109,3 @@ import {

import { Version } from "@angular/compiler";
var VERSION = new Version("22.0.1");
var VERSION = new Version("22.1.0-next.0");

@@ -112,0 +112,0 @@ // packages/compiler-cli/private/tooling.js

{
"version": 3,
"sources": ["../src/version.ts", "../private/tooling.ts", "../src/ngtsc/tsc_plugin.ts", "../index.ts"],
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,SAAQ,eAAc;AAEf,IAAM,UAAU,IAAI,QAAQ,mBAAmB;;;ACO/C,IAAM,yBAAyB;EACpC,WAAW;EACX,mBAAmB;;AAGd,IAAM,kCAAkC;EAC7C,GAAG;EACH,WAAW;;AASN,IAAM,0CAA0C,CACrD,SACA,SAAS,UAC+B;AACxC,SAAO,+BAA+B,SAAS,MAAM;AACvD;;;AC6BM,IAAO,cAAP,MAAkB;EAcF;EAbpB,OAAO;EAEC,UAAoC;EACpC,OAA8B;EAC9B,YAA+B;EAEvC,IAAI,WAAQ;AACV,QAAI,KAAK,cAAc,MAAM;AAC3B,YAAM,IAAI,MAAM,2DAA2D;IAC7E;AACA,WAAO,KAAK;EACd;EAEA,YAAoB,WAAa;AAAb,SAAA,YAAA;AAClB,kBAAc,IAAI,iBAAgB,CAAE;EACtC;EAEA,SACE,MACA,YACA,SAA2B;AAK3B,SAAK,UAAU,EAAC,GAAG,KAAK,WAAW,GAAG,QAAO;AAC7C,SAAK,OAAO,eAAe;MAAK;MAAM;MAAY,KAAK;;MAA0B;IAAI;AACrF,WAAO,KAAK;EACd;EAEA,iBACE,SACA,YAAuB;AAWvB,UAAM,eAAe,mBAAmB,YAAW;AACnD,QAAI,KAAK,SAAS,QAAQ,KAAK,YAAY,MAAM;AAC/C,YAAM,IAAI,MAAM,wDAAwD;IAC1E;AACA,SAAK,KAAK,2BAA0B;AACpC,UAAM,gBAAgB,IAAI,sBACxB,SACA,KAAK,MACL,KAAK,SACL,KAAK,KAAK,qBAAqB;AAEjC,UAAM,WAAW,IAAI,uCAAsC;AAC3D,UAAM,WAAW,eAAe,SAAY,SAAS,oBAAoB,UAAU,IAAI;AACvF,QAAI;AAEJ,UAAM,wBAAwB,oBAAI,IAAG;AACrC,QAAI,KAAK,KAAK,6BAA6B,QAAW;AACpD,iBAAW,gBAAgB,KAAK,KAAK,yBAAwB,KAAM,CAAA,GAAI;AACrE,8BAAsB,IAAI,QAAQ,YAAY,CAAC;MACjD;IACF;AAEA,QAAI,eAAe,UAAa,aAAa,MAAM;AACjD,eAAS;QACP;QACA,KAAK;QACL;QACA;QACA;;QACgC;;QACV;MAAK;IAE/B,OAAO;AACL,eAAS,oBAAmB,EAAG,oBAAoB,UAAU;AAC7D,eAAS,2BACP,YACA,UACA,SACA,KAAK,SACL,UACA,eACA,uBACA,cACA,OACA,KAAK;IAET;AACA,SAAK,YAAY,WAAW,WAAW,QAAQ,KAAK,IAAI;AACxD,WAAO;MACL,sBAAsB,KAAK,UAAU;MACrC,eAAe,KAAK,UAAU;;EAElC;EAEA,eAAe,MAAoB;AACjC,QAAI,SAAS,QAAW;AACtB,aAAO,KAAK,SAAS,eAAc;IACrC;AACA,WAAO,KAAK,SAAS,sBAAsB,MAAM,YAAY,YAAY;EAC3E;EAEA,uBAAoB;AAClB,WAAO,KAAK,SAAS,qBAAoB;EAC3C;EAEA,iBAAc;AACZ,WAAO,KAAK,SAAS,kBAAiB;EACxC;EAEA,qBAAkB;AAGhB,SAAK,SAAS,aAAa,MAAM,UAAU,cAAc;AACzD,WAAO,KAAK,SAAS,YAAW,EAAG;EACrC;;;;AC/FF,cAAc,IAAI,iBAAiB,CAAC;",
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,SAAQ,eAAc;AAEf,IAAM,UAAU,IAAI,QAAQ,mBAAmB;;;ACO/C,IAAM,yBAAyB;EACpC,WAAW;EACX,mBAAmB;;AAGd,IAAM,kCAAkC;EAC7C,GAAG;EACH,WAAW;;AASN,IAAM,0CAA0C,CACrD,SACA,SAAS,UAC+B;AACxC,SAAO,+BAA+B,SAAS,MAAM;AACvD;;;AC6BM,IAAO,cAAP,MAAkB;EAcF;EAbpB,OAAO;EAEC,UAAoC;EACpC,OAA8B;EAC9B,YAA+B;EAEvC,IAAI,WAAQ;AACV,QAAI,KAAK,cAAc,MAAM;AAC3B,YAAM,IAAI,MAAM,2DAA2D;IAC7E;AACA,WAAO,KAAK;EACd;EAEA,YAAoB,WAAa;AAAb,SAAA,YAAA;AAClB,kBAAc,IAAI,iBAAgB,CAAE;EACtC;EAEA,SACE,MACA,YACA,SAA2B;AAK3B,SAAK,UAAU,EAAC,GAAG,KAAK,WAAW,GAAG,QAAO;AAC7C,SAAK,OAAO,eAAe;MAAK;MAAM;MAAY,KAAK;;MAA0B;IAAI;AACrF,WAAO,KAAK;EACd;EAEA,iBACE,SACA,YAAuB;AAWvB,UAAM,eAAe,mBAAmB,YAAW;AACnD,QAAI,KAAK,SAAS,QAAQ,KAAK,YAAY,MAAM;AAC/C,YAAM,IAAI,MAAM,wDAAwD;IAC1E;AACA,SAAK,KAAK,2BAA0B;AACpC,UAAM,gBAAgB,IAAI,sBACxB,SACA,KAAK,MACL,KAAK,SACL,KAAK,KAAK,qBAAqB;AAEjC,UAAM,WAAW,IAAI,uCAAsC;AAC3D,UAAM,WAAW,eAAe,SAAY,SAAS,oBAAoB,UAAU,IAAI;AACvF,QAAI;AAEJ,UAAM,wBAAwB,oBAAI,IAAG;AACrC,QAAI,KAAK,KAAK,6BAA6B,QAAW;AACpD,iBAAW,gBAAgB,KAAK,KAAK,yBAAwB,KAAM,CAAA,GAAI;AACrE,8BAAsB,IAAI,QAAQ,YAAY,CAAC;MACjD;IACF;AAEA,QAAI,eAAe,UAAa,aAAa,MAAM;AACjD,eAAS;QACP;QACA,KAAK;QACL;QACA;QACA;;QACgC;;QACV;MAAK;IAE/B,OAAO;AACL,eAAS,oBAAmB,EAAG,oBAAoB,UAAU;AAC7D,eAAS,2BACP,YACA,UACA,SACA,KAAK,SACL,UACA,eACA,uBACA,cACA,OACA,KAAK;IAET;AACA,SAAK,YAAY,WAAW,WAAW,QAAQ,KAAK,IAAI;AACxD,WAAO;MACL,sBAAsB,KAAK,UAAU;MACrC,eAAe,KAAK,UAAU;;EAElC;EAEA,eAAe,MAAoB;AACjC,QAAI,SAAS,QAAW;AACtB,aAAO,KAAK,SAAS,eAAc;IACrC;AACA,WAAO,KAAK,SAAS,sBAAsB,MAAM,YAAY,YAAY;EAC3E;EAEA,uBAAoB;AAClB,WAAO,KAAK,SAAS,qBAAoB;EAC3C;EAEA,iBAAc;AACZ,WAAO,KAAK,SAAS,kBAAiB;EACxC;EAEA,qBAAkB;AAGhB,SAAK,SAAS,aAAa,MAAM,UAAU,cAAc;AACzD,WAAO,KAAK,SAAS,YAAW,EAAG;EACrC;;;;AC7FF,cAAc,IAAI,iBAAiB,CAAC;",
"names": []
}

@@ -11,3 +11,3 @@

isFatalLinkerError
} from "../../chunk-ZURNPVTB.js";
} from "../../chunk-DYU4R5IG.js";
import {

@@ -14,0 +14,0 @@ ConsoleLogger,

@@ -13,3 +13,3 @@

needsLinking
} from "../chunk-ZURNPVTB.js";
} from "../chunk-DYU4R5IG.js";
import "../chunk-Y5V7YWTG.js";

@@ -16,0 +16,0 @@ import "../chunk-ZUYMYKXC.js";

@@ -14,3 +14,3 @@

hasExpressionIdentifier
} from "../chunk-3NUMKC7G.js";
} from "../chunk-ZYZIM6UT.js";
import "../chunk-ZUYMYKXC.js";

@@ -17,0 +17,0 @@ import "../chunk-UTWH365F.js";

@@ -8,3 +8,3 @@

NgCompiler
} from "../chunk-FOV3WBWP.js";
} from "../chunk-XE56E3TQ.js";
import {

@@ -21,3 +21,3 @@ CompilationMode,

unwrapExpression
} from "../chunk-6ACH6RGL.js";
} from "../chunk-7N525RD4.js";
import {

@@ -39,3 +39,3 @@ DtsMetadataReader,

reflectObjectLiteral
} from "../chunk-3NUMKC7G.js";
} from "../chunk-ZYZIM6UT.js";
import "../chunk-ZUYMYKXC.js";

@@ -42,0 +42,0 @@ import {

@@ -7,7 +7,7 @@

getInitializerApiJitTransform
} from "../chunk-6ACH6RGL.js";
} from "../chunk-7N525RD4.js";
import {
ImportedSymbolsTracker,
TypeScriptReflectionHost
} from "../chunk-3NUMKC7G.js";
} from "../chunk-ZYZIM6UT.js";
import "../chunk-ZUYMYKXC.js";

@@ -14,0 +14,0 @@ import {

@@ -7,4 +7,4 @@

angularJitApplicationTransform
} from "../chunk-6ACH6RGL.js";
import "../chunk-3NUMKC7G.js";
} from "../chunk-7N525RD4.js";
import "../chunk-ZYZIM6UT.js";
import "../chunk-ZUYMYKXC.js";

@@ -11,0 +11,0 @@ import "../chunk-UTWH365F.js";

@@ -9,9 +9,9 @@ #!/usr/bin/env node

readCommandLineAndConfiguration
} from "../../chunk-UZZVWWJR.js";
} from "../../chunk-XTZ2FCKL.js";
import {
EmitFlags
} from "../../chunk-OBEU7PQF.js";
import "../../chunk-FOV3WBWP.js";
import "../../chunk-6ACH6RGL.js";
import "../../chunk-3NUMKC7G.js";
} from "../../chunk-7DYNTB5R.js";
import "../../chunk-XE56E3TQ.js";
import "../../chunk-7N525RD4.js";
import "../../chunk-ZYZIM6UT.js";
import "../../chunk-ZUYMYKXC.js";

@@ -18,0 +18,0 @@ import {

@@ -8,7 +8,7 @@ #!/usr/bin/env node

main
} from "../../chunk-UZZVWWJR.js";
import "../../chunk-OBEU7PQF.js";
import "../../chunk-FOV3WBWP.js";
import "../../chunk-6ACH6RGL.js";
import "../../chunk-3NUMKC7G.js";
} from "../../chunk-XTZ2FCKL.js";
import "../../chunk-7DYNTB5R.js";
import "../../chunk-XE56E3TQ.js";
import "../../chunk-7N525RD4.js";
import "../../chunk-ZYZIM6UT.js";
import "../../chunk-ZUYMYKXC.js";

@@ -15,0 +15,0 @@ import {

@@ -10,3 +10,3 @@ /**

import { AstObject, AstValue } from '../../ast/ast_value';
export declare const PLACEHOLDER_VERSION = "22.0.1";
export declare const PLACEHOLDER_VERSION = "22.1.0-next.0";
export declare function wrapReference<TExpression>(wrapped: o.WrappedNodeExpr<TExpression>): R3Reference;

@@ -13,0 +13,0 @@ /**

{
"name": "@angular/compiler-cli",
"version": "22.0.1",
"version": "22.1.0-next.0",
"description": "Angular - the compiler CLI for Node.js",

@@ -33,3 +33,3 @@ "typings": "index.d.ts",

"dependencies": {
"@babel/core": "7.29.0",
"@babel/core": "7.29.7",
"@jridgewell/sourcemap-codec": "^1.4.14",

@@ -48,3 +48,3 @@ "reflect-metadata": "^0.2.0",

"peerDependencies": {
"@angular/compiler": "22.0.1",
"@angular/compiler": "22.1.0-next.0",
"typescript": ">=6.0 <6.1"

@@ -51,0 +51,0 @@ },

@@ -123,1 +123,2 @@ /**

export declare function isAbstractClassDeclaration(clazz: ClassDeclaration): boolean;
export declare function parseStandaloneOption(decorator: Readonly<Decorator | null>, evaluator: PartialEvaluator, implicitStandaloneValue: boolean): boolean;

@@ -149,2 +149,6 @@ /**

/**
* Resolves imported foreign components for code generation.
*/
private resolveForeignComponentImports;
/**
* Resolves information about defer blocks dependencies to make it

@@ -151,0 +155,0 @@ * available for the final `compile` step.

@@ -11,3 +11,4 @@ /**

import { Reference } from '../../../imports';
import { DirectiveResources, DirectiveTypeCheckMeta, HostDirectiveMeta, InputMapping } from '../../../metadata';
import { DirectiveResources, DirectiveTypeCheckMeta, ForeignComponentMeta, HostDirectiveMeta, InputMapping } from '../../../metadata';
export { ForeignComponentMeta } from '../../../metadata';
import { ClassDeclaration, Import } from '../../../reflection';

@@ -61,2 +62,3 @@ import { SubsetOfKeys } from '../../../util/src/typescript';

resolvedImports: Reference<ClassDeclaration>[] | null;
foreignImports: ForeignComponentMeta[] | null;
rawDeferredImports: ts.Expression | null;

@@ -63,0 +65,0 @@ resolvedDeferredImports: Reference<ClassDeclaration>[] | null;

@@ -13,2 +13,3 @@ /**

import { ClassDeclaration } from '../../../reflection';
import { ForeignComponentMeta } from './metadata';
/**

@@ -27,1 +28,5 @@ * Collect the animation names from the static evaluation result.

};
export declare function validateAndFlattenForeignImports(imports: ResolvedValue, expr: ts.Expression): {
foreignImports: ForeignComponentMeta[];
diagnostics: ts.Diagnostic[];
};

@@ -50,2 +50,3 @@ /**

detect(node: ClassDeclaration, decorators: Decorator[] | null): DetectResult<Decorator> | undefined;
isStandalone(decorator: Readonly<Decorator>): boolean;
analyze(clazz: ClassDeclaration, decorator: Readonly<Decorator>): AnalysisOutput<PipeHandlerData>;

@@ -52,0 +53,0 @@ symbol(node: ClassDeclaration, analysis: Readonly<PipeHandlerData>): PipeSymbol;

@@ -387,2 +387,23 @@ /**

/**
* Raised when a foreign component node has an unsupported Angular binding.
*/
FOREIGN_COMPONENT_UNSUPPORTED_BINDING = 8025,
/**
* Raised when a `@content` block is not used as a direct child of a foreign component.
*/
INVALID_CONTENT_PLACEMENT = 8026,
/**
* Raised when a `@content` block is named 'children', which is unnecessary because children should be passed
* implicitly.
*/
FOREIGN_COMPONENT_CONTENT_UNNECESSARY_FOR_CHILDREN = 8027,
/**
* Raised when multiple `@content` blocks with the same name are defined for a foreign component.
*/
CONFLICTING_CONTENT_DECLARATION = 8028,
/**
* Raised when a `@content` block name conflicts with an input binding on the parent foreign component.
*/
CONFLICTING_CONTENT_AND_PROPERTY = 8029,
/**
* A two way binding in a template has an incorrect syntax,

@@ -389,0 +410,0 @@ * parentheses outside brackets. For example:

@@ -13,4 +13,4 @@ /**

export { ResourceRegistry, Resource, DirectiveResources, isExternalResource, ExternalResource, } from './src/resource_registry';
export { extractDirectiveTypeCheckMeta, hasInjectableFields, CompoundMetadataReader, isHostDirectiveMetaForGlobalMode, } from './src/util';
export { extractDirectiveTypeCheckMeta, hasInjectableFields, CompoundMetadataReader, isHostDirectiveMetaForGlobalMode, createForeignComponentMatcher, } from './src/util';
export { ExportedProviderStatusResolver } from './src/providers';
export { HostDirectivesResolver } from './src/host_directives_resolver';

@@ -8,6 +8,11 @@ /**

*/
import { DirectiveMeta as T2DirectiveMeta, Expression, SchemaMetadata, ExternalReference, MatchSource, ClassPropertyName, InputOrOutput, ClassPropertyMapping, TemplateGuardMeta } from '@angular/compiler';
import { DirectiveMeta as T2DirectiveMeta, Expression, SchemaMetadata, ExternalReference, MatchSource, ClassPropertyName, InputOrOutput, ClassPropertyMapping, TemplateGuardMeta, ForeignComponentMeta as T2ForeignComponentMeta } from '@angular/compiler';
import ts from 'typescript';
import { Reference } from '../../imports';
import { ClassDeclaration } from '../../reflection';
/** Metadata for a resolved foreign component import. */
export interface ForeignComponentMeta extends T2ForeignComponentMeta {
ref: Reference<ClassDeclaration>;
rawExpression: ts.Expression;
}
/**

@@ -208,2 +213,9 @@ * Metadata collected for an `NgModule`.

/**
* For standalone components, the list of imported foreign components.
*
* Note that while a foreign import is not likely to be a class, this type is used
* because it includes the expected identifier we'll need, making further code simpler.
*/
foreignImports: ForeignComponentMeta[] | null;
/**
* Node declaring the `imports` of a standalone component. Used to produce diagnostics.

@@ -210,0 +222,0 @@ */

@@ -11,4 +11,4 @@ /**

import { ClassDeclaration, ReflectionHost } from '../../reflection';
import { DirectiveMeta, DirectiveTypeCheckMeta, HostDirectiveMeta, HostDirectiveMetaForGlobalMode, InputMapping, MetadataReader, NgModuleMeta, PipeMeta } from './api';
import { ClassPropertyMapping } from '@angular/compiler';
import { DirectiveMeta, DirectiveTypeCheckMeta, HostDirectiveMeta, HostDirectiveMetaForGlobalMode, InputMapping, MetadataReader, NgModuleMeta, PipeMeta, ForeignComponentMeta } from './api';
import { ClassPropertyMapping, SelectorlessMatcher } from '@angular/compiler';
export declare function extractReferencesFromType(checker: ts.TypeChecker, def: ts.TypeNode, bestGuessOwningModule: OwningModule | null): {

@@ -48,1 +48,3 @@ result: Reference<ClassDeclaration>[];

export declare function isHostDirectiveMetaForGlobalMode(hostDirectiveMeta: HostDirectiveMeta): hostDirectiveMeta is HostDirectiveMetaForGlobalMode;
/** Extracts foreign component names from foreignImports and creates a SelectorlessMatcher. */
export declare function createForeignComponentMatcher(foreignImports: ForeignComponentMeta[] | null): SelectorlessMatcher<ForeignComponentMeta> | null;

@@ -8,5 +8,5 @@ /**

*/
import { DirectiveMatcher, SchemaMetadata } from '@angular/compiler';
import { DirectiveMatcher, SchemaMetadata, SelectorlessMatcher } from '@angular/compiler';
import { Reference } from '../../imports';
import { DirectiveMeta, HostDirectivesResolver, MetadataReader, PipeMeta } from '../../metadata';
import { DirectiveMeta, ForeignComponentMeta, HostDirectivesResolver, MetadataReader, PipeMeta } from '../../metadata';
import { ClassDeclaration } from '../../reflection';

@@ -24,2 +24,6 @@ import { ComponentScopeReader } from './api';

/**
* A `SelectorlessMatcher` instance that contains matched foreign components.
*/
foreignMatcher: SelectorlessMatcher<ForeignComponentMeta> | null;
/**
* All of the directives available in the compilation scope of the declaring NgModule.

@@ -26,0 +30,0 @@ */

@@ -8,3 +8,3 @@ /**

*/
import { AST, LiteralPrimitive, ParseSourceSpan, PropertyRead, SafePropertyRead, TemplateEntity, TmplAstComponent, TmplAstDirective, TmplAstElement, TmplAstHostElement, TmplAstNode, TmplAstTemplate, TmplAstTextAttribute } from '@angular/compiler';
import { AST, ForeignComponentMeta, LiteralPrimitive, ParseSourceSpan, PropertyRead, SafePropertyRead, TemplateEntity, TmplAstComponent, TmplAstDirective, TmplAstElement, TmplAstHostElement, TmplAstNode, TmplAstTemplate, TmplAstTextAttribute } from '@angular/compiler';
import ts from 'typescript';

@@ -222,2 +222,6 @@ import { AbsoluteFsPath } from '../../../../src/ngtsc/file_system';

/**
* Gets the foreign component that matched the given template element.
*/
getForeignComponent(component: ts.ClassDeclaration, element: TmplAstElement): ForeignComponentMeta | null;
/**
* Gets the directives that have been used in a component's template.

@@ -224,0 +228,0 @@ */

@@ -8,3 +8,3 @@ /**

*/
import { AST, BoundTarget, LiteralPrimitive, ParseSourceSpan, PropertyRead, ReferenceTarget, SafePropertyRead, TemplateEntity, TmplAstBoundAttribute, TmplAstBoundEvent, TmplAstComponent, TmplAstDirective, TmplAstElement, TmplAstHostElement, TmplAstNode, TmplAstReference, TmplAstTemplate, TmplAstTextAttribute, TypeCheckingConfig } from '@angular/compiler';
import { AST, BoundTarget, ForeignComponentMeta, LiteralPrimitive, ParseSourceSpan, PropertyRead, ReferenceTarget, SafePropertyRead, TemplateEntity, TmplAstBoundAttribute, TmplAstBoundEvent, TmplAstComponent, TmplAstDirective, TmplAstElement, TmplAstHostElement, TmplAstNode, TmplAstReference, TmplAstTemplate, TmplAstTextAttribute, TypeCheckingConfig } from '@angular/compiler';
import ts from 'typescript';

@@ -102,2 +102,3 @@ import { ErrorCode } from '../../diagnostics';

private elementTagCache;
private generatedRangeCache;
private isComplete;

@@ -112,2 +113,3 @@ private priorResultsAdopted;

getDirectivesOfNode(component: ts.ClassDeclaration, node: TmplAstElement | TmplAstTemplate): TypeCheckableDirectiveMeta[] | null;
getForeignComponent(component: ts.ClassDeclaration, element: TmplAstElement): ForeignComponentMeta | null;
getUsedDirectives(component: ts.ClassDeclaration): TypeCheckableDirectiveMeta[] | null;

@@ -121,2 +123,4 @@ getUsedPipes(component: ts.ClassDeclaration): string[] | null;

generateAllTypeCheckBlocks(): void;
private getGeneratedCodeRanges;
private filterShimDiagnostics;
/**

@@ -123,0 +127,0 @@ * Retrieve type-checking and template parse diagnostics from the given `ts.SourceFile` using the

@@ -15,2 +15,3 @@ /**

import { Environment } from './environment';
export declare const TCB_FUNCTION_PREFIX = "_tcb";
/**

@@ -17,0 +18,0 @@ * An `Environment` representing the single type-checking file into which most (if not all) Type

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

import {createRequire as __cjsCompatRequire} from 'module';
const require = __cjsCompatRequire(import.meta.url);
import {
NgCompiler,
NgCompilerHost,
TrackedIncrementalBuildStrategy,
freshCompilationTicket,
incrementalFromCompilerTicket
} from "./chunk-FOV3WBWP.js";
import {
ActivePerfRecorder,
PerfCheckpoint,
PerfEvent,
PerfPhase,
TsCreateProgramDriver,
retagAllTsFiles
} from "./chunk-6ACH6RGL.js";
import {
OptimizeFor,
replaceTsWithNgInErrors
} from "./chunk-3NUMKC7G.js";
import {
absoluteFrom,
createFileSystemTsReadDirectoryFn,
getFileSystem,
resolve
} from "./chunk-UTWH365F.js";
// packages/compiler-cli/src/transformers/api.js
var DEFAULT_ERROR_CODE = 100;
var UNKNOWN_ERROR_CODE = 500;
var SOURCE = "angular";
function isTsDiagnostic(diagnostic) {
return diagnostic != null && diagnostic.source !== "angular";
}
var EmitFlags;
(function(EmitFlags2) {
EmitFlags2[EmitFlags2["DTS"] = 1] = "DTS";
EmitFlags2[EmitFlags2["JS"] = 2] = "JS";
EmitFlags2[EmitFlags2["Metadata"] = 4] = "Metadata";
EmitFlags2[EmitFlags2["I18nBundle"] = 8] = "I18nBundle";
EmitFlags2[EmitFlags2["Codegen"] = 16] = "Codegen";
EmitFlags2[EmitFlags2["Default"] = 19] = "Default";
EmitFlags2[EmitFlags2["All"] = 31] = "All";
})(EmitFlags || (EmitFlags = {}));
// packages/compiler-cli/src/transformers/compiler_host.js
import ts from "typescript";
var wrapHostForTest = null;
function createCompilerHost({ options, tsHost = ts.createCompilerHost(options, true) }) {
if (wrapHostForTest !== null) {
tsHost = wrapHostForTest(tsHost);
}
return tsHost;
}
// packages/compiler-cli/src/ngtsc/program.js
import { HtmlParser, MessageBundle } from "@angular/compiler";
import ts3 from "typescript";
// packages/compiler-cli/src/transformers/i18n.js
import { Xliff, Xliff2, Xmb } from "@angular/compiler";
import * as path from "path";
function i18nGetExtension(formatName) {
const format = formatName.toLowerCase();
switch (format) {
case "xmb":
return "xmb";
case "xlf":
case "xlif":
case "xliff":
case "xlf2":
case "xliff2":
return "xlf";
}
throw new Error(`Unsupported format "${formatName}"`);
}
function i18nExtract(formatName, outFile, host, options, bundle, pathResolve = path.resolve) {
formatName = formatName || "xlf";
const ext = i18nGetExtension(formatName);
const content = i18nSerialize(bundle, formatName, options);
const dstFile = outFile || `messages.${ext}`;
const dstPath = pathResolve(options.outDir || options.basePath, dstFile);
host.writeFile(dstPath, content, false, void 0, []);
return [dstPath];
}
function i18nSerialize(bundle, formatName, options) {
const format = formatName.toLowerCase();
let serializer;
switch (format) {
case "xmb":
serializer = new Xmb();
break;
case "xliff2":
case "xlf2":
serializer = new Xliff2();
break;
case "xlf":
case "xliff":
default:
serializer = new Xliff();
}
return bundle.write(serializer, getPathNormalizer(options.basePath));
}
function getPathNormalizer(basePath) {
return (sourcePath) => {
sourcePath = basePath ? path.relative(basePath, sourcePath) : sourcePath;
return sourcePath.split(path.sep).join("/");
};
}
// packages/compiler-cli/src/typescript_support.js
import ts2 from "typescript";
// packages/compiler-cli/src/version_helpers.js
function toNumbers(value) {
const suffixIndex = value.lastIndexOf("-");
return value.slice(0, suffixIndex === -1 ? value.length : suffixIndex).split(".").map((segment) => {
const parsed = parseInt(segment, 10);
if (isNaN(parsed)) {
throw Error(`Unable to parse version string ${value}.`);
}
return parsed;
});
}
function compareNumbers(a, b) {
const max = Math.max(a.length, b.length);
const min = Math.min(a.length, b.length);
for (let i = 0; i < min; i++) {
if (a[i] > b[i])
return 1;
if (a[i] < b[i])
return -1;
}
if (min !== max) {
const longestArray = a.length === max ? a : b;
const comparisonResult = a.length === max ? 1 : -1;
for (let i = min; i < max; i++) {
if (longestArray[i] > 0) {
return comparisonResult;
}
}
}
return 0;
}
function compareVersions(v1, v2) {
return compareNumbers(toNumbers(v1), toNumbers(v2));
}
// packages/compiler-cli/src/typescript_support.js
var MIN_TS_VERSION = "6.0.0";
var MAX_TS_VERSION = "6.1.0";
var tsVersion = ts2.version;
function checkVersion(version, minVersion, maxVersion) {
if (compareVersions(version, minVersion) < 0 || compareVersions(version, maxVersion) >= 0) {
throw new Error(`The Angular Compiler requires TypeScript >=${minVersion} and <${maxVersion} but ${version} was found instead.`);
}
}
function verifySupportedTypeScriptVersion() {
checkVersion(tsVersion, MIN_TS_VERSION, MAX_TS_VERSION);
}
// packages/compiler-cli/src/ngtsc/program.js
var NgtscProgram = class {
options;
compiler;
/**
* The primary TypeScript program, which is used for analysis and emit.
*/
tsProgram;
host;
incrementalStrategy;
constructor(rootNames, options, delegateHost, oldProgram) {
this.options = options;
const perfRecorder = ActivePerfRecorder.zeroedToNow();
perfRecorder.phase(PerfPhase.Setup);
if (!options.disableTypeScriptVersionCheck) {
verifySupportedTypeScriptVersion();
}
if (options.compilationMode === "experimental-local") {
options.noEmitOnError = false;
}
const reuseProgram = oldProgram?.compiler.getCurrentProgram();
this.host = NgCompilerHost.wrap(delegateHost, rootNames, options, reuseProgram ?? null);
if (reuseProgram !== void 0) {
retagAllTsFiles(reuseProgram);
}
this.tsProgram = perfRecorder.inPhase(PerfPhase.TypeScriptProgramCreate, () => ts3.createProgram(this.host.inputFiles, options, this.host, reuseProgram));
perfRecorder.phase(PerfPhase.Unaccounted);
perfRecorder.memory(PerfCheckpoint.TypeScriptProgramCreate);
this.host.postProgramCreationCleanup();
const programDriver = new TsCreateProgramDriver(this.tsProgram, this.host, this.options, this.host.shimExtensionPrefixes);
this.incrementalStrategy = oldProgram !== void 0 ? oldProgram.incrementalStrategy.toNextBuildStrategy() : new TrackedIncrementalBuildStrategy();
const modifiedResourceFiles = /* @__PURE__ */ new Set();
if (this.host.getModifiedResourceFiles !== void 0) {
const strings = this.host.getModifiedResourceFiles();
if (strings !== void 0) {
for (const fileString of strings) {
modifiedResourceFiles.add(absoluteFrom(fileString));
}
}
}
let ticket;
if (oldProgram === void 0) {
ticket = freshCompilationTicket(
this.tsProgram,
options,
this.incrementalStrategy,
programDriver,
perfRecorder,
/* enableTemplateTypeChecker */
false,
/* usePoisonedData */
false
);
} else {
ticket = incrementalFromCompilerTicket(oldProgram.compiler, this.tsProgram, this.incrementalStrategy, programDriver, modifiedResourceFiles, perfRecorder);
}
this.compiler = NgCompiler.fromTicket(ticket, this.host);
}
getTsProgram() {
return this.tsProgram;
}
getReuseTsProgram() {
return this.compiler.getCurrentProgram();
}
getTsOptionDiagnostics(cancellationToken) {
return this.compiler.perfRecorder.inPhase(PerfPhase.TypeScriptDiagnostics, () => this.tsProgram.getOptionsDiagnostics(cancellationToken));
}
getTsSyntacticDiagnostics(sourceFile, cancellationToken) {
return this.compiler.perfRecorder.inPhase(PerfPhase.TypeScriptDiagnostics, () => {
const ignoredFiles = this.compiler.ignoreForDiagnostics;
let res;
if (sourceFile !== void 0) {
if (ignoredFiles.has(sourceFile)) {
return [];
}
res = this.tsProgram.getSyntacticDiagnostics(sourceFile, cancellationToken);
} else {
const diagnostics = [];
for (const sf of this.tsProgram.getSourceFiles()) {
if (!ignoredFiles.has(sf)) {
diagnostics.push(...this.tsProgram.getSyntacticDiagnostics(sf, cancellationToken));
}
}
res = diagnostics;
}
return res;
});
}
getTsSemanticDiagnostics(sourceFile, cancellationToken) {
if (this.options.compilationMode === "experimental-local") {
return [];
}
return this.compiler.perfRecorder.inPhase(PerfPhase.TypeScriptDiagnostics, () => {
const ignoredFiles = this.compiler.ignoreForDiagnostics;
let res;
if (sourceFile !== void 0) {
if (ignoredFiles.has(sourceFile)) {
return [];
}
res = this.tsProgram.getSemanticDiagnostics(sourceFile, cancellationToken);
} else {
const diagnostics = [];
for (const sf of this.tsProgram.getSourceFiles()) {
if (!ignoredFiles.has(sf)) {
diagnostics.push(...this.tsProgram.getSemanticDiagnostics(sf, cancellationToken));
}
}
res = diagnostics;
}
return res;
});
}
getNgOptionDiagnostics(cancellationToken) {
return this.compiler.getOptionDiagnostics();
}
getNgStructuralDiagnostics(cancellationToken) {
return [];
}
getNgSemanticDiagnostics(fileName, cancellationToken) {
let sf = void 0;
if (fileName !== void 0) {
sf = this.tsProgram.getSourceFile(fileName);
if (sf === void 0) {
return [];
}
}
if (sf === void 0) {
return this.compiler.getDiagnostics();
} else {
return this.compiler.getDiagnosticsForFile(sf, OptimizeFor.WholeProgram);
}
}
/**
* Ensure that the `NgCompiler` has properly analyzed the program, and allow for the asynchronous
* loading of any resources during the process.
*
* This is used by the Angular CLI to allow for spawning (async) child compilations for things
* like SASS files used in `styleUrls`.
*/
loadNgStructureAsync() {
return this.compiler.analyzeAsync();
}
listLazyRoutes(entryRoute) {
return [];
}
emitXi18n() {
const ctx = new MessageBundle(new HtmlParser(), [], {}, this.options.i18nOutLocale ?? null, this.options.i18nPreserveWhitespaceForLegacyExtraction);
this.compiler.xi18n(ctx);
i18nExtract(this.options.i18nOutFormat ?? null, this.options.i18nOutFile ?? null, this.host, this.options, ctx, resolve);
}
emit(opts) {
if (opts !== void 0 && opts.emitFlags !== void 0 && opts.emitFlags & EmitFlags.I18nBundle) {
this.emitXi18n();
if (!(opts.emitFlags & EmitFlags.JS)) {
return {
diagnostics: [],
emitSkipped: true,
emittedFiles: []
};
}
}
const forceEmit = opts?.forceEmit ?? false;
this.compiler.perfRecorder.memory(PerfCheckpoint.PreEmit);
const res = this.compiler.perfRecorder.inPhase(PerfPhase.TypeScriptEmit, () => {
const { transformers } = this.compiler.prepareEmit();
const ignoreFiles = this.compiler.ignoreForEmit;
const emitCallback = opts?.emitCallback ?? defaultEmitCallback;
const writeFile = (fileName, data, writeByteOrderMark, onError, sourceFiles) => {
if (sourceFiles !== void 0) {
for (const writtenSf of sourceFiles) {
if (writtenSf.isDeclarationFile) {
continue;
}
this.compiler.incrementalCompilation.recordSuccessfulEmit(writtenSf);
}
}
this.host.writeFile(fileName, data, writeByteOrderMark, onError, sourceFiles);
};
const customTransforms = opts && opts.customTransformers;
const beforeTransforms = transformers.before || [];
const afterDeclarationsTransforms = transformers.afterDeclarations;
if (customTransforms !== void 0 && customTransforms.beforeTs !== void 0) {
beforeTransforms.push(...customTransforms.beforeTs);
}
const emitResults = [];
for (const targetSourceFile of this.tsProgram.getSourceFiles()) {
if (targetSourceFile.isDeclarationFile || ignoreFiles.has(targetSourceFile)) {
continue;
}
if (!forceEmit && this.compiler.incrementalCompilation.safeToSkipEmit(targetSourceFile)) {
this.compiler.perfRecorder.eventCount(PerfEvent.EmitSkipSourceFile);
continue;
}
this.compiler.perfRecorder.eventCount(PerfEvent.EmitSourceFile);
emitResults.push(emitCallback({
targetSourceFile,
program: this.tsProgram,
host: this.host,
options: this.options,
emitOnlyDtsFiles: false,
writeFile,
customTransformers: {
before: beforeTransforms,
after: customTransforms && customTransforms.afterTs,
afterDeclarations: afterDeclarationsTransforms
}
}));
}
this.compiler.perfRecorder.memory(PerfCheckpoint.Emit);
return (opts && opts.mergeEmitResultsCallback || mergeEmitResults)(emitResults);
});
if (this.options.tracePerformance !== void 0) {
const perf = this.compiler.perfRecorder.finalize();
getFileSystem().writeFile(getFileSystem().resolve(this.options.tracePerformance), JSON.stringify(perf, null, 2));
}
return res;
}
getIndexedComponents() {
return this.compiler.getIndexedComponents();
}
/**
* Gets information for the current program that may be used to generate API
* reference documentation. This includes Angular-specific information, such
* as component inputs and outputs.
*
* @param entryPoint Path to the entry point for the package for which API
* docs should be extracted.
*/
getApiDocumentation(entryPoint, privateModules) {
return this.compiler.getApiDocumentation(entryPoint, privateModules);
}
getEmittedSourceFiles() {
throw new Error("Method not implemented.");
}
};
var defaultEmitCallback = ({ program, targetSourceFile, writeFile, cancellationToken, emitOnlyDtsFiles, customTransformers }) => program.emit(targetSourceFile, writeFile, cancellationToken, emitOnlyDtsFiles, customTransformers);
function mergeEmitResults(emitResults) {
const diagnostics = [];
let emitSkipped = false;
const emittedFiles = [];
for (const er of emitResults) {
diagnostics.push(...er.diagnostics);
emitSkipped = emitSkipped || er.emitSkipped;
emittedFiles.push(...er.emittedFiles || []);
}
return { diagnostics, emitSkipped, emittedFiles };
}
// packages/compiler-cli/src/transformers/program.js
function createProgram({ rootNames, options, host, oldProgram }) {
return new NgtscProgram(rootNames, options, host, oldProgram);
}
// packages/compiler-cli/src/perform_compile.js
import ts5 from "typescript";
// packages/compiler-cli/src/transformers/util.js
import ts4 from "typescript";
function createMessageDiagnostic(messageText) {
return {
file: void 0,
start: void 0,
length: void 0,
category: ts4.DiagnosticCategory.Message,
messageText,
code: DEFAULT_ERROR_CODE,
source: SOURCE
};
}
// packages/compiler-cli/src/perform_compile.js
var defaultFormatHost = {
getCurrentDirectory: () => ts5.sys.getCurrentDirectory(),
getCanonicalFileName: (fileName) => fileName,
getNewLine: () => ts5.sys.newLine
};
function formatDiagnostics(diags, host = defaultFormatHost) {
if (diags && diags.length) {
return diags.map((diagnostic) => replaceTsWithNgInErrors(ts5.formatDiagnosticsWithColorAndContext([diagnostic], host))).join("");
} else {
return "";
}
}
function calcProjectFileAndBasePath(project, host = getFileSystem()) {
const absProject = host.resolve(project);
const projectIsDir = host.lstat(absProject).isDirectory();
const projectFile = projectIsDir ? host.join(absProject, "tsconfig.json") : absProject;
const projectDir = projectIsDir ? absProject : host.dirname(absProject);
const basePath = host.resolve(projectDir);
return { projectFile, basePath };
}
function readConfiguration(project, existingOptions, host = getFileSystem()) {
try {
const fs = getFileSystem();
const readConfigFile = (configFile) => ts5.readConfigFile(configFile, (file) => host.readFile(host.resolve(file)));
const readAngularCompilerOptions = (configFile, parentOptions = {}) => {
const { config: config2, error: error2 } = readConfigFile(configFile);
if (error2) {
return parentOptions;
}
const angularCompilerOptions = config2.angularCompilerOptions ?? config2.bazelOptions?.angularCompilerOptions;
let existingNgCompilerOptions = { ...angularCompilerOptions, ...parentOptions };
if (!config2.extends) {
return existingNgCompilerOptions;
}
const extendsPaths = typeof config2.extends === "string" ? [config2.extends] : config2.extends;
return [...extendsPaths].reverse().reduce((prevOptions, extendsPath) => {
const extendedConfigPath = getExtendedConfigPath(configFile, extendsPath, host, fs);
return extendedConfigPath === null ? prevOptions : readAngularCompilerOptions(extendedConfigPath, prevOptions);
}, existingNgCompilerOptions);
};
const { projectFile, basePath } = calcProjectFileAndBasePath(project, host);
const configFileName = host.resolve(host.pwd(), projectFile);
const { config, error } = readConfigFile(projectFile);
if (error) {
return {
project,
errors: [error],
rootNames: [],
options: {},
emitFlags: EmitFlags.Default
};
}
const existingCompilerOptions = {
genDir: basePath,
basePath,
...readAngularCompilerOptions(configFileName),
...existingOptions
};
const parseConfigHost = createParseConfigHost(host, fs);
const { options, errors, fileNames: rootNames, projectReferences } = ts5.parseJsonConfigFileContent(config, parseConfigHost, basePath, existingCompilerOptions, configFileName);
let emitFlags = EmitFlags.Default;
if (!(options["skipMetadataEmit"] || options["flatModuleOutFile"])) {
emitFlags |= EmitFlags.Metadata;
}
if (options["skipTemplateCodegen"]) {
emitFlags = emitFlags & ~EmitFlags.Codegen;
}
return { project: projectFile, rootNames, projectReferences, options, errors, emitFlags };
} catch (e) {
const errors = [
{
category: ts5.DiagnosticCategory.Error,
messageText: e.stack ?? e.message,
file: void 0,
start: void 0,
length: void 0,
source: "angular",
code: UNKNOWN_ERROR_CODE
}
];
return { project: "", errors, rootNames: [], options: {}, emitFlags: EmitFlags.Default };
}
}
function createParseConfigHost(host, fs = getFileSystem()) {
return {
fileExists: host.exists.bind(host),
readDirectory: createFileSystemTsReadDirectoryFn(fs),
readFile: host.readFile.bind(host),
useCaseSensitiveFileNames: fs.isCaseSensitive()
};
}
function getExtendedConfigPath(configFile, extendsValue, host, fs) {
const result = getExtendedConfigPathWorker(configFile, extendsValue, host, fs);
if (result !== null) {
return result;
}
return getExtendedConfigPathWorker(configFile, `${extendsValue}.json`, host, fs);
}
function getExtendedConfigPathWorker(configFile, extendsValue, host, fs) {
if (extendsValue.startsWith(".") || fs.isRooted(extendsValue)) {
const extendedConfigPath = host.resolve(host.dirname(configFile), extendsValue);
if (host.exists(extendedConfigPath)) {
return extendedConfigPath;
}
} else {
const parseConfigHost = createParseConfigHost(host, fs);
const { resolvedModule } = ts5.nodeModuleNameResolver(extendsValue, configFile, { moduleResolution: ts5.ModuleResolutionKind.NodeNext, resolveJsonModule: true }, parseConfigHost);
if (resolvedModule) {
return absoluteFrom(resolvedModule.resolvedFileName);
}
}
return null;
}
function exitCodeFromResult(diags) {
if (!diags)
return 0;
if (diags.every((diag) => diag.category !== ts5.DiagnosticCategory.Error)) {
return 0;
}
return diags.some((d) => d.source === "angular" && d.code === UNKNOWN_ERROR_CODE) ? 2 : 1;
}
function performCompilation({ rootNames, options, host, oldProgram, emitCallback, mergeEmitResultsCallback, gatherDiagnostics = defaultGatherDiagnostics, customTransformers, emitFlags = EmitFlags.Default, forceEmit = false, modifiedResourceFiles = null }) {
let program;
let emitResult;
let allDiagnostics = [];
try {
if (!host) {
host = createCompilerHost({ options });
}
if (modifiedResourceFiles) {
host.getModifiedResourceFiles = () => modifiedResourceFiles;
}
program = createProgram({ rootNames, host, options, oldProgram });
const beforeDiags = Date.now();
allDiagnostics.push(...gatherDiagnostics(program));
if (options.diagnostics) {
const afterDiags = Date.now();
allDiagnostics.push(createMessageDiagnostic(`Time for diagnostics: ${afterDiags - beforeDiags}ms.`));
}
if (!hasErrors(allDiagnostics)) {
emitResult = program.emit({
emitCallback,
mergeEmitResultsCallback,
customTransformers,
emitFlags,
forceEmit
});
allDiagnostics.push(...emitResult.diagnostics);
return { diagnostics: allDiagnostics, program, emitResult };
}
return { diagnostics: allDiagnostics, program };
} catch (e) {
program = void 0;
allDiagnostics.push({
category: ts5.DiagnosticCategory.Error,
messageText: e.stack ?? e.message,
code: UNKNOWN_ERROR_CODE,
file: void 0,
start: void 0,
length: void 0
});
return { diagnostics: allDiagnostics, program };
}
}
function defaultGatherDiagnostics(program) {
const allDiagnostics = [];
function checkDiagnostics(diags) {
if (diags) {
allDiagnostics.push(...diags);
return !hasErrors(diags);
}
return true;
}
let checkOtherDiagnostics = true;
checkOtherDiagnostics = checkOtherDiagnostics && checkDiagnostics([...program.getTsOptionDiagnostics(), ...program.getNgOptionDiagnostics()]);
checkOtherDiagnostics = checkOtherDiagnostics && checkDiagnostics(program.getTsSyntacticDiagnostics());
checkOtherDiagnostics = checkOtherDiagnostics && checkDiagnostics([
...program.getTsSemanticDiagnostics(),
...program.getNgStructuralDiagnostics()
]);
checkOtherDiagnostics = checkOtherDiagnostics && checkDiagnostics(program.getNgSemanticDiagnostics());
return allDiagnostics;
}
function hasErrors(diags) {
return diags.some((d) => d.category === ts5.DiagnosticCategory.Error);
}
export {
DEFAULT_ERROR_CODE,
UNKNOWN_ERROR_CODE,
SOURCE,
isTsDiagnostic,
EmitFlags,
createCompilerHost,
NgtscProgram,
createProgram,
createMessageDiagnostic,
formatDiagnostics,
calcProjectFileAndBasePath,
readConfiguration,
exitCodeFromResult,
performCompilation,
defaultGatherDiagnostics
};
/**
* @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.dev/license
*/
//# sourceMappingURL=chunk-OBEU7PQF.js.map
{
"version": 3,
"sources": ["../src/transformers/api.ts", "../src/transformers/compiler_host.ts", "../src/ngtsc/program.ts", "../src/transformers/i18n.ts", "../src/typescript_support.ts", "../src/version_helpers.ts", "../src/transformers/program.ts", "../src/perform_compile.ts", "../src/transformers/util.ts"],
"mappings": "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",
"names": ["EmitFlags", "ts", "ts", "ts", "ts", "ts", "ts", "ts", "ts", "config", "error"]
}
import {createRequire as __cjsCompatRequire} from 'module';
const require = __cjsCompatRequire(import.meta.url);
import {
DEFAULT_ERROR_CODE,
EmitFlags,
SOURCE,
createCompilerHost,
createMessageDiagnostic,
exitCodeFromResult,
formatDiagnostics,
performCompilation,
readConfiguration
} from "./chunk-OBEU7PQF.js";
// packages/compiler-cli/src/main.js
import ts2 from "typescript";
import yargs from "yargs";
// packages/compiler-cli/src/perform_watch.js
import * as chokidar from "chokidar";
import * as path from "path";
import ts from "typescript";
function totalCompilationTimeDiagnostic(timeInMillis) {
let duration;
if (timeInMillis > 1e3) {
duration = `${(timeInMillis / 1e3).toPrecision(2)}s`;
} else {
duration = `${timeInMillis}ms`;
}
return {
category: ts.DiagnosticCategory.Message,
messageText: `Total time: ${duration}`,
code: DEFAULT_ERROR_CODE,
source: SOURCE,
file: void 0,
start: void 0,
length: void 0
};
}
var FileChangeEvent;
(function(FileChangeEvent2) {
FileChangeEvent2[FileChangeEvent2["Change"] = 0] = "Change";
FileChangeEvent2[FileChangeEvent2["CreateDelete"] = 1] = "CreateDelete";
FileChangeEvent2[FileChangeEvent2["CreateDeleteDir"] = 2] = "CreateDeleteDir";
})(FileChangeEvent || (FileChangeEvent = {}));
function createPerformWatchHost(configFileName, reportDiagnostics, existingOptions, createEmitCallback) {
return {
reportDiagnostics,
createCompilerHost: (options) => createCompilerHost({ options }),
readConfiguration: () => readConfiguration(configFileName, existingOptions),
createEmitCallback: (options) => createEmitCallback ? createEmitCallback(options) : void 0,
onFileChange: (options, listener, ready) => {
if (!options.basePath) {
reportDiagnostics([
{
category: ts.DiagnosticCategory.Error,
messageText: "Invalid configuration option. baseDir not specified",
source: SOURCE,
code: DEFAULT_ERROR_CODE,
file: void 0,
start: void 0,
length: void 0
}
]);
return { close: () => {
} };
}
const watcher = chokidar.watch(options.basePath, {
// ignore .dotfiles, .js and .map files.
// can't ignore other files as we e.g. want to recompile if an `.html` file changes as well.
ignored: (path2) => /((^[\/\\])\..)|(\.js$)|(\.map$)|(\.metadata\.json|node_modules)/.test(path2),
ignoreInitial: true,
persistent: true
});
watcher.on("all", (event, path2) => {
switch (event) {
case "change":
listener(FileChangeEvent.Change, path2);
break;
case "unlink":
case "add":
listener(FileChangeEvent.CreateDelete, path2);
break;
case "unlinkDir":
case "addDir":
listener(FileChangeEvent.CreateDeleteDir, path2);
break;
}
});
watcher.on("ready", ready);
return { close: () => watcher.close(), ready };
},
setTimeout: ts.sys.clearTimeout && ts.sys.setTimeout || setTimeout,
clearTimeout: ts.sys.setTimeout && ts.sys.clearTimeout || clearTimeout
};
}
function performWatchCompilation(host) {
let cachedProgram;
let cachedCompilerHost;
let cachedOptions;
let timerHandleForRecompilation;
const ignoreFilesForWatch = /* @__PURE__ */ new Set();
const fileCache = /* @__PURE__ */ new Map();
const firstCompileResult = doCompilation();
let resolveReadyPromise;
const readyPromise = new Promise((resolve) => resolveReadyPromise = resolve);
const fileWatcher = host.onFileChange(cachedOptions.options, watchedFileChanged, resolveReadyPromise);
return { close, ready: (cb) => readyPromise.then(cb), firstCompileResult };
function cacheEntry(fileName) {
fileName = path.normalize(fileName);
let entry = fileCache.get(fileName);
if (!entry) {
entry = {};
fileCache.set(fileName, entry);
}
return entry;
}
function close() {
fileWatcher.close();
if (timerHandleForRecompilation) {
host.clearTimeout(timerHandleForRecompilation.timerHandle);
timerHandleForRecompilation = void 0;
}
}
function doCompilation() {
if (!cachedOptions) {
cachedOptions = host.readConfiguration();
}
if (cachedOptions.errors && cachedOptions.errors.length) {
host.reportDiagnostics(cachedOptions.errors);
return cachedOptions.errors;
}
const startTime = Date.now();
if (!cachedCompilerHost) {
cachedCompilerHost = host.createCompilerHost(cachedOptions.options);
const originalWriteFileCallback = cachedCompilerHost.writeFile;
cachedCompilerHost.writeFile = function(fileName, data, writeByteOrderMark, onError, sourceFiles = []) {
ignoreFilesForWatch.add(path.normalize(fileName));
return originalWriteFileCallback(fileName, data, writeByteOrderMark, onError, sourceFiles);
};
const originalFileExists = cachedCompilerHost.fileExists;
cachedCompilerHost.fileExists = function(fileName) {
const ce = cacheEntry(fileName);
if (ce.exists == null) {
ce.exists = originalFileExists.call(this, fileName);
}
return ce.exists;
};
const originalGetSourceFile = cachedCompilerHost.getSourceFile;
cachedCompilerHost.getSourceFile = function(fileName, languageVersion) {
const ce = cacheEntry(fileName);
if (!ce.sf) {
ce.sf = originalGetSourceFile.call(this, fileName, languageVersion);
}
return ce.sf;
};
const originalReadFile = cachedCompilerHost.readFile;
cachedCompilerHost.readFile = function(fileName) {
const ce = cacheEntry(fileName);
if (ce.content == null) {
ce.content = originalReadFile.call(this, fileName);
}
return ce.content;
};
cachedCompilerHost.getModifiedResourceFiles = function() {
if (timerHandleForRecompilation === void 0) {
return void 0;
}
return timerHandleForRecompilation.modifiedResourceFiles;
};
}
ignoreFilesForWatch.clear();
const oldProgram = cachedProgram;
cachedProgram = void 0;
const compileResult = performCompilation({
rootNames: cachedOptions.rootNames,
options: cachedOptions.options,
host: cachedCompilerHost,
oldProgram,
emitCallback: host.createEmitCallback(cachedOptions.options)
});
if (compileResult.diagnostics.length) {
host.reportDiagnostics(compileResult.diagnostics);
}
const endTime = Date.now();
if (cachedOptions.options.diagnostics) {
const totalTime = (endTime - startTime) / 1e3;
host.reportDiagnostics([totalCompilationTimeDiagnostic(endTime - startTime)]);
}
const exitCode = exitCodeFromResult(compileResult.diagnostics);
if (exitCode == 0) {
cachedProgram = compileResult.program;
host.reportDiagnostics([
createMessageDiagnostic("Compilation complete. Watching for file changes.")
]);
} else {
host.reportDiagnostics([
createMessageDiagnostic("Compilation failed. Watching for file changes.")
]);
}
return compileResult.diagnostics;
}
function resetOptions() {
cachedProgram = void 0;
cachedCompilerHost = void 0;
cachedOptions = void 0;
}
function watchedFileChanged(event, fileName) {
const normalizedPath = path.normalize(fileName);
if (cachedOptions && event === FileChangeEvent.Change && // TODO(chuckj): validate that this is sufficient to skip files that were written.
// This assumes that the file path we write is the same file path we will receive in the
// change notification.
normalizedPath === path.normalize(cachedOptions.project)) {
resetOptions();
} else if (event === FileChangeEvent.CreateDelete || event === FileChangeEvent.CreateDeleteDir) {
cachedOptions = void 0;
}
if (event === FileChangeEvent.CreateDeleteDir) {
fileCache.clear();
} else {
fileCache.delete(normalizedPath);
}
if (!ignoreFilesForWatch.has(normalizedPath)) {
startTimerForRecompilation(normalizedPath);
}
}
function startTimerForRecompilation(changedPath) {
if (timerHandleForRecompilation) {
host.clearTimeout(timerHandleForRecompilation.timerHandle);
} else {
timerHandleForRecompilation = {
modifiedResourceFiles: /* @__PURE__ */ new Set(),
timerHandle: void 0
};
}
timerHandleForRecompilation.timerHandle = host.setTimeout(recompile, 250);
timerHandleForRecompilation.modifiedResourceFiles.add(changedPath);
}
function recompile() {
host.reportDiagnostics([
createMessageDiagnostic("File change detected. Starting incremental compilation.")
]);
doCompilation();
timerHandleForRecompilation = void 0;
}
}
// packages/compiler-cli/src/main.js
function main(args, consoleError = console.error, config, customTransformers, programReuse, modifiedResourceFiles) {
let { project, rootNames, options, errors: configErrors, watch: watch2, emitFlags } = config || readNgcCommandLineAndConfiguration(args);
if (configErrors.length) {
return reportErrorsAndExit(
configErrors,
/*options*/
void 0,
consoleError
);
}
if (watch2) {
const result = watchMode(project, options, consoleError);
return reportErrorsAndExit(result.firstCompileResult, options, consoleError);
}
let oldProgram;
if (programReuse !== void 0) {
oldProgram = programReuse.program;
}
const { diagnostics: compileDiags, program } = performCompilation({
rootNames,
options,
emitFlags,
oldProgram,
customTransformers,
modifiedResourceFiles
});
if (programReuse !== void 0) {
programReuse.program = program;
}
return reportErrorsAndExit(compileDiags, options, consoleError);
}
function readNgcCommandLineAndConfiguration(args) {
const options = {};
const parsedArgs = yargs(args).parserConfiguration({ "strip-aliased": true }).option("i18nFile", { type: "string" }).option("i18nFormat", { type: "string" }).option("locale", { type: "string" }).option("missingTranslation", { type: "string", choices: ["error", "warning", "ignore"] }).option("outFile", { type: "string" }).option("watch", { type: "boolean", alias: ["w"] }).parseSync();
if (parsedArgs.i18nFile)
options.i18nInFile = parsedArgs.i18nFile;
if (parsedArgs.i18nFormat)
options.i18nInFormat = parsedArgs.i18nFormat;
if (parsedArgs.locale)
options.i18nInLocale = parsedArgs.locale;
if (parsedArgs.missingTranslation)
options.i18nInMissingTranslations = parsedArgs.missingTranslation;
const config = readCommandLineAndConfiguration(args, options, [
"i18nFile",
"i18nFormat",
"locale",
"missingTranslation",
"watch"
]);
return { ...config, watch: parsedArgs.watch };
}
function readCommandLineAndConfiguration(args, existingOptions = {}, ngCmdLineOptions = []) {
let cmdConfig = ts2.parseCommandLine(args);
const project = cmdConfig.options.project || ".";
const cmdErrors = cmdConfig.errors.filter((e) => {
if (typeof e.messageText === "string") {
const msg = e.messageText;
return !ngCmdLineOptions.some((o) => msg.indexOf(o) >= 0);
}
return true;
});
if (cmdErrors.length) {
return {
project,
rootNames: [],
options: cmdConfig.options,
errors: cmdErrors,
emitFlags: EmitFlags.Default
};
}
const config = readConfiguration(project, cmdConfig.options);
const options = { ...config.options, ...existingOptions };
if (options.locale) {
options.i18nInLocale = options.locale;
}
return {
project,
rootNames: config.rootNames,
options,
errors: config.errors,
emitFlags: config.emitFlags
};
}
function getFormatDiagnosticsHost(options) {
const basePath = options ? options.basePath : void 0;
return {
getCurrentDirectory: () => basePath || ts2.sys.getCurrentDirectory(),
// We need to normalize the path separators here because by default, TypeScript
// compiler hosts use posix canonical paths. In order to print consistent diagnostics,
// we also normalize the paths.
getCanonicalFileName: (fileName) => fileName.replace(/\\/g, "/"),
getNewLine: () => {
if (options && options.newLine !== void 0) {
return options.newLine === ts2.NewLineKind.LineFeed ? "\n" : "\r\n";
}
return ts2.sys.newLine;
}
};
}
function reportErrorsAndExit(allDiagnostics, options, consoleError = console.error) {
const errorsAndWarnings = allDiagnostics.filter((d) => d.category !== ts2.DiagnosticCategory.Message);
printDiagnostics(errorsAndWarnings, options, consoleError);
return exitCodeFromResult(allDiagnostics);
}
function watchMode(project, options, consoleError) {
return performWatchCompilation(createPerformWatchHost(project, (diagnostics) => {
printDiagnostics(diagnostics, options, consoleError);
}, options, void 0));
}
function printDiagnostics(diagnostics, options, consoleError) {
if (diagnostics.length === 0) {
return;
}
const formatHost = getFormatDiagnosticsHost(options);
consoleError(formatDiagnostics(diagnostics, formatHost));
}
export {
main,
readCommandLineAndConfiguration
};
/**
* @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.dev/license
*/
//# sourceMappingURL=chunk-UZZVWWJR.js.map
{
"version": 3,
"sources": ["../src/main.ts", "../src/perform_watch.ts"],
"mappings": "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",
"names": ["ts", "FileChangeEvent", "path", "watch", "ts"]
}
import {createRequire as __cjsCompatRequire} from 'module';
const require = __cjsCompatRequire(import.meta.url);
import {
SourceFileLoader
} from "./chunk-Y5V7YWTG.js";
import {
Context,
ExpressionTranslatorVisitor
} from "./chunk-ZUYMYKXC.js";
// packages/compiler-cli/linker/src/fatal_linker_error.js
var FatalLinkerError = class extends Error {
node;
type = "FatalLinkerError";
/**
* Create a new FatalLinkerError.
*
* @param node The AST node where the error occurred.
* @param message A description of the error.
*/
constructor(node, message) {
super(message);
this.node = node;
}
};
function isFatalLinkerError(e) {
return e && e.type === "FatalLinkerError";
}
// packages/compiler-cli/linker/src/ast/utils.js
function assert(node, predicate, expected) {
if (!predicate(node)) {
throw new FatalLinkerError(node, `Unsupported syntax, expected ${expected}.`);
}
}
// packages/compiler-cli/linker/src/ast/ast_value.js
import * as o from "@angular/compiler";
var AstObject = class _AstObject {
expression;
obj;
host;
/**
* Create a new `AstObject` from the given `expression` and `host`.
*/
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;
}
/**
* Returns true if the object has a property called `propertyName`.
*/
has(propertyName) {
return this.obj.has(propertyName);
}
/**
* Returns the number value of the property called `propertyName`.
*
* Throws an error if there is no such property or the property is not a number.
*/
getNumber(propertyName) {
return this.host.parseNumericLiteral(this.getRequiredProperty(propertyName));
}
/**
* Returns the string value of the property called `propertyName`.
*
* Throws an error if there is no such property or the property is not a string.
*/
getString(propertyName) {
return this.host.parseStringLiteral(this.getRequiredProperty(propertyName));
}
/**
* Returns the boolean value of the property called `propertyName`.
*
* Throws an error if there is no such property or the property is not a boolean.
*/
getBoolean(propertyName) {
return this.host.parseBooleanLiteral(this.getRequiredProperty(propertyName));
}
/**
* Returns the nested `AstObject` parsed from the property called `propertyName`.
*
* Throws an error if there is no such property or the property is not an object.
*/
getObject(propertyName) {
const expr = this.getRequiredProperty(propertyName);
const obj = this.host.parseObjectLiteral(expr);
return new _AstObject(expr, obj, this.host);
}
/**
* Returns an array of `AstValue` objects parsed from the property called `propertyName`.
*
* Throws an error if there is no such property or the property is not an array.
*/
getArray(propertyName) {
const arr = this.host.parseArrayLiteral(this.getRequiredProperty(propertyName));
return arr.map((entry) => new AstValue(entry, this.host));
}
/**
* Returns a `WrappedNodeExpr` object that wraps the expression at the property called
* `propertyName`.
*
* Throws an error if there is no such property.
*/
getOpaque(propertyName) {
return new o.WrappedNodeExpr(this.getRequiredProperty(propertyName));
}
/**
* Returns the raw `TExpression` value of the property called `propertyName`.
*
* Throws an error if there is no such property.
*/
getNode(propertyName) {
return this.getRequiredProperty(propertyName);
}
/**
* Returns an `AstValue` that wraps the value of the property called `propertyName`.
*
* Throws an error if there is no such property.
*/
getValue(propertyName) {
return new AstValue(this.getRequiredProperty(propertyName), this.host);
}
/**
* Converts the AstObject to a raw JavaScript object, mapping each property value (as an
* `AstValue`) to the generic type (`T`) via the `mapper` function.
*/
toLiteral(mapper) {
const result = {};
for (const [key, expression] of this.obj) {
result[key] = mapper(new AstValue(expression, this.host), key);
}
return result;
}
/**
* Converts the AstObject to a JavaScript Map, mapping each property value (as an
* `AstValue`) to the generic type (`T`) via the `mapper` function.
*/
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 _AstValue {
expression;
host;
/** Type brand that ensures that the `T` type is respected for assignability. */
\u0275typeBrand = null;
constructor(expression, host) {
this.expression = expression;
this.host = host;
}
/**
* Get the name of the symbol represented by the given expression node, or `null` if it is not a
* symbol.
*/
getSymbolName() {
return this.host.getSymbolName(this.expression);
}
/**
* Is this value a number?
*/
isNumber() {
return this.host.isNumericLiteral(this.expression);
}
/**
* Parse the number from this value, or error if it is not a number.
*/
getNumber() {
return this.host.parseNumericLiteral(this.expression);
}
/**
* Is this value a string?
*/
isString() {
return this.host.isStringLiteral(this.expression);
}
/**
* Parse the string from this value, or error if it is not a string.
*/
getString() {
return this.host.parseStringLiteral(this.expression);
}
/**
* Is this value a boolean?
*/
isBoolean() {
return this.host.isBooleanLiteral(this.expression);
}
/**
* Parse the boolean from this value, or error if it is not a boolean.
*/
getBoolean() {
return this.host.parseBooleanLiteral(this.expression);
}
/**
* Is this value an object literal?
*/
isObject() {
return this.host.isObjectLiteral(this.expression);
}
/**
* Parse this value into an `AstObject`, or error if it is not an object literal.
*/
getObject() {
return AstObject.parse(this.expression, this.host);
}
/**
* Is this value an array literal?
*/
isArray() {
return this.host.isArrayLiteral(this.expression);
}
/** Whether the value is explicitly set to `null`. */
isNull() {
return this.host.isNull(this.expression);
}
/**
* Parse this value into an array of `AstValue` objects, or error if it is not an array literal.
*/
getArray() {
const arr = this.host.parseArrayLiteral(this.expression);
return arr.map((entry) => new _AstValue(entry, this.host));
}
/**
* Is this value a function expression?
*/
isFunction() {
return this.host.isFunctionExpression(this.expression);
}
/**
* Extract the return value as an `AstValue` from this value as a function expression, or error if
* it is not a function expression.
*/
getFunctionReturnValue() {
return new _AstValue(this.host.parseReturnValue(this.expression), this.host);
}
/**
* Extract the parameters from this value as a function expression, or error if it is not a
* function expression.
*/
getFunctionParameters() {
return this.host.parseParameters(this.expression).map((param) => new _AstValue(param, 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));
}
/**
* Return the `TExpression` of this value wrapped in a `WrappedNodeExpr`.
*/
getOpaque() {
return new o.WrappedNodeExpr(this.expression);
}
/**
* Get the range of the location of this value in the original source.
*/
getRange() {
return this.host.getRange(this.expression);
}
};
// packages/compiler-cli/linker/src/file_linker/emit_scopes/emit_scope.js
import { ConstantPool } from "@angular/compiler";
// packages/compiler-cli/linker/src/linker_import_generator.js
var LinkerImportGenerator = class {
factory;
ngImport;
constructor(factory, ngImport) {
this.factory = factory;
this.ngImport = ngImport;
}
addImport(request) {
this.assertModuleName(request.exportModuleSpecifier);
if (request.exportSymbolName === null) {
return this.ngImport;
}
return this.factory.createPropertyAccess(this.ngImport, request.exportSymbolName);
}
assertModuleName(moduleName) {
if (moduleName !== "@angular/core") {
throw new FatalLinkerError(this.ngImport, `Unable to import from anything other than '@angular/core'`);
}
}
};
// packages/compiler-cli/linker/src/file_linker/emit_scopes/emit_scope.js
var EmitScope = class {
ngImport;
translator;
factory;
constantPool = new ConstantPool();
constructor(ngImport, translator, factory) {
this.ngImport = ngImport;
this.translator = translator;
this.factory = factory;
}
/**
* Translate the given Output AST definition expression into a generic `TExpression`.
*
* Use a `LinkerImportGenerator` to handle any imports in the definition.
*/
translateDefinition(definition) {
const expression = this.translator.translateExpression(definition.expression, new LinkerImportGenerator(this.factory, this.ngImport));
if (definition.statements.length > 0) {
const importGenerator = new LinkerImportGenerator(this.factory, this.ngImport);
return this.wrapInIifeWithStatements(expression, definition.statements.map((statement) => this.translator.translateStatement(statement, importGenerator)));
} else {
return expression;
}
}
/**
* Return any constant statements that are shared between all uses of this `EmitScope`.
*/
getConstantStatements() {
const importGenerator = new LinkerImportGenerator(this.factory, 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(
/* name */
null,
/* args */
[],
body
);
return this.factory.createCallExpression(
fn,
/* args */
[],
/* pure */
false
);
}
};
// packages/compiler-cli/linker/src/file_linker/emit_scopes/local_emit_scope.js
var LocalEmitScope = class extends EmitScope {
/**
* Translate the given Output AST definition expression into a generic `TExpression`.
*
* Merges the `ConstantPool` statements with the definition statements when generating the
* definition expression. This means that `ConstantPool` statements will be emitted into an IIFE.
*/
translateDefinition(definition) {
return super.translateDefinition({
expression: definition.expression,
statements: [...this.constantPool.statements, ...definition.statements]
});
}
/**
* It is not valid to call this method, since there will be no shared constant statements - they
* are already emitted in the IIFE alongside the translated definition.
*/
getConstantStatements() {
throw new Error("BUG - LocalEmitScope should not expose any constant statements");
}
};
// packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_linker_selector.js
import semver4 from "semver";
// packages/compiler-cli/linker/src/file_linker/get_source_file.js
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;
};
}
}
// packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_class_metadata_async_linker_1.js
import { compileOpaqueAsyncClassMetadata } from "@angular/compiler";
var PartialClassMetadataAsyncLinkerVersion1 = class {
linkPartialDeclaration(constantPool, metaObj) {
const resolveMetadataKey = "resolveMetadata";
const resolveMetadata = metaObj.getValue(resolveMetadataKey);
if (!resolveMetadata.isFunction()) {
throw new FatalLinkerError(resolveMetadata, `Unsupported \`${resolveMetadataKey}\` value. Expected a function.`);
}
const dependencyResolverFunction = metaObj.getOpaque("resolveDeferredDeps");
const deferredSymbolNames = resolveMetadata.getFunctionParameters().map((p) => p.getSymbolName());
const returnValue = resolveMetadata.getFunctionReturnValue().getObject();
const metadata = {
type: metaObj.getOpaque("type"),
decorators: returnValue.getOpaque("decorators"),
ctorParameters: returnValue.getOpaque("ctorParameters"),
propDecorators: returnValue.getOpaque("propDecorators")
};
return {
expression: compileOpaqueAsyncClassMetadata(metadata, dependencyResolverFunction, deferredSymbolNames),
statements: []
};
}
};
// packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_class_metadata_linker_1.js
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
};
}
// packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_component_linker_1.js
import { ChangeDetectionStrategy, compileComponentFromMetadata, makeBindingParser as makeBindingParser2, parseTemplate, R3TargetBinder, R3TemplateDependencyKind, ViewEncapsulation } from "@angular/compiler";
import semver3 from "semver";
// packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_directive_linker_1.js
import { compileDirectiveFromMetadata, makeBindingParser, ParseLocation, ParseSourceFile, ParseSourceSpan } from "@angular/compiler";
import semver2 from "semver";
// packages/compiler-cli/linker/src/file_linker/partial_linkers/util.js
import { createMayBeForwardRefExpression, outputAst as o2 } from "@angular/compiler";
import semver from "semver";
var PLACEHOLDER_VERSION = "22.0.1";
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
/* ForwardRefHandling.None */
);
}
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
/* ForwardRefHandling.Unwrapped */
);
}
var STANDALONE_IS_DEFAULT_RANGE = new semver.Range(`>= 19.0.0 || ${PLACEHOLDER_VERSION}`, {
includePrerelease: true
});
function getDefaultStandaloneValue(version) {
return STANDALONE_IS_DEFAULT_RANGE.test(version);
}
// packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_directive_linker_1.js
var PartialDirectiveLinkerVersion1 = class {
sourceUrl;
code;
constructor(sourceUrl, code) {
this.sourceUrl = sourceUrl;
this.code = code;
}
linkPartialDeclaration(constantPool, metaObj, version) {
const meta = toR3DirectiveMeta(metaObj, this.code, this.sourceUrl, version);
return compileDirectiveFromMetadata(meta, constantPool, makeBindingParser());
}
};
function toR3DirectiveMeta(metaObj, code, sourceUrl, version) {
const { major } = new semver2.SemVer(version);
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,
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
},
controlCreate: metaObj.has("controlCreate") ? toControlCreate(metaObj.getObject("controlCreate")) : null,
name: typeName,
usesInheritance: metaObj.has("usesInheritance") ? metaObj.getBoolean("usesInheritance") : false,
isStandalone: metaObj.has("isStandalone") ? metaObj.getBoolean("isStandalone") : getDefaultStandaloneValue(version),
isSignal: metaObj.has("isSignal") ? metaObj.getBoolean("isSignal") : false,
hostDirectives: metaObj.has("hostDirectives") ? toHostDirectivesMetadata(metaObj.getValue("hostDirectives")) : null,
legacyOptionalChaining: major < 22 && version !== PLACEHOLDER_VERSION
};
}
function toInputMapping(value, key) {
if (value.isObject()) {
const obj = value.getObject();
const transformValue = obj.getValue("transformFunction");
return {
classPropertyName: obj.getString("classPropertyName"),
bindingPropertyName: obj.getString("publicName"),
isSignal: obj.getBoolean("isSignal"),
required: obj.getBoolean("isRequired"),
transformFunction: transformValue.isNull() ? null : transformValue.getOpaque()
};
}
return parseLegacyInputPartialOutput(key, value);
}
function toControlCreate(controlCreate) {
const passThroughValue = controlCreate.getValue("passThroughInput");
return {
passThroughInput: passThroughValue.isNull() ? null : passThroughValue.getString()
};
}
function parseLegacyInputPartialOutput(key, value) {
if (value.isString()) {
return {
bindingPropertyName: value.getString(),
classPropertyName: key,
required: false,
transformFunction: null,
isSignal: false
};
}
const values = value.getArray();
if (values.length !== 2 && values.length !== 3) {
throw new FatalLinkerError(value.expression, "Unsupported input, expected a string or an array containing two strings and an optional function");
}
return {
bindingPropertyName: values[0].getString(),
classPropertyName: values[1].getString(),
transformFunction: values.length > 2 ? values[2].getOpaque() : null,
required: false,
isSignal: 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,
isSignal: obj.has("isSignal") ? obj.getBoolean("isSignal") : 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));
}
// packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_component_linker_1.js
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 {
getSourceFile;
sourceUrl;
code;
constructor(getSourceFile, sourceUrl, code) {
this.getSourceFile = getSourceFile;
this.sourceUrl = sourceUrl;
this.code = code;
}
linkPartialDeclaration(constantPool, metaObj, version) {
const meta = this.toR3ComponentMeta(metaObj, version);
return compileComponentFromMetadata(meta, constantPool, makeBindingParser2());
}
/**
* This function derives the `R3ComponentMetadata` from the provided AST object.
*/
toR3ComponentMeta(metaObj, version) {
const templateSource = metaObj.getValue("template");
const isInline = metaObj.has("isInline") ? metaObj.getBoolean("isInline") : false;
const templateInfo = this.getTemplateInfo(templateSource, isInline);
const { major, minor } = new semver3.SemVer(version);
const enableBlockSyntax = major >= 17 || version === PLACEHOLDER_VERSION;
const enableLetSyntax = major > 18 || major === 18 && minor >= 1 || version === PLACEHOLDER_VERSION;
const hasOnPushByDefault = major >= 22 || version === PLACEHOLDER_VERSION;
const template = parseTemplate(templateInfo.code, templateInfo.sourceUrl, {
escapedString: templateInfo.isEscaped,
range: templateInfo.range,
enableI18nLegacyMessageIdFormat: false,
preserveWhitespaces: metaObj.has("preserveWhitespaces") ? metaObj.getBoolean("preserveWhitespaces") : false,
// We normalize line endings if the template is was inline.
i18nNormalizeLineEndingsInICUs: isInline,
enableBlockSyntax,
enableLetSyntax,
// TODO(crisbeto): figure out how this is enabled.
enableSelectorless: false
});
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,
/* isComponentByDefault */
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
});
}
}
const baseMeta = toR3DirectiveMeta(metaObj, this.code, this.sourceUrl, version);
const deferBlockDependencies = this.createR3ComponentDeferMetadata(metaObj, template);
let hasDirectiveDependencies = false;
for (const depFn of deferBlockDependencies.blocks.values()) {
if (depFn !== null) {
hasDirectiveDependencies = true;
}
}
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":
hasDirectiveDependencies = true;
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":
hasDirectiveDependencies = true;
declarations.push({
kind: R3TemplateDependencyKind.NgModule,
type: typeExpr
});
break;
default:
continue;
}
}
}
return {
...baseMeta,
legacyOptionalChaining: major < 22 && version !== PLACEHOLDER_VERSION,
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()) : [],
defer: deferBlockDependencies,
encapsulation: metaObj.has("encapsulation") ? parseEncapsulation(metaObj.getValue("encapsulation")) : ViewEncapsulation.Emulated,
changeDetection: metaObj.has("changeDetection") ? parseChangeDetectionStrategy(metaObj.getValue("changeDetection")) : hasOnPushByDefault ? ChangeDetectionStrategy.OnPush : ChangeDetectionStrategy.Eager,
animations: metaObj.has("animations") ? metaObj.getOpaque("animations") : null,
relativeContextFilePath: this.sourceUrl,
relativeTemplatePath: null,
i18nUseExternalIds: false,
declarations,
hasDirectiveDependencies: !baseMeta.isStandalone || hasDirectiveDependencies
};
}
/**
* Update the range to remove the start and end chars, which should be quotes around the template.
*/
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?.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
};
}
createR3ComponentDeferMetadata(metaObj, template) {
const result = {
mode: 0,
blocks: /* @__PURE__ */ new Map()
};
if (template.nodes.length === 0) {
return result;
}
const boundTarget = new R3TargetBinder(null).bind({ template: template.nodes });
const deferredBlocks = boundTarget.getDeferBlocks();
const dependencies = metaObj.has("deferBlockDependencies") ? metaObj.getArray("deferBlockDependencies") : null;
for (let i = 0; i < deferredBlocks.length; i++) {
const matchingDependencyFn = dependencies?.[i];
if (matchingDependencyFn == null) {
result.blocks.set(deferredBlocks[i], null);
} else {
result.blocks.set(deferredBlocks[i], matchingDependencyFn.isNull() ? null : matchingDependencyFn.getOpaque());
}
}
return result;
}
};
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;
}
// packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_factory_linker_1.js
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;
}
// packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_injectable_linker_1.js
import { compileInjectable, createMayBeForwardRefExpression as createMayBeForwardRefExpression2, outputAst as o3 } from "@angular/compiler";
var PartialInjectableLinkerVersion1 = class {
linkPartialDeclaration(constantPool, metaObj) {
const meta = toR3InjectableMeta(metaObj);
return compileInjectable(
meta,
/* resolveForwardRefs */
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
/* ForwardRefHandling.None */
)
};
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;
}
// packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_injector_linker_1.js
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()) : []
};
}
// packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_ng_module_linker_1.js
import { compileNgModule, R3NgModuleMetadataKind, R3SelectorScopeMode } from "@angular/compiler";
var PartialNgModuleLinkerVersion1 = class {
emitInline;
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 = {
kind: R3NgModuleMetadataKind.Global,
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()));
}
// packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_pipe_linker_1.js
import { compilePipeFromMetadata } from "@angular/compiler";
var PartialPipeLinkerVersion1 = class {
constructor() {
}
linkPartialDeclaration(constantPool, metaObj, version) {
const meta = toR3PipeMeta(metaObj, version);
return compilePipeFromMetadata(meta);
}
};
function toR3PipeMeta(metaObj, version) {
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") : getDefaultStandaloneValue(version);
return {
name: typeName,
type: wrapReference(typeExpr.getOpaque()),
typeArgumentCount: 0,
deps: null,
pipeName: metaObj.getString("name"),
pure,
isStandalone
};
}
// packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_service_linker_1.js
import { compileService } from "@angular/compiler";
var PartialServiceLinkerVersion1 = class {
linkPartialDeclaration(constantPool, metaObj) {
const meta = toR3ServiceMeta(metaObj);
return compileService(
meta,
/* resolveForwardRefs */
false
);
}
};
function toR3ServiceMeta(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,
autoProvided: metaObj.has("autoProvided") ? metaObj.getBoolean("autoProvided") : void 0,
factory: metaObj.has("factory") ? metaObj.getOpaque("factory") : void 0
};
return meta;
}
// packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_linker_selector.js
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 \u0275\u0275ngDeclareClassMetadataAsync = "\u0275\u0275ngDeclareClassMetadataAsync";
var \u0275\u0275ngDeclareService = "\u0275\u0275ngDeclareService";
var declarationFunctions = [
\u0275\u0275ngDeclareDirective,
\u0275\u0275ngDeclareClassMetadata,
\u0275\u0275ngDeclareComponent,
\u0275\u0275ngDeclareFactory,
\u0275\u0275ngDeclareInjectable,
\u0275\u0275ngDeclareInjector,
\u0275\u0275ngDeclareNgModule,
\u0275\u0275ngDeclarePipe,
\u0275\u0275ngDeclareClassMetadataAsync,
\u0275\u0275ngDeclareService
];
function createLinkerMap(environment, sourceUrl, code) {
const linkers = /* @__PURE__ */ new Map();
const LATEST_VERSION_RANGE = getRange("<=", PLACEHOLDER_VERSION);
linkers.set(\u0275\u0275ngDeclareDirective, [
{ range: LATEST_VERSION_RANGE, linker: new PartialDirectiveLinkerVersion1(sourceUrl, code) }
]);
linkers.set(\u0275\u0275ngDeclareClassMetadataAsync, [
{ range: LATEST_VERSION_RANGE, linker: new PartialClassMetadataAsyncLinkerVersion1() }
]);
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() }
]);
linkers.set(\u0275\u0275ngDeclareService, [
{ range: LATEST_VERSION_RANGE, linker: new PartialServiceLinkerVersion1() }
]);
return linkers;
}
var PartialLinkerSelector = class {
linkers;
logger;
unknownDeclarationVersionHandling;
constructor(linkers, logger, unknownDeclarationVersionHandling) {
this.linkers = linkers;
this.logger = logger;
this.unknownDeclarationVersionHandling = unknownDeclarationVersionHandling;
}
/**
* Returns true if there are `PartialLinker` classes that can handle functions with this name.
*/
supportsDeclaration(functionName) {
return this.linkers.has(functionName);
}
/**
* Returns the `PartialLinker` that can handle functions with the given name and version.
* Throws an error if there is none.
*/
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 === PLACEHOLDER_VERSION) {
return linkerRanges[linkerRanges.length - 1].linker;
}
const declarationRange = getRange(">=", minVersion);
for (const { range: linkerRange, linker } of linkerRanges) {
if (semver4.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) {
if (versionStr === "0.0.0" && PLACEHOLDER_VERSION === "0.0.0") {
return new semver4.Range("*.*.*");
}
const version = new semver4.SemVer(versionStr);
version.prerelease = [];
return new semver4.Range(`${comparator}${version.format()}`);
}
// packages/compiler-cli/linker/src/file_linker/file_linker.js
var FileLinker = class {
linkerEnvironment;
linkerSelector;
emitScopes = /* @__PURE__ */ new Map();
constructor(linkerEnvironment, sourceUrl, code) {
this.linkerEnvironment = linkerEnvironment;
this.linkerSelector = new PartialLinkerSelector(createLinkerMap(this.linkerEnvironment, sourceUrl, code), this.linkerEnvironment.logger, this.linkerEnvironment.options.unknownDeclarationVersionHandling);
}
/**
* Return true if the given callee name matches a partial declaration that can be linked.
*/
isPartialDeclaration(calleeName) {
return this.linkerSelector.supportsDeclaration(calleeName);
}
/**
* Link the metadata extracted from the args of a call to a partial declaration function.
*
* The `declarationScope` is used to determine the scope and strategy of emission of the linked
* definition and any shared constant statements.
*
* @param declarationFn the name of the function used to declare the partial declaration - e.g.
* `ɵɵngDeclareDirective`.
* @param args the arguments passed to the declaration function, should be a single object that
* corresponds to the `R3DeclareDirectiveMetadata` or `R3DeclareComponentMetadata` interfaces.
* @param declarationScope the scope that contains this call to the declaration function.
*/
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, version);
return emitScope.translateDefinition(definition);
}
/**
* Return all the shared constant statements and their associated constant scope references, so
* that they can be inserted into the source code.
*/
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);
}
};
// packages/compiler-cli/linker/src/file_linker/linker_options.js
var DEFAULT_LINKER_OPTIONS = {
sourceMapping: true,
linkerJitMode: false,
unknownDeclarationVersionHandling: "error"
};
// packages/compiler-cli/linker/src/file_linker/translator.js
var Translator = class {
factory;
constructor(factory) {
this.factory = factory;
}
/**
* Translate the given output AST in the context of an expression.
*/
translateExpression(expression, imports, options = {}) {
return expression.visitExpression(new ExpressionTranslatorVisitor(this.factory, imports, null, options), new Context(false));
}
/**
* Translate the given output AST in the context of a statement.
*/
translateStatement(statement, imports, options = {}) {
return statement.visitStatement(new ExpressionTranslatorVisitor(this.factory, imports, null, options), new Context(true));
}
};
// packages/compiler-cli/linker/src/file_linker/linker_environment.js
var LinkerEnvironment = class _LinkerEnvironment {
fileSystem;
logger;
host;
factory;
options;
translator;
sourceFileLoader;
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) {
return new _LinkerEnvironment(fileSystem, logger, host, factory, {
sourceMapping: options.sourceMapping ?? DEFAULT_LINKER_OPTIONS.sourceMapping,
linkerJitMode: options.linkerJitMode ?? DEFAULT_LINKER_OPTIONS.linkerJitMode,
unknownDeclarationVersionHandling: options.unknownDeclarationVersionHandling ?? DEFAULT_LINKER_OPTIONS.unknownDeclarationVersionHandling
});
}
};
// packages/compiler-cli/linker/src/file_linker/needs_linking.js
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.dev/license
*/
//# sourceMappingURL=chunk-ZURNPVTB.js.map
{
"version": 3,
"sources": ["../linker/src/fatal_linker_error.ts", "../linker/src/ast/utils.ts", "../linker/src/ast/ast_value.ts", "../linker/src/file_linker/emit_scopes/emit_scope.ts", "../linker/src/linker_import_generator.ts", "../linker/src/file_linker/emit_scopes/local_emit_scope.ts", "../linker/src/file_linker/partial_linkers/partial_linker_selector.ts", "../linker/src/file_linker/get_source_file.ts", "../linker/src/file_linker/partial_linkers/partial_class_metadata_async_linker_1.ts", "../linker/src/file_linker/partial_linkers/partial_class_metadata_linker_1.ts", "../linker/src/file_linker/partial_linkers/partial_component_linker_1.ts", "../linker/src/file_linker/partial_linkers/partial_directive_linker_1.ts", "../linker/src/file_linker/partial_linkers/util.ts", "../linker/src/file_linker/partial_linkers/partial_factory_linker_1.ts", "../linker/src/file_linker/partial_linkers/partial_injectable_linker_1.ts", "../linker/src/file_linker/partial_linkers/partial_injector_linker_1.ts", "../linker/src/file_linker/partial_linkers/partial_ng_module_linker_1.ts", "../linker/src/file_linker/partial_linkers/partial_pipe_linker_1.ts", "../linker/src/file_linker/partial_linkers/partial_service_linker_1.ts", "../linker/src/file_linker/file_linker.ts", "../linker/src/file_linker/linker_options.ts", "../linker/src/file_linker/translator.ts", "../linker/src/file_linker/linker_environment.ts", "../linker/src/file_linker/needs_linking.ts"],
"mappings": "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",
"names": ["semver", "makeBindingParser", "semver", "semver", "o", "o", "semver", "makeBindingParser", "semver", "createMayBeForwardRefExpression", "o", "createMayBeForwardRefExpression", "o", "semver"]
}