@depup/angular__build 22.1.8-depup.5 → 22.2.0-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 +9 -14
- package/builders.json +1 -1
- package/changes.json +12 -32
- package/package.json +29 -48
- package/src/builders/application/build-action.js +63 -92
- package/src/builders/application/build-action.js.map +1 -1
- package/src/builders/application/chunk-optimizer.d.ts +2 -2
- package/src/builders/application/chunk-optimizer.js +5 -5
- package/src/builders/application/chunk-optimizer.js.map +1 -1
- package/src/builders/application/execute-build.js +26 -19
- 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 +5 -5
- package/src/builders/application/execute-post-bundle.js.map +1 -1
- package/src/builders/application/i18n.d.ts +3 -1
- package/src/builders/application/i18n.js +48 -13
- package/src/builders/application/i18n.js.map +1 -1
- package/src/{tools/esbuild → builders/application}/index-html-generator.d.ts +2 -2
- package/src/{tools/esbuild → builders/application}/index-html-generator.js +2 -2
- package/src/builders/application/index-html-generator.js.map +1 -0
- package/src/builders/application/index.js +2 -2
- package/src/builders/application/index.js.map +1 -1
- package/src/builders/application/options.d.ts +5 -0
- package/src/builders/application/options.js +8 -26
- package/src/builders/application/options.js.map +1 -1
- package/src/builders/application/results.d.ts +3 -2
- package/src/builders/application/schema.d.ts +2 -1
- package/src/builders/application/schema.js.map +1 -1
- package/src/builders/application/schema.json +1 -2
- package/src/builders/application/setup-bundling.js +3 -1
- package/src/builders/application/setup-bundling.js.map +1 -1
- package/src/builders/dev-server/internal.d.ts +1 -1
- package/src/builders/dev-server/internal.js +1 -1
- package/src/builders/dev-server/internal.js.map +1 -1
- package/src/builders/dev-server/vite/index.js +5 -8
- package/src/builders/dev-server/vite/index.js.map +1 -1
- package/src/builders/dev-server/vite/server.js +2 -0
- package/src/builders/dev-server/vite/server.js.map +1 -1
- package/src/builders/dev-server/vite/utils.d.ts +1 -1
- package/src/builders/dev-server/vite/utils.js +9 -4
- package/src/builders/dev-server/vite/utils.js.map +1 -1
- package/src/builders/extract-i18n/application-extraction.js +6 -5
- package/src/builders/extract-i18n/application-extraction.js.map +1 -1
- package/src/builders/karma/application_builder.js +1 -1
- package/src/builders/karma/application_builder.js.map +1 -1
- package/src/builders/karma/assets-middleware.d.ts +2 -2
- package/src/builders/karma/assets-middleware.js +5 -2
- package/src/builders/karma/assets-middleware.js.map +1 -1
- package/src/builders/karma/progress-reporter.js +7 -5
- package/src/builders/karma/progress-reporter.js.map +1 -1
- package/src/builders/karma/utils.d.ts +2 -1
- package/src/builders/karma/utils.js +2 -2
- package/src/builders/karma/utils.js.map +1 -1
- package/src/builders/unit-test/builder.js +1 -1
- package/src/builders/unit-test/runners/vitest/build-options.js +9 -3
- package/src/builders/unit-test/runners/vitest/build-options.js.map +1 -1
- package/src/builders/unit-test/runners/vitest/executor.js +5 -4
- package/src/builders/unit-test/runners/vitest/executor.js.map +1 -1
- package/src/builders/unit-test/runners/vitest/plugins.d.ts +4 -4
- package/src/builders/unit-test/runners/vitest/plugins.js +9 -2
- package/src/builders/unit-test/runners/vitest/plugins.js.map +1 -1
- package/src/builders/unit-test/schema.d.ts +3 -2
- package/src/builders/unit-test/schema.js.map +1 -1
- package/src/builders/unit-test/schema.json +3 -2
- package/src/builders/unit-test/test-discovery.js +3 -2
- package/src/builders/unit-test/test-discovery.js.map +1 -1
- package/src/private.d.ts +3 -5
- package/src/private.js +6 -9
- package/src/private.js.map +1 -1
- package/src/tools/angular/angular-host.d.ts +1 -2
- package/src/tools/angular/angular-host.js +6 -6
- package/src/tools/angular/angular-host.js.map +1 -1
- package/src/tools/angular/compilation/angular-compilation.d.ts +24 -16
- package/src/tools/angular/compilation/angular-compilation.js +4 -80
- package/src/tools/angular/compilation/angular-compilation.js.map +1 -1
- package/src/tools/angular/compilation/aot-compilation.d.ts +6 -12
- package/src/tools/angular/compilation/aot-compilation.js +23 -20
- package/src/tools/angular/compilation/aot-compilation.js.map +1 -1
- package/src/tools/angular/compilation/compiler-options.d.ts +25 -0
- package/src/tools/angular/compilation/compiler-options.js +135 -0
- package/src/tools/angular/compilation/compiler-options.js.map +1 -0
- package/src/tools/angular/compilation/factory.d.ts +5 -3
- package/src/tools/angular/compilation/factory.js +10 -5
- package/src/tools/angular/compilation/factory.js.map +1 -1
- package/src/tools/angular/compilation/index.d.ts +3 -3
- package/src/tools/angular/compilation/index.js +1 -3
- package/src/tools/angular/compilation/index.js.map +1 -1
- package/src/tools/angular/compilation/jit-compilation.d.ts +6 -9
- package/src/tools/angular/compilation/jit-compilation.js +10 -16
- package/src/tools/angular/compilation/jit-compilation.js.map +1 -1
- package/src/tools/angular/compilation/parallel-compilation.d.ts +3 -14
- package/src/tools/angular/compilation/parallel-compilation.js +40 -42
- package/src/tools/angular/compilation/parallel-compilation.js.map +1 -1
- package/src/tools/angular/compilation/parallel-worker.d.ts +5 -17
- package/src/tools/angular/compilation/parallel-worker.js +89 -68
- package/src/tools/angular/compilation/parallel-worker.js.map +1 -1
- package/src/tools/angular/compilation/typescript-compilation.d.ts +31 -0
- package/src/tools/angular/compilation/typescript-compilation.js +125 -0
- package/src/tools/angular/compilation/typescript-compilation.js.map +1 -0
- package/src/tools/angular/linker/oxc-ast-host.d.ts +33 -0
- package/src/tools/angular/linker/oxc-ast-host.js +234 -0
- package/src/tools/angular/linker/oxc-ast-host.js.map +1 -0
- package/src/tools/angular/linker/oxc-linker.d.ts +22 -0
- package/src/tools/angular/linker/oxc-linker.js +75 -0
- package/src/tools/angular/linker/oxc-linker.js.map +1 -0
- package/src/tools/angular/linker/string-ast-factory.d.ts +86 -0
- package/src/tools/angular/linker/string-ast-factory.js +234 -0
- package/src/tools/angular/linker/string-ast-factory.js.map +1 -0
- package/src/tools/esbuild/angular/compilation-state.d.ts +23 -3
- package/src/tools/esbuild/angular/compilation-state.js +51 -13
- package/src/tools/esbuild/angular/compilation-state.js.map +1 -1
- package/src/tools/esbuild/angular/compiler-plugin.d.ts +1 -0
- package/src/tools/esbuild/angular/compiler-plugin.js +126 -139
- package/src/tools/esbuild/angular/compiler-plugin.js.map +1 -1
- package/src/tools/esbuild/angular/component-stylesheets.d.ts +3 -3
- package/src/tools/esbuild/angular/component-stylesheets.js +52 -22
- package/src/tools/esbuild/angular/component-stylesheets.js.map +1 -1
- package/src/tools/esbuild/angular/source-file-cache.d.ts +1 -2
- package/src/tools/esbuild/angular/source-file-cache.js +1 -11
- package/src/tools/esbuild/angular/source-file-cache.js.map +1 -1
- package/src/tools/esbuild/application-code-bundle.js +7 -14
- package/src/tools/esbuild/application-code-bundle.js.map +1 -1
- package/src/tools/esbuild/budget-stats.js +3 -3
- package/src/tools/esbuild/budget-stats.js.map +1 -1
- package/src/tools/esbuild/bundler-context.d.ts +23 -7
- package/src/tools/esbuild/bundler-context.js +112 -43
- package/src/tools/esbuild/bundler-context.js.map +1 -1
- package/src/tools/esbuild/bundler-execution-result.d.ts +2 -1
- 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.js +3 -5
- package/src/tools/esbuild/bundler-files.js.map +1 -1
- package/src/tools/esbuild/compiler-plugin-options.js +2 -1
- package/src/tools/esbuild/compiler-plugin-options.js.map +1 -1
- package/src/tools/esbuild/i18n-locale-plugin.d.ts +1 -8
- package/src/tools/esbuild/i18n-locale-plugin.js +33 -114
- package/src/tools/esbuild/i18n-locale-plugin.js.map +1 -1
- package/src/tools/esbuild/license-extractor.d.ts +1 -1
- package/src/tools/esbuild/license-extractor.js +89 -86
- package/src/tools/esbuild/license-extractor.js.map +1 -1
- package/src/tools/esbuild/load-result-cache.d.ts +2 -1
- package/src/tools/esbuild/load-result-cache.js +28 -13
- package/src/tools/esbuild/load-result-cache.js.map +1 -1
- package/src/tools/esbuild/persistent-load-result-cache.d.ts +87 -0
- package/src/tools/esbuild/persistent-load-result-cache.js +229 -0
- package/src/tools/esbuild/persistent-load-result-cache.js.map +1 -0
- package/src/tools/esbuild/stylesheets/bundle-options.d.ts +1 -0
- package/src/tools/esbuild/stylesheets/bundle-options.js +1 -1
- package/src/tools/esbuild/stylesheets/bundle-options.js.map +1 -1
- package/src/tools/esbuild/stylesheets/css-resource-plugin.d.ts +3 -1
- package/src/tools/esbuild/stylesheets/css-resource-plugin.js +4 -2
- package/src/tools/esbuild/stylesheets/css-resource-plugin.js.map +1 -1
- package/src/tools/esbuild/stylesheets/sass-language.d.ts +9 -0
- package/src/tools/esbuild/stylesheets/sass-language.js +109 -50
- package/src/tools/esbuild/stylesheets/sass-language.js.map +1 -1
- package/src/tools/esbuild/stylesheets/stylesheet-cache-key.d.ts +35 -0
- package/src/tools/esbuild/stylesheets/stylesheet-cache-key.js +64 -0
- package/src/tools/esbuild/stylesheets/stylesheet-cache-key.js.map +1 -0
- package/src/tools/esbuild/stylesheets/stylesheet-plugin-factory.d.ts +1 -1
- package/src/tools/esbuild/utils.d.ts +3 -3
- package/src/tools/esbuild/utils.js +9 -6
- package/src/tools/esbuild/utils.js.map +1 -1
- package/src/tools/i18n/i18n-inliner-worker.d.ts +126 -0
- package/src/tools/i18n/i18n-inliner-worker.js +363 -0
- package/src/tools/i18n/i18n-inliner-worker.js.map +1 -0
- package/src/tools/i18n/i18n-inliner.d.ts +97 -0
- package/src/tools/i18n/i18n-inliner.js +500 -0
- package/src/tools/i18n/i18n-inliner.js.map +1 -0
- package/src/tools/i18n/i18n-translation-encoder.d.ts +21 -0
- package/src/tools/i18n/i18n-translation-encoder.js +92 -0
- package/src/tools/i18n/i18n-translation-encoder.js.map +1 -0
- package/src/tools/i18n/i18n-translation-reader.d.ts +41 -0
- package/src/tools/i18n/i18n-translation-reader.js +164 -0
- package/src/tools/i18n/i18n-translation-reader.js.map +1 -0
- package/src/tools/i18n/index.d.ts +11 -0
- package/src/tools/i18n/index.js +28 -0
- package/src/tools/i18n/index.js.map +1 -0
- package/src/tools/i18n/locale-data.d.ts +47 -0
- package/src/tools/i18n/locale-data.js +108 -0
- package/src/tools/i18n/locale-data.js.map +1 -0
- package/src/tools/javascript-transformer/index.d.ts +8 -0
- package/src/tools/javascript-transformer/index.js +25 -0
- package/src/tools/javascript-transformer/index.js.map +1 -0
- package/src/tools/{esbuild → javascript-transformer}/javascript-transformer-worker.d.ts +0 -4
- package/src/tools/javascript-transformer/javascript-transformer-worker.js +231 -0
- package/src/tools/javascript-transformer/javascript-transformer-worker.js.map +1 -0
- package/src/tools/{esbuild → javascript-transformer}/javascript-transformer.d.ts +26 -9
- package/src/tools/javascript-transformer/javascript-transformer.js +294 -0
- package/src/tools/javascript-transformer/javascript-transformer.js.map +1 -0
- package/src/tools/{babel/plugins → oxc}/oxc-transform.d.ts +5 -2
- package/src/tools/{babel/plugins → oxc}/oxc-transform.js +105 -138
- package/src/tools/oxc/oxc-transform.js.map +1 -0
- package/src/tools/oxc/traversal.d.ts +32 -0
- package/src/tools/oxc/traversal.js +299 -0
- package/src/tools/oxc/traversal.js.map +1 -0
- package/src/tools/oxc/types.d.ts +20 -0
- package/src/tools/sass/rebasing-importer.d.ts +12 -18
- package/src/tools/sass/rebasing-importer.js +23 -26
- package/src/tools/sass/rebasing-importer.js.map +1 -1
- package/src/tools/sass/sass-service.d.ts +15 -38
- package/src/tools/sass/sass-service.js +132 -187
- package/src/tools/sass/sass-service.js.map +1 -1
- package/src/tools/vite/middlewares/assets-middleware.js +3 -3
- package/src/tools/vite/middlewares/assets-middleware.js.map +1 -1
- package/src/tools/vite/utils.d.ts +1 -1
- package/src/{tools/esbuild → utils/cache}/cache.d.ts +25 -8
- package/src/{tools/esbuild → utils/cache}/cache.js +72 -41
- package/src/utils/cache/cache.js.map +1 -0
- package/src/utils/cache/index.d.ts +8 -0
- package/src/utils/cache/index.js +25 -0
- package/src/utils/cache/index.js.map +1 -0
- package/src/{tools/esbuild → utils/cache}/lmdb-cache-store.js +1 -1
- package/src/{tools/esbuild → utils/cache}/lmdb-cache-store.js.map +1 -1
- package/src/{tools/esbuild → utils/cache}/sqlite-cache-store.d.ts +1 -1
- package/src/utils/cache/sqlite-cache-store.js +339 -0
- package/src/utils/cache/sqlite-cache-store.js.map +1 -0
- package/src/utils/concurrency.d.ts +30 -0
- package/src/utils/concurrency.js +81 -0
- package/src/utils/concurrency.js.map +1 -0
- package/src/utils/environment-options.d.ts +34 -0
- package/src/utils/environment-options.js +42 -12
- package/src/utils/environment-options.js.map +1 -1
- package/src/utils/hash.d.ts +24 -0
- package/src/utils/hash.js +94 -0
- package/src/utils/hash.js.map +1 -0
- package/src/utils/i18n-options.d.ts +3 -1
- package/src/utils/i18n-options.js.map +1 -1
- package/src/utils/index-file/auto-csp.d.ts +8 -0
- package/src/utils/index-file/auto-csp.js +30 -3
- package/src/utils/index-file/auto-csp.js.map +1 -1
- package/src/utils/index-file/index-html-generator.d.ts +1 -1
- package/src/utils/index-file/index-html-generator.js +9 -13
- package/src/utils/index-file/index-html-generator.js.map +1 -1
- package/src/utils/index-file/inline-critical-css.d.ts +16 -18
- package/src/utils/index-file/inline-critical-css.js +78 -179
- package/src/utils/index-file/inline-critical-css.js.map +1 -1
- package/src/utils/index-file/nonce.d.ts +2 -0
- package/src/utils/index-file/nonce.js +1 -0
- package/src/utils/index-file/nonce.js.map +1 -1
- package/src/utils/normalize-cache.js +1 -1
- package/src/utils/postcss-configuration.d.ts +6 -0
- package/src/utils/postcss-configuration.js +23 -0
- package/src/utils/postcss-configuration.js.map +1 -1
- package/src/{tools/esbuild → utils}/profiling.js +1 -1
- package/src/{tools/esbuild → utils}/profiling.js.map +1 -1
- package/src/utils/server-rendering/manifest.d.ts +2 -2
- package/src/utils/server-rendering/manifest.js +53 -4
- package/src/utils/server-rendering/manifest.js.map +1 -1
- package/src/utils/source-map.d.ts +26 -2
- package/src/utils/source-map.js +151 -53
- package/src/utils/source-map.js.map +1 -1
- package/src/utils/test-files.d.ts +2 -2
- package/src/utils/test-files.js +3 -3
- package/src/utils/test-files.js.map +1 -1
- package/src/utils/watcher.d.ts +61 -0
- package/src/utils/watcher.js +642 -0
- package/src/utils/watcher.js.map +1 -0
- package/src/tools/angular/compilation/noop-compilation.d.ts +0 -20
- package/src/tools/angular/compilation/noop-compilation.js +0 -27
- package/src/tools/angular/compilation/noop-compilation.js.map +0 -1
- package/src/tools/babel/plugins/add-code-coverage.d.ts +0 -14
- package/src/tools/babel/plugins/add-code-coverage.js +0 -44
- package/src/tools/babel/plugins/add-code-coverage.js.map +0 -1
- package/src/tools/babel/plugins/adjust-static-class-members.d.ts +0 -25
- package/src/tools/babel/plugins/adjust-static-class-members.js +0 -349
- package/src/tools/babel/plugins/adjust-static-class-members.js.map +0 -1
- package/src/tools/babel/plugins/adjust-typescript-enums.d.ts +0 -21
- package/src/tools/babel/plugins/adjust-typescript-enums.js +0 -113
- package/src/tools/babel/plugins/adjust-typescript-enums.js.map +0 -1
- package/src/tools/babel/plugins/elide-angular-metadata.d.ts +0 -23
- package/src/tools/babel/plugins/elide-angular-metadata.js +0 -110
- package/src/tools/babel/plugins/elide-angular-metadata.js.map +0 -1
- package/src/tools/babel/plugins/index.d.ts +0 -11
- package/src/tools/babel/plugins/index.js +0 -22
- package/src/tools/babel/plugins/index.js.map +0 -1
- package/src/tools/babel/plugins/oxc-transform.js.map +0 -1
- package/src/tools/babel/plugins/pure-toplevel-functions.d.ts +0 -13
- package/src/tools/babel/plugins/pure-toplevel-functions.js +0 -128
- package/src/tools/babel/plugins/pure-toplevel-functions.js.map +0 -1
- package/src/tools/babel/plugins/types.d.ts +0 -20
- package/src/tools/babel/typings.d.ts +0 -21
- package/src/tools/esbuild/cache.js.map +0 -1
- package/src/tools/esbuild/i18n-inliner-worker.d.ts +0 -81
- package/src/tools/esbuild/i18n-inliner-worker.js +0 -255
- package/src/tools/esbuild/i18n-inliner-worker.js.map +0 -1
- package/src/tools/esbuild/i18n-inliner.d.ts +0 -58
- package/src/tools/esbuild/i18n-inliner.js +0 -265
- package/src/tools/esbuild/i18n-inliner.js.map +0 -1
- package/src/tools/esbuild/index-html-generator.js.map +0 -1
- package/src/tools/esbuild/javascript-transformer-worker.js +0 -192
- package/src/tools/esbuild/javascript-transformer-worker.js.map +0 -1
- package/src/tools/esbuild/javascript-transformer.js +0 -197
- package/src/tools/esbuild/javascript-transformer.js.map +0 -1
- package/src/tools/esbuild/sqlite-cache-store.js +0 -165
- package/src/tools/esbuild/sqlite-cache-store.js.map +0 -1
- package/src/tools/esbuild/watcher.d.ts +0 -25
- package/src/tools/esbuild/watcher.js +0 -119
- package/src/tools/esbuild/watcher.js.map +0 -1
- package/src/tools/sass/worker.d.ts +0 -63
- package/src/tools/sass/worker.js +0 -202
- package/src/tools/sass/worker.js.map +0 -1
- /package/src/tools/{esbuild/angular → angular/compilation}/diagnostics.d.ts +0 -0
- /package/src/tools/{esbuild/angular → angular/compilation}/diagnostics.js +0 -0
- /package/src/tools/{esbuild/angular → angular/compilation}/diagnostics.js.map +0 -0
- /package/src/{tools/esbuild → utils/cache}/lmdb-cache-store.d.ts +0 -0
- /package/src/{tools/esbuild → utils}/profiling.d.ts +0 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Google LLC All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
+
* found in the LICENSE file at https://angular.dev/license
|
|
7
|
+
*/
|
|
8
|
+
import type { CallExpression } from '@oxc-project/types';
|
|
9
|
+
/**
|
|
10
|
+
* Manages Angular partial declaration linking using Oxc AST nodes.
|
|
11
|
+
*/
|
|
12
|
+
export declare class OxcLinker {
|
|
13
|
+
#private;
|
|
14
|
+
constructor(filename: string, code: string, jit?: boolean);
|
|
15
|
+
/**
|
|
16
|
+
* Attempts to link an Angular partial declaration CallExpression.
|
|
17
|
+
*
|
|
18
|
+
* @param node The CallExpression AST node to check and link.
|
|
19
|
+
* @returns The linked code string if the node is a partial declaration, or undefined otherwise.
|
|
20
|
+
*/
|
|
21
|
+
linkCallExpression(node: CallExpression): string | undefined;
|
|
22
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @license
|
|
4
|
+
* Copyright Google LLC All Rights Reserved.
|
|
5
|
+
*
|
|
6
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
7
|
+
* found in the LICENSE file at https://angular.dev/license
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.OxcLinker = void 0;
|
|
11
|
+
const compiler_cli_1 = require("@angular/compiler-cli");
|
|
12
|
+
const linker_1 = require("@angular/compiler-cli/linker");
|
|
13
|
+
const oxc_ast_host_1 = require("./oxc-ast-host");
|
|
14
|
+
const string_ast_factory_1 = require("./string-ast-factory");
|
|
15
|
+
/**
|
|
16
|
+
* A declaration scope that instructs the Angular compiler to emit constant pools
|
|
17
|
+
* inside a local IIFE around each linked declaration rather than hoisting shared
|
|
18
|
+
* constants to the module level.
|
|
19
|
+
*
|
|
20
|
+
* Preferred due to:
|
|
21
|
+
* - In-Place String Replacement: Enables fast in-place string replacements in
|
|
22
|
+
* `MagicString` without parsing or mutating surrounding ES module statements.
|
|
23
|
+
* - Better Tree-Shaking Locality: Component constants are strictly encapsulated
|
|
24
|
+
* within the component's `@__PURE__` IIFE closure (`(function() { ... })()`). If a
|
|
25
|
+
* bundler tree-shakes an unused component from a library FESM, all of its associated
|
|
26
|
+
* constants are automatically eliminated without leaving orphan top-level variables.
|
|
27
|
+
* - Negligible Wire Size Impact: LZ77/Brotli compression deduplicates repeated IIFE
|
|
28
|
+
* wrappers and array literals over the wire to near-zero marginal cost.
|
|
29
|
+
*/
|
|
30
|
+
class InlineDeclarationScope {
|
|
31
|
+
getConstantScopeRef() {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
const noopFileSystem = {
|
|
36
|
+
exists: () => false,
|
|
37
|
+
readFile: () => '',
|
|
38
|
+
resolve: (...paths) => paths.join('/'),
|
|
39
|
+
dirname: (path) => path.split('/').slice(0, -1).join('/'),
|
|
40
|
+
relative: (_from, to) => to,
|
|
41
|
+
};
|
|
42
|
+
let SHARED_LOGGER;
|
|
43
|
+
let SHARED_AST_HOST;
|
|
44
|
+
let SHARED_DECLARATION_SCOPE;
|
|
45
|
+
/**
|
|
46
|
+
* Manages Angular partial declaration linking using Oxc AST nodes.
|
|
47
|
+
*/
|
|
48
|
+
class OxcLinker {
|
|
49
|
+
#fileLinker;
|
|
50
|
+
constructor(filename, code, jit = false) {
|
|
51
|
+
SHARED_LOGGER ??= new compiler_cli_1.ConsoleLogger(compiler_cli_1.LogLevel.info);
|
|
52
|
+
SHARED_AST_HOST ??= new oxc_ast_host_1.OxcAstHost();
|
|
53
|
+
SHARED_DECLARATION_SCOPE ??= new InlineDeclarationScope();
|
|
54
|
+
const astFactory = new string_ast_factory_1.StringAstFactory(code);
|
|
55
|
+
const linkerEnvironment = linker_1.LinkerEnvironment.create(noopFileSystem, SHARED_LOGGER, SHARED_AST_HOST, astFactory, { linkerJitMode: jit, sourceMapping: false });
|
|
56
|
+
this.#fileLinker = new linker_1.FileLinker(linkerEnvironment, filename, code);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Attempts to link an Angular partial declaration CallExpression.
|
|
60
|
+
*
|
|
61
|
+
* @param node The CallExpression AST node to check and link.
|
|
62
|
+
* @returns The linked code string if the node is a partial declaration, or undefined otherwise.
|
|
63
|
+
*/
|
|
64
|
+
linkCallExpression(node) {
|
|
65
|
+
const calleeName = SHARED_AST_HOST.getSymbolName(node.callee);
|
|
66
|
+
if (!calleeName || !this.#fileLinker.isPartialDeclaration(calleeName)) {
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
const args = SHARED_AST_HOST.parseArguments(node);
|
|
70
|
+
const linkedCode = this.#fileLinker.linkPartialDeclaration(calleeName, args, SHARED_DECLARATION_SCOPE);
|
|
71
|
+
return linkedCode;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.OxcLinker = OxcLinker;
|
|
75
|
+
//# sourceMappingURL=oxc-linker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oxc-linker.js","sourceRoot":"","sources":["oxc-linker.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,wDAAgE;AAChE,yDAAoG;AAMpG,iDAA4C;AAC5C,6DAAwD;AAExD;;;;;;;;;;;;;;GAcG;AACH,MAAM,sBAAsB;IAC1B,mBAAmB;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,MAAM,cAAc,GAAuB;IACzC,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK;IACnB,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE;IAClB,OAAO,EAAE,CAAC,GAAG,KAAe,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;IAChD,OAAO,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IACjE,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAU,EAAE,EAAE,CAAC,EAAE;CACX,CAAC;AAEnC,IAAI,aAA4B,CAAC;AACjC,IAAI,eAA2B,CAAC;AAChC,IAAI,wBAAgD,CAAC;AAErD;;GAEG;AACH,MAAa,SAAS;IACX,WAAW,CAA2D;IAE/E,YAAY,QAAgB,EAAE,IAAY,EAAE,GAAG,GAAG,KAAK;QACrD,aAAa,KAAK,IAAI,4BAAa,CAAC,uBAAQ,CAAC,IAAI,CAAC,CAAC;QACnD,eAAe,KAAK,IAAI,yBAAU,EAAE,CAAC;QACrC,wBAAwB,KAAK,IAAI,sBAAsB,EAAE,CAAC;QAE1D,MAAM,UAAU,GAAG,IAAI,qCAAgB,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,iBAAiB,GAAG,0BAAiB,CAAC,MAAM,CAChD,cAAc,EACd,aAAa,EACb,eAAe,EACf,UAAU,EACV,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,CAC7C,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG,IAAI,mBAAU,CAAC,iBAAiB,EAAE,QAA0B,EAAE,IAAI,CAAC,CAAC;IACzF,CAAC;IAED;;;;;OAKG;IACH,kBAAkB,CAAC,IAAoB;QACrC,MAAM,UAAU,GAAG,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9D,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAC;YACtE,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,IAAI,GAAG,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,sBAAsB,CACxD,UAAU,EACV,IAAI,EACJ,wBAAwB,CACzB,CAAC;QAEF,OAAO,UAAoB,CAAC;IAC9B,CAAC;CACF;AAzCD,8BAyCC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Google LLC All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
+
* found in the LICENSE file at https://angular.dev/license
|
|
7
|
+
*/
|
|
8
|
+
import type { AstFactory, BinaryOperator, LeadingComment, ObjectLiteralProperty, SourceMapRange, TemplateLiteral, UnaryOperator, VariableDeclarationType } from '@angular/compiler-cli/src/ngtsc/translator';
|
|
9
|
+
import type { BuiltInType, Parameter } from '@angular/compiler-cli/src/ngtsc/translator/src/api/ast_factory';
|
|
10
|
+
/**
|
|
11
|
+
* An implementation of `AstFactory` that generates JavaScript code strings directly.
|
|
12
|
+
*/
|
|
13
|
+
export declare class StringAstFactory implements AstFactory<string, unknown, string> {
|
|
14
|
+
private readonly sourceCode;
|
|
15
|
+
constructor(sourceCode?: string);
|
|
16
|
+
private render;
|
|
17
|
+
/**
|
|
18
|
+
* Wraps an expression in parentheses if it has syntax or operator precedence
|
|
19
|
+
* traps when used as the receiver/callee of property access, element access,
|
|
20
|
+
* call chains, `new` expressions, or tagged templates.
|
|
21
|
+
*
|
|
22
|
+
* For example, arrow functions (`(() => {}).foo`), numbers (`(5).foo`), object
|
|
23
|
+
* literals (`({ a: 1 }).foo`), and unary operators (`(void 0)()`) require
|
|
24
|
+
* parenthesization when used as receivers.
|
|
25
|
+
*/
|
|
26
|
+
private wrapReceiver;
|
|
27
|
+
/**
|
|
28
|
+
* Wraps an expression in parentheses if it is an un-parenthesized complex
|
|
29
|
+
* operand (such as an un-parenthesized binary, logical, or assignment expression)
|
|
30
|
+
* to prevent operator precedence inversion when embedded inside an outer expression.
|
|
31
|
+
*
|
|
32
|
+
* Atomic expressions (identifiers, member/element access chains, and simple
|
|
33
|
+
* literals matching `/^[a-zA-Z0-9_$.[\]"'`]+$/`) and already-parenthesized
|
|
34
|
+
* expressions are returned as-is.
|
|
35
|
+
*/
|
|
36
|
+
private wrapOperand;
|
|
37
|
+
/**
|
|
38
|
+
* Attaching statement-level comments is a no-op in `StringAstFactory`.
|
|
39
|
+
*
|
|
40
|
+
* Why this is safe:
|
|
41
|
+
* - Load-bearing tree-shaking annotations (`@__PURE__` markers) are explicitly prepended by
|
|
42
|
+
* `createCallExpression` and `createCallChain` whenever `pure: true`.
|
|
43
|
+
* - In `@angular/compiler`, `LeadingComment` is only used for `@ts-ignore` (suppressing
|
|
44
|
+
* TypeScript checker errors in generated `.ts` code) and `webpackChunkName` (in dynamic
|
|
45
|
+
* imports), neither of which occur during `.js`/`.mjs` library partial linking.
|
|
46
|
+
*/
|
|
47
|
+
attachComments(_statement: string, _leadingComments: LeadingComment[]): void;
|
|
48
|
+
createArrayLiteral(elements: unknown[]): string;
|
|
49
|
+
createAssignment(target: unknown, operator: BinaryOperator, value: unknown): string;
|
|
50
|
+
createBinaryExpression(leftOperand: unknown, operator: BinaryOperator, rightOperand: unknown): string;
|
|
51
|
+
createBlock(body: string[]): string;
|
|
52
|
+
createCallExpression(callee: unknown, args: unknown[], pure: boolean): string;
|
|
53
|
+
createCallChain(callee: unknown, args: unknown[], pure: boolean, isOptional: boolean): string;
|
|
54
|
+
createConditional(condition: unknown, thenExpression: unknown, elseExpression: unknown): string;
|
|
55
|
+
createElementAccess(expression: unknown, element: unknown): string;
|
|
56
|
+
createElementAccessChain(expression: unknown, element: unknown, isOptional: boolean): string;
|
|
57
|
+
createExpressionStatement(expression: unknown): string;
|
|
58
|
+
createFunctionDeclaration(functionName: string, parameters: Parameter<string>[], body: string): string;
|
|
59
|
+
createFunctionExpression(functionName: string | null, parameters: Parameter<string>[], body: string): string;
|
|
60
|
+
createArrowFunctionExpression(parameters: Parameter<string>[], body: unknown): string;
|
|
61
|
+
createDynamicImport(url: unknown): string;
|
|
62
|
+
createIdentifier(name: string): string;
|
|
63
|
+
createIfStatement(condition: unknown, thenStatement: string, elseStatement: string | null): string;
|
|
64
|
+
createLiteral(value: string | number | boolean | null | undefined): string;
|
|
65
|
+
createNewExpression(expression: unknown, args: unknown[]): string;
|
|
66
|
+
createObjectLiteral(properties: ObjectLiteralProperty<unknown>[]): string;
|
|
67
|
+
createParenthesizedExpression(expression: unknown): string;
|
|
68
|
+
createPropertyAccess(expression: unknown, propertyName: string): string;
|
|
69
|
+
createPropertyAccessChain(expression: unknown, propertyName: string, isOptional: boolean): string;
|
|
70
|
+
createReturnStatement(expression: unknown | null): string;
|
|
71
|
+
createTaggedTemplate(tag: unknown, template: TemplateLiteral<unknown>): string;
|
|
72
|
+
createTemplateLiteral(template: TemplateLiteral<unknown>): string;
|
|
73
|
+
createThrowStatement(expression: unknown): string;
|
|
74
|
+
createTypeOfExpression(expression: unknown): string;
|
|
75
|
+
createVoidExpression(expression: unknown): string;
|
|
76
|
+
createUnaryExpression(operator: UnaryOperator, operand: unknown): string;
|
|
77
|
+
createVariableDeclaration(variableName: string, initializer: unknown | null, variableType: VariableDeclarationType, _type?: string | null): string;
|
|
78
|
+
createRegularExpressionLiteral(body: string, flags: string | null): string;
|
|
79
|
+
createSpreadElement(expression: unknown): string;
|
|
80
|
+
createBuiltInType(_type: BuiltInType): string;
|
|
81
|
+
createExpressionType(_expression: unknown, _typeParams: string[] | null): string;
|
|
82
|
+
createArrayType(_elementType: string): string;
|
|
83
|
+
createMapType(_valueType: string): string;
|
|
84
|
+
transplantType(_type: string): string;
|
|
85
|
+
setSourceMapRange<T extends string | unknown>(node: T, _sourceMapRange: SourceMapRange | null): T;
|
|
86
|
+
}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @license
|
|
4
|
+
* Copyright Google LLC All Rights Reserved.
|
|
5
|
+
*
|
|
6
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
7
|
+
* found in the LICENSE file at https://angular.dev/license
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.StringAstFactory = void 0;
|
|
11
|
+
const OBJECT_LITERAL_PREFIX = '\0obj_';
|
|
12
|
+
/**
|
|
13
|
+
* An implementation of `AstFactory` that generates JavaScript code strings directly.
|
|
14
|
+
*/
|
|
15
|
+
class StringAstFactory {
|
|
16
|
+
sourceCode;
|
|
17
|
+
constructor(sourceCode = '') {
|
|
18
|
+
this.sourceCode = sourceCode;
|
|
19
|
+
}
|
|
20
|
+
render(expr) {
|
|
21
|
+
let rendered;
|
|
22
|
+
if (typeof expr === 'string') {
|
|
23
|
+
rendered = expr;
|
|
24
|
+
}
|
|
25
|
+
else if (typeof expr === 'object' &&
|
|
26
|
+
expr !== null &&
|
|
27
|
+
typeof expr.start === 'number' &&
|
|
28
|
+
typeof expr.end === 'number') {
|
|
29
|
+
const { start, end } = expr;
|
|
30
|
+
rendered = this.sourceCode.slice(start, end);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
rendered = String(expr);
|
|
34
|
+
}
|
|
35
|
+
if (rendered.startsWith(OBJECT_LITERAL_PREFIX)) {
|
|
36
|
+
return rendered.slice(OBJECT_LITERAL_PREFIX.length);
|
|
37
|
+
}
|
|
38
|
+
return rendered;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Wraps an expression in parentheses if it has syntax or operator precedence
|
|
42
|
+
* traps when used as the receiver/callee of property access, element access,
|
|
43
|
+
* call chains, `new` expressions, or tagged templates.
|
|
44
|
+
*
|
|
45
|
+
* For example, arrow functions (`(() => {}).foo`), numbers (`(5).foo`), object
|
|
46
|
+
* literals (`({ a: 1 }).foo`), and unary operators (`(void 0)()`) require
|
|
47
|
+
* parenthesization when used as receivers.
|
|
48
|
+
*/
|
|
49
|
+
wrapReceiver(receiver) {
|
|
50
|
+
let rendered = this.render(receiver);
|
|
51
|
+
if (rendered.startsWith('function') ||
|
|
52
|
+
rendered.startsWith('{') ||
|
|
53
|
+
rendered.includes('=>') ||
|
|
54
|
+
/^(?:typeof|void|delete|new|await|throw|return)\b/.test(rendered) ||
|
|
55
|
+
/^[!~+-]/.test(rendered) ||
|
|
56
|
+
/^\d/.test(rendered)) {
|
|
57
|
+
rendered = `(${rendered})`;
|
|
58
|
+
}
|
|
59
|
+
return rendered;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Wraps an expression in parentheses if it is an un-parenthesized complex
|
|
63
|
+
* operand (such as an un-parenthesized binary, logical, or assignment expression)
|
|
64
|
+
* to prevent operator precedence inversion when embedded inside an outer expression.
|
|
65
|
+
*
|
|
66
|
+
* Atomic expressions (identifiers, member/element access chains, and simple
|
|
67
|
+
* literals matching `/^[a-zA-Z0-9_$.[\]"'`]+$/`) and already-parenthesized
|
|
68
|
+
* expressions are returned as-is.
|
|
69
|
+
*/
|
|
70
|
+
wrapOperand(expr) {
|
|
71
|
+
const rendered = this.render(expr);
|
|
72
|
+
if ((rendered.startsWith('(') && rendered.endsWith(')')) ||
|
|
73
|
+
/^[a-zA-Z0-9_$.[\]"'`]+$/.test(rendered)) {
|
|
74
|
+
return rendered;
|
|
75
|
+
}
|
|
76
|
+
return `(${rendered})`;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Attaching statement-level comments is a no-op in `StringAstFactory`.
|
|
80
|
+
*
|
|
81
|
+
* Why this is safe:
|
|
82
|
+
* - Load-bearing tree-shaking annotations (`@__PURE__` markers) are explicitly prepended by
|
|
83
|
+
* `createCallExpression` and `createCallChain` whenever `pure: true`.
|
|
84
|
+
* - In `@angular/compiler`, `LeadingComment` is only used for `@ts-ignore` (suppressing
|
|
85
|
+
* TypeScript checker errors in generated `.ts` code) and `webpackChunkName` (in dynamic
|
|
86
|
+
* imports), neither of which occur during `.js`/`.mjs` library partial linking.
|
|
87
|
+
*/
|
|
88
|
+
attachComments(_statement, _leadingComments) { }
|
|
89
|
+
createArrayLiteral(elements) {
|
|
90
|
+
return `[${elements.map((e) => this.render(e)).join(', ')}]`;
|
|
91
|
+
}
|
|
92
|
+
createAssignment(target, operator, value) {
|
|
93
|
+
return `(${this.render(target)} ${operator} ${this.render(value)})`;
|
|
94
|
+
}
|
|
95
|
+
createBinaryExpression(leftOperand, operator, rightOperand) {
|
|
96
|
+
return `(${this.wrapOperand(leftOperand)} ${operator} ${this.wrapOperand(rightOperand)})`;
|
|
97
|
+
}
|
|
98
|
+
createBlock(body) {
|
|
99
|
+
return `{\n${body.join('\n')}\n}`;
|
|
100
|
+
}
|
|
101
|
+
createCallExpression(callee, args, pure) {
|
|
102
|
+
const annotation = pure ? '/*@__PURE__*/ ' : '';
|
|
103
|
+
return `${annotation}${this.wrapReceiver(callee)}(${args.map((a) => this.render(a)).join(', ')})`;
|
|
104
|
+
}
|
|
105
|
+
createCallChain(callee, args, pure, isOptional) {
|
|
106
|
+
const annotation = pure ? '/*@__PURE__*/ ' : '';
|
|
107
|
+
const operator = isOptional ? '?.' : '';
|
|
108
|
+
return `${annotation}${this.wrapReceiver(callee)}${operator}(${args.map((a) => this.render(a)).join(', ')})`;
|
|
109
|
+
}
|
|
110
|
+
createConditional(condition, thenExpression, elseExpression) {
|
|
111
|
+
return `(${this.render(condition)} ? ${this.render(thenExpression)} : ${this.render(elseExpression)})`;
|
|
112
|
+
}
|
|
113
|
+
createElementAccess(expression, element) {
|
|
114
|
+
return `${this.wrapReceiver(expression)}[${this.render(element)}]`;
|
|
115
|
+
}
|
|
116
|
+
createElementAccessChain(expression, element, isOptional) {
|
|
117
|
+
const operator = isOptional ? '?.' : '';
|
|
118
|
+
return `${this.wrapReceiver(expression)}${operator}[${this.render(element)}]`;
|
|
119
|
+
}
|
|
120
|
+
createExpressionStatement(expression) {
|
|
121
|
+
return `${this.render(expression)};`;
|
|
122
|
+
}
|
|
123
|
+
createFunctionDeclaration(functionName, parameters, body) {
|
|
124
|
+
const params = parameters.map((p) => p.name).join(', ');
|
|
125
|
+
return `function ${functionName}(${params}) ${body}`;
|
|
126
|
+
}
|
|
127
|
+
createFunctionExpression(functionName, parameters, body) {
|
|
128
|
+
const name = functionName ? ` ${functionName}` : '';
|
|
129
|
+
const params = parameters.map((p) => p.name).join(', ');
|
|
130
|
+
return `function${name}(${params}) ${body}`;
|
|
131
|
+
}
|
|
132
|
+
createArrowFunctionExpression(parameters, body) {
|
|
133
|
+
const params = parameters.map((p) => p.name).join(', ');
|
|
134
|
+
const isObjectLiteral = typeof body === 'string' && body.startsWith(OBJECT_LITERAL_PREFIX);
|
|
135
|
+
const renderedBody = this.render(body);
|
|
136
|
+
const formattedBody = isObjectLiteral ? `(${renderedBody})` : renderedBody;
|
|
137
|
+
return `(${params}) => ${formattedBody}`;
|
|
138
|
+
}
|
|
139
|
+
createDynamicImport(url) {
|
|
140
|
+
return `import(${this.render(url)})`;
|
|
141
|
+
}
|
|
142
|
+
createIdentifier(name) {
|
|
143
|
+
return name;
|
|
144
|
+
}
|
|
145
|
+
createIfStatement(condition, thenStatement, elseStatement) {
|
|
146
|
+
const elseClause = elseStatement ? ` else ${elseStatement}` : '';
|
|
147
|
+
return `if (${this.render(condition)}) ${thenStatement}${elseClause}`;
|
|
148
|
+
}
|
|
149
|
+
createLiteral(value) {
|
|
150
|
+
return typeof value === 'string' ? JSON.stringify(value) : String(value);
|
|
151
|
+
}
|
|
152
|
+
createNewExpression(expression, args) {
|
|
153
|
+
return `new ${this.wrapReceiver(expression)}(${args.map((a) => this.render(a)).join(', ')})`;
|
|
154
|
+
}
|
|
155
|
+
createObjectLiteral(properties) {
|
|
156
|
+
const props = properties.map((p) => {
|
|
157
|
+
if (p.kind === 'spread') {
|
|
158
|
+
return `...${this.render(p.expression)}`;
|
|
159
|
+
}
|
|
160
|
+
const key = p.quoted ? JSON.stringify(p.propertyName) : p.propertyName;
|
|
161
|
+
return `${key}: ${this.render(p.value)}`;
|
|
162
|
+
});
|
|
163
|
+
return `${OBJECT_LITERAL_PREFIX}{\n${props.join(',\n')}\n}`;
|
|
164
|
+
}
|
|
165
|
+
createParenthesizedExpression(expression) {
|
|
166
|
+
return `(${this.render(expression)})`;
|
|
167
|
+
}
|
|
168
|
+
createPropertyAccess(expression, propertyName) {
|
|
169
|
+
return `${this.wrapReceiver(expression)}.${propertyName}`;
|
|
170
|
+
}
|
|
171
|
+
createPropertyAccessChain(expression, propertyName, isOptional) {
|
|
172
|
+
const operator = isOptional ? '?.' : '.';
|
|
173
|
+
return `${this.wrapReceiver(expression)}${operator}${propertyName}`;
|
|
174
|
+
}
|
|
175
|
+
createReturnStatement(expression) {
|
|
176
|
+
return `return${expression !== null ? ` ${this.render(expression)}` : ''};`;
|
|
177
|
+
}
|
|
178
|
+
createTaggedTemplate(tag, template) {
|
|
179
|
+
return `${this.wrapReceiver(tag)}${this.createTemplateLiteral(template)}`;
|
|
180
|
+
}
|
|
181
|
+
createTemplateLiteral(template) {
|
|
182
|
+
let result = '`';
|
|
183
|
+
for (let i = 0; i < template.elements.length; i++) {
|
|
184
|
+
result += template.elements[i].raw;
|
|
185
|
+
if (i < template.expressions.length) {
|
|
186
|
+
result += `\${${this.render(template.expressions[i])}}`;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
result += '`';
|
|
190
|
+
return result;
|
|
191
|
+
}
|
|
192
|
+
createThrowStatement(expression) {
|
|
193
|
+
return `throw ${this.render(expression)};`;
|
|
194
|
+
}
|
|
195
|
+
createTypeOfExpression(expression) {
|
|
196
|
+
return `typeof ${this.wrapOperand(expression)}`;
|
|
197
|
+
}
|
|
198
|
+
createVoidExpression(expression) {
|
|
199
|
+
return `void ${this.wrapOperand(expression)}`;
|
|
200
|
+
}
|
|
201
|
+
createUnaryExpression(operator, operand) {
|
|
202
|
+
return `${operator}${this.wrapOperand(operand)}`;
|
|
203
|
+
}
|
|
204
|
+
createVariableDeclaration(variableName, initializer, variableType, _type = null) {
|
|
205
|
+
const init = initializer !== null ? ` = ${this.render(initializer)}` : '';
|
|
206
|
+
return `${variableType} ${variableName}${init};`;
|
|
207
|
+
}
|
|
208
|
+
createRegularExpressionLiteral(body, flags) {
|
|
209
|
+
return `/${body}/${flags ?? ''}`;
|
|
210
|
+
}
|
|
211
|
+
createSpreadElement(expression) {
|
|
212
|
+
return `...${this.render(expression)}`;
|
|
213
|
+
}
|
|
214
|
+
createBuiltInType(_type) {
|
|
215
|
+
return '';
|
|
216
|
+
}
|
|
217
|
+
createExpressionType(_expression, _typeParams) {
|
|
218
|
+
return '';
|
|
219
|
+
}
|
|
220
|
+
createArrayType(_elementType) {
|
|
221
|
+
return '';
|
|
222
|
+
}
|
|
223
|
+
createMapType(_valueType) {
|
|
224
|
+
return '';
|
|
225
|
+
}
|
|
226
|
+
transplantType(_type) {
|
|
227
|
+
return '';
|
|
228
|
+
}
|
|
229
|
+
setSourceMapRange(node, _sourceMapRange) {
|
|
230
|
+
return node;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
exports.StringAstFactory = StringAstFactory;
|
|
234
|
+
//# sourceMappingURL=string-ast-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string-ast-factory.js","sourceRoot":"","sources":["string-ast-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,14 +5,34 @@
|
|
|
5
5
|
* Use of this source code is governed by an MIT-style license that can be
|
|
6
6
|
* found in the LICENSE file at https://angular.dev/license
|
|
7
7
|
*/
|
|
8
|
-
import {
|
|
9
|
-
|
|
8
|
+
import type { CompilerOptions } from '@angular/compiler-cli';
|
|
9
|
+
import type { AngularCompilation } from '../../angular/compilation';
|
|
10
|
+
export declare abstract class AngularCompilationContext {
|
|
11
|
+
abstract readonly compilation?: AngularCompilation;
|
|
12
|
+
abstract isPrimary(): this is PrimaryCompilationContext;
|
|
13
|
+
abstract readonly waitUntilReady: Promise<boolean>;
|
|
14
|
+
abstract getCompilerOptions(): Promise<CompilerOptions>;
|
|
15
|
+
abstract dispose(): Promise<void>;
|
|
16
|
+
createSecondaryContext(): AngularCompilationContext;
|
|
17
|
+
}
|
|
18
|
+
export declare class PrimaryCompilationContext extends AngularCompilationContext {
|
|
10
19
|
#private;
|
|
11
20
|
constructor(compilation: AngularCompilation);
|
|
21
|
+
isPrimary(): this is PrimaryCompilationContext;
|
|
12
22
|
get compilation(): AngularCompilation;
|
|
13
23
|
get waitUntilReady(): Promise<boolean>;
|
|
24
|
+
getCompilerOptions(): Promise<CompilerOptions>;
|
|
25
|
+
setCompilerOptions(options: CompilerOptions): void;
|
|
14
26
|
markAsReady(hasErrors: boolean): void;
|
|
15
27
|
markAsInProgress(): void;
|
|
16
28
|
dispose(): Promise<void>;
|
|
17
|
-
|
|
29
|
+
}
|
|
30
|
+
export declare class SecondaryCompilationContext extends AngularCompilationContext {
|
|
31
|
+
private readonly primaryContext?;
|
|
32
|
+
constructor(primaryContext?: AngularCompilationContext | undefined);
|
|
33
|
+
isPrimary(): this is PrimaryCompilationContext;
|
|
34
|
+
get compilation(): undefined;
|
|
35
|
+
get waitUntilReady(): Promise<boolean>;
|
|
36
|
+
getCompilerOptions(): Promise<CompilerOptions>;
|
|
37
|
+
dispose(): Promise<void>;
|
|
18
38
|
}
|
|
@@ -7,17 +7,29 @@
|
|
|
7
7
|
* found in the LICENSE file at https://angular.dev/license
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.AngularCompilationContext = void 0;
|
|
11
|
-
const compilation_1 = require("../../angular/compilation");
|
|
10
|
+
exports.SecondaryCompilationContext = exports.PrimaryCompilationContext = exports.AngularCompilationContext = void 0;
|
|
12
11
|
class AngularCompilationContext {
|
|
12
|
+
createSecondaryContext() {
|
|
13
|
+
return new SecondaryCompilationContext(this);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.AngularCompilationContext = AngularCompilationContext;
|
|
17
|
+
class PrimaryCompilationContext extends AngularCompilationContext {
|
|
13
18
|
#compilation;
|
|
14
19
|
#pendingCompilation = true;
|
|
15
20
|
#resolveCompilationReady;
|
|
16
21
|
#compilationReadyPromise;
|
|
17
22
|
#hasErrors = true;
|
|
23
|
+
#compilerOptions;
|
|
24
|
+
#resolveCompilerOptions;
|
|
25
|
+
#compilerOptionsPromise;
|
|
18
26
|
constructor(compilation) {
|
|
27
|
+
super();
|
|
19
28
|
this.#compilation = compilation;
|
|
20
29
|
}
|
|
30
|
+
isPrimary() {
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
21
33
|
get compilation() {
|
|
22
34
|
return this.#compilation;
|
|
23
35
|
}
|
|
@@ -30,14 +42,39 @@ class AngularCompilationContext {
|
|
|
30
42
|
});
|
|
31
43
|
return this.#compilationReadyPromise;
|
|
32
44
|
}
|
|
45
|
+
getCompilerOptions() {
|
|
46
|
+
if (this.#compilerOptions) {
|
|
47
|
+
return Promise.resolve(this.#compilerOptions);
|
|
48
|
+
}
|
|
49
|
+
if (!this.#pendingCompilation) {
|
|
50
|
+
return Promise.resolve({});
|
|
51
|
+
}
|
|
52
|
+
this.#compilerOptionsPromise ??= new Promise((resolve) => {
|
|
53
|
+
this.#resolveCompilerOptions = resolve;
|
|
54
|
+
});
|
|
55
|
+
return this.#compilerOptionsPromise;
|
|
56
|
+
}
|
|
57
|
+
setCompilerOptions(options) {
|
|
58
|
+
this.#compilerOptions = options;
|
|
59
|
+
this.#resolveCompilerOptions?.(options);
|
|
60
|
+
this.#resolveCompilerOptions = undefined;
|
|
61
|
+
this.#compilerOptionsPromise = undefined;
|
|
62
|
+
}
|
|
33
63
|
markAsReady(hasErrors) {
|
|
34
64
|
this.#hasErrors = hasErrors;
|
|
35
65
|
this.#resolveCompilationReady?.(hasErrors);
|
|
66
|
+
this.#resolveCompilationReady = undefined;
|
|
36
67
|
this.#compilationReadyPromise = undefined;
|
|
37
68
|
this.#pendingCompilation = false;
|
|
69
|
+
if (this.#resolveCompilerOptions) {
|
|
70
|
+
this.#resolveCompilerOptions(this.#compilerOptions ?? {});
|
|
71
|
+
this.#resolveCompilerOptions = undefined;
|
|
72
|
+
this.#compilerOptionsPromise = undefined;
|
|
73
|
+
}
|
|
38
74
|
}
|
|
39
75
|
markAsInProgress() {
|
|
40
76
|
this.#pendingCompilation = true;
|
|
77
|
+
this.#compilerOptions = undefined;
|
|
41
78
|
}
|
|
42
79
|
#disposal;
|
|
43
80
|
dispose() {
|
|
@@ -53,28 +90,29 @@ class AngularCompilationContext {
|
|
|
53
90
|
// Suppress closure errors to avoid unhandled rejections during teardown.
|
|
54
91
|
}
|
|
55
92
|
}
|
|
56
|
-
createSecondaryContext() {
|
|
57
|
-
return new SecondaryCompilationContext(this);
|
|
58
|
-
}
|
|
59
93
|
}
|
|
60
|
-
exports.
|
|
94
|
+
exports.PrimaryCompilationContext = PrimaryCompilationContext;
|
|
61
95
|
class SecondaryCompilationContext extends AngularCompilationContext {
|
|
62
96
|
primaryContext;
|
|
63
97
|
constructor(primaryContext) {
|
|
64
|
-
super(
|
|
98
|
+
super();
|
|
65
99
|
this.primaryContext = primaryContext;
|
|
66
100
|
}
|
|
67
|
-
|
|
68
|
-
return
|
|
101
|
+
isPrimary() {
|
|
102
|
+
return false;
|
|
69
103
|
}
|
|
70
|
-
|
|
71
|
-
|
|
104
|
+
get compilation() {
|
|
105
|
+
return undefined;
|
|
72
106
|
}
|
|
73
|
-
|
|
74
|
-
|
|
107
|
+
get waitUntilReady() {
|
|
108
|
+
return this.primaryContext?.waitUntilReady ?? Promise.resolve(false);
|
|
109
|
+
}
|
|
110
|
+
getCompilerOptions() {
|
|
111
|
+
return this.primaryContext?.getCompilerOptions() ?? Promise.resolve({});
|
|
75
112
|
}
|
|
76
113
|
async dispose() {
|
|
77
114
|
// No-op for secondary context to avoid disposing the primary compilation worker
|
|
78
115
|
}
|
|
79
116
|
}
|
|
117
|
+
exports.SecondaryCompilationContext = SecondaryCompilationContext;
|
|
80
118
|
//# sourceMappingURL=compilation-state.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compilation-state.js","sourceRoot":"","sources":["compilation-state.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;
|
|
1
|
+
{"version":3,"file":"compilation-state.js","sourceRoot":"","sources":["compilation-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,5 +31,6 @@ export interface CompilerPluginOptions {
|
|
|
31
31
|
externalRuntimeStyles?: boolean;
|
|
32
32
|
instrumentForCoverage?: (request: string) => boolean;
|
|
33
33
|
templateUpdates?: Map<string, string>;
|
|
34
|
+
rootFiles?: string[];
|
|
34
35
|
}
|
|
35
36
|
export declare function createCompilerPlugin(pluginOptions: CompilerPluginOptions, compilationContextOrCompilation: AngularCompilationContext | AngularCompilation | (() => Promise<AngularCompilation>), stylesheetBundler: ComponentStylesheetBundler): Plugin;
|