@depup/angular-devkit__build-angular 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 +46 -0
- package/builders.json +76 -0
- package/changes.json +70 -0
- package/index.d.ts +8 -0
- package/index.js +25 -0
- package/index.js.map +1 -0
- package/package.json +229 -0
- package/plugins/karma.d.ts +7 -0
- package/plugins/karma.js +10 -0
- package/plugins/karma.js.map +1 -0
- package/src/builders/app-shell/index.d.ts +11 -0
- package/src/builders/app-shell/index.js +193 -0
- package/src/builders/app-shell/index.js.map +1 -0
- package/src/builders/app-shell/render-worker.d.ts +36 -0
- package/src/builders/app-shell/render-worker.js +115 -0
- package/src/builders/app-shell/render-worker.js.map +1 -0
- package/src/builders/app-shell/schema.d.ts +36 -0
- package/src/builders/app-shell/schema.js +5 -0
- package/src/builders/app-shell/schema.js.map +1 -0
- package/src/builders/app-shell/schema.json +37 -0
- package/src/builders/browser/index.d.ts +42 -0
- package/src/builders/browser/index.js +342 -0
- package/src/builders/browser/index.js.map +1 -0
- package/src/builders/browser/schema.d.ts +441 -0
- package/src/builders/browser/schema.js +65 -0
- package/src/builders/browser/schema.js.map +1 -0
- package/src/builders/browser/schema.json +548 -0
- package/src/builders/browser-esbuild/index.d.ts +28 -0
- package/src/builders/browser-esbuild/index.js +53 -0
- package/src/builders/browser-esbuild/index.js.map +1 -0
- package/src/builders/browser-esbuild/schema.d.ts +431 -0
- package/src/builders/browser-esbuild/schema.js +59 -0
- package/src/builders/browser-esbuild/schema.js.map +1 -0
- package/src/builders/browser-esbuild/schema.json +541 -0
- package/src/builders/dev-server/builder.d.ts +44 -0
- package/src/builders/dev-server/builder.js +160 -0
- package/src/builders/dev-server/builder.js.map +1 -0
- package/src/builders/dev-server/index.d.ts +14 -0
- package/src/builders/dev-server/index.js +16 -0
- package/src/builders/dev-server/index.js.map +1 -0
- package/src/builders/dev-server/options.d.ts +52 -0
- package/src/builders/dev-server/options.js +116 -0
- package/src/builders/dev-server/options.js.map +1 -0
- package/src/builders/dev-server/schema.d.ts +118 -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 +135 -0
- package/src/builders/dev-server/webpack-server.d.ts +35 -0
- package/src/builders/dev-server/webpack-server.js +296 -0
- package/src/builders/dev-server/webpack-server.js.map +1 -0
- package/src/builders/extract-i18n/application-extraction.d.ts +17 -0
- package/src/builders/extract-i18n/application-extraction.js +136 -0
- package/src/builders/extract-i18n/application-extraction.js.map +1 -0
- package/src/builders/extract-i18n/builder.d.ts +17 -0
- package/src/builders/extract-i18n/builder.js +178 -0
- package/src/builders/extract-i18n/builder.js.map +1 -0
- package/src/builders/extract-i18n/empty-loader.d.ts +8 -0
- package/src/builders/extract-i18n/empty-loader.js +14 -0
- package/src/builders/extract-i18n/empty-loader.js.map +1 -0
- package/src/builders/extract-i18n/index.d.ts +12 -0
- package/src/builders/extract-i18n/index.js +15 -0
- package/src/builders/extract-i18n/index.js.map +1 -0
- package/src/builders/extract-i18n/ivy-extract-loader.d.ts +13 -0
- package/src/builders/extract-i18n/ivy-extract-loader.js +131 -0
- package/src/builders/extract-i18n/ivy-extract-loader.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/extract-i18n/webpack-extraction.d.ts +21 -0
- package/src/builders/extract-i18n/webpack-extraction.js +99 -0
- package/src/builders/extract-i18n/webpack-extraction.js.map +1 -0
- package/src/builders/jest/index.d.ts +11 -0
- package/src/builders/jest/index.js +213 -0
- package/src/builders/jest/index.js.map +1 -0
- package/src/builders/jest/init-test-bed.mjs +24 -0
- package/src/builders/jest/jest-global.mjs +19 -0
- package/src/builders/jest/jest.config.mjs +11 -0
- package/src/builders/jest/options.d.ts +21 -0
- package/src/builders/jest/options.js +25 -0
- package/src/builders/jest/options.js.map +1 -0
- package/src/builders/jest/schema.d.ts +26 -0
- package/src/builders/jest/schema.js +5 -0
- package/src/builders/jest/schema.js.map +1 -0
- package/src/builders/jest/schema.json +44 -0
- package/src/builders/karma/browser_builder.d.ts +20 -0
- package/src/builders/karma/browser_builder.js +195 -0
- package/src/builders/karma/browser_builder.js.map +1 -0
- package/src/builders/karma/find-tests-plugin.d.ts +20 -0
- package/src/builders/karma/find-tests-plugin.js +59 -0
- package/src/builders/karma/find-tests-plugin.js.map +1 -0
- package/src/builders/karma/index.d.ts +26 -0
- package/src/builders/karma/index.js +183 -0
- package/src/builders/karma/index.js.map +1 -0
- package/src/builders/karma/schema.d.ts +218 -0
- package/src/builders/karma/schema.js +26 -0
- package/src/builders/karma/schema.js.map +1 -0
- package/src/builders/karma/schema.json +324 -0
- package/src/builders/ng-packagr/index.d.ts +17 -0
- package/src/builders/ng-packagr/index.js +80 -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 +27 -0
- package/src/builders/prerender/index.d.ts +19 -0
- package/src/builders/prerender/index.js +242 -0
- package/src/builders/prerender/index.js.map +1 -0
- package/src/builders/prerender/render-worker.d.ts +30 -0
- package/src/builders/prerender/render-worker.js +141 -0
- package/src/builders/prerender/render-worker.js.map +1 -0
- package/src/builders/prerender/routes-extractor-worker.d.ts +20 -0
- package/src/builders/prerender/routes-extractor-worker.js +84 -0
- package/src/builders/prerender/routes-extractor-worker.js.map +1 -0
- package/src/builders/prerender/schema.d.ts +24 -0
- package/src/builders/prerender/schema.js +5 -0
- package/src/builders/prerender/schema.js.map +1 -0
- package/src/builders/prerender/schema.json +39 -0
- package/src/builders/protractor/index.d.ts +16 -0
- package/src/builders/protractor/index.js +177 -0
- package/src/builders/protractor/index.js.map +1 -0
- package/src/builders/protractor/schema.d.ts +47 -0
- package/src/builders/protractor/schema.js +5 -0
- package/src/builders/protractor/schema.js.map +1 -0
- package/src/builders/protractor/schema.json +58 -0
- package/src/builders/protractor-error/index.d.ts +10 -0
- package/src/builders/protractor-error/index.js +15 -0
- package/src/builders/protractor-error/index.js.map +1 -0
- package/src/builders/server/index.d.ts +32 -0
- package/src/builders/server/index.js +223 -0
- package/src/builders/server/index.js.map +1 -0
- package/src/builders/server/platform-server-exports-loader.d.ts +16 -0
- package/src/builders/server/platform-server-exports-loader.js +35 -0
- package/src/builders/server/platform-server-exports-loader.js.map +1 -0
- package/src/builders/server/schema.d.ts +229 -0
- package/src/builders/server/schema.js +37 -0
- package/src/builders/server/schema.js.map +1 -0
- package/src/builders/server/schema.json +301 -0
- package/src/builders/ssr-dev-server/index.d.ts +23 -0
- package/src/builders/ssr-dev-server/index.js +316 -0
- package/src/builders/ssr-dev-server/index.js.map +1 -0
- package/src/builders/ssr-dev-server/schema.d.ts +64 -0
- package/src/builders/ssr-dev-server/schema.js +5 -0
- package/src/builders/ssr-dev-server/schema.js.map +1 -0
- package/src/builders/ssr-dev-server/schema.json +75 -0
- package/src/builders/ssr-dev-server/utils.d.ts +15 -0
- package/src/builders/ssr-dev-server/utils.js +74 -0
- package/src/builders/ssr-dev-server/utils.js.map +1 -0
- package/src/builders/web-test-runner/builder-status-warnings.d.ts +11 -0
- package/src/builders/web-test-runner/builder-status-warnings.js +46 -0
- package/src/builders/web-test-runner/builder-status-warnings.js.map +1 -0
- package/src/builders/web-test-runner/index.d.ts +10 -0
- package/src/builders/web-test-runner/index.js +162 -0
- package/src/builders/web-test-runner/index.js.map +1 -0
- package/src/builders/web-test-runner/jasmine_runner.js +91 -0
- package/src/builders/web-test-runner/options.d.ts +24 -0
- package/src/builders/web-test-runner/options.js +26 -0
- package/src/builders/web-test-runner/options.js.map +1 -0
- package/src/builders/web-test-runner/schema.d.ts +192 -0
- package/src/builders/web-test-runner/schema.js +16 -0
- package/src/builders/web-test-runner/schema.js.map +1 -0
- package/src/builders/web-test-runner/schema.json +297 -0
- package/src/builders/web-test-runner/test_page.html +40 -0
- package/src/builders/web-test-runner/write-test-files.d.ts +9 -0
- package/src/builders/web-test-runner/write-test-files.js +42 -0
- package/src/builders/web-test-runner/write-test-files.js.map +1 -0
- package/src/index.d.ts +30 -0
- package/src/index.js +55 -0
- package/src/index.js.map +1 -0
- package/src/tools/babel/babel-loader.d.ts +34 -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/types.d.ts +20 -0
- package/src/tools/babel/presets/application.d.ts +50 -0
- package/src/tools/babel/presets/application.js +189 -0
- package/src/tools/babel/presets/application.js.map +1 -0
- package/src/tools/babel/webpack-loader.d.ts +18 -0
- package/src/tools/babel/webpack-loader.js +201 -0
- package/src/tools/babel/webpack-loader.js.map +1 -0
- package/src/tools/webpack/configs/common.d.ts +10 -0
- package/src/tools/webpack/configs/common.js +433 -0
- package/src/tools/webpack/configs/common.js.map +1 -0
- package/src/tools/webpack/configs/dev-server.d.ts +16 -0
- package/src/tools/webpack/configs/dev-server.js +313 -0
- package/src/tools/webpack/configs/dev-server.js.map +1 -0
- package/src/tools/webpack/configs/index.d.ts +10 -0
- package/src/tools/webpack/configs/index.js +27 -0
- package/src/tools/webpack/configs/index.js.map +1 -0
- package/src/tools/webpack/configs/styles.d.ts +10 -0
- package/src/tools/webpack/configs/styles.js +384 -0
- package/src/tools/webpack/configs/styles.js.map +1 -0
- package/src/tools/webpack/plugins/any-component-style-budget-checker.d.ts +18 -0
- package/src/tools/webpack/plugins/any-component-style-budget-checker.js +100 -0
- package/src/tools/webpack/plugins/any-component-style-budget-checker.js.map +1 -0
- package/src/tools/webpack/plugins/builder-watch-plugin.d.ts +23 -0
- package/src/tools/webpack/plugins/builder-watch-plugin.js +102 -0
- package/src/tools/webpack/plugins/builder-watch-plugin.js.map +1 -0
- package/src/tools/webpack/plugins/common-js-usage-warn-plugin.d.ts +21 -0
- package/src/tools/webpack/plugins/common-js-usage-warn-plugin.js +126 -0
- package/src/tools/webpack/plugins/common-js-usage-warn-plugin.js.map +1 -0
- package/src/tools/webpack/plugins/css-optimizer-plugin.d.ts +35 -0
- package/src/tools/webpack/plugins/css-optimizer-plugin.js +124 -0
- package/src/tools/webpack/plugins/css-optimizer-plugin.js.map +1 -0
- package/src/tools/webpack/plugins/dedupe-module-resolve-plugin.d.ts +29 -0
- package/src/tools/webpack/plugins/dedupe-module-resolve-plugin.js +76 -0
- package/src/tools/webpack/plugins/dedupe-module-resolve-plugin.js.map +1 -0
- package/src/tools/webpack/plugins/devtools-ignore-plugin.d.ts +16 -0
- package/src/tools/webpack/plugins/devtools-ignore-plugin.js +57 -0
- package/src/tools/webpack/plugins/devtools-ignore-plugin.js.map +1 -0
- package/src/tools/webpack/plugins/esbuild-executor.d.ts +46 -0
- package/src/tools/webpack/plugins/esbuild-executor.js +134 -0
- package/src/tools/webpack/plugins/esbuild-executor.js.map +1 -0
- package/src/tools/webpack/plugins/hmr/hmr-accept.d.ts +8 -0
- package/src/tools/webpack/plugins/hmr/hmr-accept.js +185 -0
- package/src/tools/webpack/plugins/hmr/hmr-accept.js.map +1 -0
- package/src/tools/webpack/plugins/hmr/hmr-loader.d.ts +9 -0
- package/src/tools/webpack/plugins/hmr/hmr-loader.js +25 -0
- package/src/tools/webpack/plugins/hmr/hmr-loader.js.map +1 -0
- package/src/tools/webpack/plugins/index-html-webpack-plugin.d.ts +20 -0
- package/src/tools/webpack/plugins/index-html-webpack-plugin.js +88 -0
- package/src/tools/webpack/plugins/index-html-webpack-plugin.js.map +1 -0
- package/src/tools/webpack/plugins/index.d.ts +16 -0
- package/src/tools/webpack/plugins/index.js +33 -0
- package/src/tools/webpack/plugins/index.js.map +1 -0
- package/src/tools/webpack/plugins/javascript-optimizer-plugin.d.ts +59 -0
- package/src/tools/webpack/plugins/javascript-optimizer-plugin.js +168 -0
- package/src/tools/webpack/plugins/javascript-optimizer-plugin.js.map +1 -0
- package/src/tools/webpack/plugins/javascript-optimizer-worker.d.ts +91 -0
- package/src/tools/webpack/plugins/javascript-optimizer-worker.js +135 -0
- package/src/tools/webpack/plugins/javascript-optimizer-worker.js.map +1 -0
- package/src/tools/webpack/plugins/json-stats-plugin.d.ts +13 -0
- package/src/tools/webpack/plugins/json-stats-plugin.js +71 -0
- package/src/tools/webpack/plugins/json-stats-plugin.js.map +1 -0
- package/src/tools/webpack/plugins/karma/karma-context.html +44 -0
- package/src/tools/webpack/plugins/karma/karma-debug.html +46 -0
- package/src/tools/webpack/plugins/karma/karma.d.ts +8 -0
- package/src/tools/webpack/plugins/karma/karma.js +196 -0
- package/src/tools/webpack/plugins/karma/karma.js.map +1 -0
- package/src/tools/webpack/plugins/named-chunks-plugin.d.ts +17 -0
- package/src/tools/webpack/plugins/named-chunks-plugin.js +59 -0
- package/src/tools/webpack/plugins/named-chunks-plugin.js.map +1 -0
- package/src/tools/webpack/plugins/occurrences-plugin.d.ts +18 -0
- package/src/tools/webpack/plugins/occurrences-plugin.js +81 -0
- package/src/tools/webpack/plugins/occurrences-plugin.js.map +1 -0
- package/src/tools/webpack/plugins/postcss-cli-resources.d.ts +21 -0
- package/src/tools/webpack/plugins/postcss-cli-resources.js +189 -0
- package/src/tools/webpack/plugins/postcss-cli-resources.js.map +1 -0
- package/src/tools/webpack/plugins/progress-plugin.d.ts +11 -0
- package/src/tools/webpack/plugins/progress-plugin.js +39 -0
- package/src/tools/webpack/plugins/progress-plugin.js.map +1 -0
- package/src/tools/webpack/plugins/remove-hash-plugin.d.ts +18 -0
- package/src/tools/webpack/plugins/remove-hash-plugin.js +32 -0
- package/src/tools/webpack/plugins/remove-hash-plugin.js.map +1 -0
- package/src/tools/webpack/plugins/scripts-webpack-plugin.d.ts +24 -0
- package/src/tools/webpack/plugins/scripts-webpack-plugin.js +196 -0
- package/src/tools/webpack/plugins/scripts-webpack-plugin.js.map +1 -0
- package/src/tools/webpack/plugins/service-worker-plugin.d.ts +19 -0
- package/src/tools/webpack/plugins/service-worker-plugin.js +47 -0
- package/src/tools/webpack/plugins/service-worker-plugin.js.map +1 -0
- package/src/tools/webpack/plugins/styles-webpack-plugin.d.ts +19 -0
- package/src/tools/webpack/plugins/styles-webpack-plugin.js +74 -0
- package/src/tools/webpack/plugins/styles-webpack-plugin.js.map +1 -0
- package/src/tools/webpack/plugins/suppress-entry-chunks-webpack-plugin.d.ts +14 -0
- package/src/tools/webpack/plugins/suppress-entry-chunks-webpack-plugin.js +52 -0
- package/src/tools/webpack/plugins/suppress-entry-chunks-webpack-plugin.js.map +1 -0
- package/src/tools/webpack/plugins/transfer-size-plugin.d.ts +12 -0
- package/src/tools/webpack/plugins/transfer-size-plugin.js +50 -0
- package/src/tools/webpack/plugins/transfer-size-plugin.js.map +1 -0
- package/src/tools/webpack/plugins/typescript.d.ts +10 -0
- package/src/tools/webpack/plugins/typescript.js +53 -0
- package/src/tools/webpack/plugins/typescript.js.map +1 -0
- package/src/tools/webpack/plugins/watch-files-logs-plugin.d.ts +11 -0
- package/src/tools/webpack/plugins/watch-files-logs-plugin.js +28 -0
- package/src/tools/webpack/plugins/watch-files-logs-plugin.js.map +1 -0
- package/src/tools/webpack/utils/async-chunks.d.ts +16 -0
- package/src/tools/webpack/utils/async-chunks.js +45 -0
- package/src/tools/webpack/utils/async-chunks.js.map +1 -0
- package/src/tools/webpack/utils/helpers.d.ts +43 -0
- package/src/tools/webpack/utils/helpers.js +301 -0
- package/src/tools/webpack/utils/helpers.js.map +1 -0
- package/src/tools/webpack/utils/stats.d.ts +32 -0
- package/src/tools/webpack/utils/stats.js +301 -0
- package/src/tools/webpack/utils/stats.js.map +1 -0
- package/src/transforms.d.ts +8 -0
- package/src/transforms.js +10 -0
- package/src/transforms.js.map +1 -0
- package/src/utils/action-executor.d.ts +35 -0
- package/src/utils/action-executor.js +61 -0
- package/src/utils/action-executor.js.map +1 -0
- package/src/utils/build-options.d.ts +75 -0
- package/src/utils/build-options.js +10 -0
- package/src/utils/build-options.js.map +1 -0
- package/src/utils/bundle-inline-options.d.ts +15 -0
- package/src/utils/bundle-inline-options.js +10 -0
- package/src/utils/bundle-inline-options.js.map +1 -0
- package/src/utils/color.d.ts +10 -0
- package/src/utils/color.js +74 -0
- package/src/utils/color.js.map +1 -0
- package/src/utils/copy-assets.d.ts +18 -0
- package/src/utils/copy-assets.js +51 -0
- package/src/utils/copy-assets.js.map +1 -0
- package/src/utils/default-progress.d.ts +8 -0
- package/src/utils/default-progress.js +17 -0
- package/src/utils/default-progress.js.map +1 -0
- package/src/utils/environment-options.d.ts +16 -0
- package/src/utils/environment-options.js +83 -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/i18n-inlining.d.ts +11 -0
- package/src/utils/i18n-inlining.js +131 -0
- package/src/utils/i18n-inlining.js.map +1 -0
- package/src/utils/i18n-webpack.d.ts +16 -0
- package/src/utils/i18n-webpack.js +108 -0
- package/src/utils/i18n-webpack.js.map +1 -0
- package/src/utils/index.d.ts +16 -0
- package/src/utils/index.js +36 -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/normalize-asset-patterns.d.ts +14 -0
- package/src/utils/normalize-asset-patterns.js +107 -0
- package/src/utils/normalize-asset-patterns.js.map +1 -0
- package/src/utils/normalize-builder-schema.d.ts +23 -0
- package/src/utils/normalize-builder-schema.js +44 -0
- package/src/utils/normalize-builder-schema.js.map +1 -0
- package/src/utils/normalize-cache.d.ts +16 -0
- package/src/utils/normalize-cache.js +44 -0
- package/src/utils/normalize-cache.js.map +1 -0
- package/src/utils/normalize-file-replacements.d.ts +16 -0
- package/src/utils/normalize-file-replacements.js +87 -0
- package/src/utils/normalize-file-replacements.js.map +1 -0
- package/src/utils/normalize-optimization.d.ts +13 -0
- package/src/utils/normalize-optimization.js +40 -0
- package/src/utils/normalize-optimization.js.map +1 -0
- package/src/utils/normalize-polyfills.d.ts +8 -0
- package/src/utils/normalize-polyfills.js +24 -0
- package/src/utils/normalize-polyfills.js.map +1 -0
- package/src/utils/normalize-source-maps.d.ts +9 -0
- package/src/utils/normalize-source-maps.js +23 -0
- package/src/utils/normalize-source-maps.js.map +1 -0
- package/src/utils/output-paths.d.ts +9 -0
- package/src/utils/output-paths.js +27 -0
- package/src/utils/output-paths.js.map +1 -0
- package/src/utils/package-chunk-sort.d.ts +14 -0
- package/src/utils/package-chunk-sort.js +35 -0
- package/src/utils/package-chunk-sort.js.map +1 -0
- package/src/utils/package-version.d.ts +8 -0
- package/src/utils/package-version.js +12 -0
- package/src/utils/package-version.js.map +1 -0
- package/src/utils/process-bundle.d.ts +22 -0
- package/src/utils/process-bundle.js +315 -0
- package/src/utils/process-bundle.js.map +1 -0
- package/src/utils/read-tsconfig.d.ts +16 -0
- package/src/utils/read-tsconfig.js +61 -0
- package/src/utils/read-tsconfig.js.map +1 -0
- package/src/utils/run-module-as-observable-fork.d.ts +10 -0
- package/src/utils/run-module-as-observable-fork.js +78 -0
- package/src/utils/run-module-as-observable-fork.js.map +1 -0
- package/src/utils/run-module-worker.js +18 -0
- package/src/utils/spinner.d.ts +20 -0
- package/src/utils/spinner.js +56 -0
- package/src/utils/spinner.js.map +1 -0
- package/src/utils/test-files.d.ts +18 -0
- package/src/utils/test-files.js +32 -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 +8 -0
- package/src/utils/url.js +18 -0
- package/src/utils/url.js.map +1 -0
- package/src/utils/webpack-browser-config.d.ts +29 -0
- package/src/utils/webpack-browser-config.js +161 -0
- package/src/utils/webpack-browser-config.js.map +1 -0
- package/src/utils/webpack-diagnostics.d.ts +10 -0
- package/src/utils/webpack-diagnostics.js +18 -0
- package/src/utils/webpack-diagnostics.js.map +1 -0
|
@@ -0,0 +1,195 @@
|
|
|
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 __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
12
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
+
}
|
|
15
|
+
Object.defineProperty(o, k2, desc);
|
|
16
|
+
}) : (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
o[k2] = m[k];
|
|
19
|
+
}));
|
|
20
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
+
}) : function(o, v) {
|
|
23
|
+
o["default"] = v;
|
|
24
|
+
});
|
|
25
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
26
|
+
var ownKeys = function(o) {
|
|
27
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
28
|
+
var ar = [];
|
|
29
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
30
|
+
return ar;
|
|
31
|
+
};
|
|
32
|
+
return ownKeys(o);
|
|
33
|
+
};
|
|
34
|
+
return function (mod) {
|
|
35
|
+
if (mod && mod.__esModule) return mod;
|
|
36
|
+
var result = {};
|
|
37
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
38
|
+
__setModuleDefault(result, mod);
|
|
39
|
+
return result;
|
|
40
|
+
};
|
|
41
|
+
})();
|
|
42
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
43
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
44
|
+
};
|
|
45
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
|
+
exports.execute = execute;
|
|
47
|
+
const private_1 = require("@angular/build/private");
|
|
48
|
+
const path = __importStar(require("node:path"));
|
|
49
|
+
const webpack_1 = __importDefault(require("webpack"));
|
|
50
|
+
const configs_1 = require("../../tools/webpack/configs");
|
|
51
|
+
const webpack_browser_config_1 = require("../../utils/webpack-browser-config");
|
|
52
|
+
const schema_1 = require("../browser/schema");
|
|
53
|
+
const find_tests_plugin_1 = require("./find-tests-plugin");
|
|
54
|
+
function execute(options, context, karmaOptions, transforms = {}) {
|
|
55
|
+
let karmaServer;
|
|
56
|
+
let isCancelled = false;
|
|
57
|
+
return new ReadableStream({
|
|
58
|
+
async start(controller) {
|
|
59
|
+
const [karma, webpackConfig] = await initializeBrowser(options, context, transforms.webpackConfiguration);
|
|
60
|
+
if (isCancelled) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const projectName = context.target?.project;
|
|
64
|
+
if (!projectName) {
|
|
65
|
+
throw new Error(`The 'karma' builder requires a target to be specified.`);
|
|
66
|
+
}
|
|
67
|
+
const projectMetadata = await context.getProjectMetadata(projectName);
|
|
68
|
+
const sourceRoot = (projectMetadata.sourceRoot ?? projectMetadata.root ?? '');
|
|
69
|
+
if (!options.main) {
|
|
70
|
+
webpackConfig.entry ??= {};
|
|
71
|
+
if (typeof webpackConfig.entry === 'object' && !Array.isArray(webpackConfig.entry)) {
|
|
72
|
+
if (Array.isArray(webpackConfig.entry['main'])) {
|
|
73
|
+
webpackConfig.entry['main'].push(getBuiltInMainFile());
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
webpackConfig.entry['main'] = [getBuiltInMainFile()];
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
webpackConfig.plugins ??= [];
|
|
81
|
+
webpackConfig.plugins.push(new find_tests_plugin_1.FindTestsPlugin({
|
|
82
|
+
include: options.include,
|
|
83
|
+
exclude: options.exclude,
|
|
84
|
+
workspaceRoot: context.workspaceRoot,
|
|
85
|
+
projectSourceRoot: path.join(context.workspaceRoot, sourceRoot),
|
|
86
|
+
}));
|
|
87
|
+
const KARMA_APPLICATION_PATH = '_karma_webpack_';
|
|
88
|
+
webpackConfig.output ??= {};
|
|
89
|
+
webpackConfig.output.path = `/${KARMA_APPLICATION_PATH}/`;
|
|
90
|
+
webpackConfig.output.publicPath = `/${KARMA_APPLICATION_PATH}/`;
|
|
91
|
+
if (karmaOptions.singleRun) {
|
|
92
|
+
webpackConfig.plugins.unshift({
|
|
93
|
+
apply: (compiler) => {
|
|
94
|
+
compiler.hooks.afterEnvironment.tap('karma', () => {
|
|
95
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
96
|
+
compiler.watchFileSystem = { watch: () => { } };
|
|
97
|
+
});
|
|
98
|
+
},
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
// Remove the watch option to avoid the [DEP_WEBPACK_WATCH_WITHOUT_CALLBACK] warning.
|
|
102
|
+
// The compiler is initialized in watch mode by webpack-dev-middleware.
|
|
103
|
+
delete webpackConfig.watch;
|
|
104
|
+
const compiler = (0, webpack_1.default)(webpackConfig);
|
|
105
|
+
karmaOptions.buildWebpack = {
|
|
106
|
+
options,
|
|
107
|
+
compiler,
|
|
108
|
+
logger: context.logger,
|
|
109
|
+
};
|
|
110
|
+
const parsedKarmaConfig = await karma.config.parseConfig(options.karmaConfig && path.resolve(context.workspaceRoot, options.karmaConfig), transforms.karmaOptions ? transforms.karmaOptions(karmaOptions) : karmaOptions, { promiseConfig: true, throwErrors: true });
|
|
111
|
+
if (isCancelled) {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
const enqueue = (value) => {
|
|
115
|
+
try {
|
|
116
|
+
controller.enqueue(value);
|
|
117
|
+
}
|
|
118
|
+
catch {
|
|
119
|
+
// Controller is already closed
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
const close = () => {
|
|
123
|
+
try {
|
|
124
|
+
controller.close();
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
// Controller is already closed
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
// Close the stream once the Karma server returns.
|
|
131
|
+
karmaServer = new karma.Server(parsedKarmaConfig, (exitCode) => {
|
|
132
|
+
enqueue({ success: exitCode === 0 });
|
|
133
|
+
close();
|
|
134
|
+
});
|
|
135
|
+
karmaServer.on('run_complete', (_, results) => {
|
|
136
|
+
enqueue({ success: results.exitCode === 0 });
|
|
137
|
+
});
|
|
138
|
+
await karmaServer.start();
|
|
139
|
+
},
|
|
140
|
+
async cancel() {
|
|
141
|
+
isCancelled = true;
|
|
142
|
+
await karmaServer?.stop();
|
|
143
|
+
},
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
async function initializeBrowser(options, context, webpackConfigurationTransformer) {
|
|
147
|
+
// Purge old build disk cache.
|
|
148
|
+
await (0, private_1.purgeStaleBuildCache)(context);
|
|
149
|
+
const karma = await Promise.resolve().then(() => __importStar(require('karma')));
|
|
150
|
+
const { config } = await (0, webpack_browser_config_1.generateBrowserWebpackConfigFromContext)(
|
|
151
|
+
// only two properties are missing:
|
|
152
|
+
// * `outputPath` which is fixed for tests
|
|
153
|
+
// * `budgets` which might be incorrect due to extra dev libs
|
|
154
|
+
{
|
|
155
|
+
...options,
|
|
156
|
+
outputPath: '',
|
|
157
|
+
budgets: undefined,
|
|
158
|
+
optimization: false,
|
|
159
|
+
buildOptimizer: false,
|
|
160
|
+
aot: options.aot,
|
|
161
|
+
vendorChunk: true,
|
|
162
|
+
namedChunks: true,
|
|
163
|
+
extractLicenses: false,
|
|
164
|
+
outputHashing: schema_1.OutputHashing.None,
|
|
165
|
+
// The webpack tier owns the watch behavior so we want to force it in the config.
|
|
166
|
+
// When not in watch mode, webpack-dev-middleware will call `compiler.watch` anyway.
|
|
167
|
+
// https://github.com/webpack/webpack-dev-middleware/blob/698c9ae5e9bb9a013985add6189ff21c1a1ec185/src/index.js#L65
|
|
168
|
+
// https://github.com/webpack/webpack/blob/cde1b73e12eb8a77eb9ba42e7920c9ec5d29c2c9/lib/Compiler.js#L379-L388
|
|
169
|
+
watch: true,
|
|
170
|
+
}, context, (wco) => [(0, configs_1.getCommonConfig)(wco), (0, configs_1.getStylesConfig)(wco)]);
|
|
171
|
+
return [karma, (await webpackConfigurationTransformer?.(config)) ?? config];
|
|
172
|
+
}
|
|
173
|
+
function getBuiltInMainFile() {
|
|
174
|
+
const content = Buffer.from(`
|
|
175
|
+
import { provideZoneChangeDetection, ɵcompileNgModuleDefs as compileNgModuleDefs } from '@angular/core';
|
|
176
|
+
import { getTestBed } from '@angular/core/testing';
|
|
177
|
+
import { BrowserTestingModule, platformBrowserTesting } from '@angular/platform-browser/testing';
|
|
178
|
+
|
|
179
|
+
const providers = [];
|
|
180
|
+
if (typeof window.Zone !== 'undefined') {
|
|
181
|
+
providers.push(provideZoneChangeDetection());
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
export class TestModule {}
|
|
185
|
+
compileNgModuleDefs(TestModule, {providers});
|
|
186
|
+
|
|
187
|
+
// Initialize the Angular testing environment.
|
|
188
|
+
getTestBed().initTestEnvironment([BrowserTestingModule, TestModule], platformBrowserTesting(), {
|
|
189
|
+
errorOnUnknownElements: true,
|
|
190
|
+
errorOnUnknownProperties: true
|
|
191
|
+
});
|
|
192
|
+
`).toString('base64');
|
|
193
|
+
return `ng-virtual-main.js!=!data:text/javascript;base64,${content}`;
|
|
194
|
+
}
|
|
195
|
+
//# sourceMappingURL=browser_builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser_builder.js","sourceRoot":"","sources":["browser_builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Google LLC All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
+
* found in the LICENSE file at https://angular.dev/license
|
|
7
|
+
*/
|
|
8
|
+
import type { Compiler } from 'webpack';
|
|
9
|
+
export interface FindTestsPluginOptions {
|
|
10
|
+
include?: string[];
|
|
11
|
+
exclude?: string[];
|
|
12
|
+
workspaceRoot: string;
|
|
13
|
+
projectSourceRoot: string;
|
|
14
|
+
}
|
|
15
|
+
export declare class FindTestsPlugin {
|
|
16
|
+
private options;
|
|
17
|
+
private compilation;
|
|
18
|
+
constructor(options: FindTestsPluginOptions);
|
|
19
|
+
apply(compiler: Compiler): void;
|
|
20
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
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.FindTestsPlugin = void 0;
|
|
14
|
+
const private_1 = require("@angular/build/private");
|
|
15
|
+
const mini_css_extract_plugin_1 = require("mini-css-extract-plugin");
|
|
16
|
+
const node_assert_1 = __importDefault(require("node:assert"));
|
|
17
|
+
/**
|
|
18
|
+
* The name of the plugin provided to Webpack when tapping Webpack compiler hooks.
|
|
19
|
+
*/
|
|
20
|
+
const PLUGIN_NAME = 'angular-find-tests-plugin';
|
|
21
|
+
class FindTestsPlugin {
|
|
22
|
+
options;
|
|
23
|
+
compilation;
|
|
24
|
+
constructor(options) {
|
|
25
|
+
this.options = options;
|
|
26
|
+
}
|
|
27
|
+
apply(compiler) {
|
|
28
|
+
const { include = ['**/*.spec.ts'], exclude = [], projectSourceRoot, workspaceRoot, } = this.options;
|
|
29
|
+
const webpackOptions = compiler.options;
|
|
30
|
+
const entry = typeof webpackOptions.entry === 'function' ? webpackOptions.entry() : webpackOptions.entry;
|
|
31
|
+
let originalImport;
|
|
32
|
+
// Add tests files are part of the entry-point.
|
|
33
|
+
webpackOptions.entry = async () => {
|
|
34
|
+
const specFiles = await (0, private_1.findTests)(include, exclude, workspaceRoot, projectSourceRoot);
|
|
35
|
+
const entrypoints = await entry;
|
|
36
|
+
const entrypoint = entrypoints['main'];
|
|
37
|
+
if (!entrypoint.import) {
|
|
38
|
+
throw new Error(`Cannot find 'main' entrypoint.`);
|
|
39
|
+
}
|
|
40
|
+
if (specFiles.length) {
|
|
41
|
+
originalImport ??= entrypoint.import;
|
|
42
|
+
entrypoint.import = [...originalImport, ...specFiles];
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
(0, node_assert_1.default)(this.compilation, 'Compilation cannot be undefined.');
|
|
46
|
+
this.compilation
|
|
47
|
+
.getLogger(mini_css_extract_plugin_1.pluginName)
|
|
48
|
+
.error(`Specified patterns: "${include.join(', ')}" did not match any spec files.`);
|
|
49
|
+
}
|
|
50
|
+
return entrypoints;
|
|
51
|
+
};
|
|
52
|
+
compiler.hooks.thisCompilation.tap(PLUGIN_NAME, (compilation) => {
|
|
53
|
+
this.compilation = compilation;
|
|
54
|
+
compilation.contextDependencies.add(projectSourceRoot);
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.FindTestsPlugin = FindTestsPlugin;
|
|
59
|
+
//# sourceMappingURL=find-tests-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-tests-plugin.js","sourceRoot":"","sources":["find-tests-plugin.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;AAEH,oDAAmD;AACnD,qEAAqD;AACrD,8DAAiC;AAGjC;;GAEG;AACH,MAAM,WAAW,GAAG,2BAA2B,CAAC;AAShD,MAAa,eAAe;IAGN;IAFZ,WAAW,CAA0B;IAE7C,YAAoB,OAA+B;QAA/B,YAAO,GAAP,OAAO,CAAwB;IAAG,CAAC;IAEvD,KAAK,CAAC,QAAkB;QACtB,MAAM,EACJ,OAAO,GAAG,CAAC,cAAc,CAAC,EAC1B,OAAO,GAAG,EAAE,EACZ,iBAAiB,EACjB,aAAa,GACd,GAAG,IAAI,CAAC,OAAO,CAAC;QACjB,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC;QACxC,MAAM,KAAK,GACT,OAAO,cAAc,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC;QAE7F,IAAI,cAAoC,CAAC;QAEzC,+CAA+C;QAC/C,cAAc,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE;YAChC,MAAM,SAAS,GAAG,MAAM,IAAA,mBAAS,EAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,iBAAiB,CAAC,CAAC;YACtF,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC;YAChC,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;YACvC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACpD,CAAC;YAED,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;gBACrB,cAAc,KAAK,UAAU,CAAC,MAAM,CAAC;gBACrC,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,cAAc,EAAE,GAAG,SAAS,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACN,IAAA,qBAAM,EAAC,IAAI,CAAC,WAAW,EAAE,kCAAkC,CAAC,CAAC;gBAC7D,IAAI,CAAC,WAAW;qBACb,SAAS,CAAC,oCAAU,CAAC;qBACrB,KAAK,CAAC,wBAAwB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YACxF,CAAC;YAED,OAAO,WAAW,CAAC;QACrB,CAAC,CAAC;QAEF,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,EAAE;YAC9D,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;YAC/B,WAAW,CAAC,mBAAmB,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AA7CD,0CA6CC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Google LLC All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
+
* found in the LICENSE file at https://angular.dev/license
|
|
7
|
+
*/
|
|
8
|
+
import { BuilderContext, BuilderOutput } from '@angular-devkit/architect';
|
|
9
|
+
import type { ConfigOptions } from 'karma';
|
|
10
|
+
import { Configuration } from 'webpack';
|
|
11
|
+
import { ExecutionTransformer } from '../../transforms';
|
|
12
|
+
import { Schema as KarmaBuilderOptions } from './schema';
|
|
13
|
+
export type KarmaConfigOptions = ConfigOptions & {
|
|
14
|
+
buildWebpack?: unknown;
|
|
15
|
+
configFile?: string;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* @experimental Direct usage of this function is considered experimental.
|
|
19
|
+
*/
|
|
20
|
+
export declare function execute(options: KarmaBuilderOptions, context: BuilderContext, transforms?: {
|
|
21
|
+
webpackConfiguration?: ExecutionTransformer<Configuration>;
|
|
22
|
+
karmaOptions?: (options: KarmaConfigOptions) => KarmaConfigOptions;
|
|
23
|
+
}): AsyncIterable<BuilderOutput>;
|
|
24
|
+
export type { KarmaBuilderOptions };
|
|
25
|
+
declare const _default: import("@angular-devkit/architect").Builder<KarmaBuilderOptions & import("@angular-devkit/core").JsonObject>;
|
|
26
|
+
export default _default;
|
|
@@ -0,0 +1,183 @@
|
|
|
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 __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
12
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
+
}
|
|
15
|
+
Object.defineProperty(o, k2, desc);
|
|
16
|
+
}) : (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
o[k2] = m[k];
|
|
19
|
+
}));
|
|
20
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
+
}) : function(o, v) {
|
|
23
|
+
o["default"] = v;
|
|
24
|
+
});
|
|
25
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
26
|
+
var ownKeys = function(o) {
|
|
27
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
28
|
+
var ar = [];
|
|
29
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
30
|
+
return ar;
|
|
31
|
+
};
|
|
32
|
+
return ownKeys(o);
|
|
33
|
+
};
|
|
34
|
+
return function (mod) {
|
|
35
|
+
if (mod && mod.__esModule) return mod;
|
|
36
|
+
var result = {};
|
|
37
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
38
|
+
__setModuleDefault(result, mod);
|
|
39
|
+
return result;
|
|
40
|
+
};
|
|
41
|
+
})();
|
|
42
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
+
exports.execute = execute;
|
|
44
|
+
const private_1 = require("@angular/build/private");
|
|
45
|
+
const architect_1 = require("@angular-devkit/architect");
|
|
46
|
+
const core_1 = require("@angular-devkit/core");
|
|
47
|
+
const node_module_1 = require("node:module");
|
|
48
|
+
const path = __importStar(require("node:path"));
|
|
49
|
+
const utils_1 = require("../../utils");
|
|
50
|
+
const schema_1 = require("./schema");
|
|
51
|
+
/**
|
|
52
|
+
* @experimental Direct usage of this function is considered experimental.
|
|
53
|
+
*/
|
|
54
|
+
async function* execute(options, context, transforms = {}) {
|
|
55
|
+
// Check Angular version.
|
|
56
|
+
(0, private_1.assertCompatibleAngularVersion)(context.workspaceRoot);
|
|
57
|
+
if (await checkForEsbuild(options, context)) {
|
|
58
|
+
if (transforms.webpackConfiguration) {
|
|
59
|
+
context.logger.warn(`This build is using the application builder but transforms.webpackConfiguration was provided. The transform will be ignored.`);
|
|
60
|
+
}
|
|
61
|
+
if (options.fileReplacements) {
|
|
62
|
+
options.fileReplacements = (0, utils_1.normalizeFileReplacements)(options.fileReplacements, './');
|
|
63
|
+
}
|
|
64
|
+
if (typeof options.polyfills === 'string') {
|
|
65
|
+
options.polyfills = [options.polyfills];
|
|
66
|
+
}
|
|
67
|
+
const { executeKarmaBuilder } = await Promise.resolve().then(() => __importStar(require('@angular/build')));
|
|
68
|
+
yield* executeKarmaBuilder(options, context, transforms);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
const karmaOptions = getBaseKarmaOptions(options, context);
|
|
72
|
+
const { execute } = await Promise.resolve().then(() => __importStar(require('./browser_builder')));
|
|
73
|
+
yield* execute(options, context, karmaOptions, transforms);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
function getBaseKarmaOptions(options, context) {
|
|
77
|
+
let singleRun;
|
|
78
|
+
if (options.watch !== undefined) {
|
|
79
|
+
singleRun = !options.watch;
|
|
80
|
+
}
|
|
81
|
+
// Determine project name from builder context target
|
|
82
|
+
const projectName = context.target?.project;
|
|
83
|
+
if (!projectName) {
|
|
84
|
+
throw new Error(`The 'karma' builder requires a target to be specified.`);
|
|
85
|
+
}
|
|
86
|
+
const karmaOptions = options.karmaConfig
|
|
87
|
+
? {}
|
|
88
|
+
: getBuiltInKarmaConfig(context.workspaceRoot, projectName);
|
|
89
|
+
karmaOptions.singleRun = singleRun;
|
|
90
|
+
// Workaround https://github.com/angular/angular-cli/issues/28271, by clearing context by default
|
|
91
|
+
// for single run executions. Not clearing context for multi-run (watched) builds allows the
|
|
92
|
+
// Jasmine Spec Runner to be visible in the browser after test execution.
|
|
93
|
+
karmaOptions.client ??= {};
|
|
94
|
+
karmaOptions.client.clearContext ??= singleRun ?? false; // `singleRun` defaults to `false` per Karma docs.
|
|
95
|
+
// Convert browsers from a string to an array
|
|
96
|
+
if (typeof options.browsers === 'string' && options.browsers) {
|
|
97
|
+
karmaOptions.browsers = options.browsers.split(',');
|
|
98
|
+
}
|
|
99
|
+
else if (options.browsers === false) {
|
|
100
|
+
karmaOptions.browsers = [];
|
|
101
|
+
}
|
|
102
|
+
if (options.reporters) {
|
|
103
|
+
// Split along commas to make it more natural, and remove empty strings.
|
|
104
|
+
const reporters = options.reporters
|
|
105
|
+
.reduce((acc, curr) => acc.concat(curr.split(',')), [])
|
|
106
|
+
.filter((x) => !!x);
|
|
107
|
+
if (reporters.length > 0) {
|
|
108
|
+
karmaOptions.reporters = reporters;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return karmaOptions;
|
|
112
|
+
}
|
|
113
|
+
function getBuiltInKarmaConfig(workspaceRoot, projectName) {
|
|
114
|
+
let coverageFolderName = projectName.charAt(0) === '@' ? projectName.slice(1) : projectName;
|
|
115
|
+
if (/[A-Z]/.test(coverageFolderName)) {
|
|
116
|
+
coverageFolderName = core_1.strings.dasherize(coverageFolderName);
|
|
117
|
+
}
|
|
118
|
+
const workspaceRootRequire = (0, node_module_1.createRequire)(workspaceRoot + '/');
|
|
119
|
+
// Any changes to the config here need to be synced to: packages/schematics/angular/config/files/karma.conf.js.template
|
|
120
|
+
return {
|
|
121
|
+
basePath: '',
|
|
122
|
+
frameworks: ['jasmine', '@angular-devkit/build-angular'],
|
|
123
|
+
plugins: [
|
|
124
|
+
'karma-jasmine',
|
|
125
|
+
'karma-chrome-launcher',
|
|
126
|
+
'karma-jasmine-html-reporter',
|
|
127
|
+
'karma-coverage',
|
|
128
|
+
'@angular-devkit/build-angular/plugins/karma',
|
|
129
|
+
].map((p) => workspaceRootRequire(p)),
|
|
130
|
+
jasmineHtmlReporter: {
|
|
131
|
+
suppressAll: true, // removes the duplicated traces
|
|
132
|
+
},
|
|
133
|
+
coverageReporter: {
|
|
134
|
+
dir: path.join(workspaceRoot, 'coverage', coverageFolderName),
|
|
135
|
+
subdir: '.',
|
|
136
|
+
reporters: [{ type: 'html' }, { type: 'text-summary' }],
|
|
137
|
+
},
|
|
138
|
+
reporters: ['progress', 'kjhtml'],
|
|
139
|
+
browsers: ['Chrome'],
|
|
140
|
+
customLaunchers: {
|
|
141
|
+
// Chrome configured to run in a bazel sandbox.
|
|
142
|
+
// Disable the use of the gpu and `/dev/shm` because it causes Chrome to
|
|
143
|
+
// crash on some environments.
|
|
144
|
+
// See:
|
|
145
|
+
// https://github.com/puppeteer/puppeteer/blob/v1.0.0/docs/troubleshooting.md#tips
|
|
146
|
+
// https://stackoverflow.com/questions/50642308/webdriverexception-unknown-error-devtoolsactiveport-file-doesnt-exist-while-t
|
|
147
|
+
ChromeHeadlessNoSandbox: {
|
|
148
|
+
base: 'ChromeHeadless',
|
|
149
|
+
flags: ['--no-sandbox', '--headless', '--disable-gpu', '--disable-dev-shm-usage'],
|
|
150
|
+
},
|
|
151
|
+
},
|
|
152
|
+
restartOnFileChange: true,
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
exports.default = (0, architect_1.createBuilder)(execute);
|
|
156
|
+
async function checkForEsbuild(options, context) {
|
|
157
|
+
if (options.builderMode !== schema_1.BuilderMode.Detect) {
|
|
158
|
+
return options.builderMode === schema_1.BuilderMode.Application;
|
|
159
|
+
}
|
|
160
|
+
// Look up the current project's build target using a development configuration.
|
|
161
|
+
const buildTargetSpecifier = `::development`;
|
|
162
|
+
const buildTarget = (0, architect_1.targetFromTargetString)(buildTargetSpecifier, context.target?.project, 'build');
|
|
163
|
+
try {
|
|
164
|
+
const developmentBuilderName = await context.getBuilderNameForTarget(buildTarget);
|
|
165
|
+
return isEsbuildBased(developmentBuilderName);
|
|
166
|
+
}
|
|
167
|
+
catch (e) {
|
|
168
|
+
if (!(e instanceof Error) || e.message !== 'Project target does not exist.') {
|
|
169
|
+
throw e;
|
|
170
|
+
}
|
|
171
|
+
// If we can't find a development builder, we can't use 'detect'.
|
|
172
|
+
throw new Error('Failed to detect the builder used by the application. Please set builderMode explicitly.');
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
function isEsbuildBased(builderName) {
|
|
176
|
+
if (builderName === '@angular/build:application' ||
|
|
177
|
+
builderName === '@angular-devkit/build-angular:application' ||
|
|
178
|
+
builderName === '@angular-devkit/build-angular:browser-esbuild') {
|
|
179
|
+
return true;
|
|
180
|
+
}
|
|
181
|
+
return false;
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
|