@depup/angular__build 21.2.6-depup.2 → 22.0.7-depup.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -12
- package/changes.json +51 -23
- package/package.json +89 -60
- package/src/builders/application/build-action.js +61 -46
- package/src/builders/application/build-action.js.map +1 -1
- package/src/builders/application/chunk-optimizer.js +104 -45
- package/src/builders/application/chunk-optimizer.js.map +1 -1
- package/src/builders/application/execute-build.js +33 -9
- package/src/builders/application/execute-build.js.map +1 -1
- package/src/builders/application/execute-post-bundle.d.ts +2 -2
- package/src/builders/application/execute-post-bundle.js +6 -7
- package/src/builders/application/execute-post-bundle.js.map +1 -1
- package/src/builders/application/i18n.d.ts +1 -1
- package/src/builders/application/i18n.js +2 -2
- package/src/builders/application/i18n.js.map +1 -1
- package/src/builders/application/index.js +49 -40
- package/src/builders/application/index.js.map +1 -1
- package/src/builders/application/options.d.ts +8 -3
- package/src/builders/application/options.js +5 -5
- package/src/builders/application/options.js.map +1 -1
- package/src/builders/application/results.d.ts +1 -1
- package/src/builders/application/schema.d.ts +2 -6
- package/src/builders/application/schema.js +6 -8
- package/src/builders/application/schema.js.map +1 -1
- package/src/builders/application/schema.json +2 -2
- package/src/builders/dev-server/internal.d.ts +1 -1
- package/src/builders/dev-server/internal.js +2 -2
- package/src/builders/dev-server/internal.js.map +1 -1
- package/src/builders/dev-server/options.js +11 -2
- package/src/builders/dev-server/options.js.map +1 -1
- package/src/builders/dev-server/vite/server.js +0 -3
- package/src/builders/dev-server/vite/server.js.map +1 -1
- package/src/builders/karma/application_builder.js +9 -0
- package/src/builders/karma/application_builder.js.map +1 -1
- package/src/builders/karma/progress-reporter.js +1 -3
- package/src/builders/karma/progress-reporter.js.map +1 -1
- package/src/builders/unit-test/builder.js +10 -4
- package/src/builders/unit-test/builder.js.map +1 -1
- package/src/builders/unit-test/options.d.ts +3 -0
- package/src/builders/unit-test/options.js +7 -1
- package/src/builders/unit-test/options.js.map +1 -1
- package/src/builders/unit-test/runners/dependency-checker.js +2 -2
- package/src/builders/unit-test/runners/dependency-checker.js.map +1 -1
- package/src/builders/unit-test/runners/karma/executor.js +1 -1
- package/src/builders/unit-test/runners/karma/executor.js.map +1 -1
- package/src/builders/unit-test/runners/vitest/browser-provider.d.ts +1 -0
- package/src/builders/unit-test/runners/vitest/browser-provider.js +3 -2
- package/src/builders/unit-test/runners/vitest/browser-provider.js.map +1 -1
- package/src/builders/unit-test/runners/vitest/build-options.d.ts +10 -0
- package/src/builders/unit-test/runners/vitest/build-options.js +125 -8
- package/src/builders/unit-test/runners/vitest/build-options.js.map +1 -1
- package/src/builders/unit-test/runners/vitest/executor.js +3 -1
- package/src/builders/unit-test/runners/vitest/executor.js.map +1 -1
- package/src/builders/unit-test/runners/vitest/index.js +1 -1
- package/src/builders/unit-test/runners/vitest/index.js.map +1 -1
- package/src/builders/unit-test/runners/vitest/plugins.d.ts +2 -0
- package/src/builders/unit-test/runners/vitest/plugins.js +88 -31
- package/src/builders/unit-test/runners/vitest/plugins.js.map +1 -1
- package/src/builders/unit-test/schema.d.ts +13 -2
- package/src/builders/unit-test/schema.js.map +1 -1
- package/src/builders/unit-test/schema.json +9 -1
- package/src/index.d.ts +1 -1
- package/src/index.js +2 -2
- package/src/index.js.map +1 -1
- package/src/tools/angular/angular-host.js +11 -8
- package/src/tools/angular/angular-host.js.map +1 -1
- package/src/tools/angular/compilation/aot-compilation.js +1 -1
- package/src/tools/angular/compilation/aot-compilation.js.map +1 -1
- package/src/tools/angular/compilation/jit-compilation.js.map +1 -1
- package/src/tools/angular/compilation/parallel-compilation.js +7 -2
- package/src/tools/angular/compilation/parallel-compilation.js.map +1 -1
- package/src/tools/angular/compilation/parallel-worker.d.ts +1 -0
- package/src/tools/angular/compilation/parallel-worker.js +6 -1
- package/src/tools/angular/compilation/parallel-worker.js.map +1 -1
- package/src/tools/babel/plugins/add-code-coverage.d.ts +1 -1
- package/src/tools/babel/plugins/add-code-coverage.js +2 -3
- package/src/tools/babel/plugins/add-code-coverage.js.map +1 -1
- package/src/tools/babel/plugins/elide-angular-metadata.d.ts +4 -2
- package/src/tools/babel/plugins/elide-angular-metadata.js +2 -2
- package/src/tools/babel/plugins/elide-angular-metadata.js.map +1 -1
- package/src/tools/esbuild/angular/component-stylesheets.js +2 -1
- package/src/tools/esbuild/angular/component-stylesheets.js.map +1 -1
- package/src/tools/esbuild/angular-localize-init-warning-plugin.js +3 -0
- package/src/tools/esbuild/angular-localize-init-warning-plugin.js.map +1 -1
- package/src/tools/esbuild/application-code-bundle.js +14 -12
- package/src/tools/esbuild/application-code-bundle.js.map +1 -1
- package/src/tools/esbuild/budget-stats.d.ts +1 -1
- package/src/tools/esbuild/budget-stats.js +2 -2
- package/src/tools/esbuild/budget-stats.js.map +1 -1
- package/src/tools/esbuild/bundler-context.d.ts +2 -21
- package/src/tools/esbuild/bundler-context.js +35 -31
- package/src/tools/esbuild/bundler-context.js.map +1 -1
- package/src/tools/esbuild/bundler-execution-result.d.ts +3 -2
- package/src/tools/esbuild/bundler-execution-result.js +2 -2
- package/src/tools/esbuild/bundler-execution-result.js.map +1 -1
- package/src/tools/esbuild/bundler-files.d.ts +30 -0
- package/src/tools/esbuild/bundler-files.js +113 -0
- package/src/tools/esbuild/bundler-files.js.map +1 -0
- package/src/tools/esbuild/cache.d.ts +5 -0
- package/src/tools/esbuild/cache.js +82 -6
- package/src/tools/esbuild/cache.js.map +1 -1
- package/src/tools/esbuild/i18n-inliner-worker.js +3 -1
- package/src/tools/esbuild/i18n-inliner-worker.js.map +1 -1
- package/src/tools/esbuild/i18n-inliner.d.ts +1 -1
- package/src/tools/esbuild/i18n-inliner.js +4 -5
- package/src/tools/esbuild/i18n-inliner.js.map +1 -1
- package/src/tools/esbuild/i18n-locale-plugin.js +16 -4
- package/src/tools/esbuild/i18n-locale-plugin.js.map +1 -1
- package/src/tools/esbuild/index-html-generator.d.ts +1 -1
- package/src/tools/esbuild/index-html-generator.js +19 -2
- package/src/tools/esbuild/index-html-generator.js.map +1 -1
- package/src/tools/esbuild/javascript-transformer-worker.js +21 -2
- package/src/tools/esbuild/javascript-transformer-worker.js.map +1 -1
- package/src/tools/esbuild/javascript-transformer.js +84 -41
- package/src/tools/esbuild/javascript-transformer.js.map +1 -1
- package/src/tools/esbuild/profiling.d.ts +2 -0
- package/src/tools/esbuild/profiling.js +21 -0
- package/src/tools/esbuild/profiling.js.map +1 -1
- package/src/tools/esbuild/utils.d.ts +3 -15
- package/src/tools/esbuild/utils.js +5 -115
- package/src/tools/esbuild/utils.js.map +1 -1
- package/src/tools/esbuild/watcher.js +1 -1
- package/src/tools/esbuild/watcher.js.map +1 -1
- package/src/tools/vite/plugins/id-prefix-plugin.d.ts +7 -0
- package/src/tools/vite/plugins/id-prefix-plugin.js +23 -9
- package/src/tools/vite/plugins/id-prefix-plugin.js.map +1 -1
- package/src/tools/vite/plugins/ssr-ssl-plugin.js +2 -56
- package/src/tools/vite/plugins/ssr-ssl-plugin.js.map +1 -1
- package/src/tools/vite/utils.js +3 -3
- package/src/tools/vite/utils.js.map +1 -1
- package/src/utils/environment-options.d.ts +6 -4
- package/src/utils/environment-options.js +28 -2
- package/src/utils/environment-options.js.map +1 -1
- package/src/utils/index-file/augment-index-html.d.ts +14 -0
- package/src/utils/index-file/augment-index-html.js +22 -1
- package/src/utils/index-file/augment-index-html.js.map +1 -1
- package/src/utils/index-file/index-html-generator.d.ts +6 -0
- package/src/utils/index-file/index-html-generator.js +2 -1
- package/src/utils/index-file/index-html-generator.js.map +1 -1
- package/src/utils/index-file/inline-fonts.js +45 -2
- package/src/utils/index-file/inline-fonts.js.map +1 -1
- package/src/utils/normalize-asset-patterns.js +5 -1
- package/src/utils/normalize-asset-patterns.js.map +1 -1
- package/src/utils/normalize-cache.js +1 -1
- package/src/utils/path.d.ts +8 -0
- package/src/utils/path.js +14 -0
- package/src/utils/path.js.map +1 -1
- package/src/utils/resolve-assets.js +4 -0
- package/src/utils/resolve-assets.js.map +1 -1
- package/src/utils/resolve-project.d.ts +15 -0
- package/src/utils/resolve-project.js +24 -0
- package/src/utils/resolve-project.js.map +1 -0
- package/src/utils/server-rendering/manifest.d.ts +10 -1
- package/src/utils/server-rendering/manifest.js +17 -7
- package/src/utils/server-rendering/manifest.js.map +1 -1
- package/src/utils/server-rendering/prerender.d.ts +1 -1
- package/src/utils/server-rendering/prerender.js +2 -2
- package/src/utils/server-rendering/prerender.js.map +1 -1
- package/src/utils/server-rendering/utils.d.ts +3 -1
- package/src/utils/server-rendering/utils.js.map +1 -1
- package/src/utils/service-worker.d.ts +4 -2
- package/src/utils/service-worker.js +4 -4
- package/src/utils/service-worker.js.map +1 -1
- package/src/utils/test-files.js +2 -2
- package/src/utils/test-files.js.map +1 -1
- package/src/utils/version.js +1 -1
|
@@ -12,9 +12,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
exports.generateIndexHtml = generateIndexHtml;
|
|
14
14
|
const node_assert_1 = __importDefault(require("node:assert"));
|
|
15
|
+
const node_crypto_1 = require("node:crypto");
|
|
15
16
|
const node_path_1 = __importDefault(require("node:path"));
|
|
16
17
|
const index_html_generator_1 = require("../../utils/index-file/index-html-generator");
|
|
17
|
-
const
|
|
18
|
+
const bundler_files_1 = require("./bundler-files");
|
|
18
19
|
/**
|
|
19
20
|
* The maximum number of module preload link elements that should be added for
|
|
20
21
|
* initial scripts.
|
|
@@ -48,7 +49,7 @@ async function generateIndexHtml(initialFiles, outputFiles, buildOptions, lang)
|
|
|
48
49
|
hints.push(...modulePreloads.slice(0, MODULE_PRELOAD_MAX));
|
|
49
50
|
}
|
|
50
51
|
/** Virtual output path to support reading in-memory files. */
|
|
51
|
-
const browserOutputFiles = outputFiles.filter(({ type }) => type ===
|
|
52
|
+
const browserOutputFiles = outputFiles.filter(({ type }) => type === bundler_files_1.BuildOutputFileType.Browser);
|
|
52
53
|
const virtualOutputPath = '/';
|
|
53
54
|
const readAsset = async function (filePath) {
|
|
54
55
|
// Remove leading directory separator
|
|
@@ -59,6 +60,21 @@ async function generateIndexHtml(initialFiles, outputFiles, buildOptions, lang)
|
|
|
59
60
|
}
|
|
60
61
|
throw new Error(`Output file does not exist: ${relativefilePath}`);
|
|
61
62
|
};
|
|
63
|
+
// When SRI is enabled, build an integrity map for every browser JavaScript
|
|
64
|
+
// chunk so an `<script type="importmap">` block can carry integrity metadata
|
|
65
|
+
// for modules loaded via dynamic `import()`.
|
|
66
|
+
let chunksIntegrity;
|
|
67
|
+
if (subresourceIntegrity) {
|
|
68
|
+
const integrity = new Map();
|
|
69
|
+
for (const file of browserOutputFiles) {
|
|
70
|
+
if (!file.path.endsWith('.js') || initialFiles.has(file.path)) {
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
const hash = (0, node_crypto_1.createHash)('sha384').update(file.contents).digest('base64');
|
|
74
|
+
integrity.set(file.path, 'sha384-' + hash);
|
|
75
|
+
}
|
|
76
|
+
chunksIntegrity = integrity;
|
|
77
|
+
}
|
|
62
78
|
// Create an index HTML generator that reads from the in-memory output files
|
|
63
79
|
const indexHtmlGenerator = new index_html_generator_1.IndexHtmlGenerator({
|
|
64
80
|
indexPath: indexHtmlOptions.input,
|
|
@@ -72,6 +88,7 @@ async function generateIndexHtml(initialFiles, outputFiles, buildOptions, lang)
|
|
|
72
88
|
buildOptions.prerenderOptions ||
|
|
73
89
|
buildOptions.appShellOptions),
|
|
74
90
|
autoCsp: buildOptions.security.autoCsp,
|
|
91
|
+
chunksIntegrity,
|
|
75
92
|
});
|
|
76
93
|
indexHtmlGenerator.readAsset = readAsset;
|
|
77
94
|
return indexHtmlGenerator.process({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-html-generator.js","sourceRoot":"","sources":["index-html-generator.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;
|
|
1
|
+
{"version":3,"file":"index-html-generator.js","sourceRoot":"","sources":["index-html-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,6 +46,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
46
46
|
exports.default = transformJavaScript;
|
|
47
47
|
const core_1 = require("@babel/core");
|
|
48
48
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
49
|
+
const node_module_1 = require("node:module");
|
|
49
50
|
const node_path_1 = __importDefault(require("node:path"));
|
|
50
51
|
const piscina_1 = __importDefault(require("piscina"));
|
|
51
52
|
const textDecoder = new TextDecoder();
|
|
@@ -74,8 +75,26 @@ async function transformWithBabel(filename, data, options) {
|
|
|
74
75
|
(!!options.thirdPartySourcemaps || !/[\\/]node_modules[\\/]/.test(filename));
|
|
75
76
|
const plugins = [];
|
|
76
77
|
if (options.instrumentForCoverage) {
|
|
77
|
-
|
|
78
|
-
|
|
78
|
+
try {
|
|
79
|
+
let resolvedPath = 'istanbul-lib-instrument';
|
|
80
|
+
try {
|
|
81
|
+
const requireFn = (0, node_module_1.createRequire)(filename);
|
|
82
|
+
resolvedPath = requireFn.resolve('istanbul-lib-instrument');
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
// Fallback to pool worker import traversal
|
|
86
|
+
}
|
|
87
|
+
const istanbul = await Promise.resolve(`${resolvedPath}`).then(s => __importStar(require(s)));
|
|
88
|
+
const programVisitor = istanbul.programVisitor ?? istanbul.default?.programVisitor;
|
|
89
|
+
if (!programVisitor) {
|
|
90
|
+
throw new Error('programVisitor is not available in istanbul-lib-instrument.');
|
|
91
|
+
}
|
|
92
|
+
const { default: coveragePluginFactory } = await Promise.resolve().then(() => __importStar(require('../babel/plugins/add-code-coverage.js')));
|
|
93
|
+
plugins.push(coveragePluginFactory(programVisitor));
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
throw new Error(`The 'istanbul-lib-instrument' package is required for code coverage but was not found. Please install the package.`, { cause: error });
|
|
97
|
+
}
|
|
79
98
|
}
|
|
80
99
|
if (shouldLink) {
|
|
81
100
|
// Lazy load the linker plugin only when linking is required
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"javascript-transformer-worker.js","sourceRoot":"","sources":["javascript-transformer-worker.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"javascript-transformer-worker.js","sourceRoot":"","sources":["javascript-transformer-worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,9 +25,17 @@ class JavaScriptTransformer {
|
|
|
25
25
|
#workerPool;
|
|
26
26
|
#commonOptions;
|
|
27
27
|
#fileCacheKeyBase;
|
|
28
|
+
/** Queue of pending transformation tasks waiting for an active concurrency slot. */
|
|
29
|
+
#pendingTasks = [];
|
|
30
|
+
/** Current count of actively executing transformation tasks. */
|
|
31
|
+
#activeTasks = 0;
|
|
32
|
+
/** Maximum number of transformation tasks allowed to execute concurrently. */
|
|
33
|
+
#maxConcurrent;
|
|
28
34
|
constructor(options, maxThreads, cache) {
|
|
29
35
|
this.maxThreads = maxThreads;
|
|
30
36
|
this.cache = cache;
|
|
37
|
+
// Maintain 2 active tasks per worker thread to keep transformation pipelines fully saturated
|
|
38
|
+
this.#maxConcurrent = Math.max(1, maxThreads * 2);
|
|
31
39
|
// Extract options to ensure only the named options are serialized and sent to the worker
|
|
32
40
|
const { sourcemap, thirdPartySourcemaps = false, advancedOptimizations = false, jit = false, } = options;
|
|
33
41
|
this.#commonOptions = {
|
|
@@ -38,6 +46,34 @@ class JavaScriptTransformer {
|
|
|
38
46
|
};
|
|
39
47
|
this.#fileCacheKeyBase = Buffer.from(JSON.stringify(this.#commonOptions), 'utf-8');
|
|
40
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Executes a transformation action using a semaphore-based backpressure throttle.
|
|
51
|
+
* Prevents libuv thread pool saturation and excessive V8 heap accumulation.
|
|
52
|
+
* @param action A callback that produces a promise for the transformation result.
|
|
53
|
+
* @returns A promise resolving to the transformation result.
|
|
54
|
+
*/
|
|
55
|
+
async #runWithThrottle(action) {
|
|
56
|
+
if (this.#activeTasks >= this.#maxConcurrent) {
|
|
57
|
+
await new Promise((resolve, reject) => {
|
|
58
|
+
this.#pendingTasks.push({ resolve, reject });
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
this.#activeTasks++;
|
|
63
|
+
}
|
|
64
|
+
try {
|
|
65
|
+
return await action();
|
|
66
|
+
}
|
|
67
|
+
finally {
|
|
68
|
+
const next = this.#pendingTasks.shift();
|
|
69
|
+
if (next) {
|
|
70
|
+
next.resolve();
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
this.#activeTasks--;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
41
77
|
#ensureWorkerPool() {
|
|
42
78
|
if (this.#workerPool) {
|
|
43
79
|
return this.#workerPool;
|
|
@@ -63,50 +99,52 @@ class JavaScriptTransformer {
|
|
|
63
99
|
* @returns A promise that resolves to a UTF-8 encoded Uint8Array containing the result.
|
|
64
100
|
*/
|
|
65
101
|
async transformFile(filename, skipLinker, sideEffects, instrumentForCoverage) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
result = await this.cache?.get(cacheKey);
|
|
80
|
-
}
|
|
81
|
-
catch {
|
|
82
|
-
// Failure to get the value should not fail the transform
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
if (result === undefined) {
|
|
86
|
-
// If there is no cache or no cached entry, process the file
|
|
87
|
-
result = (await this.#ensureWorkerPool().run({
|
|
88
|
-
filename,
|
|
89
|
-
data,
|
|
90
|
-
skipLinker,
|
|
91
|
-
sideEffects,
|
|
92
|
-
instrumentForCoverage,
|
|
93
|
-
...this.#commonOptions,
|
|
94
|
-
}, {
|
|
95
|
-
// The below is disable as with Yarn PNP this causes build failures with the below message
|
|
96
|
-
// `Unable to deserialize cloned data`.
|
|
97
|
-
transferList: process.versions.pnp ? undefined : [data.buffer],
|
|
98
|
-
}));
|
|
99
|
-
// If there is a cache then store the result
|
|
100
|
-
if (this.cache && cacheKey) {
|
|
102
|
+
return this.#runWithThrottle(async () => {
|
|
103
|
+
const data = await (0, promises_1.readFile)(filename);
|
|
104
|
+
let result;
|
|
105
|
+
let cacheKey;
|
|
106
|
+
if (this.cache) {
|
|
107
|
+
// Create a cache key from the file data and options that effect the output.
|
|
108
|
+
// NOTE: If additional options are added, this may need to be updated.
|
|
109
|
+
// TODO: Consider xxhash or similar instead of SHA256
|
|
110
|
+
const hash = (0, node_crypto_1.createHash)('sha256');
|
|
111
|
+
hash.update(`${!!skipLinker}--${!!sideEffects}`);
|
|
112
|
+
hash.update(data);
|
|
113
|
+
hash.update(this.#fileCacheKeyBase);
|
|
114
|
+
cacheKey = hash.digest('hex');
|
|
101
115
|
try {
|
|
102
|
-
await this.cache
|
|
116
|
+
result = await this.cache?.get(cacheKey);
|
|
103
117
|
}
|
|
104
118
|
catch {
|
|
105
|
-
// Failure to
|
|
119
|
+
// Failure to get the value should not fail the transform
|
|
106
120
|
}
|
|
107
121
|
}
|
|
108
|
-
|
|
109
|
-
|
|
122
|
+
if (result === undefined) {
|
|
123
|
+
// If there is no cache or no cached entry, process the file
|
|
124
|
+
result = (await this.#ensureWorkerPool().run({
|
|
125
|
+
filename,
|
|
126
|
+
data,
|
|
127
|
+
skipLinker,
|
|
128
|
+
sideEffects,
|
|
129
|
+
instrumentForCoverage,
|
|
130
|
+
...this.#commonOptions,
|
|
131
|
+
}, {
|
|
132
|
+
// The below is disable as with Yarn PNP this causes build failures with the below message
|
|
133
|
+
// `Unable to deserialize cloned data`.
|
|
134
|
+
transferList: process.versions.pnp ? undefined : [data.buffer],
|
|
135
|
+
}));
|
|
136
|
+
// If there is a cache then store the result
|
|
137
|
+
if (this.cache && cacheKey) {
|
|
138
|
+
try {
|
|
139
|
+
await this.cache.put(cacheKey, result);
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
// Failure to store the value in the cache should not fail the transform
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
return result;
|
|
147
|
+
});
|
|
110
148
|
}
|
|
111
149
|
/**
|
|
112
150
|
* Performs JavaScript transformations on the provided data of a file. The file does not need
|
|
@@ -125,20 +163,25 @@ class JavaScriptTransformer {
|
|
|
125
163
|
(!!this.#commonOptions.thirdPartySourcemaps || !/[\\/]node_modules[\\/]/.test(filename));
|
|
126
164
|
return Buffer.from(keepSourcemap ? data : data.replace(/^\/\/# sourceMappingURL=[^\r\n]*/gm, ''), 'utf-8');
|
|
127
165
|
}
|
|
128
|
-
return this.#ensureWorkerPool().run({
|
|
166
|
+
return this.#runWithThrottle(() => this.#ensureWorkerPool().run({
|
|
129
167
|
filename,
|
|
130
168
|
data,
|
|
131
169
|
skipLinker,
|
|
132
170
|
sideEffects,
|
|
133
171
|
instrumentForCoverage,
|
|
134
172
|
...this.#commonOptions,
|
|
135
|
-
});
|
|
173
|
+
}));
|
|
136
174
|
}
|
|
137
175
|
/**
|
|
138
176
|
* Stops all active transformation tasks and shuts down all workers.
|
|
139
177
|
* @returns A void promise that resolves when closing is complete.
|
|
140
178
|
*/
|
|
141
179
|
async close() {
|
|
180
|
+
const pending = this.#pendingTasks;
|
|
181
|
+
this.#pendingTasks = [];
|
|
182
|
+
for (const task of pending) {
|
|
183
|
+
task.reject(new Error('JavaScriptTransformer closed.'));
|
|
184
|
+
}
|
|
142
185
|
if (this.#workerPool) {
|
|
143
186
|
try {
|
|
144
187
|
await this.#workerPool.destroy();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"javascript-transformer.js","sourceRoot":"","sources":["javascript-transformer.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,6CAAyC;AACzC,+CAA4C;AAC5C,mFAA2F;AAC3F,yDAAwE;AAaxE;;;;;;GAMG;AACH,MAAa,qBAAqB;
|
|
1
|
+
{"version":3,"file":"javascript-transformer.js","sourceRoot":"","sources":["javascript-transformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
* found in the LICENSE file at https://angular.dev/license
|
|
7
7
|
*/
|
|
8
8
|
export declare function resetCumulativeDurations(): void;
|
|
9
|
+
export declare function getAndClearCumulativeDurations(): Record<string, number[]> | undefined;
|
|
10
|
+
export declare function mergeCumulativeDurations(data: Record<string, number[]>): void;
|
|
9
11
|
export declare function logCumulativeDurations(): void;
|
|
10
12
|
export declare function profileAsync<T>(name: string, action: () => Promise<T>, cumulative?: boolean): Promise<T>;
|
|
11
13
|
export declare function profileSync<T>(name: string, action: () => T, cumulative?: boolean): T;
|
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.resetCumulativeDurations = resetCumulativeDurations;
|
|
11
|
+
exports.getAndClearCumulativeDurations = getAndClearCumulativeDurations;
|
|
12
|
+
exports.mergeCumulativeDurations = mergeCumulativeDurations;
|
|
11
13
|
exports.logCumulativeDurations = logCumulativeDurations;
|
|
12
14
|
exports.profileAsync = profileAsync;
|
|
13
15
|
exports.profileSync = profileSync;
|
|
@@ -16,6 +18,25 @@ let cumulativeDurations;
|
|
|
16
18
|
function resetCumulativeDurations() {
|
|
17
19
|
cumulativeDurations?.clear();
|
|
18
20
|
}
|
|
21
|
+
function getAndClearCumulativeDurations() {
|
|
22
|
+
if (!cumulativeDurations || cumulativeDurations.size === 0) {
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
const data = Object.fromEntries(cumulativeDurations);
|
|
26
|
+
cumulativeDurations.clear();
|
|
27
|
+
return data;
|
|
28
|
+
}
|
|
29
|
+
function mergeCumulativeDurations(data) {
|
|
30
|
+
cumulativeDurations ??= new Map();
|
|
31
|
+
for (const [name, durations] of Object.entries(data)) {
|
|
32
|
+
let existing = cumulativeDurations.get(name);
|
|
33
|
+
if (!existing) {
|
|
34
|
+
existing = [];
|
|
35
|
+
cumulativeDurations.set(name, existing);
|
|
36
|
+
}
|
|
37
|
+
existing.push(...durations);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
19
40
|
function logCumulativeDurations() {
|
|
20
41
|
if (!environment_options_1.debugPerformance || !cumulativeDurations) {
|
|
21
42
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profiling.js","sourceRoot":"","sources":["profiling.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAMH,4DAEC;AAED,wDA0BC;AAeD,oCAeC;AAED,kCAWC;
|
|
1
|
+
{"version":3,"file":"profiling.js","sourceRoot":"","sources":["profiling.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,24 +9,21 @@ import { BuilderContext } from '@angular-devkit/architect';
|
|
|
9
9
|
import { BuildOptions, Metafile, OutputFile } from 'esbuild';
|
|
10
10
|
import { NormalizedApplicationBuildOptions } from '../../builders/application/options';
|
|
11
11
|
import { BudgetCalculatorResult } from '../../utils/bundle-calculator';
|
|
12
|
-
import { BuildOutputFile, BuildOutputFileType, InitialFileRecord } from './bundler-context';
|
|
13
12
|
import { BuildOutputAsset, ExecutionResult } from './bundler-execution-result';
|
|
13
|
+
import { type BuildOutputFile, type InitialFileRecord } from './bundler-files';
|
|
14
14
|
export declare function logBuildStats(metafile: Metafile, outputFiles: BuildOutputFile[], initial: Map<string, InitialFileRecord>, budgetFailures: BudgetCalculatorResult[] | undefined, colors: boolean, changedFiles?: Set<string>, estimatedTransferSizes?: Map<string, number>, ssrOutputEnabled?: boolean, verbose?: boolean): string;
|
|
15
15
|
export declare function getChunkNameFromMetafile(metafile: Metafile, file: string): string | undefined;
|
|
16
16
|
export declare function calculateEstimatedTransferSizes(outputFiles: OutputFile[]): Promise<Map<string, number>>;
|
|
17
17
|
export declare function withSpinner<T>(text: string, action: () => T | Promise<T>): Promise<T>;
|
|
18
18
|
export declare function withNoProgress<T>(text: string, action: () => T | Promise<T>): Promise<T>;
|
|
19
19
|
/**
|
|
20
|
-
* Generates a syntax feature object map for Angular applications
|
|
20
|
+
* Generates a syntax feature object map for Angular applications.
|
|
21
21
|
* A full set of feature names can be found here: https://esbuild.github.io/api/#supported
|
|
22
|
-
* @param target An array of browser/engine targets in the format accepted by the esbuild `target` option.
|
|
23
22
|
* @param nativeAsyncAwait Indicate whether to support native async/await.
|
|
24
23
|
* @returns An object that can be used with the esbuild build `supported` option.
|
|
25
24
|
*/
|
|
26
|
-
export declare function getFeatureSupport(
|
|
25
|
+
export declare function getFeatureSupport(nativeAsyncAwait: boolean): BuildOptions['supported'];
|
|
27
26
|
export declare function emitFilesToDisk<T = BuildOutputAsset | BuildOutputFile>(files: T[], writeFileCallback: (file: T) => Promise<void>): Promise<void>;
|
|
28
|
-
export declare function createOutputFile(path: string, data: string | Uint8Array, type: BuildOutputFileType): BuildOutputFile;
|
|
29
|
-
export declare function convertOutputFile(file: OutputFile, type: BuildOutputFileType): BuildOutputFile;
|
|
30
27
|
/**
|
|
31
28
|
* Transform browserlists result to esbuild target.
|
|
32
29
|
* @see https://esbuild.github.io/api/#target
|
|
@@ -47,12 +44,3 @@ export declare function logMessages(logger: BuilderContext['logger'], executionR
|
|
|
47
44
|
*/
|
|
48
45
|
export declare function isZonelessApp(polyfills: string[] | undefined): boolean;
|
|
49
46
|
export declare function getEntryPointName(entryPoint: string): string;
|
|
50
|
-
/**
|
|
51
|
-
* A set of server-generated dependencies that are treated as external.
|
|
52
|
-
*
|
|
53
|
-
* These dependencies are marked as external because they are produced by a
|
|
54
|
-
* separate bundling process and are not included in the primary bundle. This
|
|
55
|
-
* ensures that these generated files are resolved from an external source rather
|
|
56
|
-
* than being part of the main bundle.
|
|
57
|
-
*/
|
|
58
|
-
export declare const SERVER_GENERATED_EXTERNALS: Set<string>;
|
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
* found in the LICENSE file at https://angular.dev/license
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.SERVER_GENERATED_EXTERNALS = void 0;
|
|
11
10
|
exports.logBuildStats = logBuildStats;
|
|
12
11
|
exports.getChunkNameFromMetafile = getChunkNameFromMetafile;
|
|
13
12
|
exports.calculateEstimatedTransferSizes = calculateEstimatedTransferSizes;
|
|
@@ -15,8 +14,6 @@ exports.withSpinner = withSpinner;
|
|
|
15
14
|
exports.withNoProgress = withNoProgress;
|
|
16
15
|
exports.getFeatureSupport = getFeatureSupport;
|
|
17
16
|
exports.emitFilesToDisk = emitFilesToDisk;
|
|
18
|
-
exports.createOutputFile = createOutputFile;
|
|
19
|
-
exports.convertOutputFile = convertOutputFile;
|
|
20
17
|
exports.transformSupportedBrowsersToTargets = transformSupportedBrowsersToTargets;
|
|
21
18
|
exports.getSupportedNodeTargets = getSupportedNodeTargets;
|
|
22
19
|
exports.createJsonBuildManifest = createJsonBuildManifest;
|
|
@@ -25,15 +22,13 @@ exports.isZonelessApp = isZonelessApp;
|
|
|
25
22
|
exports.getEntryPointName = getEntryPointName;
|
|
26
23
|
const esbuild_1 = require("esbuild");
|
|
27
24
|
const listr2_1 = require("listr2");
|
|
28
|
-
const node_crypto_1 = require("node:crypto");
|
|
29
25
|
const node_path_1 = require("node:path");
|
|
30
26
|
const node_url_1 = require("node:url");
|
|
31
27
|
const node_zlib_1 = require("node:zlib");
|
|
32
28
|
const semver_1 = require("semver");
|
|
33
29
|
const schema_1 = require("../../builders/application/schema");
|
|
34
|
-
const manifest_1 = require("../../utils/server-rendering/manifest");
|
|
35
30
|
const stats_table_1 = require("../../utils/stats-table");
|
|
36
|
-
const
|
|
31
|
+
const bundler_files_1 = require("./bundler-files");
|
|
37
32
|
function logBuildStats(metafile, outputFiles, initial, budgetFailures, colors, changedFiles, estimatedTransferSizes, ssrOutputEnabled, verbose) {
|
|
38
33
|
// Remove the i18n subpath in case the build is using i18n.
|
|
39
34
|
// en-US/main.js -> main.js
|
|
@@ -52,7 +47,7 @@ function logBuildStats(metafile, outputFiles, initial, budgetFailures, colors, c
|
|
|
52
47
|
++unchangedCount;
|
|
53
48
|
continue;
|
|
54
49
|
}
|
|
55
|
-
const isPlatformServer = type ===
|
|
50
|
+
const isPlatformServer = type === bundler_files_1.BuildOutputFileType.ServerApplication || type === bundler_files_1.BuildOutputFileType.ServerRoot;
|
|
56
51
|
if (isPlatformServer && !ssrOutputEnabled) {
|
|
57
52
|
// Only log server build stats when SSR is enabled.
|
|
58
53
|
continue;
|
|
@@ -151,13 +146,12 @@ async function withNoProgress(text, action) {
|
|
|
151
146
|
return action();
|
|
152
147
|
}
|
|
153
148
|
/**
|
|
154
|
-
* Generates a syntax feature object map for Angular applications
|
|
149
|
+
* Generates a syntax feature object map for Angular applications.
|
|
155
150
|
* A full set of feature names can be found here: https://esbuild.github.io/api/#supported
|
|
156
|
-
* @param target An array of browser/engine targets in the format accepted by the esbuild `target` option.
|
|
157
151
|
* @param nativeAsyncAwait Indicate whether to support native async/await.
|
|
158
152
|
* @returns An object that can be used with the esbuild build `supported` option.
|
|
159
153
|
*/
|
|
160
|
-
function getFeatureSupport(
|
|
154
|
+
function getFeatureSupport(nativeAsyncAwait) {
|
|
161
155
|
return {
|
|
162
156
|
// Native async/await is not supported with Zone.js. Disabling support here will cause
|
|
163
157
|
// esbuild to downlevel async/await, async generators, and for await...of to a Zone.js supported form.
|
|
@@ -184,97 +178,6 @@ async function emitFilesToDisk(files, writeFileCallback) {
|
|
|
184
178
|
await Promise.all(actions);
|
|
185
179
|
}
|
|
186
180
|
}
|
|
187
|
-
function createOutputFile(path, data, type) {
|
|
188
|
-
if (typeof data === 'string') {
|
|
189
|
-
let cachedContents = null;
|
|
190
|
-
let cachedText = data;
|
|
191
|
-
let cachedHash = null;
|
|
192
|
-
return {
|
|
193
|
-
path,
|
|
194
|
-
type,
|
|
195
|
-
get contents() {
|
|
196
|
-
cachedContents ??= new TextEncoder().encode(data);
|
|
197
|
-
return cachedContents;
|
|
198
|
-
},
|
|
199
|
-
set contents(value) {
|
|
200
|
-
cachedContents = value;
|
|
201
|
-
cachedText = null;
|
|
202
|
-
},
|
|
203
|
-
get text() {
|
|
204
|
-
cachedText ??= new TextDecoder('utf-8').decode(this.contents);
|
|
205
|
-
return cachedText;
|
|
206
|
-
},
|
|
207
|
-
get size() {
|
|
208
|
-
return this.contents.byteLength;
|
|
209
|
-
},
|
|
210
|
-
get hash() {
|
|
211
|
-
cachedHash ??= (0, node_crypto_1.createHash)('sha256')
|
|
212
|
-
.update(cachedText ?? this.contents)
|
|
213
|
-
.digest('hex');
|
|
214
|
-
return cachedHash;
|
|
215
|
-
},
|
|
216
|
-
clone() {
|
|
217
|
-
return createOutputFile(this.path, cachedText ?? this.contents, this.type);
|
|
218
|
-
},
|
|
219
|
-
};
|
|
220
|
-
}
|
|
221
|
-
else {
|
|
222
|
-
let cachedContents = data;
|
|
223
|
-
let cachedText = null;
|
|
224
|
-
let cachedHash = null;
|
|
225
|
-
return {
|
|
226
|
-
get contents() {
|
|
227
|
-
return cachedContents;
|
|
228
|
-
},
|
|
229
|
-
set contents(value) {
|
|
230
|
-
cachedContents = value;
|
|
231
|
-
cachedText = null;
|
|
232
|
-
},
|
|
233
|
-
path,
|
|
234
|
-
type,
|
|
235
|
-
get size() {
|
|
236
|
-
return this.contents.byteLength;
|
|
237
|
-
},
|
|
238
|
-
get text() {
|
|
239
|
-
cachedText ??= new TextDecoder('utf-8').decode(this.contents);
|
|
240
|
-
return cachedText;
|
|
241
|
-
},
|
|
242
|
-
get hash() {
|
|
243
|
-
cachedHash ??= (0, node_crypto_1.createHash)('sha256').update(this.contents).digest('hex');
|
|
244
|
-
return cachedHash;
|
|
245
|
-
},
|
|
246
|
-
clone() {
|
|
247
|
-
return createOutputFile(this.path, this.contents, this.type);
|
|
248
|
-
},
|
|
249
|
-
};
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
function convertOutputFile(file, type) {
|
|
253
|
-
let { contents: cachedContents } = file;
|
|
254
|
-
let cachedText = null;
|
|
255
|
-
return {
|
|
256
|
-
get contents() {
|
|
257
|
-
return cachedContents;
|
|
258
|
-
},
|
|
259
|
-
set contents(value) {
|
|
260
|
-
cachedContents = value;
|
|
261
|
-
cachedText = null;
|
|
262
|
-
},
|
|
263
|
-
hash: file.hash,
|
|
264
|
-
path: file.path,
|
|
265
|
-
type,
|
|
266
|
-
get size() {
|
|
267
|
-
return this.contents.byteLength;
|
|
268
|
-
},
|
|
269
|
-
get text() {
|
|
270
|
-
cachedText ??= new TextDecoder('utf-8').decode(this.contents);
|
|
271
|
-
return cachedText;
|
|
272
|
-
},
|
|
273
|
-
clone() {
|
|
274
|
-
return convertOutputFile(this, this.type);
|
|
275
|
-
},
|
|
276
|
-
};
|
|
277
|
-
}
|
|
278
181
|
/**
|
|
279
182
|
* Transform browserlists result to esbuild target.
|
|
280
183
|
* @see https://esbuild.github.io/api/#target
|
|
@@ -318,7 +221,7 @@ function transformSupportedBrowsersToTargets(supportedBrowsers) {
|
|
|
318
221
|
}
|
|
319
222
|
return transformed;
|
|
320
223
|
}
|
|
321
|
-
const SUPPORTED_NODE_VERSIONS = '^
|
|
224
|
+
const SUPPORTED_NODE_VERSIONS = '^22.22.3 || ^24.15.0 || >=26.0.0';
|
|
322
225
|
/**
|
|
323
226
|
* Transform supported Node.js versions to esbuild target.
|
|
324
227
|
* @see https://esbuild.github.io/api/#target
|
|
@@ -378,17 +281,4 @@ function getEntryPointName(entryPoint) {
|
|
|
378
281
|
.replace(/\.[cm]?[jt]s$/, '')
|
|
379
282
|
.replace(/[\\/.]/g, '-');
|
|
380
283
|
}
|
|
381
|
-
/**
|
|
382
|
-
* A set of server-generated dependencies that are treated as external.
|
|
383
|
-
*
|
|
384
|
-
* These dependencies are marked as external because they are produced by a
|
|
385
|
-
* separate bundling process and are not included in the primary bundle. This
|
|
386
|
-
* ensures that these generated files are resolved from an external source rather
|
|
387
|
-
* than being part of the main bundle.
|
|
388
|
-
*/
|
|
389
|
-
exports.SERVER_GENERATED_EXTERNALS = new Set([
|
|
390
|
-
'./polyfills.server.mjs',
|
|
391
|
-
'./' + manifest_1.SERVER_APP_MANIFEST_FILENAME,
|
|
392
|
-
'./' + manifest_1.SERVER_APP_ENGINE_MANIFEST_FILENAME,
|
|
393
|
-
]);
|
|
394
284
|
//# sourceMappingURL=utils.js.map
|