@depup/angular__build 21.2.2-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/LICENSE +21 -0
- package/README.md +39 -0
- package/builders.json +34 -0
- package/changes.json +42 -0
- package/index.d.ts +8 -0
- package/index.js +25 -0
- package/index.js.map +1 -0
- package/package.json +177 -0
- package/private/index.d.ts +8 -0
- package/private/index.js +25 -0
- package/private/index.js.map +1 -0
- package/src/builders/application/build-action.d.ts +29 -0
- package/src/builders/application/build-action.js +355 -0
- package/src/builders/application/build-action.js.map +1 -0
- package/src/builders/application/chunk-optimizer.d.ts +21 -0
- package/src/builders/application/chunk-optimizer.js +278 -0
- package/src/builders/application/chunk-optimizer.js.map +1 -0
- package/src/builders/application/execute-build.d.ts +11 -0
- package/src/builders/application/execute-build.js +250 -0
- package/src/builders/application/execute-build.js.map +1 -0
- package/src/builders/application/execute-post-bundle.d.ts +27 -0
- package/src/builders/application/execute-post-bundle.js +136 -0
- package/src/builders/application/execute-post-bundle.js.map +1 -0
- package/src/builders/application/i18n.d.ts +31 -0
- package/src/builders/application/i18n.js +138 -0
- package/src/builders/application/i18n.js.map +1 -0
- package/src/builders/application/index.d.ts +32 -0
- package/src/builders/application/index.js +253 -0
- package/src/builders/application/index.js.map +1 -0
- package/src/builders/application/options.d.ts +214 -0
- package/src/builders/application/options.js +499 -0
- package/src/builders/application/options.js.map +1 -0
- package/src/builders/application/results.d.ts +73 -0
- package/src/builders/application/results.js +18 -0
- package/src/builders/application/results.js.map +1 -0
- package/src/builders/application/schema.d.ts +650 -0
- package/src/builders/application/schema.js +93 -0
- package/src/builders/application/schema.js.map +1 -0
- package/src/builders/application/schema.json +728 -0
- package/src/builders/application/setup-bundling.d.ts +25 -0
- package/src/builders/application/setup-bundling.js +104 -0
- package/src/builders/application/setup-bundling.js.map +1 -0
- package/src/builders/dev-server/builder.d.ts +31 -0
- package/src/builders/dev-server/builder.js +61 -0
- package/src/builders/dev-server/builder.js.map +1 -0
- package/src/builders/dev-server/index.d.ts +15 -0
- package/src/builders/dev-server/index.js +17 -0
- package/src/builders/dev-server/index.js.map +1 -0
- package/src/builders/dev-server/internal.d.ts +18 -0
- package/src/builders/dev-server/internal.js +28 -0
- package/src/builders/dev-server/internal.js.map +1 -0
- package/src/builders/dev-server/options.d.ts +51 -0
- package/src/builders/dev-server/options.js +104 -0
- package/src/builders/dev-server/options.js.map +1 -0
- package/src/builders/dev-server/output.d.ts +16 -0
- package/src/builders/dev-server/output.js +10 -0
- package/src/builders/dev-server/output.js.map +1 -0
- package/src/builders/dev-server/schema.d.ts +121 -0
- package/src/builders/dev-server/schema.js +5 -0
- package/src/builders/dev-server/schema.js.map +1 -0
- package/src/builders/dev-server/schema.json +138 -0
- package/src/builders/dev-server/vite/hmr.d.ts +25 -0
- package/src/builders/dev-server/vite/hmr.js +115 -0
- package/src/builders/dev-server/vite/hmr.js.map +1 -0
- package/src/builders/dev-server/vite/index.d.ts +21 -0
- package/src/builders/dev-server/vite/index.js +390 -0
- package/src/builders/dev-server/vite/index.js.map +1 -0
- package/src/builders/dev-server/vite/server.d.ts +15 -0
- package/src/builders/dev-server/vite/server.js +227 -0
- package/src/builders/dev-server/vite/server.js.map +1 -0
- package/src/builders/dev-server/vite/utils.d.ts +36 -0
- package/src/builders/dev-server/vite/utils.js +77 -0
- package/src/builders/dev-server/vite/utils.js.map +1 -0
- package/src/builders/extract-i18n/application-extraction.d.ts +18 -0
- package/src/builders/extract-i18n/application-extraction.js +132 -0
- package/src/builders/extract-i18n/application-extraction.js.map +1 -0
- package/src/builders/extract-i18n/builder.d.ts +14 -0
- package/src/builders/extract-i18n/builder.js +161 -0
- package/src/builders/extract-i18n/builder.js.map +1 -0
- package/src/builders/extract-i18n/index.d.ts +13 -0
- package/src/builders/extract-i18n/index.js +16 -0
- package/src/builders/extract-i18n/index.js.map +1 -0
- package/src/builders/extract-i18n/options.d.ts +33 -0
- package/src/builders/extract-i18n/options.js +86 -0
- package/src/builders/extract-i18n/options.js.map +1 -0
- package/src/builders/extract-i18n/schema.d.ts +53 -0
- package/src/builders/extract-i18n/schema.js +30 -0
- package/src/builders/extract-i18n/schema.js.map +1 -0
- package/src/builders/extract-i18n/schema.json +38 -0
- package/src/builders/karma/application_builder.d.ts +11 -0
- package/src/builders/karma/application_builder.js +324 -0
- package/src/builders/karma/application_builder.js.map +1 -0
- package/src/builders/karma/assets-middleware.d.ts +26 -0
- package/src/builders/karma/assets-middleware.js +66 -0
- package/src/builders/karma/assets-middleware.js.map +1 -0
- package/src/builders/karma/coverage.d.ts +9 -0
- package/src/builders/karma/coverage.js +32 -0
- package/src/builders/karma/coverage.js.map +1 -0
- package/src/builders/karma/find-tests.d.ts +9 -0
- package/src/builders/karma/find-tests.js +24 -0
- package/src/builders/karma/find-tests.js.map +1 -0
- package/src/builders/karma/index.d.ts +20 -0
- package/src/builders/karma/index.js +54 -0
- package/src/builders/karma/index.js.map +1 -0
- package/src/builders/karma/karma-config.d.ts +11 -0
- package/src/builders/karma/karma-config.js +80 -0
- package/src/builders/karma/karma-config.js.map +1 -0
- package/src/builders/karma/options.d.ts +42 -0
- package/src/builders/karma/options.js +44 -0
- package/src/builders/karma/options.js.map +1 -0
- package/src/builders/karma/polyfills/init_sourcemaps.js +10 -0
- package/src/builders/karma/polyfills/jasmine_global.js +18 -0
- package/src/builders/karma/polyfills/jasmine_global_cleanup.js +14 -0
- package/src/builders/karma/polyfills-plugin.d.ts +13 -0
- package/src/builders/karma/polyfills-plugin.js +75 -0
- package/src/builders/karma/polyfills-plugin.js.map +1 -0
- package/src/builders/karma/progress-reporter.d.ts +17 -0
- package/src/builders/karma/progress-reporter.js +76 -0
- package/src/builders/karma/progress-reporter.js.map +1 -0
- package/src/builders/karma/schema.d.ts +250 -0
- package/src/builders/karma/schema.js +16 -0
- package/src/builders/karma/schema.js.map +1 -0
- package/src/builders/karma/schema.json +348 -0
- package/src/builders/karma/utils.d.ts +17 -0
- package/src/builders/karma/utils.js +67 -0
- package/src/builders/karma/utils.js.map +1 -0
- package/src/builders/ng-packagr/builder.d.ts +19 -0
- package/src/builders/ng-packagr/builder.js +107 -0
- package/src/builders/ng-packagr/builder.js.map +1 -0
- package/src/builders/ng-packagr/index.d.ts +13 -0
- package/src/builders/ng-packagr/index.js +16 -0
- package/src/builders/ng-packagr/index.js.map +1 -0
- package/src/builders/ng-packagr/schema.d.ts +21 -0
- package/src/builders/ng-packagr/schema.js +5 -0
- package/src/builders/ng-packagr/schema.js.map +1 -0
- package/src/builders/ng-packagr/schema.json +26 -0
- package/src/builders/unit-test/builder.d.ts +15 -0
- package/src/builders/unit-test/builder.js +376 -0
- package/src/builders/unit-test/builder.js.map +1 -0
- package/src/builders/unit-test/index.d.ts +12 -0
- package/src/builders/unit-test/index.js +16 -0
- package/src/builders/unit-test/index.js.map +1 -0
- package/src/builders/unit-test/options.d.ts +53 -0
- package/src/builders/unit-test/options.js +119 -0
- package/src/builders/unit-test/options.js.map +1 -0
- package/src/builders/unit-test/runners/api.d.ts +65 -0
- package/src/builders/unit-test/runners/api.js +10 -0
- package/src/builders/unit-test/runners/api.js.map +1 -0
- package/src/builders/unit-test/runners/dependency-checker.d.ts +43 -0
- package/src/builders/unit-test/runners/dependency-checker.js +83 -0
- package/src/builders/unit-test/runners/dependency-checker.js.map +1 -0
- package/src/builders/unit-test/runners/karma/executor.d.ts +17 -0
- package/src/builders/unit-test/runners/karma/executor.js +164 -0
- package/src/builders/unit-test/runners/karma/executor.js.map +1 -0
- package/src/builders/unit-test/runners/karma/index.d.ts +13 -0
- package/src/builders/unit-test/runners/karma/index.js +44 -0
- package/src/builders/unit-test/runners/karma/index.js.map +1 -0
- package/src/builders/unit-test/runners/vitest/browser-provider.d.ts +17 -0
- package/src/builders/unit-test/runners/vitest/browser-provider.js +174 -0
- package/src/builders/unit-test/runners/vitest/browser-provider.js.map +1 -0
- package/src/builders/unit-test/runners/vitest/build-options.d.ts +11 -0
- package/src/builders/unit-test/runners/vitest/build-options.js +169 -0
- package/src/builders/unit-test/runners/vitest/build-options.js.map +1 -0
- package/src/builders/unit-test/runners/vitest/configuration.d.ts +15 -0
- package/src/builders/unit-test/runners/vitest/configuration.js +57 -0
- package/src/builders/unit-test/runners/vitest/configuration.js.map +1 -0
- package/src/builders/unit-test/runners/vitest/executor.d.ts +29 -0
- package/src/builders/unit-test/runners/vitest/executor.js +318 -0
- package/src/builders/unit-test/runners/vitest/executor.js.map +1 -0
- package/src/builders/unit-test/runners/vitest/index.d.ts +13 -0
- package/src/builders/unit-test/runners/vitest/index.js +69 -0
- package/src/builders/unit-test/runners/vitest/index.js.map +1 -0
- package/src/builders/unit-test/runners/vitest/plugins.d.ts +32 -0
- package/src/builders/unit-test/runners/vitest/plugins.js +382 -0
- package/src/builders/unit-test/runners/vitest/plugins.js.map +1 -0
- package/src/builders/unit-test/schema.d.ts +229 -0
- package/src/builders/unit-test/schema.js +25 -0
- package/src/builders/unit-test/schema.js.map +1 -0
- package/src/builders/unit-test/schema.json +280 -0
- package/src/builders/unit-test/test-discovery.d.ts +47 -0
- package/src/builders/unit-test/test-discovery.js +280 -0
- package/src/builders/unit-test/test-discovery.js.map +1 -0
- package/src/index.d.ts +16 -0
- package/src/index.js +25 -0
- package/src/index.js.map +1 -0
- package/src/private.d.ts +57 -0
- package/src/private.js +104 -0
- package/src/private.js.map +1 -0
- package/src/tools/angular/angular-host.d.ts +27 -0
- package/src/tools/angular/angular-host.js +164 -0
- package/src/tools/angular/angular-host.js.map +1 -0
- package/src/tools/angular/compilation/angular-compilation.d.ts +45 -0
- package/src/tools/angular/compilation/angular-compilation.js +104 -0
- package/src/tools/angular/compilation/angular-compilation.js.map +1 -0
- package/src/tools/angular/compilation/aot-compilation.d.ts +26 -0
- package/src/tools/angular/compilation/aot-compilation.js +341 -0
- package/src/tools/angular/compilation/aot-compilation.js.map +1 -0
- package/src/tools/angular/compilation/factory.d.ts +17 -0
- package/src/tools/angular/compilation/factory.js +67 -0
- package/src/tools/angular/compilation/factory.js.map +1 -0
- package/src/tools/angular/compilation/hmr-candidates.d.ts +22 -0
- package/src/tools/angular/compilation/hmr-candidates.js +270 -0
- package/src/tools/angular/compilation/hmr-candidates.js.map +1 -0
- package/src/tools/angular/compilation/index.d.ts +10 -0
- package/src/tools/angular/compilation/index.js +18 -0
- package/src/tools/angular/compilation/index.js.map +1 -0
- package/src/tools/angular/compilation/jit-compilation.d.ts +23 -0
- package/src/tools/angular/compilation/jit-compilation.js +150 -0
- package/src/tools/angular/compilation/jit-compilation.js.map +1 -0
- package/src/tools/angular/compilation/noop-compilation.d.ts +20 -0
- package/src/tools/angular/compilation/noop-compilation.js +27 -0
- package/src/tools/angular/compilation/noop-compilation.js.map +1 -0
- package/src/tools/angular/compilation/parallel-compilation.d.ts +44 -0
- package/src/tools/angular/compilation/parallel-compilation.js +119 -0
- package/src/tools/angular/compilation/parallel-compilation.js.map +1 -0
- package/src/tools/angular/compilation/parallel-worker.d.ts +39 -0
- package/src/tools/angular/compilation/parallel-worker.js +102 -0
- package/src/tools/angular/compilation/parallel-worker.js.map +1 -0
- package/src/tools/angular/transformers/jit-bootstrap-transformer.d.ts +10 -0
- package/src/tools/angular/transformers/jit-bootstrap-transformer.js +181 -0
- package/src/tools/angular/transformers/jit-bootstrap-transformer.js.map +1 -0
- package/src/tools/angular/transformers/jit-resource-transformer.d.ts +17 -0
- package/src/tools/angular/transformers/jit-resource-transformer.js +187 -0
- package/src/tools/angular/transformers/jit-resource-transformer.js.map +1 -0
- package/src/tools/angular/transformers/lazy-routes-transformer.d.ts +39 -0
- package/src/tools/angular/transformers/lazy-routes-transformer.js +164 -0
- package/src/tools/angular/transformers/lazy-routes-transformer.js.map +1 -0
- package/src/tools/angular/transformers/web-worker-transformer.d.ts +17 -0
- package/src/tools/angular/transformers/web-worker-transformer.js +94 -0
- package/src/tools/angular/transformers/web-worker-transformer.js.map +1 -0
- package/src/tools/angular/uri.d.ts +54 -0
- package/src/tools/angular/uri.js +76 -0
- package/src/tools/angular/uri.js.map +1 -0
- package/src/tools/babel/plugins/add-code-coverage.d.ts +14 -0
- package/src/tools/babel/plugins/add-code-coverage.js +45 -0
- package/src/tools/babel/plugins/add-code-coverage.js.map +1 -0
- package/src/tools/babel/plugins/adjust-static-class-members.d.ts +25 -0
- package/src/tools/babel/plugins/adjust-static-class-members.js +349 -0
- package/src/tools/babel/plugins/adjust-static-class-members.js.map +1 -0
- package/src/tools/babel/plugins/adjust-typescript-enums.d.ts +21 -0
- package/src/tools/babel/plugins/adjust-typescript-enums.js +113 -0
- package/src/tools/babel/plugins/adjust-typescript-enums.js.map +1 -0
- package/src/tools/babel/plugins/elide-angular-metadata.d.ts +21 -0
- package/src/tools/babel/plugins/elide-angular-metadata.js +110 -0
- package/src/tools/babel/plugins/elide-angular-metadata.js.map +1 -0
- package/src/tools/babel/plugins/index.d.ts +11 -0
- package/src/tools/babel/plugins/index.js +22 -0
- package/src/tools/babel/plugins/index.js.map +1 -0
- package/src/tools/babel/plugins/pure-toplevel-functions.d.ts +13 -0
- package/src/tools/babel/plugins/pure-toplevel-functions.js +128 -0
- package/src/tools/babel/plugins/pure-toplevel-functions.js.map +1 -0
- package/src/tools/babel/plugins/types.d.ts +20 -0
- package/src/tools/babel/typings.d.ts +21 -0
- package/src/tools/esbuild/angular/compilation-state.d.ts +15 -0
- package/src/tools/esbuild/angular/compilation-state.js +45 -0
- package/src/tools/esbuild/angular/compilation-state.js.map +1 -0
- package/src/tools/esbuild/angular/compiler-plugin.d.ts +34 -0
- package/src/tools/esbuild/angular/compiler-plugin.js +631 -0
- package/src/tools/esbuild/angular/compiler-plugin.js.map +1 -0
- package/src/tools/esbuild/angular/component-stylesheets.d.ts +49 -0
- package/src/tools/esbuild/angular/component-stylesheets.js +222 -0
- package/src/tools/esbuild/angular/component-stylesheets.js.map +1 -0
- package/src/tools/esbuild/angular/diagnostics.d.ts +15 -0
- package/src/tools/esbuild/angular/diagnostics.js +72 -0
- package/src/tools/esbuild/angular/diagnostics.js.map +1 -0
- package/src/tools/esbuild/angular/file-reference-tracker.d.ts +17 -0
- package/src/tools/esbuild/angular/file-reference-tracker.js +58 -0
- package/src/tools/esbuild/angular/file-reference-tracker.js.map +1 -0
- package/src/tools/esbuild/angular/jit-plugin-callbacks.d.ts +23 -0
- package/src/tools/esbuild/angular/jit-plugin-callbacks.js +120 -0
- package/src/tools/esbuild/angular/jit-plugin-callbacks.js.map +1 -0
- package/src/tools/esbuild/angular/rewrite-bazel-paths.d.ts +8 -0
- package/src/tools/esbuild/angular/rewrite-bazel-paths.js +28 -0
- package/src/tools/esbuild/angular/rewrite-bazel-paths.js.map +1 -0
- package/src/tools/esbuild/angular/source-file-cache.d.ts +18 -0
- package/src/tools/esbuild/angular/source-file-cache.js +80 -0
- package/src/tools/esbuild/angular/source-file-cache.js.map +1 -0
- package/src/tools/esbuild/angular-localize-init-warning-plugin.d.ts +16 -0
- package/src/tools/esbuild/angular-localize-init-warning-plugin.js +50 -0
- package/src/tools/esbuild/angular-localize-init-warning-plugin.js.map +1 -0
- package/src/tools/esbuild/application-code-bundle.d.ts +19 -0
- package/src/tools/esbuild/application-code-bundle.js +542 -0
- package/src/tools/esbuild/application-code-bundle.js.map +1 -0
- package/src/tools/esbuild/budget-stats.d.ts +19 -0
- package/src/tools/esbuild/budget-stats.js +67 -0
- package/src/tools/esbuild/budget-stats.js.map +1 -0
- package/src/tools/esbuild/bundler-context.d.ts +80 -0
- package/src/tools/esbuild/bundler-context.js +399 -0
- package/src/tools/esbuild/bundler-context.js.map +1 -0
- package/src/tools/esbuild/bundler-execution-result.d.ts +95 -0
- package/src/tools/esbuild/bundler-execution-result.js +149 -0
- package/src/tools/esbuild/bundler-execution-result.js.map +1 -0
- package/src/tools/esbuild/cache.d.ts +93 -0
- package/src/tools/esbuild/cache.js +100 -0
- package/src/tools/esbuild/cache.js.map +1 -0
- package/src/tools/esbuild/commonjs-checker.d.ts +28 -0
- package/src/tools/esbuild/commonjs-checker.js +151 -0
- package/src/tools/esbuild/commonjs-checker.js.map +1 -0
- package/src/tools/esbuild/compiler-plugin-options.d.ts +14 -0
- package/src/tools/esbuild/compiler-plugin-options.js +30 -0
- package/src/tools/esbuild/compiler-plugin-options.js.map +1 -0
- package/src/tools/esbuild/external-packages-plugin.d.ts +18 -0
- package/src/tools/esbuild/external-packages-plugin.js +97 -0
- package/src/tools/esbuild/external-packages-plugin.js.map +1 -0
- package/src/tools/esbuild/global-scripts.d.ts +16 -0
- package/src/tools/esbuild/global-scripts.js +153 -0
- package/src/tools/esbuild/global-scripts.js.map +1 -0
- package/src/tools/esbuild/global-styles.d.ts +10 -0
- package/src/tools/esbuild/global-styles.js +79 -0
- package/src/tools/esbuild/global-styles.js.map +1 -0
- package/src/tools/esbuild/i18n-inliner-worker.d.ts +77 -0
- package/src/tools/esbuild/i18n-inliner-worker.js +184 -0
- package/src/tools/esbuild/i18n-inliner-worker.js.map +1 -0
- package/src/tools/esbuild/i18n-inliner.d.ts +58 -0
- package/src/tools/esbuild/i18n-inliner.js +266 -0
- package/src/tools/esbuild/i18n-inliner.js.map +1 -0
- package/src/tools/esbuild/i18n-locale-plugin.d.ts +22 -0
- package/src/tools/esbuild/i18n-locale-plugin.js +139 -0
- package/src/tools/esbuild/i18n-locale-plugin.js.map +1 -0
- package/src/tools/esbuild/index-html-generator.d.ts +15 -0
- package/src/tools/esbuild/index-html-generator.js +91 -0
- package/src/tools/esbuild/index-html-generator.js.map +1 -0
- package/src/tools/esbuild/javascript-transformer-worker.d.ts +20 -0
- package/src/tools/esbuild/javascript-transformer-worker.js +162 -0
- package/src/tools/esbuild/javascript-transformer-worker.js.map +1 -0
- package/src/tools/esbuild/javascript-transformer.d.ts +54 -0
- package/src/tools/esbuild/javascript-transformer.js +153 -0
- package/src/tools/esbuild/javascript-transformer.js.map +1 -0
- package/src/tools/esbuild/license-extractor.d.ts +25 -0
- package/src/tools/esbuild/license-extractor.js +158 -0
- package/src/tools/esbuild/license-extractor.js.map +1 -0
- package/src/tools/esbuild/lmdb-cache-store.d.ts +18 -0
- package/src/tools/esbuild/lmdb-cache-store.js +55 -0
- package/src/tools/esbuild/lmdb-cache-store.js.map +1 -0
- package/src/tools/esbuild/load-result-cache.d.ts +21 -0
- package/src/tools/esbuild/load-result-cache.js +76 -0
- package/src/tools/esbuild/load-result-cache.js.map +1 -0
- package/src/tools/esbuild/loader-import-attribute-plugin.d.ts +9 -0
- package/src/tools/esbuild/loader-import-attribute-plugin.js +42 -0
- package/src/tools/esbuild/loader-import-attribute-plugin.js.map +1 -0
- package/src/tools/esbuild/profiling.d.ts +11 -0
- package/src/tools/esbuild/profiling.js +78 -0
- package/src/tools/esbuild/profiling.js.map +1 -0
- package/src/tools/esbuild/rxjs-esm-resolution-plugin.d.ts +18 -0
- package/src/tools/esbuild/rxjs-esm-resolution-plugin.js +44 -0
- package/src/tools/esbuild/rxjs-esm-resolution-plugin.js.map +1 -0
- package/src/tools/esbuild/server-bundle-metadata-plugin.d.ts +22 -0
- package/src/tools/esbuild/server-bundle-metadata-plugin.js +37 -0
- package/src/tools/esbuild/server-bundle-metadata-plugin.js.map +1 -0
- package/src/tools/esbuild/sourcemap-ignorelist-plugin.d.ts +17 -0
- package/src/tools/esbuild/sourcemap-ignorelist-plugin.js +73 -0
- package/src/tools/esbuild/sourcemap-ignorelist-plugin.js.map +1 -0
- package/src/tools/esbuild/stylesheets/bundle-options.d.ts +41 -0
- package/src/tools/esbuild/stylesheets/bundle-options.js +66 -0
- package/src/tools/esbuild/stylesheets/bundle-options.js.map +1 -0
- package/src/tools/esbuild/stylesheets/css-inline-fonts-plugin.d.ts +25 -0
- package/src/tools/esbuild/stylesheets/css-inline-fonts-plugin.js +57 -0
- package/src/tools/esbuild/stylesheets/css-inline-fonts-plugin.js.map +1 -0
- package/src/tools/esbuild/stylesheets/css-language.d.ts +9 -0
- package/src/tools/esbuild/stylesheets/css-language.js +16 -0
- package/src/tools/esbuild/stylesheets/css-language.js.map +1 -0
- package/src/tools/esbuild/stylesheets/css-resource-plugin.d.ts +18 -0
- package/src/tools/esbuild/stylesheets/css-resource-plugin.js +114 -0
- package/src/tools/esbuild/stylesheets/css-resource-plugin.js.map +1 -0
- package/src/tools/esbuild/stylesheets/less-language.d.ts +9 -0
- package/src/tools/esbuild/stylesheets/less-language.js +161 -0
- package/src/tools/esbuild/stylesheets/less-language.js.map +1 -0
- package/src/tools/esbuild/stylesheets/sass-language.d.ts +10 -0
- package/src/tools/esbuild/stylesheets/sass-language.js +231 -0
- package/src/tools/esbuild/stylesheets/sass-language.js.map +1 -0
- package/src/tools/esbuild/stylesheets/stylesheet-plugin-factory.d.ts +77 -0
- package/src/tools/esbuild/stylesheets/stylesheet-plugin-factory.js +333 -0
- package/src/tools/esbuild/stylesheets/stylesheet-plugin-factory.js.map +1 -0
- package/src/tools/esbuild/utils.d.ts +58 -0
- package/src/tools/esbuild/utils.js +394 -0
- package/src/tools/esbuild/utils.js.map +1 -0
- package/src/tools/esbuild/virtual-module-plugin.d.ts +33 -0
- package/src/tools/esbuild/virtual-module-plugin.js +43 -0
- package/src/tools/esbuild/virtual-module-plugin.js.map +1 -0
- package/src/tools/esbuild/wasm-plugin.d.ts +28 -0
- package/src/tools/esbuild/wasm-plugin.js +211 -0
- package/src/tools/esbuild/wasm-plugin.js.map +1 -0
- package/src/tools/esbuild/wasm.d.ts +25 -0
- package/src/tools/esbuild/watcher.d.ts +25 -0
- package/src/tools/esbuild/watcher.js +119 -0
- package/src/tools/esbuild/watcher.js.map +1 -0
- package/src/tools/sass/lexer.d.ts +18 -0
- package/src/tools/sass/lexer.js +172 -0
- package/src/tools/sass/lexer.js.map +1 -0
- package/src/tools/sass/rebasing-importer.d.ts +101 -0
- package/src/tools/sass/rebasing-importer.js +333 -0
- package/src/tools/sass/rebasing-importer.js.map +1 -0
- package/src/tools/sass/sass-service.d.ts +67 -0
- package/src/tools/sass/sass-service.js +242 -0
- package/src/tools/sass/sass-service.js.map +1 -0
- package/src/tools/sass/worker.d.ts +63 -0
- package/src/tools/sass/worker.js +202 -0
- package/src/tools/sass/worker.js.map +1 -0
- package/src/tools/vite/middlewares/assets-middleware.d.ts +17 -0
- package/src/tools/vite/middlewares/assets-middleware.js +205 -0
- package/src/tools/vite/middlewares/assets-middleware.js.map +1 -0
- package/src/tools/vite/middlewares/base-middleware.d.ts +17 -0
- package/src/tools/vite/middlewares/base-middleware.js +44 -0
- package/src/tools/vite/middlewares/base-middleware.js.map +1 -0
- package/src/tools/vite/middlewares/chrome-devtools-middleware.d.ts +9 -0
- package/src/tools/vite/middlewares/chrome-devtools-middleware.js +53 -0
- package/src/tools/vite/middlewares/chrome-devtools-middleware.js.map +1 -0
- package/src/tools/vite/middlewares/component-middleware.d.ts +9 -0
- package/src/tools/vite/middlewares/component-middleware.js +36 -0
- package/src/tools/vite/middlewares/component-middleware.js.map +1 -0
- package/src/tools/vite/middlewares/headers-middleware.d.ts +19 -0
- package/src/tools/vite/middlewares/headers-middleware.js +35 -0
- package/src/tools/vite/middlewares/headers-middleware.js.map +1 -0
- package/src/tools/vite/middlewares/host-check-middleware.d.ts +9 -0
- package/src/tools/vite/middlewares/host-check-middleware.js +61 -0
- package/src/tools/vite/middlewares/host-check-middleware.js.map +1 -0
- package/src/tools/vite/middlewares/html-fallback-middleware.d.ts +10 -0
- package/src/tools/vite/middlewares/html-fallback-middleware.js +42 -0
- package/src/tools/vite/middlewares/html-fallback-middleware.js.map +1 -0
- package/src/tools/vite/middlewares/index-html-middleware.d.ts +10 -0
- package/src/tools/vite/middlewares/index-html-middleware.js +47 -0
- package/src/tools/vite/middlewares/index-html-middleware.js.map +1 -0
- package/src/tools/vite/middlewares/index.d.ts +16 -0
- package/src/tools/vite/middlewares/index.js +30 -0
- package/src/tools/vite/middlewares/index.js.map +1 -0
- package/src/tools/vite/middlewares/ssr-middleware.d.ts +10 -0
- package/src/tools/vite/middlewares/ssr-middleware.js +129 -0
- package/src/tools/vite/middlewares/ssr-middleware.js.map +1 -0
- package/src/tools/vite/plugins/angular-memory-plugin.d.ts +18 -0
- package/src/tools/vite/plugins/angular-memory-plugin.js +149 -0
- package/src/tools/vite/plugins/angular-memory-plugin.js.map +1 -0
- package/src/tools/vite/plugins/id-prefix-plugin.d.ts +9 -0
- package/src/tools/vite/plugins/id-prefix-plugin.js +46 -0
- package/src/tools/vite/plugins/id-prefix-plugin.js.map +1 -0
- package/src/tools/vite/plugins/index.d.ts +12 -0
- package/src/tools/vite/plugins/index.js +22 -0
- package/src/tools/vite/plugins/index.js.map +1 -0
- package/src/tools/vite/plugins/setup-middlewares-plugin.d.ts +45 -0
- package/src/tools/vite/plugins/setup-middlewares-plugin.js +108 -0
- package/src/tools/vite/plugins/setup-middlewares-plugin.js.map +1 -0
- package/src/tools/vite/plugins/ssr-ssl-plugin.d.ts +9 -0
- package/src/tools/vite/plugins/ssr-ssl-plugin.js +92 -0
- package/src/tools/vite/plugins/ssr-ssl-plugin.js.map +1 -0
- package/src/tools/vite/plugins/ssr-transform-plugin.d.ts +9 -0
- package/src/tools/vite/plugins/ssr-transform-plugin.js +68 -0
- package/src/tools/vite/plugins/ssr-transform-plugin.js.map +1 -0
- package/src/tools/vite/utils.d.ts +45 -0
- package/src/tools/vite/utils.js +106 -0
- package/src/tools/vite/utils.js.map +1 -0
- package/src/utils/bundle-calculator.d.ts +45 -0
- package/src/utils/bundle-calculator.js +305 -0
- package/src/utils/bundle-calculator.js.map +1 -0
- package/src/utils/check-port.d.ts +8 -0
- package/src/utils/check-port.js +88 -0
- package/src/utils/check-port.js.map +1 -0
- package/src/utils/color.d.ts +9 -0
- package/src/utils/color.js +28 -0
- package/src/utils/color.js.map +1 -0
- package/src/utils/delete-output-dir.d.ts +11 -0
- package/src/utils/delete-output-dir.js +46 -0
- package/src/utils/delete-output-dir.js.map +1 -0
- package/src/utils/environment-options.d.ts +64 -0
- package/src/utils/environment-options.js +150 -0
- package/src/utils/environment-options.js.map +1 -0
- package/src/utils/error.d.ts +10 -0
- package/src/utils/error.js +21 -0
- package/src/utils/error.js.map +1 -0
- package/src/utils/format-bytes.d.ts +8 -0
- package/src/utils/format-bytes.js +22 -0
- package/src/utils/format-bytes.js.map +1 -0
- package/src/utils/i18n-options.d.ts +36 -0
- package/src/utils/i18n-options.js +208 -0
- package/src/utils/i18n-options.js.map +1 -0
- package/src/utils/index-file/add-event-dispatch-contract.d.ts +8 -0
- package/src/utils/index-file/add-event-dispatch-contract.js +28 -0
- package/src/utils/index-file/add-event-dispatch-contract.js.map +1 -0
- package/src/utils/index-file/augment-index-html.d.ts +40 -0
- package/src/utils/index-file/augment-index-html.js +300 -0
- package/src/utils/index-file/augment-index-html.js.map +1 -0
- package/src/utils/index-file/auto-csp.d.ts +23 -0
- package/src/utils/index-file/auto-csp.js +295 -0
- package/src/utils/index-file/auto-csp.js.map +1 -0
- package/src/utils/index-file/html-rewriting-stream.d.ts +15 -0
- package/src/utils/index-file/html-rewriting-stream.js +60 -0
- package/src/utils/index-file/html-rewriting-stream.js.map +1 -0
- package/src/utils/index-file/index-html-generator.d.ts +61 -0
- package/src/utils/index-file/index-html-generator.js +154 -0
- package/src/utils/index-file/index-html-generator.js.map +1 -0
- package/src/utils/index-file/inline-critical-css.d.ts +25 -0
- package/src/utils/index-file/inline-critical-css.js +193 -0
- package/src/utils/index-file/inline-critical-css.js.map +1 -0
- package/src/utils/index-file/inline-fonts.d.ts +23 -0
- package/src/utils/index-file/inline-fonts.js +240 -0
- package/src/utils/index-file/inline-fonts.js.map +1 -0
- package/src/utils/index-file/ngcm-attribute.d.ts +15 -0
- package/src/utils/index-file/ngcm-attribute.js +38 -0
- package/src/utils/index-file/ngcm-attribute.js.map +1 -0
- package/src/utils/index-file/nonce.d.ts +12 -0
- package/src/utils/index-file/nonce.js +54 -0
- package/src/utils/index-file/nonce.js.map +1 -0
- package/src/utils/index-file/valid-self-closing-tags.d.ts +9 -0
- package/src/utils/index-file/valid-self-closing-tags.js +90 -0
- package/src/utils/index-file/valid-self-closing-tags.js.map +1 -0
- package/src/utils/index.d.ts +11 -0
- package/src/utils/index.js +28 -0
- package/src/utils/index.js.map +1 -0
- package/src/utils/load-esm.d.ts +20 -0
- package/src/utils/load-esm.js +31 -0
- package/src/utils/load-esm.js.map +1 -0
- package/src/utils/load-proxy-config.d.ts +8 -0
- package/src/utils/load-proxy-config.js +186 -0
- package/src/utils/load-proxy-config.js.map +1 -0
- package/src/utils/load-translations.d.ts +16 -0
- package/src/utils/load-translations.js +93 -0
- package/src/utils/load-translations.js.map +1 -0
- package/src/utils/normalize-asset-patterns.d.ts +11 -0
- package/src/utils/normalize-asset-patterns.js +111 -0
- package/src/utils/normalize-asset-patterns.js.map +1 -0
- package/src/utils/normalize-cache.d.ts +16 -0
- package/src/utils/normalize-cache.js +46 -0
- package/src/utils/normalize-cache.js.map +1 -0
- package/src/utils/normalize-optimization.d.ts +13 -0
- package/src/utils/normalize-optimization.js +42 -0
- package/src/utils/normalize-optimization.js.map +1 -0
- package/src/utils/normalize-source-maps.d.ts +9 -0
- package/src/utils/normalize-source-maps.js +25 -0
- package/src/utils/normalize-source-maps.js.map +1 -0
- package/src/utils/path.d.ts +29 -0
- package/src/utils/path.js +38 -0
- package/src/utils/path.js.map +1 -0
- package/src/utils/postcss-configuration.d.ts +20 -0
- package/src/utils/postcss-configuration.js +86 -0
- package/src/utils/postcss-configuration.js.map +1 -0
- package/src/utils/project-metadata.d.ts +21 -0
- package/src/utils/project-metadata.js +32 -0
- package/src/utils/project-metadata.js.map +1 -0
- package/src/utils/purge-cache.d.ts +10 -0
- package/src/utils/purge-cache.js +40 -0
- package/src/utils/purge-cache.js.map +1 -0
- package/src/utils/resolve-assets.d.ts +18 -0
- package/src/utils/resolve-assets.js +35 -0
- package/src/utils/resolve-assets.js.map +1 -0
- package/src/utils/server-rendering/esm-in-memory-loader/loader-hooks.d.ts +18 -0
- package/src/utils/server-rendering/esm-in-memory-loader/loader-hooks.js +125 -0
- package/src/utils/server-rendering/esm-in-memory-loader/loader-hooks.js.map +1 -0
- package/src/utils/server-rendering/esm-in-memory-loader/register-hooks.d.ts +8 -0
- package/src/utils/server-rendering/esm-in-memory-loader/register-hooks.js +14 -0
- package/src/utils/server-rendering/esm-in-memory-loader/register-hooks.js.map +1 -0
- package/src/utils/server-rendering/esm-in-memory-loader/utils.d.ts +8 -0
- package/src/utils/server-rendering/esm-in-memory-loader/utils.js +14 -0
- package/src/utils/server-rendering/esm-in-memory-loader/utils.js.map +1 -0
- package/src/utils/server-rendering/fetch-patch.d.ts +8 -0
- package/src/utils/server-rendering/fetch-patch.js +64 -0
- package/src/utils/server-rendering/fetch-patch.js.map +1 -0
- package/src/utils/server-rendering/launch-server.d.ts +14 -0
- package/src/utils/server-rendering/launch-server.js +96 -0
- package/src/utils/server-rendering/launch-server.js.map +1 -0
- package/src/utils/server-rendering/load-esm-from-memory.d.ts +27 -0
- package/src/utils/server-rendering/load-esm-from-memory.js +26 -0
- package/src/utils/server-rendering/load-esm-from-memory.js.map +1 -0
- package/src/utils/server-rendering/manifest.d.ts +58 -0
- package/src/utils/server-rendering/manifest.js +177 -0
- package/src/utils/server-rendering/manifest.js.map +1 -0
- package/src/utils/server-rendering/models.d.ts +28 -0
- package/src/utils/server-rendering/models.js +22 -0
- package/src/utils/server-rendering/models.js.map +1 -0
- package/src/utils/server-rendering/prerender.d.ts +39 -0
- package/src/utils/server-rendering/prerender.js +246 -0
- package/src/utils/server-rendering/prerender.js.map +1 -0
- package/src/utils/server-rendering/render-worker.d.ts +23 -0
- package/src/utils/server-rendering/render-worker.js +79 -0
- package/src/utils/server-rendering/render-worker.js.map +1 -0
- package/src/utils/server-rendering/routes-extractor-worker.d.ts +16 -0
- package/src/utils/server-rendering/routes-extractor-worker.js +73 -0
- package/src/utils/server-rendering/routes-extractor-worker.js.map +1 -0
- package/src/utils/server-rendering/utils.d.ts +21 -0
- package/src/utils/server-rendering/utils.js +43 -0
- package/src/utils/server-rendering/utils.js.map +1 -0
- package/src/utils/service-worker.d.ts +23 -0
- package/src/utils/service-worker.js +215 -0
- package/src/utils/service-worker.js.map +1 -0
- package/src/utils/stats-table.d.ts +20 -0
- package/src/utils/stats-table.js +205 -0
- package/src/utils/stats-table.js.map +1 -0
- package/src/utils/supported-browsers.d.ts +10 -0
- package/src/utils/supported-browsers.js +57 -0
- package/src/utils/supported-browsers.js.map +1 -0
- package/src/utils/test-files.d.ts +17 -0
- package/src/utils/test-files.js +83 -0
- package/src/utils/test-files.js.map +1 -0
- package/src/utils/tty.d.ts +8 -0
- package/src/utils/tty.js +23 -0
- package/src/utils/tty.js.map +1 -0
- package/src/utils/url.d.ts +81 -0
- package/src/utils/url.js +122 -0
- package/src/utils/url.js.map +1 -0
- package/src/utils/version.d.ts +8 -0
- package/src/utils/version.js +58 -0
- package/src/utils/version.js.map +1 -0
- package/src/utils/worker-pool.d.ts +12 -0
- package/src/utils/worker-pool.js +46 -0
- package/src/utils/worker-pool.js.map +1 -0
|
@@ -0,0 +1,211 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
10
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.createWasmPlugin = createWasmPlugin;
|
|
14
|
+
const node_assert_1 = __importDefault(require("node:assert"));
|
|
15
|
+
const node_crypto_1 = require("node:crypto");
|
|
16
|
+
const promises_1 = require("node:fs/promises");
|
|
17
|
+
const node_path_1 = require("node:path");
|
|
18
|
+
const error_1 = require("../../utils/error");
|
|
19
|
+
const load_result_cache_1 = require("./load-result-cache");
|
|
20
|
+
const WASM_INIT_NAMESPACE = 'angular:wasm:init';
|
|
21
|
+
const WASM_CONTENTS_NAMESPACE = 'angular:wasm:contents';
|
|
22
|
+
const WASM_RESOLVE_SYMBOL = Symbol('WASM_RESOLVE_SYMBOL');
|
|
23
|
+
// See: https://github.com/tc39/proposal-regexp-unicode-property-escapes/blob/fe6d07fad74cd0192d154966baa1e95e7cda78a1/README.md#other-examples
|
|
24
|
+
const ecmaIdentifierNameRegExp = /^(?:[$_\p{ID_Start}])(?:[$_\u200C\u200D\p{ID_Continue}])*$/u;
|
|
25
|
+
/**
|
|
26
|
+
* Creates an esbuild plugin to use WASM files with import statements and expressions.
|
|
27
|
+
* The default behavior follows the WebAssembly/ES mode integration proposal found at
|
|
28
|
+
* https://github.com/WebAssembly/esm-integration/tree/main/proposals/esm-integration.
|
|
29
|
+
* This behavior requires top-level await support which is only available in zoneless
|
|
30
|
+
* Angular applications.
|
|
31
|
+
* @returns An esbuild plugin.
|
|
32
|
+
*/
|
|
33
|
+
function createWasmPlugin(options) {
|
|
34
|
+
const { allowAsync = false, cache } = options;
|
|
35
|
+
return {
|
|
36
|
+
name: 'angular-wasm',
|
|
37
|
+
setup(build) {
|
|
38
|
+
build.onResolve({ filter: /\.wasm$/ }, async (args) => {
|
|
39
|
+
// Skip if already resolving the WASM file to avoid infinite resolution
|
|
40
|
+
if (args.pluginData?.[WASM_RESOLVE_SYMBOL]) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
// Skip if not an import statement or expression
|
|
44
|
+
if (args.kind !== 'import-statement' && args.kind !== 'dynamic-import') {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
// When in the initialization namespace, the content has already been resolved
|
|
48
|
+
// and only needs to be loaded for use with the initialization code.
|
|
49
|
+
if (args.namespace === WASM_INIT_NAMESPACE) {
|
|
50
|
+
return {
|
|
51
|
+
namespace: WASM_CONTENTS_NAMESPACE,
|
|
52
|
+
path: (0, node_path_1.join)(args.resolveDir, args.path),
|
|
53
|
+
pluginData: args.pluginData,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
// Skip if a custom loader is defined
|
|
57
|
+
if (build.initialOptions.loader?.['.wasm'] || args.with['loader']) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
// Attempt full resolution of the WASM file
|
|
61
|
+
const resolveOptions = {
|
|
62
|
+
...args,
|
|
63
|
+
pluginData: { [WASM_RESOLVE_SYMBOL]: true },
|
|
64
|
+
};
|
|
65
|
+
// The "path" property will cause an error if used in the resolve call
|
|
66
|
+
delete resolveOptions.path;
|
|
67
|
+
const result = await build.resolve(args.path, resolveOptions);
|
|
68
|
+
// Skip if there are errors, is external, or another plugin resolves to a custom namespace
|
|
69
|
+
if (result.errors.length > 0 || result.external || result.namespace !== 'file') {
|
|
70
|
+
// Reuse already resolved result
|
|
71
|
+
return result;
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
...result,
|
|
75
|
+
namespace: WASM_INIT_NAMESPACE,
|
|
76
|
+
};
|
|
77
|
+
});
|
|
78
|
+
build.onLoad({ filter: /\.wasm$/, namespace: WASM_INIT_NAMESPACE }, (0, load_result_cache_1.createCachedLoad)(cache, async (args) => {
|
|
79
|
+
// Ensure async mode is supported
|
|
80
|
+
if (!allowAsync) {
|
|
81
|
+
return {
|
|
82
|
+
errors: [
|
|
83
|
+
{
|
|
84
|
+
text: 'WASM/ES module integration imports are not supported with Zone.js applications',
|
|
85
|
+
notes: [
|
|
86
|
+
{
|
|
87
|
+
text: 'Information about zoneless Angular applications can be found here: https://angular.dev/guide/experimental/zoneless',
|
|
88
|
+
},
|
|
89
|
+
],
|
|
90
|
+
},
|
|
91
|
+
],
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
const wasmContents = await (0, promises_1.readFile)(args.path);
|
|
95
|
+
// Inline WASM code less than 10kB
|
|
96
|
+
const inlineWasm = wasmContents.byteLength < 10_000;
|
|
97
|
+
// Add import of WASM contents
|
|
98
|
+
let initContents = `import ${inlineWasm ? 'wasmData' : 'wasmPath'} from ${JSON.stringify((0, node_path_1.basename)(args.path))}`;
|
|
99
|
+
initContents += inlineWasm ? ' with { loader: "binary" };' : ';\n\n';
|
|
100
|
+
// Read from the file system when on Node.js (SSR) and not inline
|
|
101
|
+
if (!inlineWasm && build.initialOptions.platform === 'node') {
|
|
102
|
+
initContents += 'import { readFile } from "node:fs/promises";\n';
|
|
103
|
+
initContents +=
|
|
104
|
+
'const wasmData = await readFile(new URL(wasmPath, import.meta.url));\n';
|
|
105
|
+
}
|
|
106
|
+
// Create initialization function
|
|
107
|
+
initContents += generateInitHelper(!inlineWasm && build.initialOptions.platform !== 'node', wasmContents);
|
|
108
|
+
// Analyze WASM for imports and exports
|
|
109
|
+
let importModuleNames, exportNames;
|
|
110
|
+
try {
|
|
111
|
+
const wasm = await WebAssembly.compile(wasmContents);
|
|
112
|
+
importModuleNames = new Set(WebAssembly.Module.imports(wasm).map((value) => value.module));
|
|
113
|
+
exportNames = WebAssembly.Module.exports(wasm).map((value) => value.name);
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
(0, error_1.assertIsError)(error);
|
|
117
|
+
return {
|
|
118
|
+
errors: [{ text: 'Unable to analyze WASM file', notes: [{ text: error.message }] }],
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
// Ensure export names are valid JavaScript identifiers
|
|
122
|
+
const invalidExportNames = exportNames.filter((name) => !ecmaIdentifierNameRegExp.test(name));
|
|
123
|
+
if (invalidExportNames.length > 0) {
|
|
124
|
+
return {
|
|
125
|
+
errors: invalidExportNames.map((name) => ({
|
|
126
|
+
text: 'WASM export names must be valid JavaScript identifiers',
|
|
127
|
+
notes: [
|
|
128
|
+
{
|
|
129
|
+
text: `The export "${name}" is not valid. The WASM file should be updated to remove this error.`,
|
|
130
|
+
},
|
|
131
|
+
],
|
|
132
|
+
})),
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
// Add import statements and setup import object
|
|
136
|
+
initContents += 'const importObject = Object.create(null);\n';
|
|
137
|
+
let importIndex = 0;
|
|
138
|
+
for (const moduleName of importModuleNames) {
|
|
139
|
+
// Add a namespace import for each module name
|
|
140
|
+
initContents += `import * as wasm_import_${++importIndex} from ${JSON.stringify(moduleName)};\n`;
|
|
141
|
+
// Add the namespace object to the import object
|
|
142
|
+
initContents += `importObject[${JSON.stringify(moduleName)}] = wasm_import_${importIndex};\n`;
|
|
143
|
+
}
|
|
144
|
+
// Instantiate the module
|
|
145
|
+
initContents += 'const instance = await init(importObject);\n';
|
|
146
|
+
// Add exports
|
|
147
|
+
const exportNameList = exportNames.join(', ');
|
|
148
|
+
initContents += `const { ${exportNameList} } = instance.exports;\n`;
|
|
149
|
+
initContents += `export { ${exportNameList} }\n`;
|
|
150
|
+
return {
|
|
151
|
+
contents: initContents,
|
|
152
|
+
loader: 'js',
|
|
153
|
+
resolveDir: (0, node_path_1.dirname)(args.path),
|
|
154
|
+
pluginData: { wasmContents },
|
|
155
|
+
watchFiles: [args.path],
|
|
156
|
+
};
|
|
157
|
+
}));
|
|
158
|
+
build.onLoad({ filter: /\.wasm$/, namespace: WASM_CONTENTS_NAMESPACE }, async (args) => {
|
|
159
|
+
const contents = args.pluginData.wasmContents ?? (await (0, promises_1.readFile)(args.path));
|
|
160
|
+
let loader = 'file';
|
|
161
|
+
if (args.with.loader) {
|
|
162
|
+
(0, node_assert_1.default)(args.with.loader === 'binary' || args.with.loader === 'file', 'WASM loader type should only be binary or file.');
|
|
163
|
+
loader = args.with.loader;
|
|
164
|
+
}
|
|
165
|
+
return {
|
|
166
|
+
contents,
|
|
167
|
+
loader,
|
|
168
|
+
watchFiles: [args.path],
|
|
169
|
+
};
|
|
170
|
+
});
|
|
171
|
+
},
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Generates the string content of the WASM initialization helper function.
|
|
176
|
+
* This function supports both file fetching and inline byte data depending on
|
|
177
|
+
* the preferred option for the WASM file. When fetching, an integrity hash is
|
|
178
|
+
* also generated and used with the fetch action.
|
|
179
|
+
*
|
|
180
|
+
* @param streaming Uses fetch and WebAssembly.instantiateStreaming.
|
|
181
|
+
* @param wasmContents The binary contents to generate an integrity hash.
|
|
182
|
+
* @returns A string containing the initialization function.
|
|
183
|
+
*/
|
|
184
|
+
function generateInitHelper(streaming, wasmContents) {
|
|
185
|
+
let resultContents;
|
|
186
|
+
if (streaming) {
|
|
187
|
+
const fetchOptions = {
|
|
188
|
+
integrity: 'sha256-' + (0, node_crypto_1.createHash)('sha256').update(wasmContents).digest('base64'),
|
|
189
|
+
};
|
|
190
|
+
const fetchContents = `fetch(new URL(wasmPath, import.meta.url), ${JSON.stringify(fetchOptions)})`;
|
|
191
|
+
resultContents = `await WebAssembly.instantiateStreaming(${fetchContents}, imports)`;
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
resultContents = 'await WebAssembly.instantiate(wasmData, imports)';
|
|
195
|
+
}
|
|
196
|
+
const contents = `
|
|
197
|
+
let mod;
|
|
198
|
+
async function init(imports) {
|
|
199
|
+
if (mod) {
|
|
200
|
+
return await WebAssembly.instantiate(mod, imports);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
const result = ${resultContents};
|
|
204
|
+
mod = result.module;
|
|
205
|
+
|
|
206
|
+
return result.instance;
|
|
207
|
+
}
|
|
208
|
+
`;
|
|
209
|
+
return contents;
|
|
210
|
+
}
|
|
211
|
+
//# sourceMappingURL=wasm-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wasm-plugin.js","sourceRoot":"","sources":["wasm-plugin.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;AAqCH,4CA8KC;AAhND,8DAAiC;AACjC,6CAAyC;AACzC,+CAA4C;AAC5C,yCAAoD;AACpD,6CAAkD;AAClD,2DAAwE;AAcxE,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAChD,MAAM,uBAAuB,GAAG,uBAAuB,CAAC;AACxD,MAAM,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAE1D,+IAA+I;AAC/I,MAAM,wBAAwB,GAAG,6DAA6D,CAAC;AAE/F;;;;;;;GAOG;AACH,SAAgB,gBAAgB,CAAC,OAA0B;IACzD,MAAM,EAAE,UAAU,GAAG,KAAK,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAE9C,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,KAAK,CAAC,KAAK;YACT,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACpD,uEAAuE;gBACvE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,mBAAmB,CAAC,EAAE,CAAC;oBAC3C,OAAO;gBACT,CAAC;gBACD,gDAAgD;gBAChD,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;oBACvE,OAAO;gBACT,CAAC;gBAED,8EAA8E;gBAC9E,oEAAoE;gBACpE,IAAI,IAAI,CAAC,SAAS,KAAK,mBAAmB,EAAE,CAAC;oBAC3C,OAAO;wBACL,SAAS,EAAE,uBAAuB;wBAClC,IAAI,EAAE,IAAA,gBAAI,EAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC;wBACtC,UAAU,EAAE,IAAI,CAAC,UAAU;qBAC5B,CAAC;gBACJ,CAAC;gBAED,qCAAqC;gBACrC,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAClE,OAAO;gBACT,CAAC;gBAED,2CAA2C;gBAC3C,MAAM,cAAc,GAAuC;oBACzD,GAAG,IAAI;oBACP,UAAU,EAAE,EAAE,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE;iBAC5C,CAAC;gBACF,sEAAsE;gBACtE,OAAO,cAAc,CAAC,IAAI,CAAC;gBAE3B,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;gBAE9D,0FAA0F;gBAC1F,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;oBAC/E,gCAAgC;oBAChC,OAAO,MAAM,CAAC;gBAChB,CAAC;gBAED,OAAO;oBACL,GAAG,MAAM;oBACT,SAAS,EAAE,mBAAmB;iBAC/B,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,MAAM,CACV,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,mBAAmB,EAAE,EACrD,IAAA,oCAAgB,EAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACrC,iCAAiC;gBACjC,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,OAAO;wBACL,MAAM,EAAE;4BACN;gCACE,IAAI,EAAE,gFAAgF;gCACtF,KAAK,EAAE;oCACL;wCACE,IAAI,EAAE,oHAAoH;qCAC3H;iCACF;6BACF;yBACF;qBACF,CAAC;gBACJ,CAAC;gBAED,MAAM,YAAY,GAAG,MAAM,IAAA,mBAAQ,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/C,kCAAkC;gBAClC,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,GAAG,MAAM,CAAC;gBAEpD,8BAA8B;gBAC9B,IAAI,YAAY,GAAG,UAAU,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,SAAS,IAAI,CAAC,SAAS,CAAC,IAAA,oBAAQ,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAChH,YAAY,IAAI,UAAU,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,OAAO,CAAC;gBAErE,iEAAiE;gBACjE,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,cAAc,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;oBAC5D,YAAY,IAAI,gDAAgD,CAAC;oBACjE,YAAY;wBACV,wEAAwE,CAAC;gBAC7E,CAAC;gBAED,iCAAiC;gBACjC,YAAY,IAAI,kBAAkB,CAChC,CAAC,UAAU,IAAI,KAAK,CAAC,cAAc,CAAC,QAAQ,KAAK,MAAM,EACvD,YAAY,CACb,CAAC;gBAEF,uCAAuC;gBACvC,IAAI,iBAAiB,EAAE,WAAW,CAAC;gBACnC,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;oBACrD,iBAAiB,GAAG,IAAI,GAAG,CACzB,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAC9D,CAAC;oBACF,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC5E,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAA,qBAAa,EAAC,KAAK,CAAC,CAAC;oBAErB,OAAO;wBACL,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,6BAA6B,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;qBACpF,CAAC;gBACJ,CAAC;gBAED,uDAAuD;gBACvD,MAAM,kBAAkB,GAAG,WAAW,CAAC,MAAM,CAC3C,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAC/C,CAAC;gBACF,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAClC,OAAO;wBACL,MAAM,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;4BACxC,IAAI,EAAE,wDAAwD;4BAC9D,KAAK,EAAE;gCACL;oCACE,IAAI,EAAE,eAAe,IAAI,uEAAuE;iCACjG;6BACF;yBACF,CAAC,CAAC;qBACJ,CAAC;gBACJ,CAAC;gBAED,gDAAgD;gBAChD,YAAY,IAAI,6CAA6C,CAAC;gBAC9D,IAAI,WAAW,GAAG,CAAC,CAAC;gBACpB,KAAK,MAAM,UAAU,IAAI,iBAAiB,EAAE,CAAC;oBAC3C,8CAA8C;oBAC9C,YAAY,IAAI,2BAA2B,EAAE,WAAW,SAAS,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC;oBACjG,gDAAgD;oBAChD,YAAY,IAAI,gBAAgB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,mBAAmB,WAAW,KAAK,CAAC;gBAChG,CAAC;gBAED,yBAAyB;gBACzB,YAAY,IAAI,8CAA8C,CAAC;gBAE/D,cAAc;gBACd,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC9C,YAAY,IAAI,WAAW,cAAc,0BAA0B,CAAC;gBACpE,YAAY,IAAI,YAAY,cAAc,MAAM,CAAC;gBAEjD,OAAO;oBACL,QAAQ,EAAE,YAAY;oBACtB,MAAM,EAAE,IAAI;oBACZ,UAAU,EAAE,IAAA,mBAAO,EAAC,IAAI,CAAC,IAAI,CAAC;oBAC9B,UAAU,EAAE,EAAE,YAAY,EAAE;oBAC5B,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;iBACxB,CAAC;YACJ,CAAC,CAAC,CACH,CAAC;YAEF,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,uBAAuB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACrF,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,IAAI,CAAC,MAAM,IAAA,mBAAQ,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBAE7E,IAAI,MAAM,GAAsB,MAAM,CAAC;gBACvC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACrB,IAAA,qBAAM,EACJ,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,EAC5D,iDAAiD,CAClD,CAAC;oBACF,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC5B,CAAC;gBAED,OAAO;oBACL,QAAQ;oBACR,MAAM;oBACN,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;iBACxB,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,kBAAkB,CAAC,SAAkB,EAAE,YAAwB;IACtE,IAAI,cAAc,CAAC;IACnB,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,YAAY,GAAG;YACnB,SAAS,EAAE,SAAS,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;SAClF,CAAC;QACF,MAAM,aAAa,GAAG,6CAA6C,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC;QACnG,cAAc,GAAG,0CAA0C,aAAa,YAAY,CAAC;IACvF,CAAC;SAAM,CAAC;QACN,cAAc,GAAG,kDAAkD,CAAC;IACtE,CAAC;IAED,MAAM,QAAQ,GAAG;;;;;;;mBAOA,cAAc;;;;;CAKhC,CAAC;IAEA,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
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
|
+
|
|
9
|
+
/** @fileoverview
|
|
10
|
+
* TypeScript does not provide a separate lib for WASM types and the Node.js
|
|
11
|
+
* types (`@types/node`) does not contain them either. This type definition
|
|
12
|
+
* file provides type information for the subset of functionality required
|
|
13
|
+
* by the Angular build process. Ideally this can be removed when the WASM
|
|
14
|
+
* type situation has improved.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
declare namespace WebAssembly {
|
|
18
|
+
class Module {
|
|
19
|
+
constructor(data: Uint8Array);
|
|
20
|
+
|
|
21
|
+
static imports(mod: Module): { module: string; name: string }[];
|
|
22
|
+
static exports(mode: Module): { name: string }[];
|
|
23
|
+
}
|
|
24
|
+
function compile(data: Uint8Array): Promise<Module>;
|
|
25
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
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 declare function createWatcher(options?: {
|
|
21
|
+
polling?: boolean;
|
|
22
|
+
interval?: number;
|
|
23
|
+
ignored?: string[];
|
|
24
|
+
followSymlinks?: boolean;
|
|
25
|
+
}): BuildWatcher;
|
|
@@ -0,0 +1,119 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
10
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.ChangedFiles = void 0;
|
|
14
|
+
exports.createWatcher = createWatcher;
|
|
15
|
+
const watchpack_1 = __importDefault(require("watchpack"));
|
|
16
|
+
class ChangedFiles {
|
|
17
|
+
added = new Set();
|
|
18
|
+
modified = new Set();
|
|
19
|
+
removed = new Set();
|
|
20
|
+
get all() {
|
|
21
|
+
return [...this.added, ...this.modified, ...this.removed];
|
|
22
|
+
}
|
|
23
|
+
toDebugString() {
|
|
24
|
+
const content = {
|
|
25
|
+
added: Array.from(this.added),
|
|
26
|
+
modified: Array.from(this.modified),
|
|
27
|
+
removed: Array.from(this.removed),
|
|
28
|
+
};
|
|
29
|
+
return JSON.stringify(content, null, 2);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.ChangedFiles = ChangedFiles;
|
|
33
|
+
function createWatcher(options) {
|
|
34
|
+
const watcher = new watchpack_1.default({
|
|
35
|
+
poll: options?.polling ? options?.interval ?? true : false,
|
|
36
|
+
ignored: options?.ignored,
|
|
37
|
+
followSymlinks: options?.followSymlinks,
|
|
38
|
+
aggregateTimeout: 250,
|
|
39
|
+
});
|
|
40
|
+
const watchedFiles = new Set();
|
|
41
|
+
const nextQueue = [];
|
|
42
|
+
let currentChangedFiles;
|
|
43
|
+
watcher.on('aggregated', (changes, removals) => {
|
|
44
|
+
const changedFiles = currentChangedFiles ?? new ChangedFiles();
|
|
45
|
+
for (const file of changes) {
|
|
46
|
+
changedFiles.modified.add(file);
|
|
47
|
+
}
|
|
48
|
+
for (const file of removals) {
|
|
49
|
+
changedFiles.removed.add(file);
|
|
50
|
+
}
|
|
51
|
+
const next = nextQueue.shift();
|
|
52
|
+
if (next) {
|
|
53
|
+
currentChangedFiles = undefined;
|
|
54
|
+
next(changedFiles);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
currentChangedFiles = changedFiles;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
return {
|
|
61
|
+
[Symbol.asyncIterator]() {
|
|
62
|
+
return this;
|
|
63
|
+
},
|
|
64
|
+
async next() {
|
|
65
|
+
if (currentChangedFiles && nextQueue.length === 0) {
|
|
66
|
+
const result = { value: currentChangedFiles };
|
|
67
|
+
currentChangedFiles = undefined;
|
|
68
|
+
return result;
|
|
69
|
+
}
|
|
70
|
+
return new Promise((resolve) => {
|
|
71
|
+
nextQueue.push((value) => resolve(value ? { value } : { done: true, value }));
|
|
72
|
+
});
|
|
73
|
+
},
|
|
74
|
+
add(paths) {
|
|
75
|
+
const previousSize = watchedFiles.size;
|
|
76
|
+
if (typeof paths === 'string') {
|
|
77
|
+
watchedFiles.add(paths);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
for (const file of paths) {
|
|
81
|
+
watchedFiles.add(file);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
if (previousSize !== watchedFiles.size) {
|
|
85
|
+
watcher.watch({
|
|
86
|
+
files: watchedFiles,
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
remove(paths) {
|
|
91
|
+
const previousSize = watchedFiles.size;
|
|
92
|
+
if (typeof paths === 'string') {
|
|
93
|
+
watchedFiles.delete(paths);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
for (const file of paths) {
|
|
97
|
+
watchedFiles.delete(file);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
if (previousSize !== watchedFiles.size) {
|
|
101
|
+
watcher.watch({
|
|
102
|
+
files: watchedFiles,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
async close() {
|
|
107
|
+
try {
|
|
108
|
+
watcher.close();
|
|
109
|
+
}
|
|
110
|
+
finally {
|
|
111
|
+
let next;
|
|
112
|
+
while ((next = nextQueue.shift()) !== undefined) {
|
|
113
|
+
next();
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=watcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watcher.js","sourceRoot":"","sources":["watcher.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;AA8BH,sCAkGC;AA9HD,0DAAkC;AAElC,MAAa,YAAY;IACd,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1B,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IAC7B,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAErC,IAAI,GAAG;QACL,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,aAAa;QACX,MAAM,OAAO,GAAG;YACd,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAC7B,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YACnC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;SAClC,CAAC;QAEF,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;CACF;AAlBD,oCAkBC;AAQD,SAAgB,aAAa,CAAC,OAK7B;IACC,MAAM,OAAO,GAAG,IAAI,mBAAS,CAAC;QAC5B,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK;QAC1D,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,cAAc,EAAE,OAAO,EAAE,cAAc;QACvC,gBAAgB,EAAE,GAAG;KACtB,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IAEvC,MAAM,SAAS,GAAuC,EAAE,CAAC;IACzD,IAAI,mBAA6C,CAAC;IAElD,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;QAC7C,MAAM,YAAY,GAAG,mBAAmB,IAAI,IAAI,YAAY,EAAE,CAAC;QAC/D,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,IAAI,EAAE,CAAC;YACT,mBAAmB,GAAG,SAAS,CAAC;YAChC,IAAI,CAAC,YAAY,CAAC,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,mBAAmB,GAAG,YAAY,CAAC;QACrC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,CAAC,MAAM,CAAC,aAAa,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,KAAK,CAAC,IAAI;YACR,IAAI,mBAAmB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClD,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC;gBAC9C,mBAAmB,GAAG,SAAS,CAAC;gBAEhC,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7B,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAChF,CAAC,CAAC,CAAC;QACL,CAAC;QAED,GAAG,CAAC,KAAK;YACP,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC;YACvC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;YAED,IAAI,YAAY,KAAK,YAAY,CAAC,IAAI,EAAE,CAAC;gBACvC,OAAO,CAAC,KAAK,CAAC;oBACZ,KAAK,EAAE,YAAY;iBACpB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,CAAC,KAAK;YACV,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC;YACvC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;YAED,IAAI,YAAY,KAAK,YAAY,CAAC,IAAI,EAAE,CAAC;gBACvC,OAAO,CAAC,KAAK,CAAC;oBACZ,KAAK,EAAE,YAAY;iBACpB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,KAAK,CAAC,KAAK;YACT,IAAI,CAAC;gBACH,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,CAAC;oBAAS,CAAC;gBACT,IAAI,IAAI,CAAC;gBACT,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;oBAChD,IAAI,EAAE,CAAC;gBACT,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
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
|
+
/**
|
|
9
|
+
* Scans a CSS or Sass file and locates all valid url function values as defined by the
|
|
10
|
+
* syntax specification.
|
|
11
|
+
* @param contents A string containing a CSS or Sass file to scan.
|
|
12
|
+
* @returns An iterable that yields each CSS url function value found.
|
|
13
|
+
*/
|
|
14
|
+
export declare function findUrls(contents: string): Iterable<{
|
|
15
|
+
start: number;
|
|
16
|
+
end: number;
|
|
17
|
+
value: string;
|
|
18
|
+
}>;
|
|
@@ -0,0 +1,172 @@
|
|
|
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.findUrls = findUrls;
|
|
11
|
+
// TODO: Combine everything into a single pass lexer
|
|
12
|
+
/**
|
|
13
|
+
* Determines if a unicode code point is a CSS whitespace character.
|
|
14
|
+
* @param code The unicode code point to test.
|
|
15
|
+
* @returns true, if the code point is CSS whitespace; false, otherwise.
|
|
16
|
+
*/
|
|
17
|
+
function isWhitespace(code) {
|
|
18
|
+
// Based on https://www.w3.org/TR/css-syntax-3/#whitespace
|
|
19
|
+
switch (code) {
|
|
20
|
+
case 0x0009: // tab
|
|
21
|
+
case 0x0020: // space
|
|
22
|
+
case 0x000a: // line feed
|
|
23
|
+
case 0x000c: // form feed
|
|
24
|
+
case 0x000d: // carriage return
|
|
25
|
+
return true;
|
|
26
|
+
default:
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Scans a CSS or Sass file and locates all valid url function values as defined by the
|
|
32
|
+
* syntax specification.
|
|
33
|
+
* @param contents A string containing a CSS or Sass file to scan.
|
|
34
|
+
* @returns An iterable that yields each CSS url function value found.
|
|
35
|
+
*/
|
|
36
|
+
function* findUrls(contents) {
|
|
37
|
+
let pos = 0;
|
|
38
|
+
let width = 1;
|
|
39
|
+
let current = -1;
|
|
40
|
+
const next = () => {
|
|
41
|
+
pos += width;
|
|
42
|
+
current = contents.codePointAt(pos) ?? -1;
|
|
43
|
+
width = current > 0xffff ? 2 : 1;
|
|
44
|
+
return current;
|
|
45
|
+
};
|
|
46
|
+
// Based on https://www.w3.org/TR/css-syntax-3/#consume-ident-like-token
|
|
47
|
+
while ((pos = contents.indexOf('url(', pos)) !== -1) {
|
|
48
|
+
width = 1;
|
|
49
|
+
// Ensure whitespace, comma, or colon before `url(`
|
|
50
|
+
if (pos > 0) {
|
|
51
|
+
pos -= 2;
|
|
52
|
+
next();
|
|
53
|
+
if (!isWhitespace(current) && current !== 0x002c && current !== 0x003a) {
|
|
54
|
+
// Skip - not a url token
|
|
55
|
+
pos += 3;
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
pos += 1;
|
|
59
|
+
}
|
|
60
|
+
// Set to position of the (
|
|
61
|
+
pos += 3;
|
|
62
|
+
// Consume all leading whitespace
|
|
63
|
+
while (isWhitespace(next())) {
|
|
64
|
+
/* empty */
|
|
65
|
+
}
|
|
66
|
+
// Initialize URL state
|
|
67
|
+
const url = { start: pos, end: -1, value: '' };
|
|
68
|
+
let complete = false;
|
|
69
|
+
// If " or ', then consume the value as a string
|
|
70
|
+
if (current === 0x0022 || current === 0x0027) {
|
|
71
|
+
const ending = current;
|
|
72
|
+
// Based on https://www.w3.org/TR/css-syntax-3/#consume-string-token
|
|
73
|
+
while (!complete) {
|
|
74
|
+
switch (next()) {
|
|
75
|
+
case -1: // EOF
|
|
76
|
+
return;
|
|
77
|
+
case 0x000a: // line feed
|
|
78
|
+
case 0x000c: // form feed
|
|
79
|
+
case 0x000d: // carriage return
|
|
80
|
+
// Invalid
|
|
81
|
+
complete = true;
|
|
82
|
+
break;
|
|
83
|
+
case 0x005c: // \ -- character escape
|
|
84
|
+
// If not EOF or newline, add the character after the escape
|
|
85
|
+
switch (next()) {
|
|
86
|
+
case -1:
|
|
87
|
+
return;
|
|
88
|
+
case 0x000a: // line feed
|
|
89
|
+
case 0x000c: // form feed
|
|
90
|
+
case 0x000d: // carriage return
|
|
91
|
+
// Skip when inside a string
|
|
92
|
+
break;
|
|
93
|
+
default:
|
|
94
|
+
// TODO: Handle hex escape codes
|
|
95
|
+
url.value += String.fromCodePoint(current);
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
break;
|
|
99
|
+
case ending:
|
|
100
|
+
// Full string position should include the quotes for replacement
|
|
101
|
+
url.end = pos + 1;
|
|
102
|
+
complete = true;
|
|
103
|
+
yield url;
|
|
104
|
+
break;
|
|
105
|
+
default:
|
|
106
|
+
url.value += String.fromCodePoint(current);
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
next();
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
// Based on https://www.w3.org/TR/css-syntax-3/#consume-url-token
|
|
114
|
+
while (!complete) {
|
|
115
|
+
switch (current) {
|
|
116
|
+
case -1: // EOF
|
|
117
|
+
return;
|
|
118
|
+
case 0x0022: // "
|
|
119
|
+
case 0x0027: // '
|
|
120
|
+
case 0x0028: // (
|
|
121
|
+
// Invalid
|
|
122
|
+
complete = true;
|
|
123
|
+
break;
|
|
124
|
+
case 0x0029: // )
|
|
125
|
+
// URL is valid and complete
|
|
126
|
+
url.end = pos;
|
|
127
|
+
complete = true;
|
|
128
|
+
break;
|
|
129
|
+
case 0x005c: // \ -- character escape
|
|
130
|
+
// If not EOF or newline, add the character after the escape
|
|
131
|
+
switch (next()) {
|
|
132
|
+
case -1: // EOF
|
|
133
|
+
return;
|
|
134
|
+
case 0x000a: // line feed
|
|
135
|
+
case 0x000c: // form feed
|
|
136
|
+
case 0x000d: // carriage return
|
|
137
|
+
// Invalid
|
|
138
|
+
complete = true;
|
|
139
|
+
break;
|
|
140
|
+
default:
|
|
141
|
+
// TODO: Handle hex escape codes
|
|
142
|
+
url.value += String.fromCodePoint(current);
|
|
143
|
+
break;
|
|
144
|
+
}
|
|
145
|
+
break;
|
|
146
|
+
default:
|
|
147
|
+
if (isWhitespace(current)) {
|
|
148
|
+
while (isWhitespace(next())) {
|
|
149
|
+
/* empty */
|
|
150
|
+
}
|
|
151
|
+
// Unescaped whitespace is only valid before the closing )
|
|
152
|
+
if (current === 0x0029) {
|
|
153
|
+
// URL is valid
|
|
154
|
+
url.end = pos;
|
|
155
|
+
}
|
|
156
|
+
complete = true;
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
// Add the character to the url value
|
|
160
|
+
url.value += String.fromCodePoint(current);
|
|
161
|
+
}
|
|
162
|
+
break;
|
|
163
|
+
}
|
|
164
|
+
next();
|
|
165
|
+
}
|
|
166
|
+
// An end position indicates a URL was found
|
|
167
|
+
if (url.end !== -1) {
|
|
168
|
+
yield url;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=lexer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lexer.js","sourceRoot":"","sources":["lexer.ts"],"names":[],"mappings":"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"}
|