🚨 Active Supply Chain Attack:node-ipc Package Compromised.Learn More
Socket
Book a DemoSign in
Socket

@angular/compiler-cli

Package Overview
Dependencies
Maintainers
2
Versions
1042
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
21.2.10
to
21.2.11
+645
bundles/chunk-BIC7TXT4.js
import {createRequire as __cjsCompatRequire} from 'module';
const require = __cjsCompatRequire(import.meta.url);
import {
NgCompiler,
NgCompilerHost,
TrackedIncrementalBuildStrategy,
freshCompilationTicket,
incrementalFromCompilerTicket
} from "./chunk-WHZ7QER2.js";
import {
ActivePerfRecorder,
OptimizeFor,
PerfCheckpoint,
PerfEvent,
PerfPhase,
TsCreateProgramDriver,
replaceTsWithNgInErrors,
retagAllTsFiles
} from "./chunk-DIHVL7FU.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 = "5.9.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-BIC7TXT4.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-BIC7TXT4.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-CP2EL74W.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

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

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

+1
-1

@@ -458,3 +458,3 @@

import semver from "semver";
var PLACEHOLDER_VERSION = "21.2.10";
var PLACEHOLDER_VERSION = "21.2.11";
function wrapReference(wrapped) {

@@ -461,0 +461,0 @@ return { value: wrapped, type: wrapped };

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

readConfiguration
} from "./chunk-HLSQSBNV.js";
} from "./chunk-BIC7TXT4.js";
import {

@@ -38,3 +38,3 @@ ConsoleLogger,

isDocEntryWithSourceInfo
} from "./chunk-RGJL4RYF.js";
} from "./chunk-WHZ7QER2.js";
import {

@@ -51,3 +51,3 @@ ActivePerfRecorder,

ngErrorCode
} from "./chunk-O3K5OHL7.js";
} from "./chunk-DIHVL7FU.js";
import "./chunk-SOKUOCYN.js";

@@ -83,3 +83,3 @@ import {

import { Version } from "@angular/compiler";
var VERSION = new Version("21.2.10");
var VERSION = new Version("21.2.11");

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

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

NgCompiler
} from "../chunk-RGJL4RYF.js";
} from "../chunk-WHZ7QER2.js";
import {

@@ -36,3 +36,3 @@ CompilationMode,

unwrapExpression
} from "../chunk-O3K5OHL7.js";
} from "../chunk-DIHVL7FU.js";
import "../chunk-SOKUOCYN.js";

@@ -39,0 +39,0 @@ import {

@@ -9,3 +9,3 @@

getInitializerApiJitTransform
} from "../chunk-O3K5OHL7.js";
} from "../chunk-DIHVL7FU.js";
import "../chunk-SOKUOCYN.js";

@@ -12,0 +12,0 @@ import {

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

angularJitApplicationTransform
} from "../chunk-O3K5OHL7.js";
} from "../chunk-DIHVL7FU.js";
import "../chunk-SOKUOCYN.js";

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

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

readCommandLineAndConfiguration
} from "../../chunk-LVEE7L62.js";
} from "../../chunk-CP2EL74W.js";
import {
EmitFlags
} from "../../chunk-HLSQSBNV.js";
import "../../chunk-RGJL4RYF.js";
import "../../chunk-O3K5OHL7.js";
} from "../../chunk-BIC7TXT4.js";
import "../../chunk-WHZ7QER2.js";
import "../../chunk-DIHVL7FU.js";
import "../../chunk-SOKUOCYN.js";

@@ -17,0 +17,0 @@ import {

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

main
} from "../../chunk-LVEE7L62.js";
import "../../chunk-HLSQSBNV.js";
import "../../chunk-RGJL4RYF.js";
import "../../chunk-O3K5OHL7.js";
} from "../../chunk-CP2EL74W.js";
import "../../chunk-BIC7TXT4.js";
import "../../chunk-WHZ7QER2.js";
import "../../chunk-DIHVL7FU.js";
import "../../chunk-SOKUOCYN.js";

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

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

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

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

{
"name": "@angular/compiler-cli",
"version": "21.2.10",
"version": "21.2.11",
"description": "Angular - the compiler CLI for Node.js",

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

"peerDependencies": {
"@angular/compiler": "21.2.10",
"@angular/compiler": "21.2.11",
"typescript": ">=5.9 <6.1"

@@ -49,0 +49,0 @@ },

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

import { ReferenceEmitter } from '../../imports';
import { ReflectionHost } from '../../reflection';
import { ImportManager } from '../../translator';

@@ -34,3 +33,3 @@ import { TcbDirectiveMetadata, TcbPipeMetadata, TypeCheckingConfig } from '../api';

protected pipeInstStatements: TcbExpr[];
constructor(config: TypeCheckingConfig, importManager: ImportManager, refEmitter: ReferenceEmitter, reflector: ReflectionHost, contextFile: ts.SourceFile);
constructor(config: TypeCheckingConfig, importManager: ImportManager, refEmitter: ReferenceEmitter, contextFile: ts.SourceFile);
/**

@@ -37,0 +36,0 @@ * Get an expression referring to a type constructor for the given directive.

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

*/
import { TransplantedType } from '@angular/compiler';
import ts from 'typescript';
import { ImportFlags, Reference, ReferenceEmitter } from '../../imports';
import { ReflectionHost } from '../../reflection';
import { ImportManager } from '../../translator';

@@ -25,13 +23,6 @@ import { TcbReferenceMetadata } from '../api';

refEmitter: ReferenceEmitter;
readonly reflector: ReflectionHost;
contextFile: ts.SourceFile;
constructor(importManager: ImportManager, refEmitter: ReferenceEmitter, reflector: ReflectionHost, contextFile: ts.SourceFile);
constructor(importManager: ImportManager, refEmitter: ReferenceEmitter, contextFile: ts.SourceFile);
canReferenceType(ref: Reference, flags?: ImportFlags): boolean;
/**
* Generate a `ts.TypeNode` that references the given node as a type.
*
* This may involve importing the node into the file if it's not declared there already.
*/
referenceType(ref: Reference, flags?: ImportFlags): ts.TypeNode;
/**
* Generates a `TcbExpr` from a `TcbReferenceMetadata` object.

@@ -41,8 +32,2 @@ */

referenceExternalSymbol(moduleName: string, name: string): TcbExpr;
/**
* Generates a `ts.TypeNode` representing a type that is being referenced from a different place
* in the program. Any type references inside the transplanted type will be rewritten so that
* they can be imported in the context file.
*/
referenceTransplantedType(type: TransplantedType<Reference<ts.TypeNode>>): ts.TypeNode;
}

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

