@servicetitan/startup 37.0.2 → 38.1.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/bin/js-yaml.js +2 -2
- package/dist/cli/commands/build.d.ts.map +1 -1
- package/dist/cli/commands/build.js +22 -9
- package/dist/cli/commands/build.js.map +1 -1
- package/dist/cli/commands/bundle-package.d.ts +6 -0
- package/dist/cli/commands/bundle-package.d.ts.map +1 -0
- package/dist/cli/commands/bundle-package.js +59 -0
- package/dist/cli/commands/bundle-package.js.map +1 -0
- package/dist/cli/commands/bundle-vite.js +13 -4
- package/dist/cli/commands/bundle-vite.js.map +1 -1
- package/dist/cli/commands/bundle-webpack.js +13 -4
- package/dist/cli/commands/bundle-webpack.js.map +1 -1
- package/dist/cli/commands/clean.js +13 -4
- package/dist/cli/commands/clean.js.map +1 -1
- package/dist/cli/commands/command.d.ts +9 -0
- package/dist/cli/commands/command.d.ts.map +1 -0
- package/dist/cli/commands/command.js +35 -0
- package/dist/cli/commands/command.js.map +1 -0
- package/dist/cli/commands/convert-eslint-config.js +14 -7
- package/dist/cli/commands/convert-eslint-config.js.map +1 -1
- package/dist/cli/commands/eslint.js +13 -4
- package/dist/cli/commands/eslint.js.map +1 -1
- package/dist/cli/commands/init.js +13 -4
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/install.js +13 -4
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/kendo-ui-license.js +13 -4
- package/dist/cli/commands/kendo-ui-license.js.map +1 -1
- package/dist/cli/commands/lint.js +13 -4
- package/dist/cli/commands/lint.js.map +1 -1
- package/dist/cli/commands/mfe-check.d.ts.map +1 -1
- package/dist/cli/commands/mfe-check.js +15 -7
- package/dist/cli/commands/mfe-check.js.map +1 -1
- package/dist/cli/commands/mfe-generate-metadata.js +13 -4
- package/dist/cli/commands/mfe-generate-metadata.js.map +1 -1
- package/dist/cli/commands/mfe-list.js +13 -4
- package/dist/cli/commands/mfe-list.js.map +1 -1
- package/dist/cli/commands/mfe-package-clean.js +13 -4
- package/dist/cli/commands/mfe-package-clean.js.map +1 -1
- package/dist/cli/commands/mfe-package-publish.js +13 -4
- package/dist/cli/commands/mfe-package-publish.js.map +1 -1
- package/dist/cli/commands/mfe-package-rollback.js +13 -4
- package/dist/cli/commands/mfe-package-rollback.js.map +1 -1
- package/dist/cli/commands/mfe-publish.js +13 -4
- package/dist/cli/commands/mfe-publish.js.map +1 -1
- package/dist/cli/commands/mfe-purge-cache.js +13 -4
- package/dist/cli/commands/mfe-purge-cache.js.map +1 -1
- package/dist/cli/commands/prepare-package.js +13 -4
- package/dist/cli/commands/prepare-package.js.map +1 -1
- package/dist/cli/commands/registry/build.d.ts +1 -1
- package/dist/cli/commands/registry/build.d.ts.map +1 -1
- package/dist/cli/commands/registry/build.js +3 -5
- package/dist/cli/commands/registry/build.js.map +1 -1
- package/dist/cli/commands/registry/bundle-package.d.ts +41 -0
- package/dist/cli/commands/registry/bundle-package.d.ts.map +1 -0
- package/dist/cli/commands/registry/bundle-package.js +54 -0
- package/dist/cli/commands/registry/bundle-package.js.map +1 -0
- package/dist/cli/commands/registry/command-registry.d.ts +42 -2
- package/dist/cli/commands/registry/command-registry.d.ts.map +1 -1
- package/dist/cli/commands/registry/command-registry.js +10 -19
- package/dist/cli/commands/registry/command-registry.js.map +1 -1
- package/dist/cli/commands/registry/start.d.ts +1 -1
- package/dist/cli/commands/registry/start.d.ts.map +1 -1
- package/dist/cli/commands/registry/start.js +3 -5
- package/dist/cli/commands/registry/start.js.map +1 -1
- package/dist/cli/commands/review/review.js +14 -7
- package/dist/cli/commands/review/review.js.map +1 -1
- package/dist/cli/commands/review/rules/no-deprecated-content-base.js +1 -3
- package/dist/cli/commands/review/rules/no-deprecated-content-base.js.map +1 -1
- package/dist/cli/commands/review/rules/no-direct-peer-dependencies.js +1 -3
- package/dist/cli/commands/review/rules/no-direct-peer-dependencies.js.map +1 -1
- package/dist/cli/commands/review/rules/no-typescript-entry-point.js +1 -3
- package/dist/cli/commands/review/rules/no-typescript-entry-point.js.map +1 -1
- package/dist/cli/commands/review/rules/prefer-open-ended-peer-dependencies.js +5 -12
- package/dist/cli/commands/review/rules/prefer-open-ended-peer-dependencies.js.map +1 -1
- package/dist/cli/commands/review/rules/require-compatible-launch-darkly-sdk.js +5 -12
- package/dist/cli/commands/review/rules/require-compatible-launch-darkly-sdk.js.map +1 -1
- package/dist/cli/commands/review/rules/require-explicit-side-effects.js +1 -3
- package/dist/cli/commands/review/rules/require-explicit-side-effects.js.map +1 -1
- package/dist/cli/commands/review/rules/require-one-collection-version.js +1 -3
- package/dist/cli/commands/review/rules/require-one-collection-version.js.map +1 -1
- package/dist/cli/commands/review/rules/require-servicetitan-scope.js +1 -3
- package/dist/cli/commands/review/rules/require-servicetitan-scope.js.map +1 -1
- package/dist/cli/commands/review/rules/require-tsconfig-references.js +1 -3
- package/dist/cli/commands/review/rules/require-tsconfig-references.js.map +1 -1
- package/dist/cli/commands/review/types.d.ts.map +1 -1
- package/dist/cli/commands/review/types.js.map +1 -1
- package/dist/cli/commands/review/utils/compare-version.js +8 -19
- package/dist/cli/commands/review/utils/compare-version.js.map +1 -1
- package/dist/cli/commands/run-task.d.ts +1 -0
- package/dist/cli/commands/run-task.d.ts.map +1 -1
- package/dist/cli/commands/run-task.js +20 -6
- package/dist/cli/commands/run-task.js.map +1 -1
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +28 -13
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/stylelint.js +13 -4
- package/dist/cli/commands/stylelint.js.map +1 -1
- package/dist/cli/commands/styles-check.js +13 -4
- package/dist/cli/commands/styles-check.js.map +1 -1
- package/dist/cli/commands/test/runners/jest.js +1 -3
- package/dist/cli/commands/test/runners/jest.js.map +1 -1
- package/dist/cli/commands/test/tests.js +13 -4
- package/dist/cli/commands/test/tests.js.map +1 -1
- package/dist/cli/commands/types.d.ts +1 -6
- package/dist/cli/commands/types.d.ts.map +1 -1
- package/dist/cli/commands/types.js +2 -20
- package/dist/cli/commands/types.js.map +1 -1
- package/dist/cli/commands/upload-sourcemaps.js +17 -13
- package/dist/cli/commands/upload-sourcemaps.js.map +1 -1
- package/dist/cli/index.js +1 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/tasks/cli-task.d.ts +3 -0
- package/dist/cli/tasks/cli-task.d.ts.map +1 -1
- package/dist/cli/tasks/cli-task.js +41 -9
- package/dist/cli/tasks/cli-task.js.map +1 -1
- package/dist/cli/tasks/swc-compile-package/get-swc-options.d.ts +9 -1
- package/dist/cli/tasks/swc-compile-package/get-swc-options.d.ts.map +1 -1
- package/dist/cli/tasks/swc-compile-package/get-swc-options.js +18 -2
- package/dist/cli/tasks/swc-compile-package/get-swc-options.js.map +1 -1
- package/dist/cli/tasks/swc-compile-package/swc-compile-package.d.ts +3 -1
- package/dist/cli/tasks/swc-compile-package/swc-compile-package.d.ts.map +1 -1
- package/dist/cli/tasks/swc-compile-package/swc-compile-package.js +17 -3
- package/dist/cli/tasks/swc-compile-package/swc-compile-package.js.map +1 -1
- package/dist/cli/tasks/task.d.ts +2 -1
- package/dist/cli/tasks/task.d.ts.map +1 -1
- package/dist/cli/tasks/task.js +6 -3
- package/dist/cli/tasks/task.js.map +1 -1
- package/dist/cli/tasks/tsc-compile/tsc-compile.js +1 -3
- package/dist/cli/tasks/tsc-compile/tsc-compile.js.map +1 -1
- package/dist/cli/utils/cli-npm.d.ts.map +1 -1
- package/dist/cli/utils/cli-npm.js +8 -1
- package/dist/cli/utils/cli-npm.js.map +1 -1
- package/dist/cli/utils/cli-os.d.ts +1 -0
- package/dist/cli/utils/cli-os.d.ts.map +1 -1
- package/dist/cli/utils/cli-os.js +20 -0
- package/dist/cli/utils/cli-os.js.map +1 -1
- package/dist/cli/utils/compile.d.ts.map +1 -1
- package/dist/cli/utils/compile.js +7 -4
- package/dist/cli/utils/compile.js.map +1 -1
- package/dist/cli/utils/copy-files.js +1 -0
- package/dist/cli/utils/copy-files.js.map +1 -1
- package/dist/cli/utils/index.d.ts +1 -1
- package/dist/cli/utils/index.d.ts.map +1 -1
- package/dist/cli/utils/index.js +1 -1
- package/dist/cli/utils/index.js.map +1 -1
- package/dist/cli/utils/process-tree.js +2 -6
- package/dist/cli/utils/process-tree.js.map +1 -1
- package/dist/cli/utils/resolve-bundler.d.ts.map +1 -1
- package/dist/cli/utils/resolve-bundler.js +2 -1
- package/dist/cli/utils/resolve-bundler.js.map +1 -1
- package/dist/cli/utils/ts-config.d.ts +1 -1
- package/dist/cli/utils/ts-config.d.ts.map +1 -1
- package/dist/cli/utils/ts-config.js +1 -3
- package/dist/cli/utils/ts-config.js.map +1 -1
- package/dist/cli/utils/with-exponential-backoff.d.ts +7 -0
- package/dist/cli/utils/with-exponential-backoff.d.ts.map +1 -0
- package/dist/cli/utils/with-exponential-backoff.js +28 -0
- package/dist/cli/utils/with-exponential-backoff.js.map +1 -0
- package/dist/core/constants.d.ts +2 -0
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.js +6 -1
- package/dist/core/constants.js.map +1 -1
- package/dist/cypress/config/vite-config.d.ts.map +1 -1
- package/dist/cypress/config/vite-config.js +23 -3
- package/dist/cypress/config/vite-config.js.map +1 -1
- package/dist/cypress/config/webpack-config.d.ts.map +1 -1
- package/dist/cypress/config/webpack-config.js +5 -0
- package/dist/cypress/config/webpack-config.js.map +1 -1
- package/dist/postinstall.js +118 -0
- package/dist/scripts/generate-bin-wrappers.js +203 -0
- package/dist/storybook-config/swc.d.ts +6 -0
- package/dist/storybook-config/swc.d.ts.map +1 -1
- package/dist/storybook-config/vite-final.d.ts.map +1 -1
- package/dist/storybook-config/vite-final.js +32 -6
- package/dist/storybook-config/vite-final.js.map +1 -1
- package/dist/storybook-config/webpack-final.d.ts.map +1 -1
- package/dist/storybook-config/webpack-final.js +3 -1
- package/dist/storybook-config/webpack-final.js.map +1 -1
- package/dist/utils/exit-when-parent-exits.d.ts +6 -0
- package/dist/utils/exit-when-parent-exits.d.ts.map +1 -0
- package/dist/utils/exit-when-parent-exits.js +37 -0
- package/dist/utils/exit-when-parent-exits.js.map +1 -0
- package/dist/utils/find-up.d.ts +1 -1
- package/dist/utils/find-up.d.ts.map +1 -1
- package/dist/utils/find-up.js +2 -2
- package/dist/utils/find-up.js.map +1 -1
- package/dist/utils/get-configuration.d.ts +6 -3
- package/dist/utils/get-configuration.d.ts.map +1 -1
- package/dist/utils/get-configuration.js +10 -2
- package/dist/utils/get-configuration.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 +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/log.js +1 -3
- package/dist/utils/log.js.map +1 -1
- package/dist/vite/build-shared-dependencies.d.ts.map +1 -1
- package/dist/vite/build-shared-dependencies.js +2 -0
- package/dist/vite/build-shared-dependencies.js.map +1 -1
- package/dist/vite/config/base-config.d.ts.map +1 -1
- package/dist/vite/config/base-config.js +14 -1
- package/dist/vite/config/base-config.js.map +1 -1
- package/dist/vite/config/create-filtering-logger.d.ts.map +1 -1
- package/dist/vite/config/create-filtering-logger.js +12 -1
- package/dist/vite/config/create-filtering-logger.js.map +1 -1
- package/dist/vite/config/create-vite-build-context.d.ts.map +1 -1
- package/dist/vite/config/create-vite-build-context.js +4 -1
- package/dist/vite/config/create-vite-build-context.js.map +1 -1
- package/dist/vite/config/create-vite-config.js +7 -2
- package/dist/vite/config/create-vite-config.js.map +1 -1
- package/dist/vite/config/load-config-file.js +8 -19
- package/dist/vite/config/load-config-file.js.map +1 -1
- package/dist/vite/index.d.ts +2 -0
- package/dist/vite/index.d.ts.map +1 -1
- package/dist/vite/index.html +2 -2
- package/dist/vite/index.js +16 -0
- package/dist/vite/index.js.map +1 -1
- package/dist/vite/plugins/chain-source-maps-plugin.js +1 -1
- package/dist/vite/plugins/chain-source-maps-plugin.js.map +1 -1
- package/dist/vite/plugins/clean-plugin.js +1 -1
- package/dist/vite/plugins/clean-plugin.js.map +1 -1
- package/dist/vite/plugins/css-injector-plugin.js +1 -1
- package/dist/vite/plugins/css-injector-plugin.js.map +1 -1
- package/dist/vite/plugins/design-system-guard-plugin.d.ts.map +1 -1
- package/dist/vite/plugins/design-system-guard-plugin.js +10 -5
- package/dist/vite/plugins/design-system-guard-plugin.js.map +1 -1
- package/dist/vite/plugins/dev-server-routing-plugin.d.ts +1 -1
- package/dist/vite/plugins/dev-server-routing-plugin.d.ts.map +1 -1
- package/dist/vite/plugins/dev-server-routing-plugin.js +4 -3
- package/dist/vite/plugins/dev-server-routing-plugin.js.map +1 -1
- package/dist/vite/plugins/externals-plugin.d.ts.map +1 -1
- package/dist/vite/plugins/externals-plugin.js +11 -5
- package/dist/vite/plugins/externals-plugin.js.map +1 -1
- package/dist/vite/plugins/html-plugin.d.ts.map +1 -1
- package/dist/vite/plugins/html-plugin.js +5 -3
- package/dist/vite/plugins/html-plugin.js.map +1 -1
- package/dist/vite/plugins/ignore-modules-plugin.d.ts +2 -2
- package/dist/vite/plugins/ignore-modules-plugin.d.ts.map +1 -1
- package/dist/vite/plugins/ignore-modules-plugin.js +36 -24
- package/dist/vite/plugins/ignore-modules-plugin.js.map +1 -1
- package/dist/vite/plugins/index.d.ts +3 -0
- package/dist/vite/plugins/index.d.ts.map +1 -1
- package/dist/vite/plugins/index.js +3 -0
- package/dist/vite/plugins/index.js.map +1 -1
- package/dist/vite/plugins/istanbul-plugin.d.ts.map +1 -1
- package/dist/vite/plugins/istanbul-plugin.js +33 -1
- package/dist/vite/plugins/istanbul-plugin.js.map +1 -1
- package/dist/vite/plugins/less-tilde-plugin.d.ts +8 -0
- package/dist/vite/plugins/less-tilde-plugin.d.ts.map +1 -0
- package/dist/vite/plugins/less-tilde-plugin.js +53 -0
- package/dist/vite/plugins/less-tilde-plugin.js.map +1 -0
- package/dist/vite/plugins/magic-comments-plugin/magic-comments-plugin.js +1 -1
- package/dist/vite/plugins/magic-comments-plugin/magic-comments-plugin.js.map +1 -1
- package/dist/vite/plugins/metadata-plugin.js +1 -1
- package/dist/vite/plugins/metadata-plugin.js.map +1 -1
- package/dist/vite/plugins/moment-locales-plugin.d.ts +1 -1
- package/dist/vite/plugins/moment-locales-plugin.d.ts.map +1 -1
- package/dist/vite/plugins/moment-locales-plugin.js +30 -14
- package/dist/vite/plugins/moment-locales-plugin.js.map +1 -1
- package/dist/vite/plugins/react-refresh-plugin/index.d.ts +2 -0
- package/dist/vite/plugins/react-refresh-plugin/index.d.ts.map +1 -0
- package/dist/vite/plugins/react-refresh-plugin/index.js +20 -0
- package/dist/vite/plugins/react-refresh-plugin/index.js.map +1 -0
- package/dist/vite/plugins/react-refresh-plugin/react-refresh-plugin.d.ts +4 -0
- package/dist/vite/plugins/react-refresh-plugin/react-refresh-plugin.d.ts.map +1 -0
- package/dist/vite/plugins/react-refresh-plugin/react-refresh-plugin.js +143 -0
- package/dist/vite/plugins/react-refresh-plugin/react-refresh-plugin.js.map +1 -0
- package/dist/vite/plugins/react-refresh-plugin/refresh-runtime.js +113 -0
- package/dist/vite/plugins/shared-dependencies-plugin/shared-dependencies-plugin.d.ts.map +1 -1
- package/dist/vite/plugins/shared-dependencies-plugin/shared-dependencies-plugin.js +14 -11
- package/dist/vite/plugins/shared-dependencies-plugin/shared-dependencies-plugin.js.map +1 -1
- package/dist/vite/plugins/style-urls-plugin.js +1 -1
- package/dist/vite/plugins/style-urls-plugin.js.map +1 -1
- package/dist/vite/plugins/virtual-modules-plugin.d.ts.map +1 -1
- package/dist/vite/plugins/virtual-modules-plugin.js +9 -6
- package/dist/vite/plugins/virtual-modules-plugin.js.map +1 -1
- package/dist/vite/plugins/window-externals-plugin.d.ts +22 -0
- package/dist/vite/plugins/window-externals-plugin.d.ts.map +1 -0
- package/dist/vite/plugins/window-externals-plugin.js +74 -0
- package/dist/vite/plugins/window-externals-plugin.js.map +1 -0
- package/dist/vite/types.d.ts +4 -1
- package/dist/vite/types.d.ts.map +1 -1
- package/dist/webpack/bundle-webpack.d.ts.map +1 -1
- package/dist/webpack/bundle-webpack.js +6 -1
- package/dist/webpack/bundle-webpack.js.map +1 -1
- package/dist/webpack/configs/optimization-config.js +4 -4
- package/dist/webpack/configs/optimization-config.js.map +1 -1
- package/dist/webpack/configs/output-config.js +1 -1
- package/dist/webpack/configs/output-config.js.map +1 -1
- package/dist/webpack/configs/plugins/ignore-plugin/ignore-plugin.js +1 -3
- package/dist/webpack/configs/plugins/ignore-plugin/ignore-plugin.js.map +1 -1
- package/dist/webpack/loaders/expose-loader/__tests__/__mocks__/configuration.expose-loader.js +13 -0
- package/dist/webpack/loaders/expose-loader/__tests__/__mocks__/index.js +1 -0
- package/dist/webpack/utils/index.d.ts +1 -0
- package/dist/webpack/utils/index.d.ts.map +1 -1
- package/dist/webpack/utils/index.js +1 -0
- package/dist/webpack/utils/index.js.map +1 -1
- package/dist/webpack/utils/normalize-proxy-config.d.ts +6 -0
- package/dist/webpack/utils/normalize-proxy-config.d.ts.map +1 -0
- package/dist/webpack/utils/normalize-proxy-config.js +52 -0
- package/dist/webpack/utils/normalize-proxy-config.js.map +1 -0
- package/package.json +25 -22
- package/src/cli/commands/__tests__/build.test.ts +33 -19
- package/src/cli/commands/__tests__/bundle-package.test.ts +65 -0
- package/src/cli/commands/__tests__/bundle-vite.test.ts +1 -0
- package/src/cli/commands/__tests__/command.test.ts +42 -0
- package/src/cli/commands/__tests__/mfe-check.test.ts +26 -5
- package/src/cli/commands/__tests__/run-task.test.ts +20 -1
- package/src/cli/commands/__tests__/start.test.ts +35 -15
- package/src/cli/commands/build.ts +6 -5
- package/src/cli/commands/bundle-package.ts +20 -0
- package/src/cli/commands/command.ts +14 -0
- package/src/cli/commands/mfe-check.ts +6 -10
- package/src/cli/commands/registry/build.ts +3 -2
- package/src/cli/commands/registry/bundle-package.ts +22 -0
- package/src/cli/commands/registry/command-registry.ts +2 -0
- package/src/cli/commands/registry/start.ts +3 -2
- package/src/cli/commands/review/types.ts +1 -3
- package/src/cli/commands/run-task.ts +8 -2
- package/src/cli/commands/start.ts +9 -5
- package/src/cli/commands/types.ts +2 -6
- package/src/cli/index.ts +3 -0
- package/src/cli/tasks/__tests__/cli-task.test.ts +181 -69
- package/src/cli/tasks/__tests__/task.test.ts +40 -45
- package/src/cli/tasks/cli-task.ts +43 -2
- package/src/cli/tasks/swc-compile-package/__tests__/get-swc-options.test.ts +46 -4
- package/src/cli/tasks/swc-compile-package/__tests__/swc-compile-package.test.ts +25 -4
- package/src/cli/tasks/swc-compile-package/get-swc-options.ts +14 -1
- package/src/cli/tasks/swc-compile-package/swc-compile-package.ts +6 -2
- package/src/cli/tasks/task.ts +8 -2
- package/src/cli/tasks/tsc-compile/__tests__/tsc-compile.test.ts +8 -32
- package/src/cli/tasks/tsc-compile-package/__tests__/tsc-compile-package.test.ts +10 -19
- package/src/cli/utils/__tests__/cli-npm.test.ts +33 -0
- package/src/cli/utils/__tests__/cli-os.test.ts +86 -3
- package/src/cli/utils/__tests__/compile.test.ts +37 -2
- package/src/cli/utils/__tests__/copy-files.test.ts +1 -1
- package/src/cli/utils/__tests__/with-exponential-backoff.test.ts +119 -0
- package/src/cli/utils/cli-npm.ts +19 -4
- package/src/cli/utils/cli-os.ts +14 -0
- package/src/cli/utils/compile.ts +8 -1
- package/src/cli/utils/copy-files.ts +1 -1
- package/src/cli/utils/index.ts +1 -1
- package/src/cli/utils/resolve-bundler.ts +2 -1
- package/src/cli/utils/ts-config.ts +1 -1
- package/src/cli/utils/with-exponential-backoff.ts +28 -0
- package/src/core/constants.ts +2 -0
- package/src/cypress/config/__tests__/vite-config.test.ts +21 -11
- package/src/cypress/config/__tests__/webpack-config.test.ts +17 -0
- package/src/cypress/config/vite-config.ts +18 -3
- package/src/cypress/config/webpack-config.ts +2 -0
- package/src/storybook-config/__tests__/vite-final.test.ts +71 -11
- package/src/storybook-config/__tests__/webpack-final.test.ts +30 -6
- package/src/storybook-config/vite-final.ts +23 -2
- package/src/storybook-config/webpack-final.ts +10 -2
- package/src/utils/__tests__/exit-when-parent-exits.test.ts +87 -0
- package/src/utils/__tests__/find-up.test.ts +49 -0
- package/src/utils/__tests__/get-configuration.test.ts +62 -0
- package/src/utils/exit-when-parent-exits.ts +33 -0
- package/src/utils/find-up.ts +2 -2
- package/src/utils/get-configuration.ts +14 -5
- package/src/utils/index.ts +1 -0
- package/src/vite/__tests__/build-shared-dependencies.test.ts +39 -5
- package/src/vite/build-shared-dependencies.ts +2 -1
- package/src/vite/config/__tests__/base-config.test.ts +16 -4
- package/src/vite/config/__tests__/create-css-config.test.ts +2 -6
- package/src/vite/config/__tests__/create-filtering-logger.test.ts +9 -0
- package/src/vite/config/__tests__/create-vite-build-context.test.ts +25 -0
- package/src/vite/config/__tests__/create-vite-config.test.ts +6 -3
- package/src/vite/config/base-config.ts +18 -2
- package/src/vite/config/create-filtering-logger.ts +13 -2
- package/src/vite/config/create-vite-build-context.ts +1 -0
- package/src/vite/config/create-vite-config.ts +6 -3
- package/src/vite/index.html +2 -2
- package/src/vite/index.ts +2 -0
- package/src/vite/plugins/__tests__/chain-source-maps-plugin.test.ts +1 -1
- package/src/vite/plugins/__tests__/clean-plugin.test.ts +1 -1
- package/src/vite/plugins/__tests__/css-injector-plugin.test.ts +1 -1
- package/src/vite/plugins/__tests__/design-system-guard-plugin.test.ts +15 -3
- package/src/vite/plugins/__tests__/dev-server-routing-plugin.test.ts +121 -99
- package/src/vite/plugins/__tests__/externals-plugin.test.ts +24 -3
- package/src/vite/plugins/__tests__/html-plugin.test.ts +10 -3
- package/src/vite/plugins/__tests__/html-template.test.ts +10 -2
- package/src/vite/plugins/__tests__/ignore-modules-plugin.test.ts +30 -6
- package/src/vite/plugins/__tests__/istanbul-plugin.test.ts +42 -1
- package/src/vite/plugins/__tests__/less-tilde-plugin.test.ts +91 -0
- package/src/vite/plugins/__tests__/metadata-plugin.test.ts +1 -1
- package/src/vite/plugins/__tests__/moment-locales-plugin.test.ts +35 -25
- package/src/vite/plugins/__tests__/style-urls-plugin.test.ts +1 -1
- package/src/vite/plugins/__tests__/virtual-modules-plugin.test.ts +20 -9
- package/src/vite/plugins/__tests__/window-externals-plugin.test.ts +128 -0
- package/src/vite/plugins/chain-source-maps-plugin.ts +1 -1
- package/src/vite/plugins/clean-plugin.ts +1 -1
- package/src/vite/plugins/css-injector-plugin.ts +1 -1
- package/src/vite/plugins/design-system-guard-plugin.ts +11 -8
- package/src/vite/plugins/dev-server-routing-plugin.ts +4 -4
- package/src/vite/plugins/externals-plugin.ts +15 -6
- package/src/vite/plugins/html-plugin.ts +4 -2
- package/src/vite/plugins/ignore-modules-plugin.ts +32 -23
- package/src/vite/plugins/index.ts +3 -0
- package/src/vite/plugins/istanbul-plugin.ts +28 -1
- package/src/vite/plugins/less-tilde-plugin.ts +64 -0
- package/src/vite/plugins/magic-comments-plugin/magic-comments-plugin.ts +1 -1
- package/src/vite/plugins/metadata-plugin.ts +1 -1
- package/src/vite/plugins/moment-locales-plugin.ts +24 -14
- package/src/vite/plugins/react-refresh-plugin/README.md +165 -0
- package/src/vite/plugins/react-refresh-plugin/__tests__/react-refresh-plugin.test.ts +366 -0
- package/src/vite/plugins/react-refresh-plugin/__tests__/refresh-runtime.test.ts +193 -0
- package/src/vite/plugins/react-refresh-plugin/index.ts +1 -0
- package/src/vite/plugins/react-refresh-plugin/react-refresh-plugin.ts +144 -0
- package/src/vite/plugins/react-refresh-plugin/refresh-runtime.js +113 -0
- package/src/vite/plugins/shared-dependencies-plugin/__tests__/shared-dependencies-plugin.test.ts +21 -16
- package/src/vite/plugins/shared-dependencies-plugin/shared-dependencies-plugin.ts +13 -12
- package/src/vite/plugins/style-urls-plugin.ts +1 -1
- package/src/vite/plugins/virtual-modules-plugin.ts +8 -7
- package/src/vite/plugins/window-externals-plugin.ts +94 -0
- package/src/vite/types.ts +4 -1
- package/src/webpack/__tests__/bundle-webpack.test.ts +32 -0
- package/src/webpack/__tests__/create-webpack-config-web-component.test.ts +17 -5
- package/src/webpack/__tests__/create-webpack-config.test.ts +10 -6
- package/src/webpack/bundle-webpack.ts +7 -1
- package/src/webpack/configs/optimization-config.ts +3 -3
- package/src/webpack/configs/output-config.ts +1 -1
- package/src/webpack/utils/__tests__/normalize-proxy-config.test.ts +121 -0
- package/src/webpack/utils/index.ts +1 -0
- package/src/webpack/utils/normalize-proxy-config.ts +59 -0
- package/tsconfig/types.d.ts +10 -0
- package/dist/cli/utils/get-bundle-command.d.ts +0 -3
- package/dist/cli/utils/get-bundle-command.d.ts.map +0 -1
- package/dist/cli/utils/get-bundle-command.js +0 -16
- package/dist/cli/utils/get-bundle-command.js.map +0 -1
- package/src/cli/utils/__tests__/get-bundle-command.test.ts +0 -23
- package/src/cli/utils/get-bundle-command.ts +0 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/cli/commands/upload-sourcemaps.ts"],"sourcesContent":["import { isCI } from '@servicetitan/install';\nimport { execSync } from 'child_process';\nimport path from 'path';\nimport { getTsConfig, isWebComponent, log, logErrors, readJson } from '../../utils';\nimport { TSConfig } from '../utils';\nimport type { entry } from './registry/upload-sourcemaps';\nimport { Command } from './types';\n\ninterface PackageJson {\n name: string;\n}\n\nexport class UploadSourcemaps extends Command<typeof entry> {\n #outDir?: string;\n #packageJson?: PackageJson;\n\n @logErrors\n // eslint-disable-next-line @typescript-eslint/require-await\n async execute() {\n this.checkLocation();\n if (!this.checkArgs()) {\n return;\n }\n\n const bundleDir = this.getBundleDir();\n const options = this.getOptions().join(' ');\n this.run(`npx --yes @datadog/datadog-ci@3 sourcemaps upload ${bundleDir} ${options}`);\n }\n\n private checkArgs() {\n if (!process.env.DATADOG_API_KEY) {\n const message = 'DATADOG_API_KEY environment variable is not set';\n if (!isCI()) {\n throw new Error(message);\n }\n log.warning(`${message}; skipping sourcemaps`);\n return false;\n }\n\n return true;\n }\n\n private checkLocation() {\n if (!isWebComponent()) {\n throw new Error(`this command must be run inside a web-component directory`);\n }\n }\n\n private getBundleDir() {\n return path.relative('.', path.join(this.getOutDir(), 'bundle'));\n }\n\n private getMinifiedPrefixPath() {\n const { name } = this.getPackageJson();\n const baseUrl = `https://unpkg.servicetitan.com/${name}@${this.args.releaseVersion}`;\n return `${baseUrl}/${this.getBundleDir().replace(/\\\\/g, '/')}`;\n }\n\n private getOptions() {\n const { dry, releaseVersion } = this.args;\n const service = this.getPackageJson().name.replace(/^[^/]+\\//, '');\n return [\n ...[dry && `--dry-run`],\n `--service=${service}`,\n `--release-version=${releaseVersion}`,\n `--minified-path-prefix=${this.getMinifiedPrefixPath()}`,\n `--project-path=${this.getProjectPath()}`,\n ].filter(item => !!item) as string[];\n }\n\n private getOutDir() {\n if (!this.#outDir) {\n const outDir = new TSConfig(getTsConfig()).getValue<string>('compilerOptions.outDir');\n if (!outDir) {\n throw new Error('compilerOptions.outDir is not configured');\n }\n\n this.#outDir = outDir;\n }\n return this.#outDir;\n }\n\n private getPackageJson() {\n if (!this.#packageJson) {\n this.#packageJson = readJson<PackageJson>('package.json');\n }\n return this.#packageJson;\n }\n\n private getProjectPath() {\n const name = readJson(path.join(this.getOutDir(), 'metadata.json')).name;\n return `${name}/`;\n }\n\n private run(command: string) {\n log.info(`Running: ${command}`);\n return execSync(command, { stdio: 'inherit' });\n }\n}\n"],"names":["UploadSourcemaps","Command","execute","checkLocation","checkArgs","bundleDir","getBundleDir","options","getOptions","join","run","process","env","DATADOG_API_KEY","message","isCI","Error","log","warning","isWebComponent","path","relative","getOutDir","getMinifiedPrefixPath","name","getPackageJson","baseUrl","args","releaseVersion","replace","dry","service","getProjectPath","filter","item","outDir","TSConfig","getTsConfig","getValue","readJson","command","info","execSync","stdio"],"mappings":";;;;+BAYaA;;;eAAAA;;;yBAZQ;+BACI;6DACR;uBACqD;wBAC7C;uBAED
|
|
1
|
+
{"version":3,"sources":["../../../src/cli/commands/upload-sourcemaps.ts"],"sourcesContent":["import { isCI } from '@servicetitan/install';\nimport { execSync } from 'child_process';\nimport path from 'path';\nimport { getTsConfig, isWebComponent, log, logErrors, readJson } from '../../utils';\nimport { TSConfig } from '../utils';\nimport type { entry } from './registry/upload-sourcemaps';\nimport { Command } from './types';\n\ninterface PackageJson {\n name: string;\n}\n\nexport class UploadSourcemaps extends Command<typeof entry> {\n #outDir?: string;\n #packageJson?: PackageJson;\n\n @logErrors\n // eslint-disable-next-line @typescript-eslint/require-await\n async execute() {\n this.checkLocation();\n if (!this.checkArgs()) {\n return;\n }\n\n const bundleDir = this.getBundleDir();\n const options = this.getOptions().join(' ');\n this.run(`npx --yes @datadog/datadog-ci@3 sourcemaps upload ${bundleDir} ${options}`);\n }\n\n private checkArgs() {\n if (!process.env.DATADOG_API_KEY) {\n const message = 'DATADOG_API_KEY environment variable is not set';\n if (!isCI()) {\n throw new Error(message);\n }\n log.warning(`${message}; skipping sourcemaps`);\n return false;\n }\n\n return true;\n }\n\n private checkLocation() {\n if (!isWebComponent()) {\n throw new Error(`this command must be run inside a web-component directory`);\n }\n }\n\n private getBundleDir() {\n return path.relative('.', path.join(this.getOutDir(), 'bundle'));\n }\n\n private getMinifiedPrefixPath() {\n const { name } = this.getPackageJson();\n const baseUrl = `https://unpkg.servicetitan.com/${name}@${this.args.releaseVersion}`;\n return `${baseUrl}/${this.getBundleDir().replace(/\\\\/g, '/')}`;\n }\n\n private getOptions() {\n const { dry, releaseVersion } = this.args;\n const service = this.getPackageJson().name.replace(/^[^/]+\\//, '');\n return [\n ...[dry && `--dry-run`],\n `--service=${service}`,\n `--release-version=${releaseVersion}`,\n `--minified-path-prefix=${this.getMinifiedPrefixPath()}`,\n `--project-path=${this.getProjectPath()}`,\n ].filter(item => !!item) as string[];\n }\n\n private getOutDir() {\n if (!this.#outDir) {\n const outDir = new TSConfig(getTsConfig()).getValue<string>('compilerOptions.outDir');\n if (!outDir) {\n throw new Error('compilerOptions.outDir is not configured');\n }\n\n this.#outDir = outDir;\n }\n return this.#outDir;\n }\n\n private getPackageJson() {\n if (!this.#packageJson) {\n this.#packageJson = readJson<PackageJson>('package.json');\n }\n return this.#packageJson;\n }\n\n private getProjectPath() {\n const name = readJson(path.join(this.getOutDir(), 'metadata.json')).name;\n return `${name}/`;\n }\n\n private run(command: string) {\n log.info(`Running: ${command}`);\n return execSync(command, { stdio: 'inherit' });\n }\n}\n"],"names":["UploadSourcemaps","Command","execute","checkLocation","checkArgs","bundleDir","getBundleDir","options","getOptions","join","run","process","env","DATADOG_API_KEY","message","isCI","Error","log","warning","isWebComponent","path","relative","getOutDir","getMinifiedPrefixPath","name","getPackageJson","baseUrl","args","releaseVersion","replace","dry","service","getProjectPath","filter","item","outDir","TSConfig","getTsConfig","getValue","readJson","command","info","execSync","stdio"],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/cli/index.ts"],"sourcesContent":["import chalk from 'chalk';\nimport execa from 'execa';\nimport kebabCase from 'lodash.kebabcase';\nimport path from 'path';\nimport yargs from 'yargs';\nimport { hideBin } from 'yargs/helpers';\nimport { getStartupVersion } from '../core';\nimport { CommandName, log } from '../utils';\nimport { commandRegistry } from './commands/registry';\nimport type { CommandOptions } from './commands/types';\nimport { checkStartupLocation, getExitCode, setNodeOptions } from './utils';\n\nconst yargsInstance = yargs(hideBin(process.argv));\n\nObject.values(CommandName)\n .reduce((y, name) => addCommand(name, y), yargsInstance)\n .usage('Usage: startup <command> [options]')\n .epilogue(\n chalk.bold.cyan(`startup cli v${getStartupVersion()}\\n`) +\n `Run ${chalk.bold.cyan('startup <command> --help')} to see command options.\\n` +\n `For detailed documentation, see ${chalk.bold.cyan('https://docs.st.dev/docs/frontend/uikit/startup')}.\\n`\n )\n .demandCommand(1, '')\n .strictCommands()\n .updateStrings({\n 'Unknown command: %s': {\n one: chalk.bold.red('Unknown command: %s'),\n other: chalk.bold.red('Unknown command: %s'),\n } as any,\n })\n .version()\n .wrap(Math.min(100, yargsInstance.terminalWidth()))\n .help()\n .parse();\n\nfunction addCommand(name: CommandName, y: typeof yargs) {\n const entry = commandRegistry[name];\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const { description, options: { _, ...options } = {} } = entry;\n const nameWithArgs = name + (_?.description ? ` ${_.description}` : '');\n const groupedOptions = Object.entries(options).reduce((result, [key, value]) => {\n result[kebabCase(key)] = { group: 'Command Options:', ...value };\n return result;\n }, {} as CommandOptions);\n const handler = (argv: any) => handleCommand(name, argv);\n if (description) {\n y.command(nameWithArgs, description, groupedOptions, handler);\n } else {\n y.command(nameWithArgs, false, groupedOptions, handler);\n }\n return y;\n}\n\nasync function handleCommand(name: CommandName, argv: any) {\n const entry = commandRegistry[name];\n\n checkNodeVersion();\n checkStartupLocation(name, entry);\n\n if (setNodeOptions(name, entry)) {\n log.debug('run', `Running ${name} in child process with amended NODE_OPTIONS`);\n execa(process.argv[0], process.argv.slice(1), { stdio: 'inherit' }).catch(reason => {\n process.exit(getExitCode(reason));\n });\n return;\n }\n\n const CommandClass = await entry.load();\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const command = new CommandClass({ ...argv, _: argv._.slice(1) });\n command.execute().catch(() => {\n process.exit(1);\n });\n}\n\nfunction checkNodeVersion() {\n const nodeVersion = Number(process.versions.node.split('.')[0]);\n if (nodeVersion % 2 === 0 || process.env.SKIP_NODE_VERSION_CHECK) {\n return;\n }\n\n const { engines } = require(path.join(__dirname, '../../package.json'));\n log.error(\n `error: node v${nodeVersion} detected, only even-numbered LTS versions ${engines.node} are supported`\n );\n log.text('See https://nodejs.org/en/download for LTS versions');\n process.exit(1);\n}\n"],"names":["yargsInstance","yargs","hideBin","process","argv","Object","values","CommandName","reduce","y","name","addCommand","usage","epilogue","chalk","bold","cyan","getStartupVersion","demandCommand","strictCommands","updateStrings","one","red","other","version","wrap","Math","min","terminalWidth","help","parse","entry","commandRegistry","description","options","_","nameWithArgs","groupedOptions","entries","result","key","value","kebabCase","group","handler","handleCommand","command","checkNodeVersion","checkStartupLocation","setNodeOptions","log","debug","execa","slice","stdio","catch","reason","exit","getExitCode","CommandClass","load","execute","nodeVersion","Number","versions","node","split","env","SKIP_NODE_VERSION_CHECK","engines","require","path","join","__dirname","error","text"],"mappings":";;;;8DAAkB;8DACA;wEACI;6DACL;8DACC;yBACM;sBACU;uBACD;0BACD;wBAEkC;;;;;;AAElE,MAAMA,gBAAgBC,IAAAA,cAAK,EAACC,IAAAA,gBAAO,EAACC,QAAQC,IAAI;AAEhDC,OAAOC,MAAM,CAACC,kBAAW,EACpBC,MAAM,CAAC,CAACC,GAAGC,OAASC,WAAWD,MAAMD,IAAIT,eACzCY,KAAK,CAAC,sCACNC,QAAQ,CACLC,cAAK,CAACC,IAAI,CAACC,IAAI,CAAC,CAAC,aAAa,EAAEC,IAAAA,uBAAiB,IAAG,EAAE,CAAC,IACnD,CAAC,IAAI,EAAEH,cAAK,CAACC,IAAI,CAACC,IAAI,CAAC,4BAA4B,0BAA0B,CAAC,GAC9E,CAAC,gCAAgC,EAAEF,cAAK,CAACC,IAAI,CAACC,IAAI,CAAC,mDAAmD,GAAG,CAAC,EAEjHE,aAAa,CAAC,GAAG,IACjBC,cAAc,GACdC,aAAa,CAAC;IACX,uBAAuB;QACnBC,KAAKP,cAAK,CAACC,IAAI,CAACO,GAAG,CAAC;QACpBC,OAAOT,cAAK,CAACC,IAAI,CAACO,GAAG,CAAC;IAC1B;AACJ,GACCE,OAAO,GACPC,IAAI,CAACC,KAAKC,GAAG,CAAC,KAAK3B,cAAc4B,aAAa,KAC9CC,IAAI,GACJC,KAAK;AAEV,SAASnB,WAAWD,IAAiB,EAAED,CAAe;IAClD,MAAMsB,QAAQC,yBAAe,CAACtB,KAAK;IAEnC,gEAAgE;IAChE,MAAM,EAAEuB,WAAW,EAAEC,SAAS,EAAEC,CAAC,EAAE,GAAGD,SAAS,GAAG,CAAC,CAAC,EAAE,GAAGH;IACzD,MAAMK,eAAe1B,OAAQyB,CAAAA,CAAAA,cAAAA,wBAAAA,EAAGF,WAAW,IAAG,CAAC,CAAC,EAAEE,EAAEF,WAAW,EAAE,GAAG,EAAC;IACrE,MAAMI,iBAAiBhC,OAAOiC,OAAO,CAACJ,SAAS1B,MAAM,CAAC,CAAC+B,QAAQ,CAACC,KAAKC,MAAM;QACvEF,MAAM,CAACG,IAAAA,wBAAS,EAACF,KAAK,GAAG;YAAEG,OAAO;YAAoB,GAAGF,KAAK;QAAC;QAC/D,OAAOF;IACX,GAAG,CAAC;IACJ,MAAMK,UAAU,CAACxC,OAAcyC,cAAcnC,MAAMN;IACnD,IAAI6B,aAAa;QACbxB,EAAEqC,OAAO,CAACV,cAAcH,aAAaI,gBAAgBO;IACzD,OAAO;QACHnC,EAAEqC,OAAO,CAACV,cAAc,OAAOC,gBAAgBO;IACnD;IACA,OAAOnC;AACX;AAEA,eAAeoC,cAAcnC,IAAiB,EAAEN,IAAS;IACrD,MAAM2B,QAAQC,yBAAe,CAACtB,KAAK;IAEnCqC;IACAC,IAAAA,4BAAoB,EAACtC,MAAMqB;IAE3B,IAAIkB,IAAAA,sBAAc,EAACvC,MAAMqB,QAAQ;QAC7BmB,UAAG,CAACC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAEzC,KAAK,2CAA2C,CAAC;QAC7E0C,IAAAA,cAAK,EAACjD,QAAQC,IAAI,CAAC,EAAE,EAAED,QAAQC,IAAI,CAACiD,KAAK,CAAC,IAAI;YAAEC,OAAO;QAAU,GAAGC,KAAK,CAACC,CAAAA;YACtErD,QAAQsD,IAAI,CAACC,IAAAA,mBAAW,EAACF;QAC7B;QACA;IACJ;IAEA,MAAMG,eAAe,MAAM5B,MAAM6B,IAAI;IACrC,gEAAgE;IAChE,MAAMd,UAAU,IAAIa,aAAa;QAAE,GAAGvD,IAAI;QAAE+B,GAAG/B,KAAK+B,CAAC,CAACkB,KAAK,CAAC;IAAG;
|
|
1
|
+
{"version":3,"sources":["../../src/cli/index.ts"],"sourcesContent":["import chalk from 'chalk';\nimport execa from 'execa';\nimport kebabCase from 'lodash.kebabcase';\nimport path from 'path';\nimport yargs from 'yargs';\nimport { hideBin } from 'yargs/helpers';\nimport { getStartupVersion } from '../core';\nimport { CommandName, log } from '../utils';\nimport { commandRegistry } from './commands/registry';\nimport type { CommandOptions } from './commands/types';\nimport { checkStartupLocation, getExitCode, setNodeOptions } from './utils';\n\nconst yargsInstance = yargs(hideBin(process.argv));\n\nObject.values(CommandName)\n .reduce((y, name) => addCommand(name, y), yargsInstance)\n .usage('Usage: startup <command> [options]')\n .epilogue(\n chalk.bold.cyan(`startup cli v${getStartupVersion()}\\n`) +\n `Run ${chalk.bold.cyan('startup <command> --help')} to see command options.\\n` +\n `For detailed documentation, see ${chalk.bold.cyan('https://docs.st.dev/docs/frontend/uikit/startup')}.\\n`\n )\n .demandCommand(1, '')\n .strictCommands()\n .updateStrings({\n 'Unknown command: %s': {\n one: chalk.bold.red('Unknown command: %s'),\n other: chalk.bold.red('Unknown command: %s'),\n } as any,\n })\n .version()\n .wrap(Math.min(100, yargsInstance.terminalWidth()))\n .help()\n .parse();\n\nfunction addCommand(name: CommandName, y: typeof yargs) {\n const entry = commandRegistry[name];\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const { description, options: { _, ...options } = {} } = entry;\n const nameWithArgs = name + (_?.description ? ` ${_.description}` : '');\n const groupedOptions = Object.entries(options).reduce((result, [key, value]) => {\n result[kebabCase(key)] = { group: 'Command Options:', ...value };\n return result;\n }, {} as CommandOptions);\n const handler = (argv: any) => handleCommand(name, argv);\n if (description) {\n y.command(nameWithArgs, description, groupedOptions, handler);\n } else {\n y.command(nameWithArgs, false, groupedOptions, handler);\n }\n return y;\n}\n\nasync function handleCommand(name: CommandName, argv: any) {\n const entry = commandRegistry[name];\n\n checkNodeVersion();\n checkStartupLocation(name, entry);\n\n if (setNodeOptions(name, entry)) {\n log.debug('run', `Running ${name} in child process with amended NODE_OPTIONS`);\n execa(process.argv[0], process.argv.slice(1), { stdio: 'inherit' }).catch(reason => {\n process.exit(getExitCode(reason));\n });\n return;\n }\n\n const CommandClass = await entry.load();\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const command = new CommandClass({ ...argv, _: argv._.slice(1) });\n\n command.watchForParentExit(name);\n\n command.execute().catch(() => {\n process.exit(1);\n });\n}\n\nfunction checkNodeVersion() {\n const nodeVersion = Number(process.versions.node.split('.')[0]);\n if (nodeVersion % 2 === 0 || process.env.SKIP_NODE_VERSION_CHECK) {\n return;\n }\n\n const { engines } = require(path.join(__dirname, '../../package.json'));\n log.error(\n `error: node v${nodeVersion} detected, only even-numbered LTS versions ${engines.node} are supported`\n );\n log.text('See https://nodejs.org/en/download for LTS versions');\n process.exit(1);\n}\n"],"names":["yargsInstance","yargs","hideBin","process","argv","Object","values","CommandName","reduce","y","name","addCommand","usage","epilogue","chalk","bold","cyan","getStartupVersion","demandCommand","strictCommands","updateStrings","one","red","other","version","wrap","Math","min","terminalWidth","help","parse","entry","commandRegistry","description","options","_","nameWithArgs","groupedOptions","entries","result","key","value","kebabCase","group","handler","handleCommand","command","checkNodeVersion","checkStartupLocation","setNodeOptions","log","debug","execa","slice","stdio","catch","reason","exit","getExitCode","CommandClass","load","watchForParentExit","execute","nodeVersion","Number","versions","node","split","env","SKIP_NODE_VERSION_CHECK","engines","require","path","join","__dirname","error","text"],"mappings":";;;;8DAAkB;8DACA;wEACI;6DACL;8DACC;yBACM;sBACU;uBACD;0BACD;wBAEkC;;;;;;AAElE,MAAMA,gBAAgBC,IAAAA,cAAK,EAACC,IAAAA,gBAAO,EAACC,QAAQC,IAAI;AAEhDC,OAAOC,MAAM,CAACC,kBAAW,EACpBC,MAAM,CAAC,CAACC,GAAGC,OAASC,WAAWD,MAAMD,IAAIT,eACzCY,KAAK,CAAC,sCACNC,QAAQ,CACLC,cAAK,CAACC,IAAI,CAACC,IAAI,CAAC,CAAC,aAAa,EAAEC,IAAAA,uBAAiB,IAAG,EAAE,CAAC,IACnD,CAAC,IAAI,EAAEH,cAAK,CAACC,IAAI,CAACC,IAAI,CAAC,4BAA4B,0BAA0B,CAAC,GAC9E,CAAC,gCAAgC,EAAEF,cAAK,CAACC,IAAI,CAACC,IAAI,CAAC,mDAAmD,GAAG,CAAC,EAEjHE,aAAa,CAAC,GAAG,IACjBC,cAAc,GACdC,aAAa,CAAC;IACX,uBAAuB;QACnBC,KAAKP,cAAK,CAACC,IAAI,CAACO,GAAG,CAAC;QACpBC,OAAOT,cAAK,CAACC,IAAI,CAACO,GAAG,CAAC;IAC1B;AACJ,GACCE,OAAO,GACPC,IAAI,CAACC,KAAKC,GAAG,CAAC,KAAK3B,cAAc4B,aAAa,KAC9CC,IAAI,GACJC,KAAK;AAEV,SAASnB,WAAWD,IAAiB,EAAED,CAAe;IAClD,MAAMsB,QAAQC,yBAAe,CAACtB,KAAK;IAEnC,gEAAgE;IAChE,MAAM,EAAEuB,WAAW,EAAEC,SAAS,EAAEC,CAAC,EAAE,GAAGD,SAAS,GAAG,CAAC,CAAC,EAAE,GAAGH;IACzD,MAAMK,eAAe1B,OAAQyB,CAAAA,CAAAA,cAAAA,wBAAAA,EAAGF,WAAW,IAAG,CAAC,CAAC,EAAEE,EAAEF,WAAW,EAAE,GAAG,EAAC;IACrE,MAAMI,iBAAiBhC,OAAOiC,OAAO,CAACJ,SAAS1B,MAAM,CAAC,CAAC+B,QAAQ,CAACC,KAAKC,MAAM;QACvEF,MAAM,CAACG,IAAAA,wBAAS,EAACF,KAAK,GAAG;YAAEG,OAAO;YAAoB,GAAGF,KAAK;QAAC;QAC/D,OAAOF;IACX,GAAG,CAAC;IACJ,MAAMK,UAAU,CAACxC,OAAcyC,cAAcnC,MAAMN;IACnD,IAAI6B,aAAa;QACbxB,EAAEqC,OAAO,CAACV,cAAcH,aAAaI,gBAAgBO;IACzD,OAAO;QACHnC,EAAEqC,OAAO,CAACV,cAAc,OAAOC,gBAAgBO;IACnD;IACA,OAAOnC;AACX;AAEA,eAAeoC,cAAcnC,IAAiB,EAAEN,IAAS;IACrD,MAAM2B,QAAQC,yBAAe,CAACtB,KAAK;IAEnCqC;IACAC,IAAAA,4BAAoB,EAACtC,MAAMqB;IAE3B,IAAIkB,IAAAA,sBAAc,EAACvC,MAAMqB,QAAQ;QAC7BmB,UAAG,CAACC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAEzC,KAAK,2CAA2C,CAAC;QAC7E0C,IAAAA,cAAK,EAACjD,QAAQC,IAAI,CAAC,EAAE,EAAED,QAAQC,IAAI,CAACiD,KAAK,CAAC,IAAI;YAAEC,OAAO;QAAU,GAAGC,KAAK,CAACC,CAAAA;YACtErD,QAAQsD,IAAI,CAACC,IAAAA,mBAAW,EAACF;QAC7B;QACA;IACJ;IAEA,MAAMG,eAAe,MAAM5B,MAAM6B,IAAI;IACrC,gEAAgE;IAChE,MAAMd,UAAU,IAAIa,aAAa;QAAE,GAAGvD,IAAI;QAAE+B,GAAG/B,KAAK+B,CAAC,CAACkB,KAAK,CAAC;IAAG;IAE/DP,QAAQe,kBAAkB,CAACnD;IAE3BoC,QAAQgB,OAAO,GAAGP,KAAK,CAAC;QACpBpD,QAAQsD,IAAI,CAAC;IACjB;AACJ;AAEA,SAASV;IACL,MAAMgB,cAAcC,OAAO7D,QAAQ8D,QAAQ,CAACC,IAAI,CAACC,KAAK,CAAC,IAAI,CAAC,EAAE;IAC9D,IAAIJ,cAAc,MAAM,KAAK5D,QAAQiE,GAAG,CAACC,uBAAuB,EAAE;QAC9D;IACJ;IAEA,MAAM,EAAEC,OAAO,EAAE,GAAGC,QAAQC,aAAI,CAACC,IAAI,CAACC,WAAW;IACjDxB,UAAG,CAACyB,KAAK,CACL,CAAC,aAAa,EAAEZ,YAAY,2CAA2C,EAAEO,QAAQJ,IAAI,CAAC,cAAc,CAAC;IAEzGhB,UAAG,CAAC0B,IAAI,CAAC;IACTzE,QAAQsD,IAAI,CAAC;AACjB"}
|
|
@@ -10,6 +10,9 @@ export interface CliTaskParameters extends TaskParameters {
|
|
|
10
10
|
export declare abstract class CliTask extends Task {
|
|
11
11
|
private readonly indicators;
|
|
12
12
|
constructor({ indicators, ...rest }: CliTaskParameters);
|
|
13
|
+
watchForParentExit(): void;
|
|
13
14
|
protected runChildProcess(command: string, args: string[]): Promise<void>;
|
|
15
|
+
private forwardSignalToChild;
|
|
16
|
+
private killOnParentExit;
|
|
14
17
|
}
|
|
15
18
|
//# sourceMappingURL=cli-task.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-task.d.ts","sourceRoot":"","sources":["../../../src/cli/tasks/cli-task.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli-task.d.ts","sourceRoot":"","sources":["../../../src/cli/tasks/cli-task.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAE9C,MAAM,WAAW,UAAU;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACrD,UAAU,EAAE,UAAU,CAAC;CAC1B;AAED,8BAAsB,OAAQ,SAAQ,IAAI;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;gBAE5B,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,EAAE,iBAAiB;IAKtD,kBAAkB,IAAI,IAAI;cAIV,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;IA6C/D,OAAO,CAAC,oBAAoB;IAkB5B,OAAO,CAAC,gBAAgB;CAQ3B"}
|
|
@@ -9,7 +9,8 @@ Object.defineProperty(exports, "CliTask", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
const _execa = /*#__PURE__*/ _interop_require_default(require("execa"));
|
|
12
|
-
const _utils = require("
|
|
12
|
+
const _utils = require("../../utils");
|
|
13
|
+
const _utils1 = require("../utils");
|
|
13
14
|
const _task = require("./task");
|
|
14
15
|
function _define_property(obj, key, value) {
|
|
15
16
|
if (key in obj) {
|
|
@@ -19,9 +20,7 @@ function _define_property(obj, key, value) {
|
|
|
19
20
|
configurable: true,
|
|
20
21
|
writable: true
|
|
21
22
|
});
|
|
22
|
-
} else
|
|
23
|
-
obj[key] = value;
|
|
24
|
-
}
|
|
23
|
+
} else obj[key] = value;
|
|
25
24
|
return obj;
|
|
26
25
|
}
|
|
27
26
|
function _interop_require_default(obj) {
|
|
@@ -30,13 +29,20 @@ function _interop_require_default(obj) {
|
|
|
30
29
|
};
|
|
31
30
|
}
|
|
32
31
|
class CliTask extends _task.Task {
|
|
32
|
+
watchForParentExit() {
|
|
33
|
+
// No-op: this task exits automatically when its child process ends
|
|
34
|
+
}
|
|
33
35
|
async runChildProcess(command, args) {
|
|
34
36
|
const childProcess = (0, _execa.default)(command, args, this.watch ? {
|
|
35
37
|
stdio: [
|
|
36
38
|
'inherit',
|
|
37
39
|
'pipe',
|
|
38
40
|
'inherit'
|
|
39
|
-
]
|
|
41
|
+
],
|
|
42
|
+
/*
|
|
43
|
+
* Put the child in its own process group so we can take down bin
|
|
44
|
+
* wrappers that fork children of their own. Not needed on Windows.
|
|
45
|
+
*/ detached: process.platform !== 'win32'
|
|
40
46
|
} : {
|
|
41
47
|
stdio: 'inherit'
|
|
42
48
|
});
|
|
@@ -48,18 +54,44 @@ class CliTask extends _task.Task {
|
|
|
48
54
|
}
|
|
49
55
|
return;
|
|
50
56
|
}
|
|
51
|
-
(0,
|
|
52
|
-
(0,
|
|
57
|
+
(0, _utils1.pipeStdout)(childProcess);
|
|
58
|
+
(0, _utils1.watchStdout)(childProcess, this.indicators.watchStart, ()=>{
|
|
53
59
|
this.taskTimer.start();
|
|
54
60
|
});
|
|
55
|
-
(0,
|
|
61
|
+
(0, _utils1.watchStdout)(childProcess, this.indicators.end, ()=>{
|
|
56
62
|
this.logCompletionResults(this.taskTimer.end());
|
|
57
63
|
});
|
|
58
|
-
(0,
|
|
64
|
+
(0, _utils1.watchStdout)(childProcess, this.indicators.watchEnd, ()=>{
|
|
59
65
|
this.logCompletionResults(this.taskTimer.end());
|
|
60
66
|
});
|
|
67
|
+
this.killOnParentExit(childProcess);
|
|
68
|
+
// Forward CTRL-C when signalled, rather than wait for killOnParentExit's slower poll.
|
|
69
|
+
this.forwardSignalToChild(childProcess);
|
|
61
70
|
await childProcess;
|
|
62
71
|
}
|
|
72
|
+
forwardSignalToChild(childProcess) {
|
|
73
|
+
if (process.platform === 'win32') {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
const forward = (signal)=>{
|
|
77
|
+
if (childProcess.pid) {
|
|
78
|
+
_utils.log.info(`${this.name} forwarding signal to child process tree`);
|
|
79
|
+
(0, _utils1.killProcessTree)(childProcess.pid, signal);
|
|
80
|
+
}
|
|
81
|
+
// Re-raise to get Node's default behavior
|
|
82
|
+
process.kill(process.pid, signal);
|
|
83
|
+
};
|
|
84
|
+
process.once('SIGINT', ()=>forward('SIGINT'));
|
|
85
|
+
process.once('SIGTERM', ()=>forward('SIGTERM'));
|
|
86
|
+
}
|
|
87
|
+
killOnParentExit(childProcess) {
|
|
88
|
+
(0, _utils.exitWhenParentExits)(this.name, ()=>{
|
|
89
|
+
if (childProcess.pid) {
|
|
90
|
+
_utils.log.info(`${this.name} killing child process tree`);
|
|
91
|
+
(0, _utils1.killProcessTree)(childProcess.pid);
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
}
|
|
63
95
|
constructor({ indicators, ...rest }){
|
|
64
96
|
super(rest), _define_property(this, "indicators", void 0);
|
|
65
97
|
this.indicators = indicators;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/cli/tasks/cli-task.ts"],"sourcesContent":["import execa from 'execa';\nimport { pipeStdout, watchStdout } from '../utils';\nimport { Task, TaskParameters } from './task';\n\nexport interface Indicators {\n end: string;\n watchStart: string;\n watchEnd?: string;\n}\n\nexport interface CliTaskParameters extends TaskParameters {\n indicators: Indicators;\n}\n\nexport abstract class CliTask extends Task {\n private readonly indicators: Indicators;\n\n constructor({ indicators, ...rest }: CliTaskParameters) {\n super(rest);\n this.indicators = indicators;\n }\n\n protected async runChildProcess(command: string, args: string[]) {\n const childProcess = execa(\n command,\n args,\n this.watch\n ? {\n stdio: ['inherit', 'pipe', 'inherit'],\n }\n : {\n stdio: 'inherit',\n }\n );\n\n if (!this.watch) {\n try {\n await childProcess;\n } finally {\n this.logCompletionResults(this.taskTimer.end());\n }\n return;\n }\n\n pipeStdout(childProcess);\n watchStdout(childProcess, this.indicators.watchStart, () => {\n this.taskTimer.start();\n });\n watchStdout(childProcess, this.indicators.end, () => {\n this.logCompletionResults(this.taskTimer.end());\n });\n watchStdout(childProcess, this.indicators.watchEnd, () => {\n this.logCompletionResults(this.taskTimer.end());\n });\n\n await childProcess;\n }\n}\n"],"names":["CliTask","Task","runChildProcess","command","args","childProcess","execa","watch","stdio","logCompletionResults","taskTimer","end","pipeStdout","watchStdout","indicators","watchStart","start","watchEnd","rest"],"mappings":";;;;+
|
|
1
|
+
{"version":3,"sources":["../../../src/cli/tasks/cli-task.ts"],"sourcesContent":["import execa, { ExecaChildProcess } from 'execa';\nimport { exitWhenParentExits, log } from '../../utils';\nimport { killProcessTree, pipeStdout, watchStdout } from '../utils';\nimport { Task, TaskParameters } from './task';\n\nexport interface Indicators {\n end: string;\n watchStart: string;\n watchEnd?: string;\n}\n\nexport interface CliTaskParameters extends TaskParameters {\n indicators: Indicators;\n}\n\nexport abstract class CliTask extends Task {\n private readonly indicators: Indicators;\n\n constructor({ indicators, ...rest }: CliTaskParameters) {\n super(rest);\n this.indicators = indicators;\n }\n\n watchForParentExit(): void {\n // No-op: this task exits automatically when its child process ends\n }\n\n protected async runChildProcess(command: string, args: string[]) {\n const childProcess = execa(\n command,\n args,\n this.watch\n ? {\n stdio: ['inherit', 'pipe', 'inherit'],\n /*\n * Put the child in its own process group so we can take down bin\n * wrappers that fork children of their own. Not needed on Windows.\n */\n detached: process.platform !== 'win32',\n }\n : {\n stdio: 'inherit',\n }\n );\n\n if (!this.watch) {\n try {\n await childProcess;\n } finally {\n this.logCompletionResults(this.taskTimer.end());\n }\n return;\n }\n\n pipeStdout(childProcess);\n watchStdout(childProcess, this.indicators.watchStart, () => {\n this.taskTimer.start();\n });\n watchStdout(childProcess, this.indicators.end, () => {\n this.logCompletionResults(this.taskTimer.end());\n });\n watchStdout(childProcess, this.indicators.watchEnd, () => {\n this.logCompletionResults(this.taskTimer.end());\n });\n\n this.killOnParentExit(childProcess);\n // Forward CTRL-C when signalled, rather than wait for killOnParentExit's slower poll.\n this.forwardSignalToChild(childProcess);\n\n await childProcess;\n }\n\n private forwardSignalToChild(childProcess: ExecaChildProcess) {\n if (process.platform === 'win32') {\n return;\n }\n\n const forward = (signal: NodeJS.Signals) => {\n if (childProcess.pid) {\n log.info(`${this.name} forwarding signal to child process tree`);\n killProcessTree(childProcess.pid, signal);\n }\n // Re-raise to get Node's default behavior\n process.kill(process.pid, signal);\n };\n\n process.once('SIGINT', () => forward('SIGINT'));\n process.once('SIGTERM', () => forward('SIGTERM'));\n }\n\n private killOnParentExit(childProcess: ExecaChildProcess) {\n exitWhenParentExits(this.name, () => {\n if (childProcess.pid) {\n log.info(`${this.name} killing child process tree`);\n killProcessTree(childProcess.pid);\n }\n });\n }\n}\n"],"names":["CliTask","Task","watchForParentExit","runChildProcess","command","args","childProcess","execa","watch","stdio","detached","process","platform","logCompletionResults","taskTimer","end","pipeStdout","watchStdout","indicators","watchStart","start","watchEnd","killOnParentExit","forwardSignalToChild","forward","signal","pid","log","info","name","killProcessTree","kill","once","exitWhenParentExits","rest"],"mappings":";;;;+BAesBA;;;eAAAA;;;8DAfmB;uBACA;wBACgB;sBACpB;;;;;;;;;;;;;;;;;AAY9B,MAAeA,gBAAgBC,UAAI;IAQtCC,qBAA2B;IACvB,mEAAmE;IACvE;IAEA,MAAgBC,gBAAgBC,OAAe,EAAEC,IAAc,EAAE;QAC7D,MAAMC,eAAeC,IAAAA,cAAK,EACtBH,SACAC,MACA,IAAI,CAACG,KAAK,GACJ;YACIC,OAAO;gBAAC;gBAAW;gBAAQ;aAAU;YACrC;;;uBAGC,GACDC,UAAUC,QAAQC,QAAQ,KAAK;QACnC,IACA;YACIH,OAAO;QACX;QAGV,IAAI,CAAC,IAAI,CAACD,KAAK,EAAE;YACb,IAAI;gBACA,MAAMF;YACV,SAAU;gBACN,IAAI,CAACO,oBAAoB,CAAC,IAAI,CAACC,SAAS,CAACC,GAAG;YAChD;YACA;QACJ;QAEAC,IAAAA,kBAAU,EAACV;QACXW,IAAAA,mBAAW,EAACX,cAAc,IAAI,CAACY,UAAU,CAACC,UAAU,EAAE;YAClD,IAAI,CAACL,SAAS,CAACM,KAAK;QACxB;QACAH,IAAAA,mBAAW,EAACX,cAAc,IAAI,CAACY,UAAU,CAACH,GAAG,EAAE;YAC3C,IAAI,CAACF,oBAAoB,CAAC,IAAI,CAACC,SAAS,CAACC,GAAG;QAChD;QACAE,IAAAA,mBAAW,EAACX,cAAc,IAAI,CAACY,UAAU,CAACG,QAAQ,EAAE;YAChD,IAAI,CAACR,oBAAoB,CAAC,IAAI,CAACC,SAAS,CAACC,GAAG;QAChD;QAEA,IAAI,CAACO,gBAAgB,CAAChB;QACtB,sFAAsF;QACtF,IAAI,CAACiB,oBAAoB,CAACjB;QAE1B,MAAMA;IACV;IAEQiB,qBAAqBjB,YAA+B,EAAE;QAC1D,IAAIK,QAAQC,QAAQ,KAAK,SAAS;YAC9B;QACJ;QAEA,MAAMY,UAAU,CAACC;YACb,IAAInB,aAAaoB,GAAG,EAAE;gBAClBC,UAAG,CAACC,IAAI,CAAC,GAAG,IAAI,CAACC,IAAI,CAAC,wCAAwC,CAAC;gBAC/DC,IAAAA,uBAAe,EAACxB,aAAaoB,GAAG,EAAED;YACtC;YACA,0CAA0C;YAC1Cd,QAAQoB,IAAI,CAACpB,QAAQe,GAAG,EAAED;QAC9B;QAEAd,QAAQqB,IAAI,CAAC,UAAU,IAAMR,QAAQ;QACrCb,QAAQqB,IAAI,CAAC,WAAW,IAAMR,QAAQ;IAC1C;IAEQF,iBAAiBhB,YAA+B,EAAE;QACtD2B,IAAAA,0BAAmB,EAAC,IAAI,CAACJ,IAAI,EAAE;YAC3B,IAAIvB,aAAaoB,GAAG,EAAE;gBAClBC,UAAG,CAACC,IAAI,CAAC,GAAG,IAAI,CAACC,IAAI,CAAC,2BAA2B,CAAC;gBAClDC,IAAAA,uBAAe,EAACxB,aAAaoB,GAAG;YACpC;QACJ;IACJ;IA/EA,YAAY,EAAER,UAAU,EAAE,GAAGgB,MAAyB,CAAE;QACpD,KAAK,CAACA,OAHV,uBAAiBhB,cAAjB,KAAA;QAII,IAAI,CAACA,UAAU,GAAGA;IACtB;AA6EJ"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { TSConfig } from '../../utils';
|
|
2
|
-
export declare function getSwcOptions(tsConfig: TSConfig
|
|
2
|
+
export declare function getSwcOptions(tsConfig: TSConfig, { reactRefresh }?: {
|
|
3
|
+
reactRefresh?: boolean | undefined;
|
|
4
|
+
}): {
|
|
3
5
|
jsc: {
|
|
4
6
|
parser: {
|
|
5
7
|
syntax: "typescript";
|
|
@@ -7,11 +9,17 @@ export declare function getSwcOptions(tsConfig: TSConfig): {
|
|
|
7
9
|
decorators: true;
|
|
8
10
|
};
|
|
9
11
|
target: import("@swc/types").JscTarget | undefined;
|
|
12
|
+
baseUrl: string | undefined;
|
|
13
|
+
paths: {
|
|
14
|
+
[from: string]: string[];
|
|
15
|
+
} | undefined;
|
|
10
16
|
transform: {
|
|
11
17
|
legacyDecorator: boolean | undefined;
|
|
12
18
|
decoratorMetadata: boolean | undefined;
|
|
13
19
|
react: {
|
|
14
20
|
runtime: "automatic";
|
|
21
|
+
refresh: boolean;
|
|
22
|
+
development: boolean;
|
|
15
23
|
};
|
|
16
24
|
};
|
|
17
25
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-swc-options.d.ts","sourceRoot":"","sources":["../../../../src/cli/tasks/swc-compile-package/get-swc-options.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get-swc-options.d.ts","sourceRoot":"","sources":["../../../../src/cli/tasks/swc-compile-package/get-swc-options.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAIvC,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,YAAoB,EAAE;;CAAK;;;;;;;;;;;;;;;;;;;;;;;;;;EAwC9E"}
|
|
@@ -8,13 +8,25 @@ Object.defineProperty(exports, "getSwcOptions", {
|
|
|
8
8
|
return getSwcOptions;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
|
|
11
|
+
const _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
12
|
+
function _interop_require_default(obj) {
|
|
13
|
+
return obj && obj.__esModule ? obj : {
|
|
14
|
+
default: obj
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
function getSwcOptions(tsConfig, { reactRefresh = false } = {}) {
|
|
12
18
|
var _tsConfig_getValue;
|
|
13
19
|
const target = tsConfig.getValue('compilerOptions.target');
|
|
14
20
|
const legacyDecorator = tsConfig.getValue('compilerOptions.experimentalDecorators');
|
|
15
21
|
const decoratorMetadata = tsConfig.getValue('compilerOptions.emitDecoratorMetadata');
|
|
16
22
|
const sourceMaps = tsConfig.getValue('compilerOptions.sourceMap');
|
|
17
23
|
const module = (_tsConfig_getValue = tsConfig.getValue('compilerOptions.module')) === null || _tsConfig_getValue === void 0 ? void 0 : _tsConfig_getValue.toLowerCase();
|
|
24
|
+
const paths = tsConfig.getValue('compilerOptions.paths');
|
|
25
|
+
/*
|
|
26
|
+
* `compilerOptions.baseUrl` is deprecated in TypeScript, so it's not read here.
|
|
27
|
+
* TS resolves `paths` relative to the tsconfig directory; SWC requires an
|
|
28
|
+
* absolute `jsc.baseUrl` whenever `jsc.paths` is set.
|
|
29
|
+
*/ const baseUrl = paths !== undefined ? _path.default.resolve(_path.default.dirname(tsConfig.configPath)) : undefined;
|
|
18
30
|
return {
|
|
19
31
|
jsc: {
|
|
20
32
|
parser: {
|
|
@@ -23,11 +35,15 @@ function getSwcOptions(tsConfig) {
|
|
|
23
35
|
decorators: true
|
|
24
36
|
},
|
|
25
37
|
target,
|
|
38
|
+
baseUrl,
|
|
39
|
+
paths,
|
|
26
40
|
transform: {
|
|
27
41
|
legacyDecorator,
|
|
28
42
|
decoratorMetadata,
|
|
29
43
|
react: {
|
|
30
|
-
runtime: 'automatic'
|
|
44
|
+
runtime: 'automatic',
|
|
45
|
+
refresh: reactRefresh,
|
|
46
|
+
development: reactRefresh
|
|
31
47
|
}
|
|
32
48
|
}
|
|
33
49
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/cli/tasks/swc-compile-package/get-swc-options.ts"],"sourcesContent":["import type { SwcOptions } from '@swc/cli';\nimport { TSConfig } from '../../utils';\n\ntype JscConfig = NonNullable<SwcOptions['jsc']>;\n\nexport function getSwcOptions(tsConfig: TSConfig) {\n const target = tsConfig.getValue<JscConfig['target']>('compilerOptions.target');\n const legacyDecorator = tsConfig.getValue<boolean>('compilerOptions.experimentalDecorators');\n const decoratorMetadata = tsConfig.getValue<boolean>('compilerOptions.emitDecoratorMetadata');\n const sourceMaps = tsConfig.getValue<SwcOptions['sourceMaps']>('compilerOptions.sourceMap');\n const module = tsConfig.getValue<string>('compilerOptions.module')?.toLowerCase();\n\n return {\n jsc: {\n parser: {\n syntax: 'typescript',\n tsx: true,\n decorators: true,\n },\n target,\n transform: {\n legacyDecorator,\n decoratorMetadata,\n react: {\n runtime: 'automatic',\n },\n },\n },\n sourceMaps,\n module: {\n type: module === 'commonjs' || module === 'nodenext' ? 'commonjs' : 'es6',\n },\n } satisfies SwcOptions;\n}\n"],"names":["getSwcOptions","tsConfig","target","getValue","legacyDecorator","decoratorMetadata","sourceMaps","module","toLowerCase","jsc","parser","syntax","tsx","decorators","transform","react","runtime","type"],"mappings":";;;;+
|
|
1
|
+
{"version":3,"sources":["../../../../src/cli/tasks/swc-compile-package/get-swc-options.ts"],"sourcesContent":["import type { SwcOptions } from '@swc/cli';\nimport path from 'path';\nimport { TSConfig } from '../../utils';\n\ntype JscConfig = NonNullable<SwcOptions['jsc']>;\n\nexport function getSwcOptions(tsConfig: TSConfig, { reactRefresh = false } = {}) {\n const target = tsConfig.getValue<JscConfig['target']>('compilerOptions.target');\n const legacyDecorator = tsConfig.getValue<boolean>('compilerOptions.experimentalDecorators');\n const decoratorMetadata = tsConfig.getValue<boolean>('compilerOptions.emitDecoratorMetadata');\n const sourceMaps = tsConfig.getValue<SwcOptions['sourceMaps']>('compilerOptions.sourceMap');\n const module = tsConfig.getValue<string>('compilerOptions.module')?.toLowerCase();\n const paths = tsConfig.getValue<JscConfig['paths']>('compilerOptions.paths');\n /*\n * `compilerOptions.baseUrl` is deprecated in TypeScript, so it's not read here.\n * TS resolves `paths` relative to the tsconfig directory; SWC requires an\n * absolute `jsc.baseUrl` whenever `jsc.paths` is set.\n */\n const baseUrl =\n paths !== undefined ? path.resolve(path.dirname(tsConfig.configPath)) : undefined;\n\n return {\n jsc: {\n parser: {\n syntax: 'typescript',\n tsx: true,\n decorators: true,\n },\n target,\n baseUrl,\n paths,\n transform: {\n legacyDecorator,\n decoratorMetadata,\n react: {\n runtime: 'automatic',\n refresh: reactRefresh,\n development: reactRefresh,\n },\n },\n },\n sourceMaps,\n module: {\n type: module === 'commonjs' || module === 'nodenext' ? 'commonjs' : 'es6',\n },\n } satisfies SwcOptions;\n}\n"],"names":["getSwcOptions","tsConfig","reactRefresh","target","getValue","legacyDecorator","decoratorMetadata","sourceMaps","module","toLowerCase","paths","baseUrl","undefined","path","resolve","dirname","configPath","jsc","parser","syntax","tsx","decorators","transform","react","runtime","refresh","development","type"],"mappings":";;;;+BAMgBA;;;eAAAA;;;6DALC;;;;;;AAKV,SAASA,cAAcC,QAAkB,EAAE,EAAEC,eAAe,KAAK,EAAE,GAAG,CAAC,CAAC;QAK5DD;IAJf,MAAME,SAASF,SAASG,QAAQ,CAAsB;IACtD,MAAMC,kBAAkBJ,SAASG,QAAQ,CAAU;IACnD,MAAME,oBAAoBL,SAASG,QAAQ,CAAU;IACrD,MAAMG,aAAaN,SAASG,QAAQ,CAA2B;IAC/D,MAAMI,UAASP,qBAAAA,SAASG,QAAQ,CAAS,uCAA1BH,yCAAAA,mBAAqDQ,WAAW;IAC/E,MAAMC,QAAQT,SAASG,QAAQ,CAAqB;IACpD;;;;KAIC,GACD,MAAMO,UACFD,UAAUE,YAAYC,aAAI,CAACC,OAAO,CAACD,aAAI,CAACE,OAAO,CAACd,SAASe,UAAU,KAAKJ;IAE5E,OAAO;QACHK,KAAK;YACDC,QAAQ;gBACJC,QAAQ;gBACRC,KAAK;gBACLC,YAAY;YAChB;YACAlB;YACAQ;YACAD;YACAY,WAAW;gBACPjB;gBACAC;gBACAiB,OAAO;oBACHC,SAAS;oBACTC,SAASvB;oBACTwB,aAAaxB;gBACjB;YACJ;QACJ;QACAK;QACAC,QAAQ;YACJmB,MAAMnB,WAAW,cAAcA,WAAW,aAAa,aAAa;QACxE;IACJ;AACJ"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { Task } from '../task';
|
|
2
2
|
interface Args {
|
|
3
|
+
reactRefresh?: boolean;
|
|
3
4
|
watch?: boolean;
|
|
4
5
|
}
|
|
5
6
|
export declare class SwcCompilePackage extends Task {
|
|
6
|
-
|
|
7
|
+
private readonly reactRefresh;
|
|
8
|
+
constructor({ reactRefresh, watch }: Args);
|
|
7
9
|
execute(): Promise<void>;
|
|
8
10
|
private getConfig;
|
|
9
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swc-compile-package.d.ts","sourceRoot":"","sources":["../../../../src/cli/tasks/swc-compile-package/swc-compile-package.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG/B,UAAU,IAAI;IACV,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAMD,qBAAa,iBAAkB,SAAQ,IAAI;
|
|
1
|
+
{"version":3,"file":"swc-compile-package.d.ts","sourceRoot":"","sources":["../../../../src/cli/tasks/swc-compile-package/swc-compile-package.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG/B,UAAU,IAAI;IACV,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAMD,qBAAa,iBAAkB,SAAQ,IAAI;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;gBAEvC,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,IAAI;IAKnC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkC9B,OAAO,CAAC,SAAS;CAapB"}
|
|
@@ -14,6 +14,17 @@ const _utils = require("../../../utils");
|
|
|
14
14
|
const _utils1 = require("../../utils");
|
|
15
15
|
const _task = require("../task");
|
|
16
16
|
const _getswcoptions = require("./get-swc-options");
|
|
17
|
+
function _define_property(obj, key, value) {
|
|
18
|
+
if (key in obj) {
|
|
19
|
+
Object.defineProperty(obj, key, {
|
|
20
|
+
value: value,
|
|
21
|
+
enumerable: true,
|
|
22
|
+
configurable: true,
|
|
23
|
+
writable: true
|
|
24
|
+
});
|
|
25
|
+
} else obj[key] = value;
|
|
26
|
+
return obj;
|
|
27
|
+
}
|
|
17
28
|
function _interop_require_default(obj) {
|
|
18
29
|
return obj && obj.__esModule ? obj : {
|
|
19
30
|
default: obj
|
|
@@ -61,18 +72,21 @@ class SwcCompilePackage extends _task.Task {
|
|
|
61
72
|
cliOptions: getCliOptions(tsConfig, {
|
|
62
73
|
watch: this.watch
|
|
63
74
|
}),
|
|
64
|
-
swcOptions: (0, _getswcoptions.getSwcOptions)(tsConfig
|
|
75
|
+
swcOptions: (0, _getswcoptions.getSwcOptions)(tsConfig, {
|
|
76
|
+
reactRefresh: this.reactRefresh
|
|
77
|
+
})
|
|
65
78
|
}, packageConfig, {
|
|
66
79
|
arrayMerge: overwriteMerge,
|
|
67
80
|
clone: false
|
|
68
81
|
});
|
|
69
82
|
}
|
|
70
|
-
constructor({ watch }){
|
|
83
|
+
constructor({ reactRefresh, watch }){
|
|
71
84
|
super({
|
|
72
85
|
name: 'swc-compile-package',
|
|
73
86
|
global: false,
|
|
74
87
|
watch
|
|
75
|
-
});
|
|
88
|
+
}), _define_property(this, "reactRefresh", void 0);
|
|
89
|
+
this.reactRefresh = reactRefresh;
|
|
76
90
|
}
|
|
77
91
|
}
|
|
78
92
|
function getCliOptions(tsConfig, { watch }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/cli/tasks/swc-compile-package/swc-compile-package.ts"],"sourcesContent":["import type { Options } from '@swc/cli';\nimport { swcDir } from '@swc/cli';\nimport deepmerge from 'deepmerge';\nimport { getFolders, getSwcCompilePackageConfiguration, getTsConfig, log } from '../../../utils';\nimport { TSConfig } from '../../utils';\nimport { Task } from '../task';\nimport { getSwcOptions } from './get-swc-options';\n\ninterface Args {\n watch?: boolean;\n}\n\nfunction overwriteMerge(_destinationArray: unknown[], sourceArray: unknown[]) {\n return sourceArray;\n}\n\nexport class SwcCompilePackage extends Task {\n constructor({ watch }: Args) {\n super({ name: 'swc-compile-package', global: false, watch });\n }\n\n async execute(): Promise<void> {\n const config = this.getConfig();\n\n /* istanbul ignore next: debug only */\n log.debug('swc-compile-package:config', () => JSON.stringify(config, null, 2));\n\n let callbackFired = false;\n\n return new Promise((resolve, reject) => {\n swcDir({\n ...config,\n callbacks: {\n onSuccess: (e: { duration: number }) => {\n callbackFired = true;\n this.logCompletionResults(this.taskTimer.add(e.duration));\n },\n onFail: (e: { duration: number; reasons: Map<string, string> }) => {\n callbackFired = true;\n log.text([...e.reasons.values()][0]);\n this.logCompletionResults(this.taskTimer.add(e.duration));\n if (!this.watch) {\n reject(new Error('Compilation failed'));\n }\n },\n },\n }).then(() => {\n if (!callbackFired) {\n this.logCompletionResults(this.taskTimer.add(0));\n }\n resolve();\n });\n });\n }\n\n private getConfig(): Options {\n const packageConfig = getSwcCompilePackageConfiguration();\n const tsConfig = new TSConfig(getTsConfig());\n\n return deepmerge(\n {\n cliOptions: getCliOptions(tsConfig, { watch: this.watch }),\n swcOptions: getSwcOptions(tsConfig),\n },\n packageConfig,\n { arrayMerge: overwriteMerge, clone: false }\n );\n }\n}\n\nfunction getCliOptions(tsConfig: TSConfig, { watch }: { watch?: boolean }): Options['cliOptions'] {\n const { source, destination } = getFolders();\n const typedefsPattern = '**/*.d.ts';\n const ignore = tsConfig.getValue('exclude', [\n typedefsPattern,\n '**/__tests__/*',\n '**/*.test.*',\n '**/__mocks__/*',\n '**/*.stories.*',\n ]);\n\n if (!ignore.includes(typedefsPattern)) {\n ignore.push(typedefsPattern);\n }\n\n return {\n extensions: ['.ts', '.tsx'],\n filenames: [source],\n ignore,\n outDir: destination,\n stripLeadingPaths: true,\n watch,\n };\n}\n"],"names":["SwcCompilePackage","overwriteMerge","_destinationArray","sourceArray","Task","execute","config","getConfig","log","debug","JSON","stringify","callbackFired","Promise","resolve","reject","swcDir","callbacks","onSuccess","e","logCompletionResults","taskTimer","add","duration","onFail","text","reasons","values","watch","Error","then","packageConfig","getSwcCompilePackageConfiguration","tsConfig","TSConfig","getTsConfig","deepmerge","cliOptions","getCliOptions","swcOptions","getSwcOptions","arrayMerge","clone","name","global","source","destination","getFolders","typedefsPattern","ignore","getValue","includes","push","extensions","filenames","outDir","stripLeadingPaths"],"mappings":";;;;+
|
|
1
|
+
{"version":3,"sources":["../../../../src/cli/tasks/swc-compile-package/swc-compile-package.ts"],"sourcesContent":["import type { Options } from '@swc/cli';\nimport { swcDir } from '@swc/cli';\nimport deepmerge from 'deepmerge';\nimport { getFolders, getSwcCompilePackageConfiguration, getTsConfig, log } from '../../../utils';\nimport { TSConfig } from '../../utils';\nimport { Task } from '../task';\nimport { getSwcOptions } from './get-swc-options';\n\ninterface Args {\n reactRefresh?: boolean;\n watch?: boolean;\n}\n\nfunction overwriteMerge(_destinationArray: unknown[], sourceArray: unknown[]) {\n return sourceArray;\n}\n\nexport class SwcCompilePackage extends Task {\n private readonly reactRefresh: boolean | undefined;\n\n constructor({ reactRefresh, watch }: Args) {\n super({ name: 'swc-compile-package', global: false, watch });\n this.reactRefresh = reactRefresh;\n }\n\n async execute(): Promise<void> {\n const config = this.getConfig();\n\n /* istanbul ignore next: debug only */\n log.debug('swc-compile-package:config', () => JSON.stringify(config, null, 2));\n\n let callbackFired = false;\n\n return new Promise((resolve, reject) => {\n swcDir({\n ...config,\n callbacks: {\n onSuccess: (e: { duration: number }) => {\n callbackFired = true;\n this.logCompletionResults(this.taskTimer.add(e.duration));\n },\n onFail: (e: { duration: number; reasons: Map<string, string> }) => {\n callbackFired = true;\n log.text([...e.reasons.values()][0]);\n this.logCompletionResults(this.taskTimer.add(e.duration));\n if (!this.watch) {\n reject(new Error('Compilation failed'));\n }\n },\n },\n }).then(() => {\n if (!callbackFired) {\n this.logCompletionResults(this.taskTimer.add(0));\n }\n resolve();\n });\n });\n }\n\n private getConfig(): Options {\n const packageConfig = getSwcCompilePackageConfiguration();\n const tsConfig = new TSConfig(getTsConfig());\n\n return deepmerge(\n {\n cliOptions: getCliOptions(tsConfig, { watch: this.watch }),\n swcOptions: getSwcOptions(tsConfig, { reactRefresh: this.reactRefresh }),\n },\n packageConfig,\n { arrayMerge: overwriteMerge, clone: false }\n );\n }\n}\n\nfunction getCliOptions(tsConfig: TSConfig, { watch }: { watch?: boolean }): Options['cliOptions'] {\n const { source, destination } = getFolders();\n const typedefsPattern = '**/*.d.ts';\n const ignore = tsConfig.getValue('exclude', [\n typedefsPattern,\n '**/__tests__/*',\n '**/*.test.*',\n '**/__mocks__/*',\n '**/*.stories.*',\n ]);\n\n if (!ignore.includes(typedefsPattern)) {\n ignore.push(typedefsPattern);\n }\n\n return {\n extensions: ['.ts', '.tsx'],\n filenames: [source],\n ignore,\n outDir: destination,\n stripLeadingPaths: true,\n watch,\n };\n}\n"],"names":["SwcCompilePackage","overwriteMerge","_destinationArray","sourceArray","Task","execute","config","getConfig","log","debug","JSON","stringify","callbackFired","Promise","resolve","reject","swcDir","callbacks","onSuccess","e","logCompletionResults","taskTimer","add","duration","onFail","text","reasons","values","watch","Error","then","packageConfig","getSwcCompilePackageConfiguration","tsConfig","TSConfig","getTsConfig","deepmerge","cliOptions","getCliOptions","swcOptions","getSwcOptions","reactRefresh","arrayMerge","clone","name","global","source","destination","getFolders","typedefsPattern","ignore","getValue","includes","push","extensions","filenames","outDir","stripLeadingPaths"],"mappings":";;;;+BAiBaA;;;eAAAA;;;qBAhBU;kEACD;uBAC0D;wBACvD;sBACJ;+BACS;;;;;;;;;;;;;;;;;AAO9B,SAASC,eAAeC,iBAA4B,EAAEC,WAAsB;IACxE,OAAOA;AACX;AAEO,MAAMH,0BAA0BI,UAAI;IAQvC,MAAMC,UAAyB;QAC3B,MAAMC,SAAS,IAAI,CAACC,SAAS;QAE7B,oCAAoC,GACpCC,UAAG,CAACC,KAAK,CAAC,8BAA8B,IAAMC,KAAKC,SAAS,CAACL,QAAQ,MAAM;QAE3E,IAAIM,gBAAgB;QAEpB,OAAO,IAAIC,QAAQ,CAACC,SAASC;YACzBC,IAAAA,WAAM,EAAC;gBACH,GAAGV,MAAM;gBACTW,WAAW;oBACPC,WAAW,CAACC;wBACRP,gBAAgB;wBAChB,IAAI,CAACQ,oBAAoB,CAAC,IAAI,CAACC,SAAS,CAACC,GAAG,CAACH,EAAEI,QAAQ;oBAC3D;oBACAC,QAAQ,CAACL;wBACLP,gBAAgB;wBAChBJ,UAAG,CAACiB,IAAI,CAAC;+BAAIN,EAAEO,OAAO,CAACC,MAAM;yBAAG,CAAC,EAAE;wBACnC,IAAI,CAACP,oBAAoB,CAAC,IAAI,CAACC,SAAS,CAACC,GAAG,CAACH,EAAEI,QAAQ;wBACvD,IAAI,CAAC,IAAI,CAACK,KAAK,EAAE;4BACbb,OAAO,IAAIc,MAAM;wBACrB;oBACJ;gBACJ;YACJ,GAAGC,IAAI,CAAC;gBACJ,IAAI,CAAClB,eAAe;oBAChB,IAAI,CAACQ,oBAAoB,CAAC,IAAI,CAACC,SAAS,CAACC,GAAG,CAAC;gBACjD;gBACAR;YACJ;QACJ;IACJ;IAEQP,YAAqB;QACzB,MAAMwB,gBAAgBC,IAAAA,wCAAiC;QACvD,MAAMC,WAAW,IAAIC,gBAAQ,CAACC,IAAAA,kBAAW;QAEzC,OAAOC,IAAAA,kBAAS,EACZ;YACIC,YAAYC,cAAcL,UAAU;gBAAEL,OAAO,IAAI,CAACA,KAAK;YAAC;YACxDW,YAAYC,IAAAA,4BAAa,EAACP,UAAU;gBAAEQ,cAAc,IAAI,CAACA,YAAY;YAAC;QAC1E,GACAV,eACA;YAAEW,YAAYzC;YAAgB0C,OAAO;QAAM;IAEnD;IAnDA,YAAY,EAAEF,YAAY,EAAEb,KAAK,EAAQ,CAAE;QACvC,KAAK,CAAC;YAAEgB,MAAM;YAAuBC,QAAQ;YAAOjB;QAAM,IAH9D,uBAAiBa,gBAAjB,KAAA;QAII,IAAI,CAACA,YAAY,GAAGA;IACxB;AAiDJ;AAEA,SAASH,cAAcL,QAAkB,EAAE,EAAEL,KAAK,EAAuB;IACrE,MAAM,EAAEkB,MAAM,EAAEC,WAAW,EAAE,GAAGC,IAAAA,iBAAU;IAC1C,MAAMC,kBAAkB;IACxB,MAAMC,SAASjB,SAASkB,QAAQ,CAAC,WAAW;QACxCF;QACA;QACA;QACA;QACA;KACH;IAED,IAAI,CAACC,OAAOE,QAAQ,CAACH,kBAAkB;QACnCC,OAAOG,IAAI,CAACJ;IAChB;IAEA,OAAO;QACHK,YAAY;YAAC;YAAO;SAAO;QAC3BC,WAAW;YAACT;SAAO;QACnBI;QACAM,QAAQT;QACRU,mBAAmB;QACnB7B;IACJ;AACJ"}
|
package/dist/cli/tasks/task.d.ts
CHANGED
|
@@ -26,9 +26,10 @@ export interface TaskParameters {
|
|
|
26
26
|
export declare abstract class Task {
|
|
27
27
|
protected readonly watch: boolean;
|
|
28
28
|
protected readonly taskTimer: TaskTimer;
|
|
29
|
-
|
|
29
|
+
protected readonly name: string;
|
|
30
30
|
private readonly global;
|
|
31
31
|
constructor({ name, watch, global }: TaskParameters);
|
|
32
|
+
watchForParentExit(): void;
|
|
32
33
|
protected logCompletionResults({ measure, counter, }: {
|
|
33
34
|
measure: PerformanceMeasure;
|
|
34
35
|
counter: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../../src/cli/tasks/task.ts"],"names":[],"mappings":"AAEA,cAAM,SAAS;IAWC,OAAO,CAAC,QAAQ,CAAC,IAAI;IAVjC,OAAO,CAAC,OAAO,CAAK;IAEpB,OAAO,KAAK,eAAe,GAE1B;IAED,OAAO,KAAK,eAAe,GAE1B;gBAE4B,IAAI,EAAE,MAAM;IAIzC,KAAK;IAQL,GAAG;;;;IASH,MAAM;;;;IAeN,GAAG,CAAC,QAAQ,EAAE,MAAM;;;;CAOvB;AAED,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACnB;AAED,8BAAsB,IAAI;IACtB,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IAClC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IACxC,
|
|
1
|
+
{"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../../src/cli/tasks/task.ts"],"names":[],"mappings":"AAEA,cAAM,SAAS;IAWC,OAAO,CAAC,QAAQ,CAAC,IAAI;IAVjC,OAAO,CAAC,OAAO,CAAK;IAEpB,OAAO,KAAK,eAAe,GAE1B;IAED,OAAO,KAAK,eAAe,GAE1B;gBAE4B,IAAI,EAAE,MAAM;IAIzC,KAAK;IAQL,GAAG;;;;IASH,MAAM;;;;IAeN,GAAG,CAAC,QAAQ,EAAE,MAAM;;;;CAOvB;AAED,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACnB;AAED,8BAAsB,IAAI;IACtB,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IAClC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IACxC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;gBAErB,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,cAAc;IAQnD,kBAAkB,IAAI,IAAI;IAM1B,SAAS,CAAC,oBAAoB,CAAC,EAC3B,OAAO,EACP,OAAO,GACV,EAAE;QACC,OAAO,EAAE,kBAAkB,CAAC;QAC5B,OAAO,EAAE,MAAM,CAAC;KACnB;IAOD,OAAO,CAAC,gBAAgB;IAUxB,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CACpC"}
|
package/dist/cli/tasks/task.js
CHANGED
|
@@ -17,9 +17,7 @@ function _define_property(obj, key, value) {
|
|
|
17
17
|
configurable: true,
|
|
18
18
|
writable: true
|
|
19
19
|
});
|
|
20
|
-
} else
|
|
21
|
-
obj[key] = value;
|
|
22
|
-
}
|
|
20
|
+
} else obj[key] = value;
|
|
23
21
|
return obj;
|
|
24
22
|
}
|
|
25
23
|
class TaskTimer {
|
|
@@ -79,6 +77,11 @@ class TaskTimer {
|
|
|
79
77
|
}
|
|
80
78
|
}
|
|
81
79
|
class Task {
|
|
80
|
+
watchForParentExit() {
|
|
81
|
+
if (this.watch) {
|
|
82
|
+
(0, _utils.exitWhenParentExits)(this.name);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
82
85
|
logCompletionResults({ measure, counter }) {
|
|
83
86
|
const enumerator = counter === 0 ? 'Initial ' : 'Subsequent ';
|
|
84
87
|
_utils.log.info(`${this.watch ? enumerator : ''}${this.name} task completed in ${(0, _utils.formatDuration)(measure.duration)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/cli/tasks/task.ts"],"sourcesContent":["import { formatDuration, log, readJsonSafe } from '../../utils';\n\nclass TaskTimer {\n private counter = 0;\n\n private get currentMarkName() {\n return `${this.name}[${this.counter}]`;\n }\n\n private get currentMarkList() {\n return globalThis.performance.getEntriesByName(this.currentMarkName, 'mark');\n }\n\n constructor(private readonly name: string) {\n this.start();\n }\n\n start() {\n if (this.currentMarkList.length > 0) {\n this.cancel();\n }\n\n globalThis.performance.mark(this.currentMarkName);\n }\n\n end() {\n if (this.currentMarkList.length === 0) {\n throw new Error(`There are no tasks in progress for ${this.currentMarkName}`);\n }\n\n const measure = globalThis.performance.measure(this.currentMarkName, this.currentMarkName);\n return { measure, counter: this.counter++ };\n }\n\n cancel() {\n if (this.currentMarkList.length === 0) {\n throw new Error(`There are no tasks in progress for ${this.currentMarkName}`);\n }\n\n const measure = globalThis.performance.measure(this.currentMarkName, {\n start: this.currentMarkName,\n detail: {\n status: 'cancelled',\n },\n });\n\n return { measure, counter: this.counter++ };\n }\n\n add(duration: number) {\n const measure = globalThis.performance.measure(this.currentMarkName, {\n duration,\n end: globalThis.performance.now(),\n });\n return { measure, counter: this.counter++ };\n }\n}\n\nexport interface TaskParameters {\n name: string;\n watch?: boolean;\n global: boolean;\n}\n\nexport abstract class Task {\n protected readonly watch: boolean;\n protected readonly taskTimer: TaskTimer;\n
|
|
1
|
+
{"version":3,"sources":["../../../src/cli/tasks/task.ts"],"sourcesContent":["import { exitWhenParentExits, formatDuration, log, readJsonSafe } from '../../utils';\n\nclass TaskTimer {\n private counter = 0;\n\n private get currentMarkName() {\n return `${this.name}[${this.counter}]`;\n }\n\n private get currentMarkList() {\n return globalThis.performance.getEntriesByName(this.currentMarkName, 'mark');\n }\n\n constructor(private readonly name: string) {\n this.start();\n }\n\n start() {\n if (this.currentMarkList.length > 0) {\n this.cancel();\n }\n\n globalThis.performance.mark(this.currentMarkName);\n }\n\n end() {\n if (this.currentMarkList.length === 0) {\n throw new Error(`There are no tasks in progress for ${this.currentMarkName}`);\n }\n\n const measure = globalThis.performance.measure(this.currentMarkName, this.currentMarkName);\n return { measure, counter: this.counter++ };\n }\n\n cancel() {\n if (this.currentMarkList.length === 0) {\n throw new Error(`There are no tasks in progress for ${this.currentMarkName}`);\n }\n\n const measure = globalThis.performance.measure(this.currentMarkName, {\n start: this.currentMarkName,\n detail: {\n status: 'cancelled',\n },\n });\n\n return { measure, counter: this.counter++ };\n }\n\n add(duration: number) {\n const measure = globalThis.performance.measure(this.currentMarkName, {\n duration,\n end: globalThis.performance.now(),\n });\n return { measure, counter: this.counter++ };\n }\n}\n\nexport interface TaskParameters {\n name: string;\n watch?: boolean;\n global: boolean;\n}\n\nexport abstract class Task {\n protected readonly watch: boolean;\n protected readonly taskTimer: TaskTimer;\n protected readonly name: string;\n private readonly global: boolean;\n\n constructor({ name, watch, global }: TaskParameters) {\n this.name = name;\n this.watch = !!watch;\n this.global = global;\n this.taskTimer = new TaskTimer(name);\n this.checkRunLocation();\n }\n\n watchForParentExit(): void {\n if (this.watch) {\n exitWhenParentExits(this.name);\n }\n }\n\n protected logCompletionResults({\n measure,\n counter,\n }: {\n measure: PerformanceMeasure;\n counter: number;\n }) {\n const enumerator = counter === 0 ? 'Initial ' : 'Subsequent ';\n log.info(\n `${this.watch ? enumerator : ''}${this.name} task completed in ${formatDuration(measure.duration)}`\n );\n }\n\n private checkRunLocation() {\n const packageJson = readJsonSafe('package.json');\n if (!packageJson?.workspaces && this.global) {\n throw new Error(`Task ${this.name} has to run inside the workspace root directory`);\n }\n if ((!packageJson || packageJson.workspaces) && !this.global) {\n throw new Error(`Task ${this.name} has to run inside the package directory`);\n }\n }\n\n abstract execute(): Promise<void>;\n}\n"],"names":["Task","TaskTimer","currentMarkName","name","counter","currentMarkList","globalThis","performance","getEntriesByName","start","length","cancel","mark","end","Error","measure","detail","status","add","duration","now","watchForParentExit","watch","exitWhenParentExits","logCompletionResults","enumerator","log","info","formatDuration","checkRunLocation","packageJson","readJsonSafe","workspaces","global","taskTimer"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/cli/tasks/tsc-compile/tsc-compile.ts"],"sourcesContent":["import {\n getPackages,\n getPackagesGraph,\n getTsConfig,\n log,\n Package,\n PackageType,\n} from '../../../utils';\nimport { CliTask } from '../cli-task';\n\ninterface Args {\n ignore?: string | string[];\n scope?: string | string[];\n watch?: boolean;\n}\n\nexport class TscCompile extends CliTask {\n constructor(private readonly args: Args) {\n super({\n name: 'tsc-compile',\n watch: args.watch,\n global: true,\n indicators: {\n end: 'Watching for file changes.',\n watchStart: 'Starting incremental compilation.',\n },\n });\n }\n\n async execute() {\n const packages = getPackages({\n scope: this.args.scope,\n ignore: this.args.ignore,\n type: [PackageType.TSC, PackageType.Bundle],\n });\n\n const tsConfigs = collapsePackages(packages).map(({ location }) => getTsConfig(location));\n\n log.debug(\n 'tsc-compile',\n `${this.args.watch ? 'watching' : 'compiling'} ${tsConfigs.join(' ')}`\n );\n\n await this.runChildProcess(\n 'tsc',\n [\n '-b',\n this.watch ? '-w' : undefined,\n '--pretty',\n '--preserveWatchOutput',\n '--emitDeclarationOnly',\n ...tsConfigs,\n ].filter(i => i !== undefined)\n );\n }\n}\n\n/**\n * Exclude dependant packages as they will be built through project references\n */\nfunction collapsePackages(packages: Package[]) {\n const dependencies = new Set(\n Object.values(getPackagesGraph({ scope: packages.map(({ name }) => name) })).flat()\n );\n\n return packages.filter(({ name }) => !dependencies.has(name));\n}\n"],"names":["TscCompile","CliTask","execute","packages","getPackages","scope","args","ignore","type","PackageType","TSC","Bundle","tsConfigs","collapsePackages","map","location","getTsConfig","log","debug","watch","join","runChildProcess","undefined","filter","i","name","global","indicators","end","watchStart","dependencies","Set","Object","values","getPackagesGraph","flat","has"],"mappings":";;;;+BAgBaA;;;eAAAA;;;uBATN;yBACiB
|
|
1
|
+
{"version":3,"sources":["../../../../src/cli/tasks/tsc-compile/tsc-compile.ts"],"sourcesContent":["import {\n getPackages,\n getPackagesGraph,\n getTsConfig,\n log,\n Package,\n PackageType,\n} from '../../../utils';\nimport { CliTask } from '../cli-task';\n\ninterface Args {\n ignore?: string | string[];\n scope?: string | string[];\n watch?: boolean;\n}\n\nexport class TscCompile extends CliTask {\n constructor(private readonly args: Args) {\n super({\n name: 'tsc-compile',\n watch: args.watch,\n global: true,\n indicators: {\n end: 'Watching for file changes.',\n watchStart: 'Starting incremental compilation.',\n },\n });\n }\n\n async execute() {\n const packages = getPackages({\n scope: this.args.scope,\n ignore: this.args.ignore,\n type: [PackageType.TSC, PackageType.Bundle],\n });\n\n const tsConfigs = collapsePackages(packages).map(({ location }) => getTsConfig(location));\n\n log.debug(\n 'tsc-compile',\n `${this.args.watch ? 'watching' : 'compiling'} ${tsConfigs.join(' ')}`\n );\n\n await this.runChildProcess(\n 'tsc',\n [\n '-b',\n this.watch ? '-w' : undefined,\n '--pretty',\n '--preserveWatchOutput',\n '--emitDeclarationOnly',\n ...tsConfigs,\n ].filter(i => i !== undefined)\n );\n }\n}\n\n/**\n * Exclude dependant packages as they will be built through project references\n */\nfunction collapsePackages(packages: Package[]) {\n const dependencies = new Set(\n Object.values(getPackagesGraph({ scope: packages.map(({ name }) => name) })).flat()\n );\n\n return packages.filter(({ name }) => !dependencies.has(name));\n}\n"],"names":["TscCompile","CliTask","execute","packages","getPackages","scope","args","ignore","type","PackageType","TSC","Bundle","tsConfigs","collapsePackages","map","location","getTsConfig","log","debug","watch","join","runChildProcess","undefined","filter","i","name","global","indicators","end","watchStart","dependencies","Set","Object","values","getPackagesGraph","flat","has"],"mappings":";;;;+BAgBaA;;;eAAAA;;;uBATN;yBACiB;;;;;;;;;;;;AAQjB,MAAMA,mBAAmBC,gBAAO;IAanC,MAAMC,UAAU;QACZ,MAAMC,WAAWC,IAAAA,kBAAW,EAAC;YACzBC,OAAO,IAAI,CAACC,IAAI,CAACD,KAAK;YACtBE,QAAQ,IAAI,CAACD,IAAI,CAACC,MAAM;YACxBC,MAAM;gBAACC,kBAAW,CAACC,GAAG;gBAAED,kBAAW,CAACE,MAAM;aAAC;QAC/C;QAEA,MAAMC,YAAYC,iBAAiBV,UAAUW,GAAG,CAAC,CAAC,EAAEC,QAAQ,EAAE,GAAKC,IAAAA,kBAAW,EAACD;QAE/EE,UAAG,CAACC,KAAK,CACL,eACA,GAAG,IAAI,CAACZ,IAAI,CAACa,KAAK,GAAG,aAAa,YAAY,CAAC,EAAEP,UAAUQ,IAAI,CAAC,MAAM;QAG1E,MAAM,IAAI,CAACC,eAAe,CACtB,OACA;YACI;YACA,IAAI,CAACF,KAAK,GAAG,OAAOG;YACpB;YACA;YACA;eACGV;SACN,CAACW,MAAM,CAACC,CAAAA,IAAKA,MAAMF;IAE5B;IArCA,YAAY,AAAiBhB,IAAU,CAAE;QACrC,KAAK,CAAC;YACFmB,MAAM;YACNN,OAAOb,KAAKa,KAAK;YACjBO,QAAQ;YACRC,YAAY;gBACRC,KAAK;gBACLC,YAAY;YAChB;QACJ,iDATyBvB,OAAAA;IAU7B;AA4BJ;AAEA;;CAEC,GACD,SAASO,iBAAiBV,QAAmB;IACzC,MAAM2B,eAAe,IAAIC,IACrBC,OAAOC,MAAM,CAACC,IAAAA,uBAAgB,EAAC;QAAE7B,OAAOF,SAASW,GAAG,CAAC,CAAC,EAAEW,IAAI,EAAE,GAAKA;IAAM,IAAIU,IAAI;IAGrF,OAAOhC,SAASoB,MAAM,CAAC,CAAC,EAAEE,IAAI,EAAE,GAAK,CAACK,aAAaM,GAAG,CAACX;AAC3D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-npm.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/cli-npm.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli-npm.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/cli-npm.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,OAAO;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAID,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAWrF;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,EAAE,CAmB7F;AAED,wBAAgB,iBAAiB,WAOhC;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,iBAI/F;AAED,wBAAsB,UAAU,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,iBAE7E;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,iBAE7D;AAED,wBAAsB,aAAa,CAAC,EAChC,WAAW,EACX,cAAc,EACd,QAAQ,EACR,GAAG,GACN,EAAE;IACC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACf,iBAmBA;AAED,wBAAsB,YAAY,CAAC,EAC/B,WAAW,EACX,QAAQ,EACR,GAAG,GACN,EAAE;IACC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACf,iBAGA;AAED,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,wBAAgB,OAAO,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,8BAY5F"}
|
|
@@ -37,7 +37,9 @@ _export(exports, {
|
|
|
37
37
|
return npmView;
|
|
38
38
|
}
|
|
39
39
|
});
|
|
40
|
+
const _utils = require("../../utils");
|
|
40
41
|
const _clios = require("./cli-os");
|
|
42
|
+
const _withexponentialbackoff = require("./with-exponential-backoff");
|
|
41
43
|
const NPM_TIMEOUT = 10000;
|
|
42
44
|
function npmGetPackageVersions(registry, packageName) {
|
|
43
45
|
try {
|
|
@@ -101,7 +103,12 @@ async function npmPackageSet(key, value) {
|
|
|
101
103
|
await (0, _clios.runCommand)(`npm pkg set ${key}=${value}`);
|
|
102
104
|
}
|
|
103
105
|
async function npmTagVersion({ packageName, packageVersion, registry, tag }) {
|
|
104
|
-
|
|
106
|
+
/*
|
|
107
|
+
* Retrying with backoff because verdaccio's dist-tag write can briefly 404
|
|
108
|
+
* right after the version it targets was published (metadata propagation lag).
|
|
109
|
+
*/ await (0, _withexponentialbackoff.withExponentialBackoff)(()=>(0, _clios.runCommand)(`npm dist-tag ${registry ? `--registry=${registry} ` : ''}add ${packageName}@${packageVersion} ${tag}`), {
|
|
110
|
+
onRetry: (delay)=>_utils.log.warning(`Failed to tag ${packageName}@${packageVersion} with "${tag}", retrying in ${delay}ms...`)
|
|
111
|
+
});
|
|
105
112
|
}
|
|
106
113
|
async function npmRemoveTag({ packageName, registry, tag }) {
|
|
107
114
|
const registryFlag = registry ? `--registry=${registry} ` : '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/cli/utils/cli-npm.ts"],"sourcesContent":["import { runCommand, runCommandOutput } from './cli-os';\n\nexport interface Version {\n name: string;\n date: Date;\n tag?: string;\n}\n\nconst NPM_TIMEOUT = 10000;\n\nexport function npmGetPackageVersions(registry: string, packageName: string): string[] {\n try {\n const v = runCommandOutput(\n `npm show ${packageName} versions --registry ${registry} --json`,\n { timeout: NPM_TIMEOUT }\n );\n\n return JSON.parse(v);\n } catch {\n return [];\n }\n}\n\nexport function npmGetPackageVersionsDetails(registry: string, packageName: string): Version[] {\n try {\n const result = runCommandOutput(\n `npm view ${packageName} time dist-tags --registry ${registry} --json`,\n { timeout: NPM_TIMEOUT }\n );\n\n const { time, 'dist-tags': distTags } = JSON.parse(result);\n\n const tags = Object.fromEntries(\n Object.entries(distTags).map(([tag, version]) => [version, tag])\n );\n\n return Object.keys(time).reduce((out, version) => {\n return [...out, { name: version, date: new Date(time[version]), tag: tags[version] }];\n }, []);\n } catch {\n return [];\n }\n}\n\nexport function npmGetProjectRoot() {\n return runCommandOutput('npm prefix', {\n quiet: true,\n // ignore stderr because any error here is fundamental and will be repeated elsewhere\n stdio: ['inherit', 'pipe', 'ignore'],\n timeout: NPM_TIMEOUT,\n }).trim();\n}\n\nexport async function npmUnpublish(registry: string, packageName: string, packageVersion: string) {\n await runCommand(`npm unpublish ${packageName}@${packageVersion} --registry ${registry}`, {\n timeout: NPM_TIMEOUT,\n });\n}\n\nexport async function npmPublish({ dry, tag }: { dry?: boolean; tag?: string }) {\n await runCommand(['npm publish', !!tag && `--tag ${tag}`, !!dry && `--dry-run`]);\n}\n\nexport async function npmPackageSet(key: string, value: string) {\n await runCommand(`npm pkg set ${key}=${value}`);\n}\n\nexport async function npmTagVersion({\n packageName,\n packageVersion,\n registry,\n tag,\n}: {\n packageName: string;\n packageVersion: string;\n registry?: string;\n tag: string;\n}) {\n await runCommand(\n
|
|
1
|
+
{"version":3,"sources":["../../../src/cli/utils/cli-npm.ts"],"sourcesContent":["import { log } from '../../utils';\nimport { runCommand, runCommandOutput } from './cli-os';\nimport { withExponentialBackoff } from './with-exponential-backoff';\n\nexport interface Version {\n name: string;\n date: Date;\n tag?: string;\n}\n\nconst NPM_TIMEOUT = 10000;\n\nexport function npmGetPackageVersions(registry: string, packageName: string): string[] {\n try {\n const v = runCommandOutput(\n `npm show ${packageName} versions --registry ${registry} --json`,\n { timeout: NPM_TIMEOUT }\n );\n\n return JSON.parse(v);\n } catch {\n return [];\n }\n}\n\nexport function npmGetPackageVersionsDetails(registry: string, packageName: string): Version[] {\n try {\n const result = runCommandOutput(\n `npm view ${packageName} time dist-tags --registry ${registry} --json`,\n { timeout: NPM_TIMEOUT }\n );\n\n const { time, 'dist-tags': distTags } = JSON.parse(result);\n\n const tags = Object.fromEntries(\n Object.entries(distTags).map(([tag, version]) => [version, tag])\n );\n\n return Object.keys(time).reduce((out, version) => {\n return [...out, { name: version, date: new Date(time[version]), tag: tags[version] }];\n }, []);\n } catch {\n return [];\n }\n}\n\nexport function npmGetProjectRoot() {\n return runCommandOutput('npm prefix', {\n quiet: true,\n // ignore stderr because any error here is fundamental and will be repeated elsewhere\n stdio: ['inherit', 'pipe', 'ignore'],\n timeout: NPM_TIMEOUT,\n }).trim();\n}\n\nexport async function npmUnpublish(registry: string, packageName: string, packageVersion: string) {\n await runCommand(`npm unpublish ${packageName}@${packageVersion} --registry ${registry}`, {\n timeout: NPM_TIMEOUT,\n });\n}\n\nexport async function npmPublish({ dry, tag }: { dry?: boolean; tag?: string }) {\n await runCommand(['npm publish', !!tag && `--tag ${tag}`, !!dry && `--dry-run`]);\n}\n\nexport async function npmPackageSet(key: string, value: string) {\n await runCommand(`npm pkg set ${key}=${value}`);\n}\n\nexport async function npmTagVersion({\n packageName,\n packageVersion,\n registry,\n tag,\n}: {\n packageName: string;\n packageVersion: string;\n registry?: string;\n tag: string;\n}) {\n /*\n * Retrying with backoff because verdaccio's dist-tag write can briefly 404\n * right after the version it targets was published (metadata propagation lag).\n */\n await withExponentialBackoff(\n () =>\n runCommand(\n `npm dist-tag ${\n registry ? `--registry=${registry} ` : ''\n }add ${packageName}@${packageVersion} ${tag}`\n ),\n {\n onRetry: delay =>\n log.warning(\n `Failed to tag ${packageName}@${packageVersion} with \"${tag}\", retrying in ${delay}ms...`\n ),\n }\n );\n}\n\nexport async function npmRemoveTag({\n packageName,\n registry,\n tag,\n}: {\n packageName: string;\n registry?: string;\n tag: string;\n}) {\n const registryFlag = registry ? `--registry=${registry} ` : '';\n await runCommand(`npm dist-tag ${registryFlag}rm ${packageName} ${tag}`);\n}\n\nexport interface NPMPackageInfo {\n 'name': string;\n 'version': string;\n 'dist-tags'?: Record<string, string>;\n 'time'?: Record<string, string>;\n 'versions'?: string[];\n}\n\nexport function npmView({ packageName, registry }: { packageName: string; registry?: string }) {\n try {\n const result = runCommandOutput(\n ['npm', 'view', '--json', registry ? `--registry=${registry}` : '', packageName],\n { quiet: true, timeout: NPM_TIMEOUT }\n );\n if (result) {\n return JSON.parse(result) as NPMPackageInfo;\n }\n } catch {\n // ignore\n }\n}\n"],"names":["npmGetPackageVersions","npmGetPackageVersionsDetails","npmGetProjectRoot","npmPackageSet","npmPublish","npmRemoveTag","npmTagVersion","npmUnpublish","npmView","NPM_TIMEOUT","registry","packageName","v","runCommandOutput","timeout","JSON","parse","result","time","distTags","tags","Object","fromEntries","entries","map","tag","version","keys","reduce","out","name","date","Date","quiet","stdio","trim","packageVersion","runCommand","dry","key","value","withExponentialBackoff","onRetry","delay","log","warning","registryFlag"],"mappings":"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"}
|
|
@@ -7,5 +7,6 @@ type RunCommandOutputOptions = ExecSyncOptionsWithBufferEncoding & {
|
|
|
7
7
|
quiet?: boolean;
|
|
8
8
|
};
|
|
9
9
|
export declare function runCommandOutput(command: string | (string | false)[], { quiet, ...execSyncOptions }?: RunCommandOutputOptions): string;
|
|
10
|
+
export declare function killProcessTree(pid: number, signal?: NodeJS.Signals): void;
|
|
10
11
|
export {};
|
|
11
12
|
//# sourceMappingURL=cli-os.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-os.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/cli-os.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"cli-os.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/cli-os.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,iCAAiC,EAEjC,wBAAwB,EAC3B,MAAM,eAAe,CAAC;AAGvB,KAAK,iBAAiB,GAAG,wBAAwB,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAExE,wBAAsB,UAAU,CAC5B,OAAO,EAAE,MAAM,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,EACpC,EAAE,KAAK,EAAE,GAAG,YAAY,EAAE,GAAE,iBAAsB,iBAyCrD;AAED,KAAK,uBAAuB,GAAG,iCAAiC,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEvF,wBAAgB,gBAAgB,CAC5B,OAAO,EAAE,MAAM,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,EACpC,EAAE,KAAK,EAAE,GAAG,eAAe,EAAE,GAAE,uBAA4B,UAqB9D;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,OAAmB,QAW9E"}
|