@servicetitan/startup 36.4.0 → 37.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/analyze.js +3 -0
- package/dist/cli/commands/build.d.ts.map +1 -1
- package/dist/cli/commands/build.js +4 -5
- package/dist/cli/commands/build.js.map +1 -1
- package/dist/cli/commands/bundle-vite.d.ts.map +1 -1
- package/dist/cli/commands/bundle-vite.js +18 -1
- package/dist/cli/commands/bundle-vite.js.map +1 -1
- package/dist/cli/commands/registry/build.d.ts +6 -0
- package/dist/cli/commands/registry/build.d.ts.map +1 -1
- package/dist/cli/commands/registry/build.js +10 -1
- package/dist/cli/commands/registry/build.js.map +1 -1
- package/dist/cli/commands/registry/command-registry.d.ts +12 -28
- package/dist/cli/commands/registry/command-registry.d.ts.map +1 -1
- package/dist/cli/commands/registry/command-registry.js +0 -3
- package/dist/cli/commands/registry/command-registry.js.map +1 -1
- package/dist/cli/commands/registry/start.d.ts +6 -0
- package/dist/cli/commands/registry/start.d.ts.map +1 -1
- package/dist/cli/commands/registry/start.js +10 -1
- package/dist/cli/commands/registry/start.js.map +1 -1
- package/dist/cli/commands/review/rules/index.d.ts.map +1 -1
- package/dist/cli/commands/review/rules/index.js +2 -0
- package/dist/cli/commands/review/rules/index.js.map +1 -1
- package/dist/cli/commands/review/rules/require-compatible-typescript.d.ts +13 -0
- package/dist/cli/commands/review/rules/require-compatible-typescript.d.ts.map +1 -0
- package/dist/cli/commands/review/rules/require-compatible-typescript.js +72 -0
- package/dist/cli/commands/review/rules/require-compatible-typescript.js.map +1 -0
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +3 -4
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/test/runners/vitest.d.ts.map +1 -1
- package/dist/cli/commands/test/runners/vitest.js +7 -1
- package/dist/cli/commands/test/runners/vitest.js.map +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/utils/get-bundle-command.d.ts +3 -0
- package/dist/cli/utils/get-bundle-command.d.ts.map +1 -0
- package/dist/cli/utils/get-bundle-command.js +16 -0
- package/dist/cli/utils/get-bundle-command.js.map +1 -0
- package/dist/cli/utils/get-exit-code.d.ts +12 -0
- package/dist/cli/utils/get-exit-code.d.ts.map +1 -0
- package/dist/cli/utils/get-exit-code.js +26 -0
- package/dist/cli/utils/get-exit-code.js.map +1 -0
- package/dist/cli/utils/index.d.ts +3 -0
- package/dist/cli/utils/index.d.ts.map +1 -1
- package/dist/cli/utils/index.js +3 -0
- package/dist/cli/utils/index.js.map +1 -1
- package/dist/cli/utils/resolve-bundler.d.ts +8 -0
- package/dist/cli/utils/resolve-bundler.d.ts.map +1 -0
- package/dist/cli/utils/resolve-bundler.js +24 -0
- package/dist/cli/utils/resolve-bundler.js.map +1 -0
- package/dist/core/bundle-report.d.ts +4 -0
- package/dist/core/bundle-report.d.ts.map +1 -0
- package/dist/core/bundle-report.js +43 -0
- package/dist/core/bundle-report.js.map +1 -0
- package/dist/core/check-resource/check-resource.d.ts +5 -3
- package/dist/core/check-resource/check-resource.d.ts.map +1 -1
- package/dist/core/check-resource/check-resource.js +20 -13
- package/dist/core/check-resource/check-resource.js.map +1 -1
- package/dist/core/check-resource/get-peer-dependency-meta.d.ts +11 -1
- package/dist/core/check-resource/get-peer-dependency-meta.d.ts.map +1 -1
- package/dist/core/check-resource/get-peer-dependency-meta.js +58 -2
- package/dist/core/check-resource/get-peer-dependency-meta.js.map +1 -1
- package/dist/core/check-resource/index.d.ts +1 -1
- package/dist/core/check-resource/index.d.ts.map +1 -1
- package/dist/core/check-resource/index.js.map +1 -1
- package/dist/core/check-resource/is-resolvable.d.ts +7 -0
- package/dist/core/check-resource/is-resolvable.d.ts.map +1 -0
- package/dist/core/check-resource/is-resolvable.js +31 -0
- package/dist/core/check-resource/is-resolvable.js.map +1 -0
- package/dist/core/check-resource/types.d.ts +1 -0
- package/dist/core/check-resource/types.d.ts.map +1 -1
- package/dist/core/chunk-patterns.d.ts +7 -0
- package/dist/core/chunk-patterns.d.ts.map +1 -0
- package/dist/core/chunk-patterns.js +37 -0
- package/dist/core/chunk-patterns.js.map +1 -0
- package/dist/core/create-build-context.d.ts +0 -1
- package/dist/core/create-build-context.d.ts.map +1 -1
- package/dist/core/create-build-context.js +2 -2
- package/dist/core/create-build-context.js.map +1 -1
- package/dist/core/create-extension-regexp.d.ts +5 -0
- package/dist/core/create-extension-regexp.d.ts.map +1 -0
- package/dist/core/create-extension-regexp.js +45 -0
- package/dist/core/create-extension-regexp.js.map +1 -0
- package/dist/core/get-process-env.d.ts +3 -0
- package/dist/core/get-process-env.d.ts.map +1 -0
- package/dist/core/get-process-env.js +25 -0
- package/dist/core/get-process-env.js.map +1 -0
- package/dist/core/index.d.ts +8 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +8 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/moment-locales.d.ts +2 -0
- package/dist/core/moment-locales.d.ts.map +1 -0
- package/dist/core/moment-locales.js +21 -0
- package/dist/core/moment-locales.js.map +1 -0
- package/dist/core/resolve-output-path.d.ts +3 -0
- package/dist/core/resolve-output-path.d.ts.map +1 -0
- package/dist/core/resolve-output-path.js +25 -0
- package/dist/core/resolve-output-path.js.map +1 -0
- package/dist/core/resolve-output-root.d.ts +3 -0
- package/dist/core/resolve-output-root.d.ts.map +1 -0
- package/dist/core/resolve-output-root.js +23 -0
- package/dist/core/resolve-output-root.js.map +1 -0
- package/dist/core/sort-shared-css.d.ts +2 -0
- package/dist/core/sort-shared-css.d.ts.map +1 -0
- package/dist/core/sort-shared-css.js +20 -0
- package/dist/core/sort-shared-css.js.map +1 -0
- package/dist/core/types.d.ts +1 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/cypress/config/index.d.ts +1 -0
- package/dist/cypress/config/index.d.ts.map +1 -1
- package/dist/cypress/config/index.js +1 -0
- package/dist/cypress/config/index.js.map +1 -1
- package/dist/cypress/config/vite-config.d.ts +3 -0
- package/dist/cypress/config/vite-config.d.ts.map +1 -0
- package/dist/cypress/config/vite-config.js +58 -0
- package/dist/cypress/config/vite-config.js.map +1 -0
- package/dist/jest/resolver.d.ts.map +1 -1
- package/dist/jest/resolver.js +20 -1
- package/dist/jest/resolver.js.map +1 -1
- package/dist/storybook-config/index.d.ts +1 -0
- package/dist/storybook-config/index.d.ts.map +1 -1
- package/dist/storybook-config/index.js +1 -0
- package/dist/storybook-config/index.js.map +1 -1
- package/dist/storybook-config/vite-final.d.ts +7 -0
- package/dist/storybook-config/vite-final.d.ts.map +1 -0
- package/dist/storybook-config/vite-final.js +86 -0
- package/dist/storybook-config/vite-final.js.map +1 -0
- package/dist/utils/get-configuration.d.ts +15 -10
- package/dist/utils/get-configuration.d.ts.map +1 -1
- package/dist/utils/get-configuration.js +32 -2
- package/dist/utils/get-configuration.js.map +1 -1
- package/dist/utils/get-package-name.d.ts +2 -1
- package/dist/utils/get-package-name.d.ts.map +1 -1
- package/dist/utils/get-package-name.js +4 -2
- package/dist/utils/get-package-name.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/types.d.ts +2 -0
- package/dist/utils/types.d.ts.map +1 -0
- package/dist/utils/types.js +6 -0
- package/dist/utils/types.js.map +1 -0
- package/dist/utils/validate-shared-dependencies.d.ts.map +1 -1
- package/dist/utils/validate-shared-dependencies.js +4 -0
- package/dist/utils/validate-shared-dependencies.js.map +1 -1
- package/dist/vite/build-shared-dependencies.d.ts.map +1 -1
- package/dist/vite/build-shared-dependencies.js +1 -2
- package/dist/vite/build-shared-dependencies.js.map +1 -1
- package/dist/vite/config/asset-file-names.d.ts +4 -0
- package/dist/vite/config/asset-file-names.d.ts.map +1 -0
- package/dist/vite/config/asset-file-names.js +29 -0
- package/dist/vite/config/asset-file-names.js.map +1 -0
- package/dist/vite/config/base-config.d.ts.map +1 -1
- package/dist/vite/config/base-config.js +67 -40
- package/dist/vite/config/base-config.js.map +1 -1
- package/dist/vite/config/code-splitting.d.ts +4 -0
- package/dist/vite/config/code-splitting.d.ts.map +1 -0
- package/dist/vite/config/code-splitting.js +48 -0
- package/dist/vite/config/code-splitting.js.map +1 -0
- package/dist/vite/config/create-css-config.d.ts +3 -0
- package/dist/vite/config/create-css-config.d.ts.map +1 -0
- package/dist/vite/config/create-css-config.js +26 -0
- package/dist/vite/config/create-css-config.js.map +1 -0
- package/dist/vite/config/create-filtering-logger.d.ts +3 -0
- package/dist/vite/config/create-filtering-logger.d.ts.map +1 -0
- package/dist/vite/config/create-filtering-logger.js +37 -0
- package/dist/vite/config/create-filtering-logger.js.map +1 -0
- package/dist/vite/config/create-vite-build-context.d.ts +2 -1
- package/dist/vite/config/create-vite-build-context.d.ts.map +1 -1
- package/dist/vite/config/create-vite-build-context.js.map +1 -1
- package/dist/vite/config/create-vite-config.d.ts.map +1 -1
- package/dist/vite/config/create-vite-config.js +30 -13
- package/dist/vite/config/create-vite-config.js.map +1 -1
- package/dist/vite/config/get-warmup-client-files.d.ts +3 -0
- package/dist/vite/config/get-warmup-client-files.d.ts.map +1 -0
- package/dist/vite/config/get-warmup-client-files.js +26 -0
- package/dist/vite/config/get-warmup-client-files.js.map +1 -0
- package/dist/vite/index.html +1 -0
- package/dist/vite/plugins/bundle-stat-plugin.d.ts +4 -0
- package/dist/vite/plugins/bundle-stat-plugin.d.ts.map +1 -0
- package/dist/vite/plugins/bundle-stat-plugin.js +32 -0
- package/dist/vite/plugins/bundle-stat-plugin.js.map +1 -0
- package/dist/vite/plugins/chain-source-maps-plugin.d.ts +3 -0
- package/dist/vite/plugins/chain-source-maps-plugin.d.ts.map +1 -0
- package/dist/vite/plugins/chain-source-maps-plugin.js +37 -0
- package/dist/vite/plugins/chain-source-maps-plugin.js.map +1 -0
- package/dist/vite/plugins/clean-plugin.d.ts +4 -0
- package/dist/vite/plugins/clean-plugin.d.ts.map +1 -0
- package/dist/vite/plugins/clean-plugin.js +63 -0
- package/dist/vite/plugins/clean-plugin.js.map +1 -0
- package/dist/vite/plugins/design-system-guard-plugin.d.ts +4 -0
- package/dist/vite/plugins/design-system-guard-plugin.d.ts.map +1 -0
- package/dist/vite/plugins/design-system-guard-plugin.js +35 -0
- package/dist/vite/plugins/design-system-guard-plugin.js.map +1 -0
- package/dist/vite/plugins/ignore-modules-plugin.d.ts +21 -3
- package/dist/vite/plugins/ignore-modules-plugin.d.ts.map +1 -1
- package/dist/vite/plugins/ignore-modules-plugin.js +22 -8
- package/dist/vite/plugins/ignore-modules-plugin.js.map +1 -1
- package/dist/vite/plugins/index.d.ts +7 -0
- package/dist/vite/plugins/index.d.ts.map +1 -1
- package/dist/vite/plugins/index.js +7 -0
- package/dist/vite/plugins/index.js.map +1 -1
- package/dist/vite/plugins/istanbul-plugin.d.ts +4 -0
- package/dist/vite/plugins/istanbul-plugin.d.ts.map +1 -0
- package/dist/vite/plugins/istanbul-plugin.js +27 -0
- package/dist/vite/plugins/istanbul-plugin.js.map +1 -0
- package/dist/vite/plugins/magic-comments-plugin/index.d.ts +2 -0
- package/dist/vite/plugins/magic-comments-plugin/index.d.ts.map +1 -0
- package/dist/vite/plugins/magic-comments-plugin/index.js +20 -0
- package/dist/vite/plugins/magic-comments-plugin/index.js.map +1 -0
- package/dist/vite/plugins/magic-comments-plugin/magic-comments-plugin.d.ts +4 -0
- package/dist/vite/plugins/magic-comments-plugin/magic-comments-plugin.d.ts.map +1 -0
- package/dist/vite/plugins/magic-comments-plugin/magic-comments-plugin.js +63 -0
- package/dist/vite/plugins/magic-comments-plugin/magic-comments-plugin.js.map +1 -0
- package/dist/vite/plugins/magic-comments-plugin/parse-magic-comments.d.ts +6 -0
- package/dist/vite/plugins/magic-comments-plugin/parse-magic-comments.d.ts.map +1 -0
- package/dist/vite/plugins/magic-comments-plugin/parse-magic-comments.js +40 -0
- package/dist/vite/plugins/magic-comments-plugin/parse-magic-comments.js.map +1 -0
- package/dist/vite/plugins/metadata-plugin.js +2 -2
- package/dist/vite/plugins/metadata-plugin.js.map +1 -1
- package/dist/vite/plugins/moment-locales-plugin.d.ts +5 -0
- package/dist/vite/plugins/moment-locales-plugin.d.ts.map +1 -0
- package/dist/vite/plugins/moment-locales-plugin.js +50 -0
- package/dist/vite/plugins/moment-locales-plugin.js.map +1 -0
- package/dist/vite/plugins/shared-dependencies-plugin/assemble-iife.d.ts +14 -0
- package/dist/vite/plugins/shared-dependencies-plugin/assemble-iife.d.ts.map +1 -0
- package/dist/vite/plugins/shared-dependencies-plugin/assemble-iife.js +100 -0
- package/dist/vite/plugins/shared-dependencies-plugin/assemble-iife.js.map +1 -0
- package/dist/vite/plugins/shared-dependencies-plugin/assert-no-dynamic-css.d.ts +3 -0
- package/dist/vite/plugins/shared-dependencies-plugin/assert-no-dynamic-css.d.ts.map +1 -0
- package/dist/vite/plugins/shared-dependencies-plugin/assert-no-dynamic-css.js +56 -0
- package/dist/vite/plugins/shared-dependencies-plugin/assert-no-dynamic-css.js.map +1 -0
- package/dist/vite/plugins/shared-dependencies-plugin/flatten.d.ts +2 -0
- package/dist/vite/plugins/shared-dependencies-plugin/flatten.d.ts.map +1 -0
- package/dist/vite/plugins/shared-dependencies-plugin/flatten.js +19 -0
- package/dist/vite/plugins/shared-dependencies-plugin/flatten.js.map +1 -0
- package/dist/vite/plugins/shared-dependencies-plugin/index.d.ts +2 -0
- package/dist/vite/plugins/shared-dependencies-plugin/index.d.ts.map +1 -0
- package/dist/vite/plugins/shared-dependencies-plugin/index.js +20 -0
- package/dist/vite/plugins/shared-dependencies-plugin/index.js.map +1 -0
- package/dist/vite/plugins/shared-dependencies-plugin/shared-dependencies-plugin.d.ts.map +1 -0
- package/dist/vite/plugins/{shared-dependencies-plugin.js → shared-dependencies-plugin/shared-dependencies-plugin.js} +29 -107
- package/dist/vite/plugins/shared-dependencies-plugin/shared-dependencies-plugin.js.map +1 -0
- package/dist/vite/plugins/utils/import-esm.d.ts +2 -0
- package/dist/vite/plugins/utils/import-esm.d.ts.map +1 -0
- package/dist/vite/plugins/utils/import-esm.js +22 -0
- package/dist/vite/plugins/utils/import-esm.js.map +1 -0
- package/dist/vite/plugins/utils/index.d.ts +3 -0
- package/dist/vite/plugins/utils/index.d.ts.map +1 -0
- package/dist/vite/plugins/utils/index.js +21 -0
- package/dist/vite/plugins/utils/index.js.map +1 -0
- package/dist/webpack/configs/optimization-config.d.ts.map +1 -1
- package/dist/webpack/configs/optimization-config.js +53 -24
- package/dist/webpack/configs/optimization-config.js.map +1 -1
- package/dist/webpack/configs/output-config.d.ts.map +1 -1
- package/dist/webpack/configs/output-config.js +0 -1
- package/dist/webpack/configs/output-config.js.map +1 -1
- package/dist/webpack/configs/plugins/assets-manifest-plugin.d.ts.map +1 -1
- package/dist/webpack/configs/plugins/assets-manifest-plugin.js +11 -3
- package/dist/webpack/configs/plugins/assets-manifest-plugin.js.map +1 -1
- package/dist/webpack/configs/plugins/bundle-analyser-plugin.d.ts.map +1 -1
- package/dist/webpack/configs/plugins/bundle-analyser-plugin.js +2 -21
- package/dist/webpack/configs/plugins/bundle-analyser-plugin.js.map +1 -1
- package/dist/webpack/configs/plugins/define-process-env-plugin.d.ts +5 -0
- package/dist/webpack/configs/plugins/define-process-env-plugin.d.ts.map +1 -0
- package/dist/webpack/configs/plugins/define-process-env-plugin.js +20 -0
- package/dist/webpack/configs/plugins/define-process-env-plugin.js.map +1 -0
- package/dist/webpack/configs/plugins/filter-warnings-plugin.d.ts +1 -1
- package/dist/webpack/configs/plugins/filter-warnings-plugin.d.ts.map +1 -1
- package/dist/webpack/configs/plugins/filter-warnings-plugin.js +1 -4
- package/dist/webpack/configs/plugins/filter-warnings-plugin.js.map +1 -1
- package/dist/webpack/configs/plugins/ignore-plugin/empty-module.d.ts +2 -0
- package/dist/webpack/configs/plugins/ignore-plugin/empty-module.d.ts.map +1 -0
- package/dist/webpack/configs/plugins/ignore-plugin/empty-module.js +11 -0
- package/dist/webpack/configs/plugins/ignore-plugin/empty-module.js.map +1 -0
- package/dist/webpack/configs/plugins/ignore-plugin/ignore-plugin.d.ts +26 -3
- package/dist/webpack/configs/plugins/ignore-plugin/ignore-plugin.d.ts.map +1 -1
- package/dist/webpack/configs/plugins/ignore-plugin/ignore-plugin.js +41 -10
- package/dist/webpack/configs/plugins/ignore-plugin/ignore-plugin.js.map +1 -1
- package/dist/webpack/configs/plugins/index.d.ts +1 -0
- package/dist/webpack/configs/plugins/index.d.ts.map +1 -1
- package/dist/webpack/configs/plugins/index.js +1 -0
- package/dist/webpack/configs/plugins/index.js.map +1 -1
- package/dist/webpack/configs/plugins/moment-locales-plugin.d.ts.map +1 -1
- package/dist/webpack/configs/plugins/moment-locales-plugin.js +2 -5
- package/dist/webpack/configs/plugins/moment-locales-plugin.js.map +1 -1
- package/dist/webpack/configs/plugins-config.d.ts.map +1 -1
- package/dist/webpack/configs/plugins-config.js +1 -0
- package/dist/webpack/configs/plugins-config.js.map +1 -1
- package/dist/webpack/configs/rules/font-rules.d.ts.map +1 -1
- package/dist/webpack/configs/rules/font-rules.js +2 -1
- package/dist/webpack/configs/rules/font-rules.js.map +1 -1
- package/dist/webpack/configs/rules/image-rules.d.ts.map +1 -1
- package/dist/webpack/configs/rules/image-rules.js +2 -1
- package/dist/webpack/configs/rules/image-rules.js.map +1 -1
- package/dist/webpack/create-webpack-config.d.ts.map +1 -1
- package/dist/webpack/create-webpack-config.js +8 -3
- package/dist/webpack/create-webpack-config.js.map +1 -1
- package/dist/webpack/create-webpack-configs.d.ts.map +1 -1
- package/dist/webpack/create-webpack-configs.js +4 -12
- package/dist/webpack/create-webpack-configs.js.map +1 -1
- package/dist/webpack/types.d.ts +1 -1
- package/dist/webpack/types.d.ts.map +1 -1
- package/dist/webpack/utils/create-webpack-build-context.d.ts.map +1 -1
- package/dist/webpack/utils/create-webpack-build-context.js +1 -2
- package/dist/webpack/utils/create-webpack-build-context.js.map +1 -1
- package/package.json +22 -18
- package/src/cli/commands/__tests__/build.test.ts +33 -5
- package/src/cli/commands/__tests__/bundle-vite.test.ts +50 -1
- package/src/cli/commands/__tests__/start.test.ts +17 -4
- package/src/cli/commands/build.ts +5 -6
- package/src/cli/commands/bundle-vite.ts +13 -0
- package/src/cli/commands/registry/build.ts +6 -1
- package/src/cli/commands/registry/command-registry.ts +0 -1
- package/src/cli/commands/registry/start.ts +6 -1
- package/src/cli/commands/review/rules/__tests__/require-compatible-typescript.test.ts +127 -0
- package/src/cli/commands/review/rules/index.ts +2 -0
- package/src/cli/commands/review/rules/require-compatible-typescript.ts +64 -0
- package/src/cli/commands/start.ts +4 -4
- package/src/cli/commands/test/runners/__tests__/vitest.test.ts +8 -1
- package/src/cli/commands/test/runners/vitest.ts +5 -3
- package/src/cli/index.ts +2 -2
- package/src/cli/utils/__tests__/get-bundle-command.test.ts +23 -0
- package/src/cli/utils/__tests__/get-exit-code.test.ts +41 -0
- package/src/cli/utils/__tests__/resolve-bundler.test.ts +64 -0
- package/src/cli/utils/get-bundle-command.ts +5 -0
- package/src/cli/utils/get-exit-code.ts +17 -0
- package/src/cli/utils/index.ts +3 -0
- package/src/cli/utils/resolve-bundler.ts +23 -0
- package/src/core/__tests__/bundle-report.test.ts +60 -0
- package/src/core/__tests__/create-extension-regexp.test.ts +32 -0
- package/src/core/__tests__/resolve-output-path.test.ts +45 -0
- package/src/core/__tests__/resolve-output-root.test.ts +37 -0
- package/src/core/__tests__/sort-shared-css.test.ts +39 -0
- package/src/core/bundle-report.ts +33 -0
- package/src/core/check-resource/__tests__/check-resource.test.ts +21 -7
- package/src/core/check-resource/__tests__/get-peer-dependency-meta.test.ts +70 -13
- package/src/core/check-resource/__tests__/is-resolvable.test.ts +20 -0
- package/src/core/check-resource/check-resource.ts +17 -16
- package/src/core/check-resource/get-peer-dependency-meta.ts +67 -4
- package/src/core/check-resource/index.ts +1 -1
- package/src/core/check-resource/is-resolvable.ts +19 -0
- package/src/core/check-resource/types.ts +2 -0
- package/src/core/chunk-patterns.ts +30 -0
- package/src/core/create-build-context.ts +2 -2
- package/src/core/create-extension-regexp.ts +7 -0
- package/src/core/get-process-env.ts +17 -0
- package/src/core/index.ts +8 -1
- package/src/core/moment-locales.ts +6 -0
- package/src/core/resolve-output-path.ts +10 -0
- package/src/core/resolve-output-root.ts +8 -0
- package/src/core/sort-shared-css.ts +7 -0
- package/src/core/types.ts +1 -1
- package/src/cypress/config/__tests__/vite-config.test.ts +72 -0
- package/src/cypress/config/index.ts +1 -0
- package/src/cypress/config/vite-config.ts +37 -0
- package/src/jest/__tests__/resolver.test.ts +42 -1
- package/src/jest/resolver.ts +17 -1
- package/src/storybook-config/__tests__/vite-final.test.ts +122 -0
- package/src/storybook-config/index.ts +1 -0
- package/src/storybook-config/vite-final.ts +65 -0
- package/src/utils/__tests__/get-configuration.test.ts +82 -5
- package/src/utils/__tests__/get-package-name.test.ts +57 -0
- package/src/utils/__tests__/validate-shared-dependencies.test.ts +50 -35
- package/src/utils/get-configuration.ts +50 -15
- package/src/utils/get-package-name.ts +8 -2
- package/src/utils/index.ts +1 -0
- package/src/utils/types.ts +1 -0
- package/src/utils/validate-shared-dependencies.ts +15 -1
- package/src/vite/__tests__/build-shared-dependencies.test.ts +13 -26
- package/src/vite/__tests__/validate-shared-dependencies.test.ts +30 -19
- package/src/vite/build-shared-dependencies.ts +3 -7
- package/src/vite/config/__tests__/asset-file-names.test.ts +40 -0
- package/src/vite/config/__tests__/base-config.test.ts +99 -31
- package/src/vite/config/__tests__/code-splitting.test.ts +34 -0
- package/src/vite/config/__tests__/create-css-config.test.ts +58 -0
- package/src/vite/config/__tests__/create-filtering-logger.test.ts +51 -0
- package/src/vite/config/__tests__/create-vite-build-context.test.ts +5 -2
- package/src/vite/config/__tests__/create-vite-config.test.ts +91 -13
- package/src/vite/config/__tests__/get-warmup-client-files.test.ts +20 -0
- package/src/vite/config/asset-file-names.ts +20 -0
- package/src/vite/config/base-config.ts +45 -37
- package/src/vite/config/code-splitting.ts +23 -0
- package/src/vite/config/create-css-config.ts +16 -0
- package/src/vite/config/create-filtering-logger.ts +34 -0
- package/src/vite/config/create-vite-build-context.ts +3 -5
- package/src/vite/config/create-vite-config.ts +45 -12
- package/src/vite/config/get-warmup-client-files.ts +13 -0
- package/src/vite/index.html +1 -0
- package/src/vite/plugins/__tests__/bundle-stat-plugin.test.ts +70 -0
- package/src/vite/plugins/__tests__/chain-source-maps-plugin.test.ts +58 -0
- package/src/vite/plugins/__tests__/clean-plugin.test.ts +121 -0
- package/src/vite/plugins/__tests__/design-system-guard-plugin.test.ts +83 -0
- package/src/vite/plugins/__tests__/html-template.test.ts +6 -0
- package/src/vite/plugins/__tests__/ignore-modules-plugin.test.ts +29 -7
- package/src/vite/plugins/__tests__/istanbul-plugin.test.ts +62 -0
- package/src/vite/plugins/__tests__/moment-locales-plugin.test.ts +104 -0
- package/src/vite/plugins/bundle-stat-plugin.ts +24 -0
- package/src/vite/plugins/chain-source-maps-plugin.ts +26 -0
- package/src/vite/plugins/clean-plugin.ts +46 -0
- package/src/vite/plugins/design-system-guard-plugin.ts +34 -0
- package/src/vite/plugins/ignore-modules-plugin.ts +36 -7
- package/src/vite/plugins/index.ts +7 -0
- package/src/vite/plugins/istanbul-plugin.ts +19 -0
- package/src/vite/plugins/magic-comments-plugin/__tests__/magic-comments-plugin.test.ts +105 -0
- package/src/vite/plugins/magic-comments-plugin/__tests__/parse-magic-comments.test.ts +40 -0
- package/src/vite/plugins/magic-comments-plugin/index.ts +1 -0
- package/src/vite/plugins/magic-comments-plugin/magic-comments-plugin.ts +63 -0
- package/src/vite/plugins/magic-comments-plugin/parse-magic-comments.ts +39 -0
- package/src/vite/plugins/metadata-plugin.ts +1 -1
- package/src/vite/plugins/moment-locales-plugin.ts +41 -0
- package/src/vite/plugins/shared-dependencies-plugin/__tests__/assemble-iife.test.ts +29 -0
- package/src/vite/plugins/shared-dependencies-plugin/__tests__/assert-no-dynamic-css.test.ts +113 -0
- package/src/vite/plugins/shared-dependencies-plugin/__tests__/flatten.test.ts +23 -0
- package/src/vite/plugins/{__tests__ → shared-dependencies-plugin/__tests__}/shared-dependencies-plugin.test.ts +38 -4
- package/src/vite/plugins/shared-dependencies-plugin/assemble-iife.ts +114 -0
- package/src/vite/plugins/shared-dependencies-plugin/assert-no-dynamic-css.ts +58 -0
- package/src/vite/plugins/shared-dependencies-plugin/flatten.ts +8 -0
- package/src/vite/plugins/shared-dependencies-plugin/index.ts +1 -0
- package/src/vite/plugins/{shared-dependencies-plugin.ts → shared-dependencies-plugin/shared-dependencies-plugin.ts} +24 -115
- package/src/vite/plugins/utils/import-esm.ts +15 -0
- package/src/vite/plugins/utils/index.ts +2 -0
- package/src/vite/rolldown-oxc.d.ts +20 -0
- package/src/webpack/__tests__/bundle-webpack.test.ts +8 -8
- package/src/webpack/__tests__/create-webpack-config-shared-dependencies.test.ts +54 -5
- package/src/webpack/__tests__/create-webpack-config-web-component.test.ts +81 -12
- package/src/webpack/__tests__/create-webpack-config.test.ts +92 -9
- package/src/webpack/configs/optimization-config.ts +47 -25
- package/src/webpack/configs/output-config.ts +1 -2
- package/src/webpack/configs/plugins/assets-manifest-plugin.ts +16 -4
- package/src/webpack/configs/plugins/bundle-analyser-plugin.ts +3 -25
- package/src/webpack/configs/plugins/define-process-env-plugin.ts +10 -0
- package/src/webpack/configs/plugins/filter-warnings-plugin.ts +1 -5
- package/src/webpack/configs/plugins/ignore-plugin/__tests__/ignore-plugin.test.ts +76 -24
- package/src/webpack/configs/plugins/ignore-plugin/empty-module.ts +7 -0
- package/src/webpack/configs/plugins/ignore-plugin/ignore-plugin.ts +59 -9
- package/src/webpack/configs/plugins/index.ts +1 -0
- package/src/webpack/configs/plugins/moment-locales-plugin.ts +2 -2
- package/src/webpack/configs/plugins-config.ts +2 -0
- package/src/webpack/configs/rules/font-rules.ts +2 -2
- package/src/webpack/configs/rules/image-rules.ts +2 -2
- package/src/webpack/create-webpack-config.ts +11 -4
- package/src/webpack/create-webpack-configs.ts +2 -8
- package/src/webpack/types.ts +1 -4
- package/src/webpack/utils/create-webpack-build-context.ts +1 -6
- package/tsconfig/base.json +1 -1
- package/tsconfig/types.d.ts +10 -0
- package/dist/core/get-output-path.d.ts +0 -3
- package/dist/core/get-output-path.d.ts.map +0 -1
- package/dist/core/get-output-path.js +0 -29
- package/dist/core/get-output-path.js.map +0 -1
- package/dist/vite/plugins/shared-dependencies-plugin.d.ts.map +0 -1
- package/dist/vite/plugins/shared-dependencies-plugin.js.map +0 -1
- package/src/core/__tests__/get-output-path.test.ts +0 -64
- package/src/core/get-output-path.ts +0 -15
- /package/dist/vite/plugins/{shared-dependencies-plugin.d.ts → shared-dependencies-plugin/shared-dependencies-plugin.d.ts} +0 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "magicCommentsPlugin", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return magicCommentsPlugin;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _parsemagiccomments = require("./parse-magic-comments");
|
|
12
|
+
/* Mirrors Vite's default chunk file naming. A magic comment only substitutes the [name] token. */ const CHUNK_FILE_NAME = 'assets/[name]-[hash].js';
|
|
13
|
+
function magicCommentsPlugin(context) {
|
|
14
|
+
if (!context.build.isProduction) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const chunkNames = new Map();
|
|
18
|
+
const moduleByName = new Map();
|
|
19
|
+
return {
|
|
20
|
+
name: 'magic-comments',
|
|
21
|
+
apply: 'build',
|
|
22
|
+
enforce: 'pre',
|
|
23
|
+
config: ()=>({
|
|
24
|
+
build: {
|
|
25
|
+
rolldownOptions: {
|
|
26
|
+
output: {
|
|
27
|
+
chunkFileNames: (chunk)=>{
|
|
28
|
+
const name = chunk.facadeModuleId && chunkNames.get(chunk.facadeModuleId);
|
|
29
|
+
return name ? CHUNK_FILE_NAME.replace('[name]', name) : CHUNK_FILE_NAME;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}),
|
|
35
|
+
transform: {
|
|
36
|
+
filter: {
|
|
37
|
+
id: {
|
|
38
|
+
exclude: /node_modules/
|
|
39
|
+
},
|
|
40
|
+
code: 'webpackChunkName'
|
|
41
|
+
},
|
|
42
|
+
async handler (code, id) {
|
|
43
|
+
const comments = await (0, _parsemagiccomments.parseMagicComments)(code);
|
|
44
|
+
const resolved = await Promise.all(comments.map(({ importPath })=>this.resolve(importPath, id)));
|
|
45
|
+
comments.forEach(({ chunkName }, index)=>{
|
|
46
|
+
const module = resolved[index];
|
|
47
|
+
if (!module) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const claimedBy = moduleByName.get(chunkName);
|
|
51
|
+
if (claimedBy && claimedBy !== module.id) {
|
|
52
|
+
this.warn(`webpackChunkName "${chunkName}" is used by multiple modules; Vite emits a separate chunk for each rather than merging them.`);
|
|
53
|
+
} else {
|
|
54
|
+
moduleByName.set(chunkName, module.id);
|
|
55
|
+
}
|
|
56
|
+
chunkNames.set(module.id, chunkName);
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
//# sourceMappingURL=magic-comments-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/vite/plugins/magic-comments-plugin/magic-comments-plugin.ts"],"sourcesContent":["import type { Plugin } from 'vite';\nimport { ViteBuildContext } from '../../types';\nimport { parseMagicComments } from './parse-magic-comments';\n\n/* Mirrors Vite's default chunk file naming. A magic comment only substitutes the [name] token. */\nconst CHUNK_FILE_NAME = 'assets/[name]-[hash].js';\n\n/*\n * Honors `webpackChunkName` magic comments on dynamic imports. Vite splits dynamic\n * imports into separate chunks, named after the source file; this renames the chunk\n * to specified `webpackChunkName`. Warns when a name is reused by different modules.\n */\nexport function magicCommentsPlugin(context: ViteBuildContext): Plugin | undefined {\n if (!context.build.isProduction) {\n return;\n }\n\n const chunkNames = new Map<string, string>();\n const moduleByName = new Map<string, string>();\n\n return {\n name: 'magic-comments',\n apply: 'build',\n enforce: 'pre',\n config: () => ({\n build: {\n rolldownOptions: {\n output: {\n chunkFileNames: (chunk: { facadeModuleId?: string | null }) => {\n const name =\n chunk.facadeModuleId && chunkNames.get(chunk.facadeModuleId);\n return name ? CHUNK_FILE_NAME.replace('[name]', name) : CHUNK_FILE_NAME;\n },\n },\n },\n },\n }),\n transform: {\n filter: { id: { exclude: /node_modules/ }, code: 'webpackChunkName' },\n async handler(code, id) {\n const comments = await parseMagicComments(code);\n const resolved = await Promise.all(\n comments.map(({ importPath }) => this.resolve(importPath, id))\n );\n comments.forEach(({ chunkName }, index) => {\n const module = resolved[index];\n if (!module) {\n return;\n }\n const claimedBy = moduleByName.get(chunkName);\n if (claimedBy && claimedBy !== module.id) {\n this.warn(\n `webpackChunkName \"${chunkName}\" is used by multiple modules; Vite emits a separate chunk for each rather than merging them.`\n );\n } else {\n moduleByName.set(chunkName, module.id);\n }\n chunkNames.set(module.id, chunkName);\n });\n },\n },\n };\n}\n"],"names":["magicCommentsPlugin","CHUNK_FILE_NAME","context","build","isProduction","chunkNames","Map","moduleByName","name","apply","enforce","config","rolldownOptions","output","chunkFileNames","chunk","facadeModuleId","get","replace","transform","filter","id","exclude","code","handler","comments","parseMagicComments","resolved","Promise","all","map","importPath","resolve","forEach","chunkName","index","module","claimedBy","warn","set"],"mappings":";;;;+BAYgBA;;;eAAAA;;;oCAVmB;AAEnC,gGAAgG,GAChG,MAAMC,kBAAkB;AAOjB,SAASD,oBAAoBE,OAAyB;IACzD,IAAI,CAACA,QAAQC,KAAK,CAACC,YAAY,EAAE;QAC7B;IACJ;IAEA,MAAMC,aAAa,IAAIC;IACvB,MAAMC,eAAe,IAAID;IAEzB,OAAO;QACHE,MAAM;QACNC,OAAO;QACPC,SAAS;QACTC,QAAQ,IAAO,CAAA;gBACXR,OAAO;oBACHS,iBAAiB;wBACbC,QAAQ;4BACJC,gBAAgB,CAACC;gCACb,MAAMP,OACFO,MAAMC,cAAc,IAAIX,WAAWY,GAAG,CAACF,MAAMC,cAAc;gCAC/D,OAAOR,OAAOP,gBAAgBiB,OAAO,CAAC,UAAUV,QAAQP;4BAC5D;wBACJ;oBACJ;gBACJ;YACJ,CAAA;QACAkB,WAAW;YACPC,QAAQ;gBAAEC,IAAI;oBAAEC,SAAS;gBAAe;gBAAGC,MAAM;YAAmB;YACpE,MAAMC,SAAQD,IAAI,EAAEF,EAAE;gBAClB,MAAMI,WAAW,MAAMC,IAAAA,sCAAkB,EAACH;gBAC1C,MAAMI,WAAW,MAAMC,QAAQC,GAAG,CAC9BJ,SAASK,GAAG,CAAC,CAAC,EAAEC,UAAU,EAAE,GAAK,IAAI,CAACC,OAAO,CAACD,YAAYV;gBAE9DI,SAASQ,OAAO,CAAC,CAAC,EAAEC,SAAS,EAAE,EAAEC;oBAC7B,MAAMC,SAAST,QAAQ,CAACQ,MAAM;oBAC9B,IAAI,CAACC,QAAQ;wBACT;oBACJ;oBACA,MAAMC,YAAY9B,aAAaU,GAAG,CAACiB;oBACnC,IAAIG,aAAaA,cAAcD,OAAOf,EAAE,EAAE;wBACtC,IAAI,CAACiB,IAAI,CACL,CAAC,kBAAkB,EAAEJ,UAAU,6FAA6F,CAAC;oBAErI,OAAO;wBACH3B,aAAagC,GAAG,CAACL,WAAWE,OAAOf,EAAE;oBACzC;oBACAhB,WAAWkC,GAAG,CAACH,OAAOf,EAAE,EAAEa;gBAC9B;YACJ;QACJ;IACJ;AACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-magic-comments.d.ts","sourceRoot":"","sources":["../../../../src/vite/plugins/magic-comments-plugin/parse-magic-comments.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACtB;AASD,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAwB9E"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "parseMagicComments", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return parseMagicComments;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _esmodulelexer = require("es-module-lexer");
|
|
12
|
+
const CHUNK_NAME_REGEXP = /webpackChunkName:\s*["']([^"']+)["']/;
|
|
13
|
+
async function parseMagicComments(code) {
|
|
14
|
+
await _esmodulelexer.init;
|
|
15
|
+
const [imports] = (0, _esmodulelexer.parse)(code);
|
|
16
|
+
const result = [];
|
|
17
|
+
for (const imp of imports){
|
|
18
|
+
/*
|
|
19
|
+
* es-module-lexer positions on `import( <comment> './foo')`:
|
|
20
|
+
* (d: openParenIndex): the `(`, or -1 when the import is static
|
|
21
|
+
* (s: importPathStart): the opening quote of './foo'
|
|
22
|
+
* (n: importPath): ./foo, or undefined when not a string literal
|
|
23
|
+
*/ const { d: openParenIndex, n: importPath, s: importPathStart } = imp;
|
|
24
|
+
if (openParenIndex < 0 || importPath === undefined) {
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
// commentRegion (between the `(` and the path) holds the magic comment
|
|
28
|
+
const commentRegion = code.slice(openParenIndex + 1, importPathStart);
|
|
29
|
+
const match = CHUNK_NAME_REGEXP.exec(commentRegion);
|
|
30
|
+
if (match) {
|
|
31
|
+
result.push({
|
|
32
|
+
chunkName: match[1],
|
|
33
|
+
importPath
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return result;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=parse-magic-comments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/vite/plugins/magic-comments-plugin/parse-magic-comments.ts"],"sourcesContent":["import { init, parse } from 'es-module-lexer';\n\nexport interface MagicComment {\n chunkName: string;\n importPath: string;\n}\n\nconst CHUNK_NAME_REGEXP = /webpackChunkName:\\s*[\"']([^\"']+)[\"']/;\n\n/*\n * Extracts the chunk name from `webpackChunkName` magic comments on dynamic imports,\n * such as `import( <comment> './foo')` with a `webpackChunkName: \"x\"` comment. Only\n * target imports with a static string path.\n */\nexport async function parseMagicComments(code: string): Promise<MagicComment[]> {\n await init;\n const [imports] = parse(code);\n\n const result: MagicComment[] = [];\n for (const imp of imports) {\n /*\n * es-module-lexer positions on `import( <comment> './foo')`:\n * (d: openParenIndex): the `(`, or -1 when the import is static\n * (s: importPathStart): the opening quote of './foo'\n * (n: importPath): ./foo, or undefined when not a string literal\n */\n const { d: openParenIndex, n: importPath, s: importPathStart } = imp;\n if (openParenIndex < 0 || importPath === undefined) {\n continue;\n }\n // commentRegion (between the `(` and the path) holds the magic comment\n const commentRegion = code.slice(openParenIndex + 1, importPathStart);\n const match = CHUNK_NAME_REGEXP.exec(commentRegion);\n if (match) {\n result.push({ chunkName: match[1], importPath });\n }\n }\n return result;\n}\n"],"names":["parseMagicComments","CHUNK_NAME_REGEXP","code","init","imports","parse","result","imp","d","openParenIndex","n","importPath","s","importPathStart","undefined","commentRegion","slice","match","exec","push","chunkName"],"mappings":";;;;+BAcsBA;;;eAAAA;;;+BAdM;AAO5B,MAAMC,oBAAoB;AAOnB,eAAeD,mBAAmBE,IAAY;IACjD,MAAMC,mBAAI;IACV,MAAM,CAACC,QAAQ,GAAGC,IAAAA,oBAAK,EAACH;IAExB,MAAMI,SAAyB,EAAE;IACjC,KAAK,MAAMC,OAAOH,QAAS;QACvB;;;;;SAKC,GACD,MAAM,EAAEI,GAAGC,cAAc,EAAEC,GAAGC,UAAU,EAAEC,GAAGC,eAAe,EAAE,GAAGN;QACjE,IAAIE,iBAAiB,KAAKE,eAAeG,WAAW;YAChD;QACJ;QACA,uEAAuE;QACvE,MAAMC,gBAAgBb,KAAKc,KAAK,CAACP,iBAAiB,GAAGI;QACrD,MAAMI,QAAQhB,kBAAkBiB,IAAI,CAACH;QACrC,IAAIE,OAAO;YACPX,OAAOa,IAAI,CAAC;gBAAEC,WAAWH,KAAK,CAAC,EAAE;gBAAEN;YAAW;QAClD;IACJ;IACA,OAAOL;AACX"}
|
|
@@ -11,7 +11,7 @@ Object.defineProperty(exports, "metadataPlugin", {
|
|
|
11
11
|
const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
12
12
|
const _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
13
13
|
const _core = require("../../core");
|
|
14
|
-
const
|
|
14
|
+
const _utils = require("./utils");
|
|
15
15
|
function _interop_require_default(obj) {
|
|
16
16
|
return obj && obj.__esModule ? obj : {
|
|
17
17
|
default: obj
|
|
@@ -62,7 +62,7 @@ function metadataPlugin(context) {
|
|
|
62
62
|
js.push(chunk.fileName);
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
|
-
const css = (0,
|
|
65
|
+
const css = (0, _utils.getCssFileNames)(bundle);
|
|
66
66
|
_fs.default.writeFileSync(_path.default.join(options.dir, 'entrypoints.json'), JSON.stringify({
|
|
67
67
|
module: true,
|
|
68
68
|
css,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/vite/plugins/metadata-plugin.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport type { Plugin } from 'vite';\nimport { BuildContext, generateMetadata } from '../../core';\nimport { getCssFileNames } from './utils
|
|
1
|
+
{"version":3,"sources":["../../../src/vite/plugins/metadata-plugin.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport type { Plugin } from 'vite';\nimport { BuildContext, generateMetadata } from '../../core';\nimport { getCssFileNames } from './utils';\n\nexport function metadataPlugin(context: BuildContext): Plugin | undefined {\n if (!context.package.isWebComponent) {\n return;\n }\n\n let outDir = '';\n\n return {\n name: 'metadata',\n configResolved(config) {\n outDir = config.build.outDir;\n },\n configureServer(server) {\n server.httpServer?.once('listening', () => {\n const address = server.httpServer?.address();\n if (!address || typeof address === 'string') {\n return;\n }\n\n const entrypoints = {\n module: true,\n port: address.port,\n css: [],\n js: ['@vite/client', '@id/__x00__VIRTUAL./index'],\n };\n\n const entrypointsPath = path.join(outDir, 'entrypoints.json');\n fs.mkdirSync(path.dirname(entrypointsPath), { recursive: true });\n fs.writeFileSync(entrypointsPath, JSON.stringify(entrypoints, null, 2));\n\n generateMetadata(context);\n });\n },\n writeBundle(options, bundle) {\n if (!options.dir) {\n throw new Error(\n 'web-component build requires output.dir — output.file is not supported'\n );\n }\n\n const js: string[] = [];\n\n for (const chunk of Object.values(bundle)) {\n if (chunk.type === 'chunk' && chunk.isEntry) {\n js.push(chunk.fileName);\n }\n }\n\n const css = getCssFileNames(bundle);\n\n fs.writeFileSync(\n path.join(options.dir, 'entrypoints.json'),\n JSON.stringify({ module: true, css, js }, null, 2)\n );\n\n generateMetadata(context);\n },\n };\n}\n"],"names":["metadataPlugin","context","package","isWebComponent","outDir","name","configResolved","config","build","configureServer","server","httpServer","once","address","entrypoints","module","port","css","js","entrypointsPath","path","join","fs","mkdirSync","dirname","recursive","writeFileSync","JSON","stringify","generateMetadata","writeBundle","options","bundle","dir","Error","chunk","Object","values","type","isEntry","push","fileName","getCssFileNames"],"mappings":";;;;+BAMgBA;;;eAAAA;;;2DAND;6DACE;sBAE8B;uBACf;;;;;;AAEzB,SAASA,eAAeC,OAAqB;IAChD,IAAI,CAACA,QAAQC,OAAO,CAACC,cAAc,EAAE;QACjC;IACJ;IAEA,IAAIC,SAAS;IAEb,OAAO;QACHC,MAAM;QACNC,gBAAeC,MAAM;YACjBH,SAASG,OAAOC,KAAK,CAACJ,MAAM;QAChC;QACAK,iBAAgBC,MAAM;gBAClBA;aAAAA,qBAAAA,OAAOC,UAAU,cAAjBD,yCAAAA,mBAAmBE,IAAI,CAAC,aAAa;oBACjBF;gBAAhB,MAAMG,WAAUH,qBAAAA,OAAOC,UAAU,cAAjBD,yCAAAA,mBAAmBG,OAAO;gBAC1C,IAAI,CAACA,WAAW,OAAOA,YAAY,UAAU;oBACzC;gBACJ;gBAEA,MAAMC,cAAc;oBAChBC,QAAQ;oBACRC,MAAMH,QAAQG,IAAI;oBAClBC,KAAK,EAAE;oBACPC,IAAI;wBAAC;wBAAgB;qBAA4B;gBACrD;gBAEA,MAAMC,kBAAkBC,aAAI,CAACC,IAAI,CAACjB,QAAQ;gBAC1CkB,WAAE,CAACC,SAAS,CAACH,aAAI,CAACI,OAAO,CAACL,kBAAkB;oBAAEM,WAAW;gBAAK;gBAC9DH,WAAE,CAACI,aAAa,CAACP,iBAAiBQ,KAAKC,SAAS,CAACd,aAAa,MAAM;gBAEpEe,IAAAA,sBAAgB,EAAC5B;YACrB;QACJ;QACA6B,aAAYC,OAAO,EAAEC,MAAM;YACvB,IAAI,CAACD,QAAQE,GAAG,EAAE;gBACd,MAAM,IAAIC,MACN;YAER;YAEA,MAAMhB,KAAe,EAAE;YAEvB,KAAK,MAAMiB,SAASC,OAAOC,MAAM,CAACL,QAAS;gBACvC,IAAIG,MAAMG,IAAI,KAAK,WAAWH,MAAMI,OAAO,EAAE;oBACzCrB,GAAGsB,IAAI,CAACL,MAAMM,QAAQ;gBAC1B;YACJ;YAEA,MAAMxB,MAAMyB,IAAAA,sBAAe,EAACV;YAE5BV,WAAE,CAACI,aAAa,CACZN,aAAI,CAACC,IAAI,CAACU,QAAQE,GAAG,EAAE,qBACvBN,KAAKC,SAAS,CAAC;gBAAEb,QAAQ;gBAAME;gBAAKC;YAAG,GAAG,MAAM;YAGpDW,IAAAA,sBAAgB,EAAC5B;QACrB;IACJ;AACJ"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Plugin } from 'vite';
|
|
2
|
+
import { BuildContext } from '../../core';
|
|
3
|
+
export declare const VIRTUAL_MOMENT = "\0VIRTUAL_MOMENT";
|
|
4
|
+
export declare function momentLocalesPlugin(_context: BuildContext): Plugin;
|
|
5
|
+
//# sourceMappingURL=moment-locales-plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"moment-locales-plugin.d.ts","sourceRoot":"","sources":["../../../src/vite/plugins/moment-locales-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,EAAE,YAAY,EAAkB,MAAM,YAAY,CAAC;AAE1D,eAAO,MAAM,cAAc,qBAAqB,CAAC;AAYjD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAyBlE"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
get VIRTUAL_MOMENT () {
|
|
13
|
+
return VIRTUAL_MOMENT;
|
|
14
|
+
},
|
|
15
|
+
get momentLocalesPlugin () {
|
|
16
|
+
return momentLocalesPlugin;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
const _core = require("../../core");
|
|
20
|
+
const VIRTUAL_MOMENT = '\0VIRTUAL_MOMENT';
|
|
21
|
+
const UMD_LOCALE = /^moment\/locale\/(.+)$/;
|
|
22
|
+
function momentLocalesPlugin(_context) {
|
|
23
|
+
return {
|
|
24
|
+
name: 'moment-locales',
|
|
25
|
+
enforce: 'pre',
|
|
26
|
+
resolveId (source, importer, options) {
|
|
27
|
+
var _UMD_LOCALE_exec;
|
|
28
|
+
if (source === 'moment') {
|
|
29
|
+
return VIRTUAL_MOMENT;
|
|
30
|
+
}
|
|
31
|
+
// Redirect explicit UMD locale imports to the ESM build so they share that instance.
|
|
32
|
+
const locale = (_UMD_LOCALE_exec = UMD_LOCALE.exec(source)) === null || _UMD_LOCALE_exec === void 0 ? void 0 : _UMD_LOCALE_exec[1];
|
|
33
|
+
if (locale) {
|
|
34
|
+
return this.resolve(`moment/dist/locale/${locale}`, importer, options);
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
load (id) {
|
|
38
|
+
if (id === VIRTUAL_MOMENT) {
|
|
39
|
+
return [
|
|
40
|
+
..._core.MOMENT_LOCALES.map((locale)=>`import 'moment/dist/locale/${locale}';`),
|
|
41
|
+
`import moment from 'moment/dist/moment.js';`,
|
|
42
|
+
`export * from 'moment/dist/moment.js';`,
|
|
43
|
+
`export default moment;`
|
|
44
|
+
].join('\n');
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
//# sourceMappingURL=moment-locales-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/vite/plugins/moment-locales-plugin.ts"],"sourcesContent":["import type { Plugin } from 'vite';\nimport { BuildContext, MOMENT_LOCALES } from '../../core';\n\nexport const VIRTUAL_MOMENT = '\\0VIRTUAL_MOMENT';\n\nconst UMD_LOCALE = /^moment\\/locale\\/(.+)$/;\n\n/*\n * Statically bundle the supported moment locales for parity with webpack's\n * MomentLocalesPlugin. We need this because moment loads locales via a dynamic\n * require that, with Rolldown, never loads.\n *\n * Resolve everything through moment/dist (the ESM build) else Rolldown creates\n * a separate UMD instance from what the app uses.\n */\nexport function momentLocalesPlugin(_context: BuildContext): Plugin {\n return {\n name: 'moment-locales',\n enforce: 'pre',\n resolveId(source, importer, options) {\n if (source === 'moment') {\n return VIRTUAL_MOMENT;\n }\n // Redirect explicit UMD locale imports to the ESM build so they share that instance.\n const locale = UMD_LOCALE.exec(source)?.[1];\n if (locale) {\n return this.resolve(`moment/dist/locale/${locale}`, importer, options);\n }\n },\n load(id) {\n if (id === VIRTUAL_MOMENT) {\n return [\n ...MOMENT_LOCALES.map(locale => `import 'moment/dist/locale/${locale}';`),\n `import moment from 'moment/dist/moment.js';`,\n `export * from 'moment/dist/moment.js';`,\n `export default moment;`,\n ].join('\\n');\n }\n },\n };\n}\n"],"names":["VIRTUAL_MOMENT","momentLocalesPlugin","UMD_LOCALE","_context","name","enforce","resolveId","source","importer","options","locale","exec","resolve","load","id","MOMENT_LOCALES","map","join"],"mappings":";;;;;;;;;;;QAGaA;eAAAA;;QAYGC;eAAAA;;;sBAd6B;AAEtC,MAAMD,iBAAiB;AAE9B,MAAME,aAAa;AAUZ,SAASD,oBAAoBE,QAAsB;IACtD,OAAO;QACHC,MAAM;QACNC,SAAS;QACTC,WAAUC,MAAM,EAAEC,QAAQ,EAAEC,OAAO;gBAKhBP;YAJf,IAAIK,WAAW,UAAU;gBACrB,OAAOP;YACX;YACA,qFAAqF;YACrF,MAAMU,UAASR,mBAAAA,WAAWS,IAAI,CAACJ,qBAAhBL,uCAAAA,gBAAyB,CAAC,EAAE;YAC3C,IAAIQ,QAAQ;gBACR,OAAO,IAAI,CAACE,OAAO,CAAC,CAAC,mBAAmB,EAAEF,QAAQ,EAAEF,UAAUC;YAClE;QACJ;QACAI,MAAKC,EAAE;YACH,IAAIA,OAAOd,gBAAgB;gBACvB,OAAO;uBACAe,oBAAc,CAACC,GAAG,CAACN,CAAAA,SAAU,CAAC,2BAA2B,EAAEA,OAAO,EAAE,CAAC;oBACxE,CAAC,2CAA2C,CAAC;oBAC7C,CAAC,sCAAsC,CAAC;oBACxC,CAAC,sBAAsB,CAAC;iBAC3B,CAACO,IAAI,CAAC;YACX;QACJ;IACJ;AACJ"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface ModuleFactory {
|
|
2
|
+
/** Module id used as the factory's key and require() argument (e.g. `react`, `./_chunk.js`). */
|
|
3
|
+
id: string;
|
|
4
|
+
/** The chunk's generated code, run inside `function(module, exports, require) { ... }`. */
|
|
5
|
+
code: string;
|
|
6
|
+
}
|
|
7
|
+
export interface Expose {
|
|
8
|
+
/** Global path the dependency is published under (e.g. `SharedDependencies.React`). */
|
|
9
|
+
variable: string;
|
|
10
|
+
/** Module id resolved through the scoped require when the global is accessed. */
|
|
11
|
+
dependency: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function assembleIife(modules: ModuleFactory[], exposes: Expose[]): string;
|
|
14
|
+
//# sourceMappingURL=assemble-iife.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assemble-iife.d.ts","sourceRoot":"","sources":["../../../../src/vite/plugins/shared-dependencies-plugin/assemble-iife.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC1B,gGAAgG;IAChG,EAAE,EAAE,MAAM,CAAC;IACX,2FAA2F;IAC3F,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,MAAM;IACnB,uFAAuF;IACvF,QAAQ,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,UAAU,EAAE,MAAM,CAAC;CACtB;AAWD,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CA0FhF"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "assembleIife", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return assembleIife;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
function indent(spaces) {
|
|
12
|
+
return ' '.repeat(spaces);
|
|
13
|
+
}
|
|
14
|
+
function assembleIife(modules, exposes) {
|
|
15
|
+
const factories = modules.map(({ id, code })=>`'${id}': function(module, exports, require) {\n${indent(12)}${code}\n${indent(8)}}`);
|
|
16
|
+
const exposeCalls = exposes.map(({ variable, dependency })=>`expose('${variable}', '${dependency}');`);
|
|
17
|
+
return `\
|
|
18
|
+
(function () {
|
|
19
|
+
const STORAGE_KEY = Symbol.for('SERVICETITAN_EXPOSE_LOADER_STORAGE');
|
|
20
|
+
const g = globalThis;
|
|
21
|
+
|
|
22
|
+
if (g[STORAGE_KEY] === undefined) {
|
|
23
|
+
g[STORAGE_KEY] = Object.assign(Object.create(null), {
|
|
24
|
+
clear(scope) {
|
|
25
|
+
delete this[scope];
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
var storage = g[STORAGE_KEY];
|
|
31
|
+
|
|
32
|
+
var modules = {
|
|
33
|
+
${factories.join(`,\n${indent(8)}`)}
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
function createScopedRequire(scope) {
|
|
37
|
+
const cache = (storage[scope] = storage[scope] || Object.create(null));
|
|
38
|
+
|
|
39
|
+
function require(id) {
|
|
40
|
+
if (cache[id]) {
|
|
41
|
+
return cache[id].exports;
|
|
42
|
+
}
|
|
43
|
+
if (!modules[id]) {
|
|
44
|
+
throw new Error('Module not found: ' + id);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const module = (cache[id] = { id, loaded: false, exports: {} });
|
|
48
|
+
modules[id](module, module.exports, require);
|
|
49
|
+
module.loaded = true;
|
|
50
|
+
|
|
51
|
+
const keys = Object.keys(module.exports);
|
|
52
|
+
if (module.exports.__esModule && keys.length === 1 && keys[0] === 'default') {
|
|
53
|
+
module.exports = module.exports.default;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return module.exports;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
Object.setPrototypeOf(require, {
|
|
60
|
+
resolve(id) {
|
|
61
|
+
return id;
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
return require;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function expose(path, moduleId) {
|
|
68
|
+
const parts = path.split('.');
|
|
69
|
+
let obj = g;
|
|
70
|
+
|
|
71
|
+
for (let i = 0; i < parts.length - 1; i++) {
|
|
72
|
+
if (obj[parts[i]] === undefined) {
|
|
73
|
+
obj[parts[i]] = Object.create(null);
|
|
74
|
+
}
|
|
75
|
+
obj = obj[parts[i]];
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
obj[parts[parts.length - 1]] = new Proxy(
|
|
79
|
+
Object.assign(Object.create(null), {
|
|
80
|
+
getStorage() {
|
|
81
|
+
return storage;
|
|
82
|
+
},
|
|
83
|
+
}),
|
|
84
|
+
{
|
|
85
|
+
get(target, scope, receiver) {
|
|
86
|
+
if (scope === 'getStorage') {
|
|
87
|
+
return Reflect.get(target, scope, receiver);
|
|
88
|
+
}
|
|
89
|
+
return createScopedRequire(scope)(moduleId);
|
|
90
|
+
},
|
|
91
|
+
}
|
|
92
|
+
);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
${exposeCalls.join(`\n${indent(4)}`)}
|
|
96
|
+
})();
|
|
97
|
+
`;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
//# sourceMappingURL=assemble-iife.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/vite/plugins/shared-dependencies-plugin/assemble-iife.ts"],"sourcesContent":["export interface ModuleFactory {\n /** Module id used as the factory's key and require() argument (e.g. `react`, `./_chunk.js`). */\n id: string;\n /** The chunk's generated code, run inside `function(module, exports, require) { ... }`. */\n code: string;\n}\n\nexport interface Expose {\n /** Global path the dependency is published under (e.g. `SharedDependencies.React`). */\n variable: string;\n /** Module id resolved through the scoped require when the global is accessed. */\n dependency: string;\n}\n\nfunction indent(spaces: number) {\n return ' '.repeat(spaces);\n}\n\n/*\n * Wraps the bundle's module factories and expose calls in the runtime IIFE.\n * The IIFE installs a per-scope require system on globalThis so each MFE gets\n * isolated module instances of the shared dependencies.\n */\nexport function assembleIife(modules: ModuleFactory[], exposes: Expose[]): string {\n const factories = modules.map(\n ({ id, code }) =>\n `'${id}': function(module, exports, require) {\\n${indent(12)}${code}\\n${indent(8)}}`\n );\n const exposeCalls = exposes.map(\n ({ variable, dependency }) => `expose('${variable}', '${dependency}');`\n );\n\n return `\\\n(function () {\n const STORAGE_KEY = Symbol.for('SERVICETITAN_EXPOSE_LOADER_STORAGE');\n const g = globalThis;\n\n if (g[STORAGE_KEY] === undefined) {\n g[STORAGE_KEY] = Object.assign(Object.create(null), {\n clear(scope) {\n delete this[scope];\n },\n });\n }\n\n var storage = g[STORAGE_KEY];\n\n var modules = {\n ${factories.join(`,\\n${indent(8)}`)}\n };\n\n function createScopedRequire(scope) {\n const cache = (storage[scope] = storage[scope] || Object.create(null));\n\n function require(id) {\n if (cache[id]) {\n return cache[id].exports;\n }\n if (!modules[id]) {\n throw new Error('Module not found: ' + id);\n }\n\n const module = (cache[id] = { id, loaded: false, exports: {} });\n modules[id](module, module.exports, require);\n module.loaded = true;\n\n const keys = Object.keys(module.exports);\n if (module.exports.__esModule && keys.length === 1 && keys[0] === 'default') {\n module.exports = module.exports.default;\n }\n\n return module.exports;\n }\n\n Object.setPrototypeOf(require, {\n resolve(id) {\n return id;\n },\n });\n return require;\n }\n\n function expose(path, moduleId) {\n const parts = path.split('.');\n let obj = g;\n\n for (let i = 0; i < parts.length - 1; i++) {\n if (obj[parts[i]] === undefined) {\n obj[parts[i]] = Object.create(null);\n }\n obj = obj[parts[i]];\n }\n\n obj[parts[parts.length - 1]] = new Proxy(\n Object.assign(Object.create(null), {\n getStorage() {\n return storage;\n },\n }),\n {\n get(target, scope, receiver) {\n if (scope === 'getStorage') {\n return Reflect.get(target, scope, receiver);\n }\n return createScopedRequire(scope)(moduleId);\n },\n }\n );\n }\n\n ${exposeCalls.join(`\\n${indent(4)}`)}\n})();\n`;\n}\n"],"names":["assembleIife","indent","spaces","repeat","modules","exposes","factories","map","id","code","exposeCalls","variable","dependency","join"],"mappings":";;;;+BAuBgBA;;;eAAAA;;;AAThB,SAASC,OAAOC,MAAc;IAC1B,OAAO,IAAIC,MAAM,CAACD;AACtB;AAOO,SAASF,aAAaI,OAAwB,EAAEC,OAAiB;IACpE,MAAMC,YAAYF,QAAQG,GAAG,CACzB,CAAC,EAAEC,EAAE,EAAEC,IAAI,EAAE,GACT,CAAC,CAAC,EAAED,GAAG,yCAAyC,EAAEP,OAAO,MAAMQ,KAAK,EAAE,EAAER,OAAO,GAAG,CAAC,CAAC;IAE5F,MAAMS,cAAcL,QAAQE,GAAG,CAC3B,CAAC,EAAEI,QAAQ,EAAEC,UAAU,EAAE,GAAK,CAAC,QAAQ,EAAED,SAAS,IAAI,EAAEC,WAAW,GAAG,CAAC;IAG3E,OAAO,CAAC;;;;;;;;;;;;;;;;QAgBJ,EAAEN,UAAUO,IAAI,CAAC,CAAC,GAAG,EAAEZ,OAAO,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8DxC,EAAES,YAAYG,IAAI,CAAC,CAAC,EAAE,EAAEZ,OAAO,IAAI,EAAE;;AAEzC,CAAC;AACD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assert-no-dynamic-css.d.ts","sourceRoot":"","sources":["../../../../src/vite/plugins/shared-dependencies-plugin/assert-no-dynamic-css.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,UAAU,CAAC;AAQ1D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAiB7D"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "assertNoDynamicCss", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return assertNoDynamicCss;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
function assertNoDynamicCss(bundle) {
|
|
12
|
+
for (const entry of Object.values(bundle)){
|
|
13
|
+
if (!(entry.type === 'chunk' && entry.isEntry)) {
|
|
14
|
+
continue;
|
|
15
|
+
}
|
|
16
|
+
const includedCss = importedCss(entry);
|
|
17
|
+
const excludedCss = [
|
|
18
|
+
...allCss(entry, bundle)
|
|
19
|
+
].filter((css)=>!includedCss.has(css));
|
|
20
|
+
if (excludedCss.length > 0) {
|
|
21
|
+
throw new Error(`Shared dependency chunk "${entry.name}" pulls in CSS through a dynamic import ` + `(${excludedCss.join(', ')}). Shared dependencies only include statically imported ` + `CSS. Dynamically imported CSS will not load on the host.`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/*
|
|
26
|
+
* Return every CSS file imported by the entry and recursively by anything it imports.
|
|
27
|
+
*/ function allCss(entry, bundle) {
|
|
28
|
+
const result = new Set();
|
|
29
|
+
const visited = new Set();
|
|
30
|
+
const stack = [
|
|
31
|
+
entry
|
|
32
|
+
];
|
|
33
|
+
while(stack.length > 0){
|
|
34
|
+
const chunk = stack.pop();
|
|
35
|
+
importedCss(chunk).forEach((file)=>result.add(file));
|
|
36
|
+
for (const fileName of [
|
|
37
|
+
...chunk.imports,
|
|
38
|
+
...chunk.dynamicImports
|
|
39
|
+
]){
|
|
40
|
+
const imported = bundle[fileName];
|
|
41
|
+
if ((imported === null || imported === void 0 ? void 0 : imported.type) === 'chunk' && !visited.has(fileName)) {
|
|
42
|
+
visited.add(fileName);
|
|
43
|
+
stack.push(imported);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return result;
|
|
48
|
+
}
|
|
49
|
+
function importedCss(chunk) {
|
|
50
|
+
var _ref;
|
|
51
|
+
var _chunk_viteMetadata;
|
|
52
|
+
return (_ref = (_chunk_viteMetadata = // Vite adds `viteMetadata` to Rolldown chunks; cast because its type augmentation is not in scope here.
|
|
53
|
+
chunk.viteMetadata) === null || _chunk_viteMetadata === void 0 ? void 0 : _chunk_viteMetadata.importedCss) !== null && _ref !== void 0 ? _ref : new Set();
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
//# sourceMappingURL=assert-no-dynamic-css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/vite/plugins/shared-dependencies-plugin/assert-no-dynamic-css.ts"],"sourcesContent":["import type { OutputBundle, OutputChunk } from 'rolldown';\n\n/*\n * Output bundles only include statically imported CSS. CSS pulled in by a dynamic\n * import() lands in a separate async chunk that is omitted from entrypoints.json\n * and silently fails to load. Fail the build when the bundle references CSS that\n * does not land in entrypoints.json.\n */\nexport function assertNoDynamicCss(bundle: OutputBundle): void {\n for (const entry of Object.values(bundle)) {\n if (!(entry.type === 'chunk' && entry.isEntry)) {\n continue;\n }\n\n const includedCss = importedCss(entry);\n const excludedCss = [...allCss(entry, bundle)].filter(css => !includedCss.has(css));\n\n if (excludedCss.length > 0) {\n throw new Error(\n `Shared dependency chunk \"${entry.name}\" pulls in CSS through a dynamic import ` +\n `(${excludedCss.join(', ')}). Shared dependencies only include statically imported ` +\n `CSS. Dynamically imported CSS will not load on the host.`\n );\n }\n }\n}\n\n/*\n * Return every CSS file imported by the entry and recursively by anything it imports.\n */\nfunction allCss(entry: OutputChunk, bundle: OutputBundle): Set<string> {\n const result = new Set<string>();\n const visited = new Set<string>();\n const stack = [entry];\n\n while (stack.length > 0) {\n const chunk = stack.pop()!;\n importedCss(chunk).forEach(file => result.add(file));\n\n for (const fileName of [...chunk.imports, ...chunk.dynamicImports]) {\n const imported = bundle[fileName];\n if (imported?.type === 'chunk' && !visited.has(fileName)) {\n visited.add(fileName);\n stack.push(imported);\n }\n }\n }\n\n return result;\n}\n\nfunction importedCss(chunk: OutputChunk): ReadonlySet<string> {\n return (\n // Vite adds `viteMetadata` to Rolldown chunks; cast because its type augmentation is not in scope here.\n (chunk as { viteMetadata?: { importedCss?: Set<string> } }).viteMetadata?.importedCss ??\n new Set<string>()\n );\n}\n"],"names":["assertNoDynamicCss","bundle","entry","Object","values","type","isEntry","includedCss","importedCss","excludedCss","allCss","filter","css","has","length","Error","name","join","result","Set","visited","stack","chunk","pop","forEach","file","add","fileName","imports","dynamicImports","imported","push","viteMetadata"],"mappings":";;;;+BAQgBA;;;eAAAA;;;AAAT,SAASA,mBAAmBC,MAAoB;IACnD,KAAK,MAAMC,SAASC,OAAOC,MAAM,CAACH,QAAS;QACvC,IAAI,CAAEC,CAAAA,MAAMG,IAAI,KAAK,WAAWH,MAAMI,OAAO,AAAD,GAAI;YAC5C;QACJ;QAEA,MAAMC,cAAcC,YAAYN;QAChC,MAAMO,cAAc;eAAIC,OAAOR,OAAOD;SAAQ,CAACU,MAAM,CAACC,CAAAA,MAAO,CAACL,YAAYM,GAAG,CAACD;QAE9E,IAAIH,YAAYK,MAAM,GAAG,GAAG;YACxB,MAAM,IAAIC,MACN,CAAC,yBAAyB,EAAEb,MAAMc,IAAI,CAAC,wCAAwC,CAAC,GAC5E,CAAC,CAAC,EAAEP,YAAYQ,IAAI,CAAC,MAAM,wDAAwD,CAAC,GACpF,CAAC,wDAAwD,CAAC;QAEtE;IACJ;AACJ;AAEA;;CAEC,GACD,SAASP,OAAOR,KAAkB,EAAED,MAAoB;IACpD,MAAMiB,SAAS,IAAIC;IACnB,MAAMC,UAAU,IAAID;IACpB,MAAME,QAAQ;QAACnB;KAAM;IAErB,MAAOmB,MAAMP,MAAM,GAAG,EAAG;QACrB,MAAMQ,QAAQD,MAAME,GAAG;QACvBf,YAAYc,OAAOE,OAAO,CAACC,CAAAA,OAAQP,OAAOQ,GAAG,CAACD;QAE9C,KAAK,MAAME,YAAY;eAAIL,MAAMM,OAAO;eAAKN,MAAMO,cAAc;SAAC,CAAE;YAChE,MAAMC,WAAW7B,MAAM,CAAC0B,SAAS;YACjC,IAAIG,CAAAA,qBAAAA,+BAAAA,SAAUzB,IAAI,MAAK,WAAW,CAACe,QAAQP,GAAG,CAACc,WAAW;gBACtDP,QAAQM,GAAG,CAACC;gBACZN,MAAMU,IAAI,CAACD;YACf;QACJ;IACJ;IAEA,OAAOZ;AACX;AAEA,SAASV,YAAYc,KAAkB;;QAG/B;IAFJ,gBAEI,sBAAA,AADA,wGAAwG;IACvGA,MAA2DU,YAAY,cAAxE,0CAAA,oBAA0ExB,WAAW,uCACrF,IAAIW;AAEZ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flatten.d.ts","sourceRoot":"","sources":["../../../../src/vite/plugins/shared-dependencies-plugin/flatten.ts"],"names":[],"mappings":"AAKA,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3C"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Replaces `/` with `-` so scoped packages stay flat in Rolldown output.
|
|
3
|
+
* Without this, `@scope/foo` emits into a subdirectory and its require()
|
|
4
|
+
* calls use `../` paths that don't match the IIFE's flat module keys.
|
|
5
|
+
*/ "use strict";
|
|
6
|
+
Object.defineProperty(exports, "__esModule", {
|
|
7
|
+
value: true
|
|
8
|
+
});
|
|
9
|
+
Object.defineProperty(exports, "flatten", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function() {
|
|
12
|
+
return flatten;
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
function flatten(dep) {
|
|
16
|
+
return dep.replace(/\//g, '-');
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=flatten.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/vite/plugins/shared-dependencies-plugin/flatten.ts"],"sourcesContent":["/*\n * Replaces `/` with `-` so scoped packages stay flat in Rolldown output.\n * Without this, `@scope/foo` emits into a subdirectory and its require()\n * calls use `../` paths that don't match the IIFE's flat module keys.\n */\nexport function flatten(dep: string): string {\n return dep.replace(/\\//g, '-');\n}\n"],"names":["flatten","dep","replace"],"mappings":"AAAA;;;;CAIC;;;;+BACeA;;;eAAAA;;;AAAT,SAASA,QAAQC,GAAW;IAC/B,OAAOA,IAAIC,OAAO,CAAC,OAAO;AAC9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/vite/plugins/shared-dependencies-plugin/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
_export_star(require("./shared-dependencies-plugin"), exports);
|
|
6
|
+
function _export_star(from, to) {
|
|
7
|
+
Object.keys(from).forEach(function(k) {
|
|
8
|
+
if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
|
|
9
|
+
Object.defineProperty(to, k, {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function() {
|
|
12
|
+
return from[k];
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
return from;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/vite/plugins/shared-dependencies-plugin/index.ts"],"sourcesContent":["export * from './shared-dependencies-plugin';\n"],"names":[],"mappings":";;;;qBAAc"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-dependencies-plugin.d.ts","sourceRoot":"","sources":["../../../../src/vite/plugins/shared-dependencies-plugin/shared-dependencies-plugin.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAM9B,MAAM,WAAW,+BAA+B;IAC5C,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAKD,wBAAgB,wBAAwB,CAAC,EACrC,YAAY,EACZ,GAAG,EACH,WAAW,GACd,EAAE,+BAA+B,GAAG,MAAM,CAgK1C"}
|