@depup/angular__build 22.1.8-depup.5 → 22.2.0-depup.1
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 +11 -15
- package/builders.json +1 -1
- package/changes.json +17 -33
- package/package.json +36 -51
- 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
|
@@ -6,16 +6,40 @@
|
|
|
6
6
|
* found in the LICENSE file at https://angular.dev/license
|
|
7
7
|
*/
|
|
8
8
|
import type { EncodedSourceMap } from '@ampproject/remapping';
|
|
9
|
+
export declare const SOURCEMAP_COMMENT_PREFIX = "//# sourceMappingURL=";
|
|
10
|
+
export declare const SOURCEMAP_COMMENT_BYTES: Buffer<ArrayBuffer>;
|
|
11
|
+
/**
|
|
12
|
+
* Checks for a single trailing `//# sourceMappingURL=` comment on a raw buffer.
|
|
13
|
+
*
|
|
14
|
+
* @param data The raw byte buffer to inspect.
|
|
15
|
+
* @returns An object containing the sliced code buffer and URL snippet if a single trailing comment exists,
|
|
16
|
+
* `null` if no sourcemap comment exists in the buffer, or `undefined` if multiple/non-trailing comments exist.
|
|
17
|
+
*/
|
|
18
|
+
export declare function findTrailingSourceMapComment(data: Uint8Array): {
|
|
19
|
+
code: Uint8Array;
|
|
20
|
+
urlLine: string;
|
|
21
|
+
} | null | undefined;
|
|
9
22
|
/**
|
|
10
23
|
* Removes `//# sourceMappingURL=` comments safely from the given JavaScript code,
|
|
11
24
|
* ignoring any occurrences that are inside string literals, template literals, or block comments.
|
|
12
25
|
*
|
|
13
|
-
*
|
|
26
|
+
* For raw Uint8Array / Buffer inputs, it optimizes performance by inspecting trailing byte sequences
|
|
27
|
+
* to slice the buffer directly without full string decoding.
|
|
14
28
|
*
|
|
15
|
-
* @param code The JavaScript source code.
|
|
29
|
+
* @param code The JavaScript source code as a string or Uint8Array.
|
|
16
30
|
* @returns The code with top-level sourcemap comments removed.
|
|
17
31
|
*/
|
|
18
32
|
export declare function removeSourceMappingURL(code: string): string;
|
|
33
|
+
export declare function removeSourceMappingURL(code: Uint8Array): Uint8Array;
|
|
34
|
+
/**
|
|
35
|
+
* Checks whether a `//# sourceMappingURL=` URL line snippet represents a valid trailing comment at the end of the file.
|
|
36
|
+
*/
|
|
37
|
+
export declare function isTrailingSourceMapComment(urlLine: string): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Resolves and loads the input sourcemap referenced in a `//# sourceMappingURL=` URL line snippet.
|
|
40
|
+
* Supports inline base64 data URIs, local absolute file URLs, and relative/absolute filesystem paths.
|
|
41
|
+
*/
|
|
42
|
+
export declare function loadInputSourceMapFromUrl(filename: string, urlLine: string): EncodedSourceMap | undefined;
|
|
19
43
|
/**
|
|
20
44
|
* Finds, resolves, and loads the input sourcemap referenced in the code's trailing
|
|
21
45
|
* sourceMappingURL comment, if present. Supports inline base64 data URIs, local absolute
|
package/src/utils/source-map.js
CHANGED
|
@@ -7,22 +7,73 @@
|
|
|
7
7
|
* found in the LICENSE file at https://angular.dev/license
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.SOURCEMAP_COMMENT_BYTES = exports.SOURCEMAP_COMMENT_PREFIX = void 0;
|
|
11
|
+
exports.findTrailingSourceMapComment = findTrailingSourceMapComment;
|
|
10
12
|
exports.removeSourceMappingURL = removeSourceMappingURL;
|
|
13
|
+
exports.isTrailingSourceMapComment = isTrailingSourceMapComment;
|
|
14
|
+
exports.loadInputSourceMapFromUrl = loadInputSourceMapFromUrl;
|
|
11
15
|
exports.loadInputSourceMap = loadInputSourceMap;
|
|
12
16
|
const node_fs_1 = require("node:fs");
|
|
13
17
|
const node_path_1 = require("node:path");
|
|
14
18
|
const node_url_1 = require("node:url");
|
|
19
|
+
exports.SOURCEMAP_COMMENT_PREFIX = '//# sourceMappingURL=';
|
|
20
|
+
exports.SOURCEMAP_COMMENT_BYTES = Buffer.from(exports.SOURCEMAP_COMMENT_PREFIX);
|
|
15
21
|
/**
|
|
16
|
-
*
|
|
17
|
-
* ignoring any occurrences that are inside string literals, template literals, or block comments.
|
|
22
|
+
* Checks for a single trailing `//# sourceMappingURL=` comment on a raw buffer.
|
|
18
23
|
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
* @returns The code with top-level sourcemap comments removed.
|
|
24
|
+
* @param data The raw byte buffer to inspect.
|
|
25
|
+
* @returns An object containing the sliced code buffer and URL snippet if a single trailing comment exists,
|
|
26
|
+
* `null` if no sourcemap comment exists in the buffer, or `undefined` if multiple/non-trailing comments exist.
|
|
23
27
|
*/
|
|
28
|
+
function findTrailingSourceMapComment(data) {
|
|
29
|
+
const dataBuffer = Buffer.isBuffer(data)
|
|
30
|
+
? data
|
|
31
|
+
: Buffer.from(data.buffer, data.byteOffset, data.byteLength);
|
|
32
|
+
const firstIndex = dataBuffer.indexOf(exports.SOURCEMAP_COMMENT_BYTES);
|
|
33
|
+
if (firstIndex === -1) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
const lastIndex = dataBuffer.lastIndexOf(exports.SOURCEMAP_COMMENT_BYTES);
|
|
37
|
+
// Skip any preceding horizontal whitespace (spaces/tabs) to find the start of the line.
|
|
38
|
+
let prevIdx = lastIndex - 1;
|
|
39
|
+
while (prevIdx >= 0 && (dataBuffer[prevIdx] === 32 || dataBuffer[prevIdx] === 9)) {
|
|
40
|
+
prevIdx--;
|
|
41
|
+
}
|
|
42
|
+
// Ensure the comment starts at the beginning of a line or the start of the file,
|
|
43
|
+
// preventing false positives for occurrences inside inline string literals or code.
|
|
44
|
+
const isLineStart = prevIdx < 0 || dataBuffer[prevIdx] === 10 || dataBuffer[prevIdx] === 13;
|
|
45
|
+
if (firstIndex === lastIndex && isLineStart) {
|
|
46
|
+
const urlLine = dataBuffer
|
|
47
|
+
.subarray(lastIndex + exports.SOURCEMAP_COMMENT_BYTES.length)
|
|
48
|
+
.toString('utf-8');
|
|
49
|
+
return {
|
|
50
|
+
code: dataBuffer.subarray(0, prevIdx < 0 ? 0 : prevIdx + 1),
|
|
51
|
+
urlLine,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
24
56
|
function removeSourceMappingURL(code) {
|
|
25
|
-
if (
|
|
57
|
+
if (typeof code === 'string') {
|
|
58
|
+
return removeSourceMappingURLFromString(code);
|
|
59
|
+
}
|
|
60
|
+
const trailing = findTrailingSourceMapComment(code);
|
|
61
|
+
if (trailing === null) {
|
|
62
|
+
return code;
|
|
63
|
+
}
|
|
64
|
+
if (trailing && isTrailingSourceMapComment(trailing.urlLine)) {
|
|
65
|
+
return trailing.code;
|
|
66
|
+
}
|
|
67
|
+
// Fallback to full decode and state-machine stripping for multiple comments or non-trailing comments
|
|
68
|
+
const dataBuffer = Buffer.isBuffer(code)
|
|
69
|
+
? code
|
|
70
|
+
: Buffer.from(code.buffer, code.byteOffset, code.byteLength);
|
|
71
|
+
const text = dataBuffer.toString('utf-8');
|
|
72
|
+
const stripped = removeSourceMappingURLFromString(text);
|
|
73
|
+
return stripped === text ? code : Buffer.from(stripped, 'utf-8');
|
|
74
|
+
}
|
|
75
|
+
function removeSourceMappingURLFromString(code) {
|
|
76
|
+
if (!code.includes(exports.SOURCEMAP_COMMENT_PREFIX)) {
|
|
26
77
|
return code;
|
|
27
78
|
}
|
|
28
79
|
const result = [];
|
|
@@ -58,12 +109,12 @@ function removeSourceMappingURL(code) {
|
|
|
58
109
|
isEscaped = true;
|
|
59
110
|
}
|
|
60
111
|
}
|
|
61
|
-
if (!isEscaped && code.startsWith(
|
|
112
|
+
if (!isEscaped && code.startsWith(exports.SOURCEMAP_COMMENT_PREFIX, i)) {
|
|
62
113
|
if (i > lastCopiedIndex) {
|
|
63
114
|
result.push(code.slice(lastCopiedIndex, i));
|
|
64
115
|
}
|
|
65
116
|
// Skip the rest of the comment line up to the newline
|
|
66
|
-
i +=
|
|
117
|
+
i += exports.SOURCEMAP_COMMENT_PREFIX.length;
|
|
67
118
|
while (i < len && code[i] !== '\n' && code[i] !== '\r') {
|
|
68
119
|
i++;
|
|
69
120
|
}
|
|
@@ -179,63 +230,85 @@ function removeSourceMappingURL(code) {
|
|
|
179
230
|
return result.join('');
|
|
180
231
|
}
|
|
181
232
|
/**
|
|
182
|
-
*
|
|
183
|
-
*
|
|
184
|
-
*
|
|
233
|
+
* Extracts the base64 payload from an inline sourcemap data URI line and verifies
|
|
234
|
+
* that only trailing whitespace follows the payload.
|
|
235
|
+
*
|
|
236
|
+
* @returns The base64 payload string if valid and trailing, or `undefined` otherwise.
|
|
185
237
|
*/
|
|
186
|
-
function
|
|
187
|
-
|
|
188
|
-
// the entire file with a regular expression (significant for large files).
|
|
189
|
-
const lastSourceMapIndex = code.lastIndexOf('//# sourceMappingURL=');
|
|
190
|
-
if (lastSourceMapIndex === -1) {
|
|
238
|
+
function extractTrailingBase64Payload(urlLine) {
|
|
239
|
+
if (!urlLine.startsWith('data:application/json;')) {
|
|
191
240
|
return undefined;
|
|
192
241
|
}
|
|
193
|
-
const
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
const
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
const char = urlLine[i];
|
|
206
|
-
if (char === ' ' || char === '\r' || char === '\n' || char === '\t') {
|
|
207
|
-
payloadEnd = i;
|
|
208
|
-
break;
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
// Verify that everything after the base64 payload is trailing whitespace
|
|
212
|
-
// to ensure this is a valid trailing sourceMappingURL comment at the end of the file.
|
|
213
|
-
for (let i = payloadEnd; i < urlLine.length; i++) {
|
|
214
|
-
const char = urlLine[i];
|
|
215
|
-
if (char !== ' ' && char !== '\r' && char !== '\n' && char !== '\t') {
|
|
216
|
-
return undefined;
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
try {
|
|
220
|
-
// Extract the base64 payload and decode it directly into binary memory.
|
|
221
|
-
const base64Content = urlLine.slice(payloadStart, payloadEnd);
|
|
222
|
-
return JSON.parse(Buffer.from(base64Content, 'base64').toString('utf-8'));
|
|
242
|
+
const base64StartIndex = urlLine.indexOf('base64,');
|
|
243
|
+
if (base64StartIndex === -1) {
|
|
244
|
+
return undefined;
|
|
245
|
+
}
|
|
246
|
+
const payloadStart = base64StartIndex + 7;
|
|
247
|
+
let payloadEnd = urlLine.length;
|
|
248
|
+
// Find the first trailing whitespace character that marks the end of the base64 payload.
|
|
249
|
+
for (let i = payloadStart; i < urlLine.length; i++) {
|
|
250
|
+
const char = urlLine[i];
|
|
251
|
+
if (char === ' ' || char === '\r' || char === '\n' || char === '\t') {
|
|
252
|
+
payloadEnd = i;
|
|
253
|
+
break;
|
|
223
254
|
}
|
|
224
|
-
|
|
255
|
+
}
|
|
256
|
+
// Verify that everything after the base64 payload is trailing whitespace
|
|
257
|
+
// to ensure this is a valid trailing sourceMappingURL comment at the end of the file.
|
|
258
|
+
for (let i = payloadEnd; i < urlLine.length; i++) {
|
|
259
|
+
const char = urlLine[i];
|
|
260
|
+
if (char !== ' ' && char !== '\r' && char !== '\n' && char !== '\t') {
|
|
225
261
|
return undefined;
|
|
226
262
|
}
|
|
227
263
|
}
|
|
228
|
-
|
|
229
|
-
|
|
264
|
+
return urlLine.slice(payloadStart, payloadEnd);
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Extracts the URL from an external sourcemap comment line and verifies
|
|
268
|
+
* that only trailing whitespace follows the URL.
|
|
269
|
+
*
|
|
270
|
+
* @returns The URL string if valid and trailing, or `undefined` otherwise.
|
|
271
|
+
*/
|
|
272
|
+
function extractTrailingUrl(urlLine) {
|
|
273
|
+
if (urlLine.startsWith('data:')) {
|
|
274
|
+
return undefined;
|
|
275
|
+
}
|
|
276
|
+
const urlMatch = /^([^\r\n\s'"`]+)/.exec(urlLine);
|
|
230
277
|
if (!urlMatch) {
|
|
231
278
|
return undefined;
|
|
232
279
|
}
|
|
233
|
-
const
|
|
234
|
-
const remaining = urlLine.slice(url.length);
|
|
235
|
-
// Verify there is only whitespace after the URL to the end of the file.
|
|
280
|
+
const remaining = urlLine.slice(urlMatch[1].length);
|
|
236
281
|
if (!/^\s*$/.test(remaining)) {
|
|
237
282
|
return undefined;
|
|
238
283
|
}
|
|
284
|
+
return urlMatch[1];
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Checks whether a `//# sourceMappingURL=` URL line snippet represents a valid trailing comment at the end of the file.
|
|
288
|
+
*/
|
|
289
|
+
function isTrailingSourceMapComment(urlLine) {
|
|
290
|
+
return (extractTrailingBase64Payload(urlLine) !== undefined || extractTrailingUrl(urlLine) !== undefined);
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Resolves and loads the input sourcemap referenced in a `//# sourceMappingURL=` URL line snippet.
|
|
294
|
+
* Supports inline base64 data URIs, local absolute file URLs, and relative/absolute filesystem paths.
|
|
295
|
+
*/
|
|
296
|
+
function loadInputSourceMapFromUrl(filename, urlLine) {
|
|
297
|
+
// Inline base64-encoded sourcemaps can be extremely large (up to megabytes).
|
|
298
|
+
// Parse them without regular expressions to avoid heavy backtracking and allocations.
|
|
299
|
+
const base64Payload = extractTrailingBase64Payload(urlLine);
|
|
300
|
+
if (base64Payload !== undefined) {
|
|
301
|
+
try {
|
|
302
|
+
return JSON.parse(Buffer.from(base64Payload, 'base64').toString('utf-8'));
|
|
303
|
+
}
|
|
304
|
+
catch {
|
|
305
|
+
return undefined;
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
const url = extractTrailingUrl(urlLine);
|
|
309
|
+
if (!url) {
|
|
310
|
+
return undefined;
|
|
311
|
+
}
|
|
239
312
|
if (url.startsWith('file://')) {
|
|
240
313
|
// Local absolute file URL scheme.
|
|
241
314
|
try {
|
|
@@ -258,4 +331,29 @@ function loadInputSourceMap(filename, code) {
|
|
|
258
331
|
}
|
|
259
332
|
return undefined;
|
|
260
333
|
}
|
|
334
|
+
/**
|
|
335
|
+
* Finds, resolves, and loads the input sourcemap referenced in the code's trailing
|
|
336
|
+
* sourceMappingURL comment, if present. Supports inline base64 data URIs, local absolute
|
|
337
|
+
* file URLs, and relative/absolute filesystem paths.
|
|
338
|
+
*/
|
|
339
|
+
function loadInputSourceMap(filename, code) {
|
|
340
|
+
// Locate the last sourceMappingURL comment using lastIndexOf to avoid scanning
|
|
341
|
+
// the entire file with a regular expression (significant for large files).
|
|
342
|
+
const lastSourceMapIndex = code.lastIndexOf(exports.SOURCEMAP_COMMENT_PREFIX);
|
|
343
|
+
if (lastSourceMapIndex === -1) {
|
|
344
|
+
return undefined;
|
|
345
|
+
}
|
|
346
|
+
if (lastSourceMapIndex > 0) {
|
|
347
|
+
// Skip any preceding horizontal whitespace (spaces/tabs) to find the start of the line.
|
|
348
|
+
let prevIdx = lastSourceMapIndex - 1;
|
|
349
|
+
while (prevIdx >= 0 && (code[prevIdx] === ' ' || code[prevIdx] === '\t')) {
|
|
350
|
+
prevIdx--;
|
|
351
|
+
}
|
|
352
|
+
// Ensure the comment starts at the beginning of a line, preventing false positives within code or strings.
|
|
353
|
+
if (prevIdx >= 0 && code[prevIdx] !== '\n' && code[prevIdx] !== '\r') {
|
|
354
|
+
return undefined;
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
return loadInputSourceMapFromUrl(filename, code.slice(lastSourceMapIndex + exports.SOURCEMAP_COMMENT_PREFIX.length));
|
|
358
|
+
}
|
|
261
359
|
//# sourceMappingURL=source-map.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-map.js","sourceRoot":"","sources":["source-map.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG
|
|
1
|
+
{"version":3,"file":"source-map.js","sourceRoot":"","sources":["source-map.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ import { ResultFile } from '../builders/application/results';
|
|
|
11
11
|
* This function handles both in-memory and on-disk files, creating subdirectories
|
|
12
12
|
* as needed.
|
|
13
13
|
*
|
|
14
|
-
* @param files A
|
|
14
|
+
* @param files A collection of `ResultFile` objects, representing the build output.
|
|
15
15
|
* @param testDir The absolute path to the directory where the files should be written.
|
|
16
16
|
*/
|
|
17
|
-
export declare function writeTestFiles(files:
|
|
17
|
+
export declare function writeTestFiles(files: readonly ResultFile[], testDir: string): Promise<void>;
|
package/src/utils/test-files.js
CHANGED
|
@@ -53,17 +53,17 @@ const utils_1 = require("../tools/esbuild/utils");
|
|
|
53
53
|
* This function handles both in-memory and on-disk files, creating subdirectories
|
|
54
54
|
* as needed.
|
|
55
55
|
*
|
|
56
|
-
* @param files A
|
|
56
|
+
* @param files A collection of `ResultFile` objects, representing the build output.
|
|
57
57
|
* @param testDir The absolute path to the directory where the files should be written.
|
|
58
58
|
*/
|
|
59
59
|
async function writeTestFiles(files, testDir) {
|
|
60
60
|
const directoryExists = new Set();
|
|
61
61
|
// Writes the test related output files to disk and ensures the containing directories are present
|
|
62
|
-
await (0, utils_1.emitFilesToDisk)(
|
|
62
|
+
await (0, utils_1.emitFilesToDisk)(files, async (file) => {
|
|
63
63
|
if (file.type !== bundler_files_1.BuildOutputFileType.Browser && file.type !== bundler_files_1.BuildOutputFileType.Media) {
|
|
64
64
|
return;
|
|
65
65
|
}
|
|
66
|
-
const fullFilePath = node_path_1.default.join(testDir,
|
|
66
|
+
const fullFilePath = node_path_1.default.join(testDir, file.path);
|
|
67
67
|
// Ensure output subdirectories exist
|
|
68
68
|
const fileBasePath = node_path_1.default.dirname(fullFilePath);
|
|
69
69
|
if (fileBasePath && !directoryExists.has(fileBasePath)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-files.js","sourceRoot":"","sources":["test-files.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBH,
|
|
1
|
+
{"version":3,"file":"test-files.js","sourceRoot":"","sources":["test-files.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBH,wCAyBC;AAvCD,qDAAuC;AACvC,0DAA6B;AAE7B,kEAAqE;AACrE,kDAAyD;AAEzD;;;;;;;GAOG;AACI,KAAK,UAAU,cAAc,CAAC,KAA4B,EAAE,OAAe;IAChF,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,kGAAkG;IAClG,MAAM,IAAA,uBAAe,EAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAmB,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAmB,CAAC,KAAK,EAAE,CAAC;YACzF,OAAO;QACT,CAAC;QAED,MAAM,YAAY,GAAG,mBAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAEnD,qCAAqC;QACrC,MAAM,YAAY,GAAG,mBAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAChD,IAAI,YAAY,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YACvD,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAClD,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,sBAAsB;YACtB,MAAM,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,qBAAqB;YACrB,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,EAAE,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACjF,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
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
|
+
export declare class ChangedFiles {
|
|
9
|
+
readonly added: Set<string>;
|
|
10
|
+
readonly modified: Set<string>;
|
|
11
|
+
readonly removed: Set<string>;
|
|
12
|
+
get all(): string[];
|
|
13
|
+
toDebugString(): string;
|
|
14
|
+
}
|
|
15
|
+
export interface BuildWatcher extends AsyncIterableIterator<ChangedFiles> {
|
|
16
|
+
add(paths: string | readonly string[]): void;
|
|
17
|
+
remove(paths: string | readonly string[]): void;
|
|
18
|
+
close(): Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
export interface WatcherOptions {
|
|
21
|
+
polling?: boolean;
|
|
22
|
+
interval?: number;
|
|
23
|
+
ignored?: string[];
|
|
24
|
+
followSymlinks?: boolean;
|
|
25
|
+
cwd?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface SetupWatcherOptions {
|
|
28
|
+
workspaceRoot: string;
|
|
29
|
+
projectRoot: string;
|
|
30
|
+
outputPath: string;
|
|
31
|
+
cacheOptions: {
|
|
32
|
+
basePath: string;
|
|
33
|
+
localBasePath?: string;
|
|
34
|
+
};
|
|
35
|
+
poll?: number;
|
|
36
|
+
preserveSymlinks?: boolean;
|
|
37
|
+
signal?: AbortSignal;
|
|
38
|
+
watchFiles?: Iterable<string>;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Sets up and initializes a file watcher with proper ignore patterns for build outputs and caches.
|
|
42
|
+
*/
|
|
43
|
+
export declare function setupWatcher(options: SetupWatcherOptions): Promise<BuildWatcher>;
|
|
44
|
+
/**
|
|
45
|
+
* Normalizes a file system path string to POSIX format (forward slashes '/')
|
|
46
|
+
* and strips trailing slashes (except root '/' or Windows drive root 'C:/').
|
|
47
|
+
*/
|
|
48
|
+
export declare function toPosixPathNormalized(pathString: string): string;
|
|
49
|
+
/**
|
|
50
|
+
* Returns the parent directory of a normalized POSIX path, correctly handling Windows drive roots.
|
|
51
|
+
*/
|
|
52
|
+
export declare function getDirectoryPath(posixPath: string): string;
|
|
53
|
+
export declare function createWatcher(options?: WatcherOptions): Promise<BuildWatcher>;
|
|
54
|
+
/**
|
|
55
|
+
* Checks whether a file path is located inside a parent directory.
|
|
56
|
+
*
|
|
57
|
+
* Input Expectations:
|
|
58
|
+
* - Both `file` and `dir` must be normalized POSIX-style paths (using forward slashes '/').
|
|
59
|
+
* - Both paths must share the same casing normalization (e.g., lowercased on case-insensitive file systems).
|
|
60
|
+
*/
|
|
61
|
+
export declare function isPathInside(file: string, dir: string): boolean;
|