import { Reference } from '../../imports';
import { ClassDeclaration } from '../../reflection';
import { ClassDeclaration, ReflectionHost } from '../../reflection';
import ts from 'typescript';

@@ -19,5 +19,5 @@ import { TcbGenericContextBehavior } from './ops/context';

*/
export declare function adaptTypeCheckBlockMetadata(ref: Reference<ClassDeclaration<ts.ClassDeclaration>>, meta: TypeCheckBlockMetadata, env: Environment, genericContextBehavior: TcbGenericContextBehavior): {
export declare function adaptTypeCheckBlockMetadata(ref: Reference<ClassDeclaration<ts.ClassDeclaration>>, meta: TypeCheckBlockMetadata, env: Environment, reflector: ReflectionHost, genericContextBehavior: TcbGenericContextBehavior): {
tcbMeta: TcbTypeCheckBlockMetadata;
component: TcbComponentMetadata;
};

@@ -78,5 +78,5 @@ /**

export declare function ensureTypeCheckFilePreparationImports(env: ReferenceEmitEnvironment): void;
export declare function checkIfGenericTypeBoundsCanBeEmitted(node: ClassDeclaration<ts.ClassDeclaration>, reflector: ReflectionHost, env: ReferenceEmitEnvironment): boolean;
export declare function checkIfGenericTypeBoundsCanBeEmitted(node: ClassDeclaration<ts.ClassDeclaration>, reflector: ReflectionHost, canReferenceType: (ref: Reference) => boolean): boolean;
export declare function findNodeInFile<T extends ts.Node>(file: ts.SourceFile, predicate: (node: ts.Node) => node is T): T | null;
export declare function findNodeInFile(file: ts.SourceFile, predicate: (node: ts.Node) => boolean): ts.Node | null;
export declare function generateTcbTypeParameters(typeParameters: ReadonlyArray<ts.TypeParameterDeclaration>, sourceFile: ts.SourceFile): TcbTypeParameter[];

@@ -31,6 +31,6 @@ /**

private tcbStatements;
constructor(fileName: AbsoluteFsPath, config: TypeCheckingConfig, refEmitter: ReferenceEmitter, reflector: ReflectionHost, compilerHost: Pick<ts.CompilerHost, 'getCanonicalFileName'>);
addTypeCheckBlock(ref: Reference<ClassDeclaration<ts.ClassDeclaration>>, meta: TypeCheckBlockMetadata, domSchemaChecker: DomSchemaChecker, oobRecorder: OutOfBandDiagnosticRecorder, genericContextBehavior: TcbGenericContextBehavior): void;
constructor(fileName: AbsoluteFsPath, config: TypeCheckingConfig, refEmitter: ReferenceEmitter, compilerHost: Pick<ts.CompilerHost, 'getCanonicalFileName'>);
addTypeCheckBlock(ref: Reference<ClassDeclaration<ts.ClassDeclaration>>, meta: TypeCheckBlockMetadata, domSchemaChecker: DomSchemaChecker, oobRecorder: OutOfBandDiagnosticRecorder, genericContextBehavior: TcbGenericContextBehavior, reflector: ReflectionHost): void;
render(): string;
getPreludeStatements(): TcbExpr[];
}

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

import ts from 'typescript';
import { Reference } from '../../imports';
import { ClassDeclaration, ReflectionHost } from '../../reflection';

@@ -51,2 +52,2 @@ import { TypeCtorMetadata, TcbTypeParameter } from '../api';

export declare function generateInlineTypeCtor(env: ReferenceEmitEnvironment, node: ClassDeclaration<ts.ClassDeclaration>, meta: TypeCtorMetadata): string;
export declare function requiresInlineTypeCtor(node: ClassDeclaration<ts.ClassDeclaration>, host: ReflectionHost, env: ReferenceEmitEnvironment): boolean;
export declare function requiresInlineTypeCtor(node: ClassDeclaration<ts.ClassDeclaration>, host: ReflectionHost, canReferenceType: (ref: Reference) => boolean): boolean;
import {createRequire as __cjsCompatRequire} from 'module';
const require = __cjsCompatRequire(import.meta.url);
import {
NgCompiler,
NgCompilerHost,
TrackedIncrementalBuildStrategy,
freshCompilationTicket,
incrementalFromCompilerTicket
} from "./chunk-RGJL4RYF.js";
import {
ActivePerfRecorder,
OptimizeFor,
PerfCheckpoint,
PerfEvent,
PerfPhase,
TsCreateProgramDriver,
replaceTsWithNgInErrors,
retagAllTsFiles
} from "./chunk-O3K5OHL7.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 = "5.9.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-HLSQSBNV.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-HLSQSBNV.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-LVEE7L62.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

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

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