@servicetitan/startup 38.0.0 → 38.2.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 +32 -10
- 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 +13 -0
- package/dist/cli/commands/command.d.ts.map +1 -0
- package/dist/cli/commands/command.js +74 -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.d.ts.map +1 -1
- package/dist/cli/commands/init.js +13 -5
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/commands/install.js +14 -21
- 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 -18
- 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/install.d.ts +0 -16
- package/dist/cli/commands/registry/install.d.ts.map +1 -1
- package/dist/cli/commands/registry/install.js +1 -17
- package/dist/cli/commands/registry/install.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/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 +37 -14
- 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-git.d.ts +7 -0
- package/dist/cli/utils/cli-git.d.ts.map +1 -1
- package/dist/cli/utils/cli-git.js +30 -0
- package/dist/cli/utils/cli-git.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 +7 -1
- package/dist/cli/utils/cli-os.d.ts.map +1 -1
- package/dist/cli/utils/cli-os.js +42 -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/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/webpack-final.d.ts.map +1 -1
- package/dist/storybook-config/webpack-final.js +2 -1
- package/dist/storybook-config/webpack-final.js.map +1 -1
- package/dist/telemetry/index.d.ts +3 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +21 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/telemetry/telemetry.d.ts +15 -0
- package/dist/telemetry/telemetry.d.ts.map +1 -0
- package/dist/telemetry/telemetry.js +176 -0
- package/dist/telemetry/telemetry.js.map +1 -0
- 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 +12 -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 +6 -2
- package/dist/vite/config/create-filtering-logger.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.js +1 -1
- 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/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/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 +17 -12
- 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 +32 -26
- package/src/cli/commands/__tests__/build.test.ts +81 -20
- package/src/cli/commands/__tests__/bundle-package.test.ts +65 -0
- package/src/cli/commands/__tests__/command.test.ts +154 -0
- package/src/cli/commands/__tests__/init.test.ts +1 -1
- package/src/cli/commands/__tests__/install.test.ts +5 -72
- 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 +77 -16
- package/src/cli/commands/build.ts +15 -6
- package/src/cli/commands/bundle-package.ts +20 -0
- package/src/cli/commands/command.ts +64 -0
- package/src/cli/commands/init.ts +0 -1
- package/src/cli/commands/install.ts +5 -21
- 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/install.ts +1 -6
- package/src/cli/commands/registry/start.ts +3 -2
- package/src/cli/commands/run-task.ts +8 -2
- package/src/cli/commands/start.ts +17 -6
- 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-git.test.ts +54 -3
- package/src/cli/utils/__tests__/cli-npm.test.ts +33 -0
- package/src/cli/utils/__tests__/cli-os.test.ts +183 -4
- 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-git.ts +27 -1
- package/src/cli/utils/cli-npm.ts +19 -4
- package/src/cli/utils/cli-os.ts +44 -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/storybook-config/__tests__/vite-final.test.ts +6 -0
- package/src/storybook-config/__tests__/webpack-final.test.ts +26 -12
- package/src/storybook-config/webpack-final.ts +10 -4
- package/src/telemetry/__tests__/telemetry.test.ts +326 -0
- package/src/telemetry/index.ts +2 -0
- package/src/telemetry/telemetry.ts +134 -0
- 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 +12 -4
- package/src/vite/config/__tests__/create-css-config.test.ts +2 -6
- package/src/vite/config/__tests__/create-filtering-logger.test.ts +3 -2
- package/src/vite/config/__tests__/create-vite-config.test.ts +6 -3
- package/src/vite/config/base-config.ts +13 -1
- package/src/vite/config/create-filtering-logger.ts +8 -2
- 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 +1 -1
- 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__/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 +1 -1
- 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/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/webpack/__tests__/bundle-webpack.test.ts +32 -0
- package/src/webpack/__tests__/create-webpack-config-shared-dependencies.test.ts +27 -1
- 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 +22 -11
- 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/registry/command-registry.ts"],"sourcesContent":["import { CommandName } from '../../../utils';\nimport { Command, CommandEntry, Newable } from '../types';\nimport { entry as build } from './build';\nimport { entry as bundleVite } from './bundle-vite';\nimport { entry as bundleWebpack } from './bundle-webpack';\nimport { entry as clean } from './clean';\nimport { entry as convertEslintConfig } from './convert-eslint-config';\nimport { entry as eslint } from './eslint';\nimport { entry as init } from './init';\nimport { entry as install } from './install';\nimport { entry as kendoUiLicense } from './kendo-ui-license';\nimport { entry as lint } from './lint';\nimport { entry as mfeCheck } from './mfe-check';\nimport { entry as mfeGenerateMetadata } from './mfe-generate-metadata';\nimport { entry as mfeList } from './mfe-list';\nimport { entry as mfePackageClean } from './mfe-package-clean';\nimport { entry as mfePackagePublish } from './mfe-package-publish';\nimport { entry as mfePackageRollback } from './mfe-package-rollback';\nimport { entry as mfePublish } from './mfe-publish';\nimport { entry as mfePurgeCache } from './mfe-purge-cache';\nimport { entry as preparePackage } from './prepare-package';\nimport { entry as review } from './review';\nimport { entry as start } from './start';\nimport { entry as stylelint } from './stylelint';\nimport { entry as stylesCheck } from './styles-check';\nimport { entry as task } from './task';\nimport { entry as test } from './test-command';\nimport { entry as uploadSourcemaps } from './upload-sourcemaps';\n\nexport interface CommandRegistryEntry extends CommandEntry {\n load: () => Promise<Newable<Command>>;\n}\n\nfunction toPascalCase(name: string): string {\n return name\n .split('-')\n .map(part => part[0].toUpperCase() + part.slice(1))\n .join('');\n}\n\ninterface MakeEntryOptions {\n path?: string;\n className?: string;\n}\n\nfunction makeEntry<K extends CommandName, T extends CommandEntry>(\n key: K,\n entry: T,\n options: MakeEntryOptions = {}\n) {\n const { path = key, className = toPascalCase(path) } = options;\n return {\n [key]: {\n ...entry,\n load: () => import(`../${path}`).then(m => m[className]),\n },\n } as { [k in K]: T & CommandRegistryEntry };\n}\n\n/*\n * Each makeEntry call returns a single-key object. Spreading them preserves the\n * per-command type information, as opposed to widening each value to the union\n * return type.\n */\nexport const commandRegistry = {\n ...makeEntry(CommandName.build, build),\n ...makeEntry(CommandName['bundle-vite'], bundleVite),\n ...makeEntry(CommandName['bundle-webpack'], bundleWebpack),\n ...makeEntry(CommandName.clean, clean),\n ...makeEntry(CommandName['convert-eslint-config'], convertEslintConfig),\n ...makeEntry(CommandName.eslint, eslint, { className: 'ESLintCommand' }),\n ...makeEntry(CommandName.init, init),\n ...makeEntry(CommandName.install, install),\n ...makeEntry(CommandName['kendo-ui-license'], kendoUiLicense, { className: 'KendoUILicense' }),\n ...makeEntry(CommandName.lint, lint),\n ...makeEntry(CommandName['mfe-check'], mfeCheck),\n ...makeEntry(CommandName['mfe-generate-metadata'], mfeGenerateMetadata),\n ...makeEntry(CommandName['mfe-list'], mfeList, { className: 'MFEList' }),\n ...makeEntry(CommandName['mfe-package-clean'], mfePackageClean, {\n className: 'MFEPackageClean',\n }),\n ...makeEntry(CommandName['mfe-package-publish'], mfePackagePublish, {\n className: 'MFEPackagePublish',\n }),\n ...makeEntry(CommandName['mfe-package-rollback'], mfePackageRollback, {\n className: 'MFEPackageRollback',\n }),\n ...makeEntry(CommandName['mfe-publish'], mfePublish, { className: 'MFEPublish' }),\n ...makeEntry(CommandName['mfe-purge-cache'], mfePurgeCache, {\n className: 'MFEPurgeCache',\n }),\n ...makeEntry(CommandName['prepare-package'], preparePackage),\n ...makeEntry(CommandName.review, review),\n ...makeEntry(CommandName.start, start),\n ...makeEntry(CommandName.stylelint, stylelint),\n ...makeEntry(CommandName['styles-check'], stylesCheck),\n ...makeEntry(CommandName.task, task, { path: 'run-task' }),\n ...makeEntry(CommandName.test, test, { className: 'Tests' }),\n ...makeEntry(CommandName['upload-sourcemaps'], uploadSourcemaps),\n} satisfies Record<CommandName, CommandRegistryEntry>;\n"],"names":["commandRegistry","toPascalCase","name","split","map","part","toUpperCase","slice","join","makeEntry","key","entry","options","path","className","load","then","m","CommandName","build","bundleVite","bundleWebpack","clean","convertEslintConfig","eslint","init","install","kendoUiLicense","lint","mfeCheck","mfeGenerateMetadata","mfeList","mfePackageClean","mfePackagePublish","mfePackageRollback","mfePublish","mfePurgeCache","preparePackage","review","start","stylelint","stylesCheck","task","test","uploadSourcemaps"],"mappings":";;;;+
|
|
1
|
+
{"version":3,"sources":["../../../../src/cli/commands/registry/command-registry.ts"],"sourcesContent":["import { CommandName } from '../../../utils';\nimport { Command, CommandEntry, Newable } from '../types';\nimport { entry as build } from './build';\nimport { entry as bundlePackage } from './bundle-package';\nimport { entry as bundleVite } from './bundle-vite';\nimport { entry as bundleWebpack } from './bundle-webpack';\nimport { entry as clean } from './clean';\nimport { entry as convertEslintConfig } from './convert-eslint-config';\nimport { entry as eslint } from './eslint';\nimport { entry as init } from './init';\nimport { entry as install } from './install';\nimport { entry as kendoUiLicense } from './kendo-ui-license';\nimport { entry as lint } from './lint';\nimport { entry as mfeCheck } from './mfe-check';\nimport { entry as mfeGenerateMetadata } from './mfe-generate-metadata';\nimport { entry as mfeList } from './mfe-list';\nimport { entry as mfePackageClean } from './mfe-package-clean';\nimport { entry as mfePackagePublish } from './mfe-package-publish';\nimport { entry as mfePackageRollback } from './mfe-package-rollback';\nimport { entry as mfePublish } from './mfe-publish';\nimport { entry as mfePurgeCache } from './mfe-purge-cache';\nimport { entry as preparePackage } from './prepare-package';\nimport { entry as review } from './review';\nimport { entry as start } from './start';\nimport { entry as stylelint } from './stylelint';\nimport { entry as stylesCheck } from './styles-check';\nimport { entry as task } from './task';\nimport { entry as test } from './test-command';\nimport { entry as uploadSourcemaps } from './upload-sourcemaps';\n\nexport interface CommandRegistryEntry extends CommandEntry {\n load: () => Promise<Newable<Command>>;\n}\n\nfunction toPascalCase(name: string): string {\n return name\n .split('-')\n .map(part => part[0].toUpperCase() + part.slice(1))\n .join('');\n}\n\ninterface MakeEntryOptions {\n path?: string;\n className?: string;\n}\n\nfunction makeEntry<K extends CommandName, T extends CommandEntry>(\n key: K,\n entry: T,\n options: MakeEntryOptions = {}\n) {\n const { path = key, className = toPascalCase(path) } = options;\n return {\n [key]: {\n ...entry,\n load: () => import(`../${path}`).then(m => m[className]),\n },\n } as { [k in K]: T & CommandRegistryEntry };\n}\n\n/*\n * Each makeEntry call returns a single-key object. Spreading them preserves the\n * per-command type information, as opposed to widening each value to the union\n * return type.\n */\nexport const commandRegistry = {\n ...makeEntry(CommandName.build, build),\n ...makeEntry(CommandName['bundle-package'], bundlePackage),\n ...makeEntry(CommandName['bundle-vite'], bundleVite),\n ...makeEntry(CommandName['bundle-webpack'], bundleWebpack),\n ...makeEntry(CommandName.clean, clean),\n ...makeEntry(CommandName['convert-eslint-config'], convertEslintConfig),\n ...makeEntry(CommandName.eslint, eslint, { className: 'ESLintCommand' }),\n ...makeEntry(CommandName.init, init),\n ...makeEntry(CommandName.install, install),\n ...makeEntry(CommandName['kendo-ui-license'], kendoUiLicense, { className: 'KendoUILicense' }),\n ...makeEntry(CommandName.lint, lint),\n ...makeEntry(CommandName['mfe-check'], mfeCheck),\n ...makeEntry(CommandName['mfe-generate-metadata'], mfeGenerateMetadata),\n ...makeEntry(CommandName['mfe-list'], mfeList, { className: 'MFEList' }),\n ...makeEntry(CommandName['mfe-package-clean'], mfePackageClean, {\n className: 'MFEPackageClean',\n }),\n ...makeEntry(CommandName['mfe-package-publish'], mfePackagePublish, {\n className: 'MFEPackagePublish',\n }),\n ...makeEntry(CommandName['mfe-package-rollback'], mfePackageRollback, {\n className: 'MFEPackageRollback',\n }),\n ...makeEntry(CommandName['mfe-publish'], mfePublish, { className: 'MFEPublish' }),\n ...makeEntry(CommandName['mfe-purge-cache'], mfePurgeCache, {\n className: 'MFEPurgeCache',\n }),\n ...makeEntry(CommandName['prepare-package'], preparePackage),\n ...makeEntry(CommandName.review, review),\n ...makeEntry(CommandName.start, start),\n ...makeEntry(CommandName.stylelint, stylelint),\n ...makeEntry(CommandName['styles-check'], stylesCheck),\n ...makeEntry(CommandName.task, task, { path: 'run-task' }),\n ...makeEntry(CommandName.test, test, { className: 'Tests' }),\n ...makeEntry(CommandName['upload-sourcemaps'], uploadSourcemaps),\n} satisfies Record<CommandName, CommandRegistryEntry>;\n"],"names":["commandRegistry","toPascalCase","name","split","map","part","toUpperCase","slice","join","makeEntry","key","entry","options","path","className","load","then","m","CommandName","build","bundlePackage","bundleVite","bundleWebpack","clean","convertEslintConfig","eslint","init","install","kendoUiLicense","lint","mfeCheck","mfeGenerateMetadata","mfeList","mfePackageClean","mfePackagePublish","mfePackageRollback","mfePublish","mfePurgeCache","preparePackage","review","start","stylelint","stylesCheck","task","test","uploadSourcemaps"],"mappings":";;;;+BAiEaA;;;eAAAA;;;uBAjEe;uBAEG;+BACQ;4BACH;+BACG;uBACR;qCACc;wBACb;sBACF;yBACG;gCACO;sBACV;0BACI;qCACW;yBACZ;iCACQ;mCACE;oCACC;4BACR;+BACG;gCACC;wBACR;uBACD;2BACI;6BACE;sBACP;6BACA;kCACY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAM1C,SAASC,aAAaC,IAAY;IAC9B,OAAOA,KACFC,KAAK,CAAC,KACNC,GAAG,CAACC,CAAAA,OAAQA,IAAI,CAAC,EAAE,CAACC,WAAW,KAAKD,KAAKE,KAAK,CAAC,IAC/CC,IAAI,CAAC;AACd;AAOA,SAASC,UACLC,GAAM,EACNC,KAAQ,EACRC,UAA4B,CAAC,CAAC;IAE9B,MAAM,EAAEC,OAAOH,GAAG,EAAEI,YAAYb,aAAaY,KAAK,EAAE,GAAGD;IACvD,OAAO;QACH,CAACF,IAAI,EAAE;YACH,GAAGC,KAAK;YACRI,MAAM,IAAM,gBAAO,CAAC,GAAG,EAAEF,MAAM,oDAAnB,aAAqBG,IAAI,CAACC,CAAAA,IAAKA,CAAC,CAACH,UAAU;QAC3D;IACJ;AACJ;AAOO,MAAMd,kBAAkB;IAC3B,GAAGS,UAAUS,kBAAW,CAACC,KAAK,EAAEA,YAAK,CAAC;IACtC,GAAGV,UAAUS,kBAAW,CAAC,iBAAiB,EAAEE,oBAAa,CAAC;IAC1D,GAAGX,UAAUS,kBAAW,CAAC,cAAc,EAAEG,iBAAU,CAAC;IACpD,GAAGZ,UAAUS,kBAAW,CAAC,iBAAiB,EAAEI,oBAAa,CAAC;IAC1D,GAAGb,UAAUS,kBAAW,CAACK,KAAK,EAAEA,YAAK,CAAC;IACtC,GAAGd,UAAUS,kBAAW,CAAC,wBAAwB,EAAEM,0BAAmB,CAAC;IACvE,GAAGf,UAAUS,kBAAW,CAACO,MAAM,EAAEA,aAAM,EAAE;QAAEX,WAAW;IAAgB,EAAE;IACxE,GAAGL,UAAUS,kBAAW,CAACQ,IAAI,EAAEA,WAAI,CAAC;IACpC,GAAGjB,UAAUS,kBAAW,CAACS,OAAO,EAAEA,cAAO,CAAC;IAC1C,GAAGlB,UAAUS,kBAAW,CAAC,mBAAmB,EAAEU,qBAAc,EAAE;QAAEd,WAAW;IAAiB,EAAE;IAC9F,GAAGL,UAAUS,kBAAW,CAACW,IAAI,EAAEA,WAAI,CAAC;IACpC,GAAGpB,UAAUS,kBAAW,CAAC,YAAY,EAAEY,eAAQ,CAAC;IAChD,GAAGrB,UAAUS,kBAAW,CAAC,wBAAwB,EAAEa,0BAAmB,CAAC;IACvE,GAAGtB,UAAUS,kBAAW,CAAC,WAAW,EAAEc,cAAO,EAAE;QAAElB,WAAW;IAAU,EAAE;IACxE,GAAGL,UAAUS,kBAAW,CAAC,oBAAoB,EAAEe,sBAAe,EAAE;QAC5DnB,WAAW;IACf,EAAE;IACF,GAAGL,UAAUS,kBAAW,CAAC,sBAAsB,EAAEgB,wBAAiB,EAAE;QAChEpB,WAAW;IACf,EAAE;IACF,GAAGL,UAAUS,kBAAW,CAAC,uBAAuB,EAAEiB,yBAAkB,EAAE;QAClErB,WAAW;IACf,EAAE;IACF,GAAGL,UAAUS,kBAAW,CAAC,cAAc,EAAEkB,iBAAU,EAAE;QAAEtB,WAAW;IAAa,EAAE;IACjF,GAAGL,UAAUS,kBAAW,CAAC,kBAAkB,EAAEmB,oBAAa,EAAE;QACxDvB,WAAW;IACf,EAAE;IACF,GAAGL,UAAUS,kBAAW,CAAC,kBAAkB,EAAEoB,qBAAc,CAAC;IAC5D,GAAG7B,UAAUS,kBAAW,CAACqB,MAAM,EAAEA,aAAM,CAAC;IACxC,GAAG9B,UAAUS,kBAAW,CAACsB,KAAK,EAAEA,YAAK,CAAC;IACtC,GAAG/B,UAAUS,kBAAW,CAACuB,SAAS,EAAEA,gBAAS,CAAC;IAC9C,GAAGhC,UAAUS,kBAAW,CAAC,eAAe,EAAEwB,kBAAW,CAAC;IACtD,GAAGjC,UAAUS,kBAAW,CAACyB,IAAI,EAAEA,WAAI,EAAE;QAAE9B,MAAM;IAAW,EAAE;IAC1D,GAAGJ,UAAUS,kBAAW,CAAC0B,IAAI,EAAEA,kBAAI,EAAE;QAAE9B,WAAW;IAAQ,EAAE;IAC5D,GAAGL,UAAUS,kBAAW,CAAC,oBAAoB,EAAE2B,uBAAgB,CAAC;AACpE"}
|
|
@@ -1,21 +1,5 @@
|
|
|
1
1
|
export declare const entry: {
|
|
2
2
|
allowRunFromGlobal: true;
|
|
3
3
|
description: string;
|
|
4
|
-
options: {
|
|
5
|
-
fix: {
|
|
6
|
-
boolean: true;
|
|
7
|
-
description: string;
|
|
8
|
-
hidden: true;
|
|
9
|
-
};
|
|
10
|
-
quiet: {
|
|
11
|
-
boolean: true;
|
|
12
|
-
description: string;
|
|
13
|
-
hidden: true;
|
|
14
|
-
};
|
|
15
|
-
token: {
|
|
16
|
-
boolean: true;
|
|
17
|
-
description: string;
|
|
18
|
-
};
|
|
19
|
-
};
|
|
20
4
|
};
|
|
21
5
|
//# sourceMappingURL=install.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/registry/install.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,KAAK
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/registry/install.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,KAAK;;;CAGO,CAAC"}
|
|
@@ -11,23 +11,7 @@ Object.defineProperty(exports, "entry", {
|
|
|
11
11
|
const _defineentry = require("./define-entry");
|
|
12
12
|
const entry = (0, _defineentry.defineEntry)({
|
|
13
13
|
allowRunFromGlobal: true,
|
|
14
|
-
description: '
|
|
15
|
-
options: {
|
|
16
|
-
fix: {
|
|
17
|
-
boolean: true,
|
|
18
|
-
description: 'Update and dedupe package-lock.json',
|
|
19
|
-
hidden: true
|
|
20
|
-
},
|
|
21
|
-
quiet: {
|
|
22
|
-
boolean: true,
|
|
23
|
-
description: 'Suppress output',
|
|
24
|
-
hidden: true
|
|
25
|
-
},
|
|
26
|
-
token: {
|
|
27
|
-
boolean: true,
|
|
28
|
-
description: 'Configure npm token'
|
|
29
|
-
}
|
|
30
|
-
}
|
|
14
|
+
description: 'Removed. Run `npx --yes @servicetitan/install` directly instead.'
|
|
31
15
|
});
|
|
32
16
|
|
|
33
17
|
//# sourceMappingURL=install.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/cli/commands/registry/install.ts"],"sourcesContent":["import type { CommandEntry } from '../types';\nimport { defineEntry } from './define-entry';\n\nexport const entry = defineEntry({\n allowRunFromGlobal: true,\n description: '
|
|
1
|
+
{"version":3,"sources":["../../../../src/cli/commands/registry/install.ts"],"sourcesContent":["import type { CommandEntry } from '../types';\nimport { defineEntry } from './define-entry';\n\nexport const entry = defineEntry({\n allowRunFromGlobal: true,\n description: 'Removed. Run `npx --yes @servicetitan/install` directly instead.',\n} satisfies CommandEntry);\n"],"names":["entry","defineEntry","allowRunFromGlobal","description"],"mappings":";;;;+BAGaA;;;eAAAA;;;6BAFe;AAErB,MAAMA,QAAQC,IAAAA,wBAAW,EAAC;IAC7BC,oBAAoB;IACpBC,aAAa;AACjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/registry/start.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/registry/start.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgBO,CAAC"}
|
|
@@ -8,18 +8,16 @@ Object.defineProperty(exports, "entry", {
|
|
|
8
8
|
return entry;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
+
const _core = require("../../../core");
|
|
11
12
|
const _defineentry = require("./define-entry");
|
|
12
13
|
const entry = (0, _defineentry.defineEntry)({
|
|
13
14
|
description: 'Run project in development mode',
|
|
14
15
|
greedy: true,
|
|
15
16
|
options: {
|
|
16
17
|
bundler: {
|
|
17
|
-
choices:
|
|
18
|
-
'vite',
|
|
19
|
-
'webpack'
|
|
20
|
-
],
|
|
18
|
+
choices: _core.bundleConstants.bundlers,
|
|
21
19
|
description: 'Bundler',
|
|
22
|
-
defaultDescription:
|
|
20
|
+
defaultDescription: _core.bundleConstants.defaultBundler
|
|
23
21
|
},
|
|
24
22
|
codeCoverage: {
|
|
25
23
|
boolean: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/cli/commands/registry/start.ts"],"sourcesContent":["import type { CommandEntry } from '../types';\nimport { defineEntry } from './define-entry';\n\nexport const entry = defineEntry({\n description: 'Run project in development mode',\n greedy: true,\n options: {\n bundler: {\n choices:
|
|
1
|
+
{"version":3,"sources":["../../../../src/cli/commands/registry/start.ts"],"sourcesContent":["import { bundleConstants } from '../../../core';\nimport type { CommandEntry } from '../types';\nimport { defineEntry } from './define-entry';\n\nexport const entry = defineEntry({\n description: 'Run project in development mode',\n greedy: true,\n options: {\n bundler: {\n choices: bundleConstants.bundlers,\n description: 'Bundler',\n defaultDescription: bundleConstants.defaultBundler,\n },\n codeCoverage: { boolean: true, description: 'Instrument code for coverage analysis?' },\n config: { string: true, hidden: true, description: 'Use specified configuration' },\n ignore: { array: true, string: true, description: 'Packages to skip' },\n scope: { array: true, string: true, description: 'Packages to run and watch' },\n useTsc: { boolean: true, description: 'Use tsc to compile packages?' },\n useVite: { boolean: true, hidden: true, description: 'Deprecated: use --bundler=vite' },\n },\n} satisfies CommandEntry);\n"],"names":["entry","defineEntry","description","greedy","options","bundler","choices","bundleConstants","bundlers","defaultDescription","defaultBundler","codeCoverage","boolean","config","string","hidden","ignore","array","scope","useTsc","useVite"],"mappings":";;;;+BAIaA;;;eAAAA;;;sBAJmB;6BAEJ;AAErB,MAAMA,QAAQC,IAAAA,wBAAW,EAAC;IAC7BC,aAAa;IACbC,QAAQ;IACRC,SAAS;QACLC,SAAS;YACLC,SAASC,qBAAe,CAACC,QAAQ;YACjCN,aAAa;YACbO,oBAAoBF,qBAAe,CAACG,cAAc;QACtD;QACAC,cAAc;YAAEC,SAAS;YAAMV,aAAa;QAAyC;QACrFW,QAAQ;YAAEC,QAAQ;YAAMC,QAAQ;YAAMb,aAAa;QAA8B;QACjFc,QAAQ;YAAEC,OAAO;YAAMH,QAAQ;YAAMZ,aAAa;QAAmB;QACrEgB,OAAO;YAAED,OAAO;YAAMH,QAAQ;YAAMZ,aAAa;QAA4B;QAC7EiB,QAAQ;YAAEP,SAAS;YAAMV,aAAa;QAA+B;QACrEkB,SAAS;YAAER,SAAS;YAAMG,QAAQ;YAAMb,aAAa;QAAiC;IAC1F;AACJ"}
|
|
@@ -24,9 +24,7 @@ function _define_property(obj, key, value) {
|
|
|
24
24
|
configurable: true,
|
|
25
25
|
writable: true
|
|
26
26
|
});
|
|
27
|
-
} else
|
|
28
|
-
obj[key] = value;
|
|
29
|
-
}
|
|
27
|
+
} else obj[key] = value;
|
|
30
28
|
return obj;
|
|
31
29
|
}
|
|
32
30
|
function _interop_require_default(obj) {
|
|
@@ -36,12 +34,21 @@ function _interop_require_default(obj) {
|
|
|
36
34
|
}
|
|
37
35
|
function _ts_decorate(decorators, target, key, desc) {
|
|
38
36
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
39
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
40
|
-
|
|
37
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
|
|
38
|
+
r = Reflect.decorate(decorators, target, key, desc);
|
|
39
|
+
} else {
|
|
40
|
+
for(var i = decorators.length - 1; i >= 0; i--){
|
|
41
|
+
if (d = decorators[i]) {
|
|
42
|
+
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
41
46
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
42
47
|
}
|
|
43
|
-
function _ts_metadata(
|
|
44
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
48
|
+
function _ts_metadata(metadataKey, metadataValue) {
|
|
49
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
|
|
50
|
+
return Reflect.metadata(metadataKey, metadataValue);
|
|
51
|
+
}
|
|
45
52
|
}
|
|
46
53
|
const collator = new Intl.Collator();
|
|
47
54
|
class Review extends _types.Command {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/cli/commands/review/review.ts"],"sourcesContent":["import { getPackageManager } from '@servicetitan/install';\nimport chalk from 'chalk';\nimport terminalLink from 'terminal-link';\nimport {\n findPackages,\n getReviewConfiguration,\n log,\n logErrors,\n readJsonSafe,\n toArray,\n} from '../../../utils';\nimport type { entry } from '../registry/review';\nimport { Command } from '../types';\nimport { rules } from './rules';\nimport {\n ErrorSeverity,\n FixCategory,\n Level,\n Package,\n PackageError,\n PackageRule,\n Project,\n RuleConfiguration,\n} from './types';\nimport {\n collateDependencies,\n ErrorSummary,\n formatLocation,\n indent,\n pluralize,\n summarize,\n} from './utils';\n\nconst collator = new Intl.Collator();\n\nexport class Review extends Command<typeof entry> {\n private readonly severityToLabel: Record<ErrorSeverity, string> = {\n [ErrorSeverity.warning]: chalk.yellow('warning'),\n [ErrorSeverity.error]: chalk.red('error'),\n };\n\n private readonly levelToSeverity: Partial<Record<Level, ErrorSeverity>> = {\n warn: ErrorSeverity.warning,\n error: ErrorSeverity.error,\n };\n\n @logErrors\n async execute() {\n const errors = this.args.fix ? this.fixErrors() : this.findErrors();\n const summary = this.reportErrors(errors);\n return summary.error > 0 ? Promise.reject() : Promise.resolve();\n }\n\n private createProject(): Project {\n const root = readJsonSafe('package.json');\n if (!root?.workspaces) {\n throw new Error('this command must be run from the workspace root directory');\n }\n\n const packageManager = getPackageManager();\n if (!packageManager.hasValidLockFile()) {\n throw new Error(`missing or invalid lock file: ${packageManager.lockFileName}`);\n }\n\n root.location = '.'; // identifies the root package.json for rules that care\n\n const config = getReviewConfiguration();\n const packages: Package[] = [root, ...findPackages()];\n const dependencies = sortByKey(collateDependencies(packages));\n this.debug('review:packages', packages);\n this.debug('review:dependencies', dependencies);\n\n return {\n config,\n dependencies,\n packageManager,\n packages,\n };\n }\n\n private debug(namespace: string, data: any) {\n /* istanbul ignore next: debug only */\n log.debug(namespace, () => data && JSON.stringify(data, null, 2));\n }\n\n private findErrors(project?: Project) {\n const errors = this.runRules(project ?? this.createProject());\n this.debug('review:errors', errors);\n return errors;\n }\n\n private fixErrors() {\n const rulesById = rules.reduce<Record<string, PackageRule>>((result, rule) => {\n result[rule.id] = rule;\n return result;\n }, {});\n\n let project = this.createProject();\n let errors = this.findErrors(project);\n let totalFixed = 0;\n\n for (const category of [FixCategory.isolated, FixCategory.normal, FixCategory.lockFile]) {\n const fixable = errors.filter(({ fixable }) => fixable === category);\n if (fixable.length === 0) {\n continue;\n }\n\n fixable.forEach(error => {\n const rule = rulesById[error.id];\n if (rule.fix) {\n log.text(`Fixing ${this.formatError({ ...error, details: '', location: '' })}`);\n rule.fix(error, project);\n totalFixed += 1;\n }\n });\n\n project.packageManager.installPackages({ fix: true }, { stdio: 'inherit' });\n project = this.createProject();\n errors = this.findErrors(project);\n }\n\n if (totalFixed > 0) {\n let summary = `Fixed ${pluralize(totalFixed, 'problem')}`;\n if (errors.length) {\n summary = `${summary}, ${pluralize(errors.length, 'problem remains', 'problems remain')}:\\n`;\n }\n log.info(summary);\n }\n\n return errors;\n }\n\n private formatError(error: PackageError) {\n const { location, message, severity = ErrorSeverity.error } = error;\n\n const label = indent(this.severityToLabel[severity], location ? 1 : 0);\n const details = error.details ? `\\n${indent(error.details, location ? 2 : 1)}` : '';\n const link = this.getLink(error);\n\n return `${label} ${message} ${link}${details}`;\n }\n\n private reportErrors(errors: PackageError[]) {\n let prevLocation: string | undefined;\n\n errors.forEach((error, index) => {\n const { location } = error;\n if (index > 0 && (!location || location !== prevLocation)) {\n log.text('');\n }\n if (location && location !== prevLocation) {\n log.text(chalk.underline(formatLocation(location)));\n prevLocation = location;\n }\n log.text(this.formatError(error));\n });\n\n const summary = summarize(errors);\n this.reportSummary(summary);\n return summary;\n }\n\n private reportSummary({ error, warning, fixable }: ErrorSummary) {\n if (error + warning === 0) {\n return log.success('0 problems');\n }\n\n log.text('');\n\n const severity = error ? 'error' : 'warning';\n log[severity](\n `${pluralize(error + warning, 'problem')} (${pluralize(error, 'error')}, ${pluralize(warning, 'warning')})`\n );\n\n if (fixable.error + fixable.warning > 0) {\n log[severity](\n `${pluralize(fixable.error, 'error')} and ${pluralize(fixable.warning, 'warning')} potentially fixable with --fix option`\n );\n }\n }\n\n private runRules(project: Project): PackageError[] {\n const selected = this.getSelectedRules();\n return rules\n .filter(({ id }) => !selected || selected.has(id))\n .flatMap(rule => this.runRule(rule, project))\n .filter(error => !!error)\n .sort(compareError);\n }\n\n private runRule(rule: PackageRule, project: Project) {\n const level = this.getLevel(project.config.rules?.[rule.id]);\n if (level === 'off') {\n return;\n }\n\n return this.transform(rule.run(project), level);\n }\n\n private transform(errors?: PackageError | PackageError[], level?: 'error' | 'warn') {\n const severity = level && this.levelToSeverity[level];\n return errors && severity ? toArray(errors).map(error => ({ ...error, severity })) : errors;\n }\n\n private getLevel(config?: RuleConfiguration) {\n if (typeof config === 'string') {\n return config;\n }\n if (Array.isArray(config) && typeof config[0] === 'string') {\n return config[0];\n }\n }\n\n private getLink({ id }: PackageError) {\n const url = `https://docs.st.dev/docs/frontend/uikit/startup/review#${id}`;\n return chalk.dim(terminalLink(id, url));\n }\n\n private getSelectedRules() {\n const rule = this.args.rule;\n return rule ? new Set(rule.filter(id => !!id)) : undefined;\n }\n}\n\nfunction compareError(\n { location: locationA = '', severity: severityA = ErrorSeverity.error }: PackageError,\n { location: locationB = '', severity: severityB = ErrorSeverity.error }: PackageError\n) {\n return locationA === locationB ? severityA - severityB : collator.compare(locationA, locationB);\n}\n\nfunction sortByKey<T>(obj: Record<string, T>): Record<string, T> {\n return Object.fromEntries(Object.entries(obj).sort(([a], [b]) => collator.compare(a, b)));\n}\n"],"names":["Review","collator","Intl","Collator","Command","execute","errors","args","fix","fixErrors","findErrors","summary","reportErrors","error","Promise","reject","resolve","createProject","root","readJsonSafe","workspaces","Error","packageManager","getPackageManager","hasValidLockFile","lockFileName","location","config","getReviewConfiguration","packages","findPackages","dependencies","sortByKey","collateDependencies","debug","namespace","data","log","JSON","stringify","project","runRules","rulesById","rules","reduce","result","rule","id","totalFixed","category","FixCategory","isolated","normal","lockFile","fixable","filter","length","forEach","text","formatError","details","installPackages","stdio","pluralize","info","message","severity","ErrorSeverity","label","indent","severityToLabel","link","getLink","prevLocation","index","chalk","underline","formatLocation","summarize","reportSummary","warning","success","selected","getSelectedRules","has","flatMap","runRule","sort","compareError","level","getLevel","transform","run","levelToSeverity","toArray","map","Array","isArray","url","dim","terminalLink","Set","undefined","yellow","red","warn","locationA","severityA","locationB","severityB","compare","obj","Object","fromEntries","entries","a","b"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/cli/commands/review/review.ts"],"sourcesContent":["import { getPackageManager } from '@servicetitan/install';\nimport chalk from 'chalk';\nimport terminalLink from 'terminal-link';\nimport {\n findPackages,\n getReviewConfiguration,\n log,\n logErrors,\n readJsonSafe,\n toArray,\n} from '../../../utils';\nimport type { entry } from '../registry/review';\nimport { Command } from '../types';\nimport { rules } from './rules';\nimport {\n ErrorSeverity,\n FixCategory,\n Level,\n Package,\n PackageError,\n PackageRule,\n Project,\n RuleConfiguration,\n} from './types';\nimport {\n collateDependencies,\n ErrorSummary,\n formatLocation,\n indent,\n pluralize,\n summarize,\n} from './utils';\n\nconst collator = new Intl.Collator();\n\nexport class Review extends Command<typeof entry> {\n private readonly severityToLabel: Record<ErrorSeverity, string> = {\n [ErrorSeverity.warning]: chalk.yellow('warning'),\n [ErrorSeverity.error]: chalk.red('error'),\n };\n\n private readonly levelToSeverity: Partial<Record<Level, ErrorSeverity>> = {\n warn: ErrorSeverity.warning,\n error: ErrorSeverity.error,\n };\n\n @logErrors\n async execute() {\n const errors = this.args.fix ? this.fixErrors() : this.findErrors();\n const summary = this.reportErrors(errors);\n return summary.error > 0 ? Promise.reject() : Promise.resolve();\n }\n\n private createProject(): Project {\n const root = readJsonSafe('package.json');\n if (!root?.workspaces) {\n throw new Error('this command must be run from the workspace root directory');\n }\n\n const packageManager = getPackageManager();\n if (!packageManager.hasValidLockFile()) {\n throw new Error(`missing or invalid lock file: ${packageManager.lockFileName}`);\n }\n\n root.location = '.'; // identifies the root package.json for rules that care\n\n const config = getReviewConfiguration();\n const packages: Package[] = [root, ...findPackages()];\n const dependencies = sortByKey(collateDependencies(packages));\n this.debug('review:packages', packages);\n this.debug('review:dependencies', dependencies);\n\n return {\n config,\n dependencies,\n packageManager,\n packages,\n };\n }\n\n private debug(namespace: string, data: any) {\n /* istanbul ignore next: debug only */\n log.debug(namespace, () => data && JSON.stringify(data, null, 2));\n }\n\n private findErrors(project?: Project) {\n const errors = this.runRules(project ?? this.createProject());\n this.debug('review:errors', errors);\n return errors;\n }\n\n private fixErrors() {\n const rulesById = rules.reduce<Record<string, PackageRule>>((result, rule) => {\n result[rule.id] = rule;\n return result;\n }, {});\n\n let project = this.createProject();\n let errors = this.findErrors(project);\n let totalFixed = 0;\n\n for (const category of [FixCategory.isolated, FixCategory.normal, FixCategory.lockFile]) {\n const fixable = errors.filter(({ fixable }) => fixable === category);\n if (fixable.length === 0) {\n continue;\n }\n\n fixable.forEach(error => {\n const rule = rulesById[error.id];\n if (rule.fix) {\n log.text(`Fixing ${this.formatError({ ...error, details: '', location: '' })}`);\n rule.fix(error, project);\n totalFixed += 1;\n }\n });\n\n project.packageManager.installPackages({ fix: true }, { stdio: 'inherit' });\n project = this.createProject();\n errors = this.findErrors(project);\n }\n\n if (totalFixed > 0) {\n let summary = `Fixed ${pluralize(totalFixed, 'problem')}`;\n if (errors.length) {\n summary = `${summary}, ${pluralize(errors.length, 'problem remains', 'problems remain')}:\\n`;\n }\n log.info(summary);\n }\n\n return errors;\n }\n\n private formatError(error: PackageError) {\n const { location, message, severity = ErrorSeverity.error } = error;\n\n const label = indent(this.severityToLabel[severity], location ? 1 : 0);\n const details = error.details ? `\\n${indent(error.details, location ? 2 : 1)}` : '';\n const link = this.getLink(error);\n\n return `${label} ${message} ${link}${details}`;\n }\n\n private reportErrors(errors: PackageError[]) {\n let prevLocation: string | undefined;\n\n errors.forEach((error, index) => {\n const { location } = error;\n if (index > 0 && (!location || location !== prevLocation)) {\n log.text('');\n }\n if (location && location !== prevLocation) {\n log.text(chalk.underline(formatLocation(location)));\n prevLocation = location;\n }\n log.text(this.formatError(error));\n });\n\n const summary = summarize(errors);\n this.reportSummary(summary);\n return summary;\n }\n\n private reportSummary({ error, warning, fixable }: ErrorSummary) {\n if (error + warning === 0) {\n return log.success('0 problems');\n }\n\n log.text('');\n\n const severity = error ? 'error' : 'warning';\n log[severity](\n `${pluralize(error + warning, 'problem')} (${pluralize(error, 'error')}, ${pluralize(warning, 'warning')})`\n );\n\n if (fixable.error + fixable.warning > 0) {\n log[severity](\n `${pluralize(fixable.error, 'error')} and ${pluralize(fixable.warning, 'warning')} potentially fixable with --fix option`\n );\n }\n }\n\n private runRules(project: Project): PackageError[] {\n const selected = this.getSelectedRules();\n return rules\n .filter(({ id }) => !selected || selected.has(id))\n .flatMap(rule => this.runRule(rule, project))\n .filter(error => !!error)\n .sort(compareError);\n }\n\n private runRule(rule: PackageRule, project: Project) {\n const level = this.getLevel(project.config.rules?.[rule.id]);\n if (level === 'off') {\n return;\n }\n\n return this.transform(rule.run(project), level);\n }\n\n private transform(errors?: PackageError | PackageError[], level?: 'error' | 'warn') {\n const severity = level && this.levelToSeverity[level];\n return errors && severity ? toArray(errors).map(error => ({ ...error, severity })) : errors;\n }\n\n private getLevel(config?: RuleConfiguration) {\n if (typeof config === 'string') {\n return config;\n }\n if (Array.isArray(config) && typeof config[0] === 'string') {\n return config[0];\n }\n }\n\n private getLink({ id }: PackageError) {\n const url = `https://docs.st.dev/docs/frontend/uikit/startup/review#${id}`;\n return chalk.dim(terminalLink(id, url));\n }\n\n private getSelectedRules() {\n const rule = this.args.rule;\n return rule ? new Set(rule.filter(id => !!id)) : undefined;\n }\n}\n\nfunction compareError(\n { location: locationA = '', severity: severityA = ErrorSeverity.error }: PackageError,\n { location: locationB = '', severity: severityB = ErrorSeverity.error }: PackageError\n) {\n return locationA === locationB ? severityA - severityB : collator.compare(locationA, locationB);\n}\n\nfunction sortByKey<T>(obj: Record<string, T>): Record<string, T> {\n return Object.fromEntries(Object.entries(obj).sort(([a], [b]) => collator.compare(a, b)));\n}\n"],"names":["Review","collator","Intl","Collator","Command","execute","errors","args","fix","fixErrors","findErrors","summary","reportErrors","error","Promise","reject","resolve","createProject","root","readJsonSafe","workspaces","Error","packageManager","getPackageManager","hasValidLockFile","lockFileName","location","config","getReviewConfiguration","packages","findPackages","dependencies","sortByKey","collateDependencies","debug","namespace","data","log","JSON","stringify","project","runRules","rulesById","rules","reduce","result","rule","id","totalFixed","category","FixCategory","isolated","normal","lockFile","fixable","filter","length","forEach","text","formatError","details","installPackages","stdio","pluralize","info","message","severity","ErrorSeverity","label","indent","severityToLabel","link","getLink","prevLocation","index","chalk","underline","formatLocation","summarize","reportSummary","warning","success","selected","getSelectedRules","has","flatMap","runRule","sort","compareError","level","getLevel","transform","run","levelToSeverity","toArray","map","Array","isArray","url","dim","terminalLink","Set","undefined","yellow","red","warn","locationA","severityA","locationB","severityB","compare","obj","Object","fromEntries","entries","a","b"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/cli/commands/review/rules/no-deprecated-content-base.ts"],"sourcesContent":["import { execSync } from 'child_process';\nimport { ErrorSeverity, FixCategory, Package, PackageError, PackageRule, Project } from '../types';\nimport { checkPackages } from '../utils';\n\ninterface ErrorData {\n contentBase: string;\n}\n\ntype RuleError = PackageError<ErrorData>;\n\nexport class NoDeprecatedContentBase implements PackageRule {\n get id() {\n return 'no-deprecated-content-base';\n }\n\n run(project: Project): RuleError[] | undefined {\n return checkPackages(this, project, this.checkPackage);\n }\n\n fix({ data, location }: RuleError) {\n const { contentBase } = data ?? {};\n if (!location || contentBase === undefined) {\n return;\n }\n\n const setCommands = Array.isArray(contentBase)\n ? contentBase.map((directory, index) => {\n return `npm pkg set cli.webpack.static[${index}].directory=\"${directory}\" -w ${location}`;\n })\n : [`npm pkg set cli.webpack.static.directory=\"${contentBase}\" -w ${location}`];\n\n [...setCommands, `npm pkg delete cli.webpack.contentBase -w ${location}`].forEach(command =>\n execSync(command, { stdio: 'inherit' })\n );\n }\n\n private readonly checkPackage = (pkg: Package): RuleError | undefined => {\n const { webpack = {} } = pkg.cli ?? {};\n if (webpack && typeof webpack === 'object' && Object.hasOwn(webpack, 'contentBase')) {\n return {\n id: this.id,\n message: `package \"${pkg.name}\" uses deprecated cli.webpack.contentBase configuration`,\n location: pkg.location,\n fixable: FixCategory.isolated,\n severity: ErrorSeverity.warning,\n data: { contentBase: webpack.contentBase },\n };\n }\n };\n}\n"],"names":["NoDeprecatedContentBase","id","run","project","checkPackages","checkPackage","fix","data","location","contentBase","undefined","setCommands","Array","isArray","map","directory","index","forEach","command","execSync","stdio","pkg","webpack","cli","Object","hasOwn","message","name","fixable","FixCategory","isolated","severity","ErrorSeverity","warning"],"mappings":";;;;+BAUaA;;;eAAAA;;;+BAVY;uBAC+D;uBAC1D
|
|
1
|
+
{"version":3,"sources":["../../../../../src/cli/commands/review/rules/no-deprecated-content-base.ts"],"sourcesContent":["import { execSync } from 'child_process';\nimport { ErrorSeverity, FixCategory, Package, PackageError, PackageRule, Project } from '../types';\nimport { checkPackages } from '../utils';\n\ninterface ErrorData {\n contentBase: string;\n}\n\ntype RuleError = PackageError<ErrorData>;\n\nexport class NoDeprecatedContentBase implements PackageRule {\n get id() {\n return 'no-deprecated-content-base';\n }\n\n run(project: Project): RuleError[] | undefined {\n return checkPackages(this, project, this.checkPackage);\n }\n\n fix({ data, location }: RuleError) {\n const { contentBase } = data ?? {};\n if (!location || contentBase === undefined) {\n return;\n }\n\n const setCommands = Array.isArray(contentBase)\n ? contentBase.map((directory, index) => {\n return `npm pkg set cli.webpack.static[${index}].directory=\"${directory}\" -w ${location}`;\n })\n : [`npm pkg set cli.webpack.static.directory=\"${contentBase}\" -w ${location}`];\n\n [...setCommands, `npm pkg delete cli.webpack.contentBase -w ${location}`].forEach(command =>\n execSync(command, { stdio: 'inherit' })\n );\n }\n\n private readonly checkPackage = (pkg: Package): RuleError | undefined => {\n const { webpack = {} } = pkg.cli ?? {};\n if (webpack && typeof webpack === 'object' && Object.hasOwn(webpack, 'contentBase')) {\n return {\n id: this.id,\n message: `package \"${pkg.name}\" uses deprecated cli.webpack.contentBase configuration`,\n location: pkg.location,\n fixable: FixCategory.isolated,\n severity: ErrorSeverity.warning,\n data: { contentBase: webpack.contentBase },\n };\n }\n };\n}\n"],"names":["NoDeprecatedContentBase","id","run","project","checkPackages","checkPackage","fix","data","location","contentBase","undefined","setCommands","Array","isArray","map","directory","index","forEach","command","execSync","stdio","pkg","webpack","cli","Object","hasOwn","message","name","fixable","FixCategory","isolated","severity","ErrorSeverity","warning"],"mappings":";;;;+BAUaA;;;eAAAA;;;+BAVY;uBAC+D;uBAC1D;;;;;;;;;;;;AAQvB,MAAMA;IACT,IAAIC,KAAK;QACL,OAAO;IACX;IAEAC,IAAIC,OAAgB,EAA2B;QAC3C,OAAOC,IAAAA,oBAAa,EAAC,IAAI,EAAED,SAAS,IAAI,CAACE,YAAY;IACzD;IAEAC,IAAI,EAAEC,IAAI,EAAEC,QAAQ,EAAa,EAAE;QAC/B,MAAM,EAAEC,WAAW,EAAE,GAAGF,iBAAAA,kBAAAA,OAAQ,CAAC;QACjC,IAAI,CAACC,YAAYC,gBAAgBC,WAAW;YACxC;QACJ;QAEA,MAAMC,cAAcC,MAAMC,OAAO,CAACJ,eAC5BA,YAAYK,GAAG,CAAC,CAACC,WAAWC;YACxB,OAAO,CAAC,+BAA+B,EAAEA,MAAM,aAAa,EAAED,UAAU,KAAK,EAAEP,UAAU;QAC7F,KACA;YAAC,CAAC,0CAA0C,EAAEC,YAAY,KAAK,EAAED,UAAU;SAAC;QAElF;eAAIG;YAAa,CAAC,0CAA0C,EAAEH,UAAU;SAAC,CAACS,OAAO,CAACC,CAAAA,UAC9EC,IAAAA,uBAAQ,EAACD,SAAS;gBAAEE,OAAO;YAAU;IAE7C;;QAEA,uBAAiBf,gBAAe,CAACgB;gBACJA;YAAzB,MAAM,EAAEC,UAAU,CAAC,CAAC,EAAE,IAAGD,WAAAA,IAAIE,GAAG,cAAPF,sBAAAA,WAAW,CAAC;YACrC,IAAIC,WAAW,OAAOA,YAAY,YAAYE,OAAOC,MAAM,CAACH,SAAS,gBAAgB;gBACjF,OAAO;oBACHrB,IAAI,IAAI,CAACA,EAAE;oBACXyB,SAAS,CAAC,SAAS,EAAEL,IAAIM,IAAI,CAAC,uDAAuD,CAAC;oBACtFnB,UAAUa,IAAIb,QAAQ;oBACtBoB,SAASC,kBAAW,CAACC,QAAQ;oBAC7BC,UAAUC,oBAAa,CAACC,OAAO;oBAC/B1B,MAAM;wBAAEE,aAAaa,QAAQb,WAAW;oBAAC;gBAC7C;YACJ;QACJ;;AACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/cli/commands/review/rules/no-direct-peer-dependencies.ts"],"sourcesContent":["import { execSync } from 'child_process';\nimport { FixCategory, Package, PackageError, PackageRule, Project } from '../types';\nimport { checkPackages, formatList } from '../utils';\n\ninterface ErrorData {\n dependencies: Record<string, string>;\n directPeerDependencies: string[];\n}\n\ntype RuleError = PackageError<ErrorData>;\n\nexport class NoDirectPeerDependencies implements PackageRule {\n get id() {\n return 'no-direct-peer-dependencies';\n }\n\n run(project: Project): RuleError[] | undefined {\n return checkPackages(this, project, this.checkPackage);\n }\n\n fix({ data, location }: RuleError) {\n const { dependencies, directPeerDependencies } = data ?? {};\n if (!(location && dependencies && directPeerDependencies)) {\n return;\n }\n\n directPeerDependencies.forEach(name => {\n [\n `npm pkg set devDependencies[\"${name}\"]=\"${dependencies[name]}\" -w ${location}`,\n `npm pkg delete dependencies[\"${name}\"] -w ${location}`,\n ].forEach(command => execSync(command, { stdio: 'inherit' }));\n });\n }\n\n private readonly checkPackage = (pkg: Package): RuleError | undefined => {\n const { dependencies = {}, peerDependencies = {} } = pkg;\n const directPeerDependencies = Object.keys(peerDependencies).filter(\n peerDependency => !!dependencies[peerDependency]\n );\n if (directPeerDependencies.length) {\n return {\n id: this.id,\n message: this.formatMessage(pkg.name, directPeerDependencies),\n location: pkg.location,\n fixable: FixCategory.isolated,\n data: { dependencies, directPeerDependencies },\n };\n }\n };\n\n private formatMessage(name: string, dependencies: string[]) {\n if (dependencies.length === 1) {\n return `package \"${name}\" lists \"${dependencies[0]}\" as both a direct and a peer dependency`;\n }\n const list = formatList(dependencies.map(name => `\"${name}\"`));\n return `package \"${name}\" lists ${list} as both direct and peer dependencies`;\n }\n}\n"],"names":["NoDirectPeerDependencies","id","run","project","checkPackages","checkPackage","fix","data","location","dependencies","directPeerDependencies","forEach","name","command","execSync","stdio","formatMessage","length","list","formatList","map","pkg","peerDependencies","Object","keys","filter","peerDependency","message","fixable","FixCategory","isolated"],"mappings":";;;;+BAWaA;;;eAAAA;;;+BAXY;uBACgD;uBAC/B
|
|
1
|
+
{"version":3,"sources":["../../../../../src/cli/commands/review/rules/no-direct-peer-dependencies.ts"],"sourcesContent":["import { execSync } from 'child_process';\nimport { FixCategory, Package, PackageError, PackageRule, Project } from '../types';\nimport { checkPackages, formatList } from '../utils';\n\ninterface ErrorData {\n dependencies: Record<string, string>;\n directPeerDependencies: string[];\n}\n\ntype RuleError = PackageError<ErrorData>;\n\nexport class NoDirectPeerDependencies implements PackageRule {\n get id() {\n return 'no-direct-peer-dependencies';\n }\n\n run(project: Project): RuleError[] | undefined {\n return checkPackages(this, project, this.checkPackage);\n }\n\n fix({ data, location }: RuleError) {\n const { dependencies, directPeerDependencies } = data ?? {};\n if (!(location && dependencies && directPeerDependencies)) {\n return;\n }\n\n directPeerDependencies.forEach(name => {\n [\n `npm pkg set devDependencies[\"${name}\"]=\"${dependencies[name]}\" -w ${location}`,\n `npm pkg delete dependencies[\"${name}\"] -w ${location}`,\n ].forEach(command => execSync(command, { stdio: 'inherit' }));\n });\n }\n\n private readonly checkPackage = (pkg: Package): RuleError | undefined => {\n const { dependencies = {}, peerDependencies = {} } = pkg;\n const directPeerDependencies = Object.keys(peerDependencies).filter(\n peerDependency => !!dependencies[peerDependency]\n );\n if (directPeerDependencies.length) {\n return {\n id: this.id,\n message: this.formatMessage(pkg.name, directPeerDependencies),\n location: pkg.location,\n fixable: FixCategory.isolated,\n data: { dependencies, directPeerDependencies },\n };\n }\n };\n\n private formatMessage(name: string, dependencies: string[]) {\n if (dependencies.length === 1) {\n return `package \"${name}\" lists \"${dependencies[0]}\" as both a direct and a peer dependency`;\n }\n const list = formatList(dependencies.map(name => `\"${name}\"`));\n return `package \"${name}\" lists ${list} as both direct and peer dependencies`;\n }\n}\n"],"names":["NoDirectPeerDependencies","id","run","project","checkPackages","checkPackage","fix","data","location","dependencies","directPeerDependencies","forEach","name","command","execSync","stdio","formatMessage","length","list","formatList","map","pkg","peerDependencies","Object","keys","filter","peerDependency","message","fixable","FixCategory","isolated"],"mappings":";;;;+BAWaA;;;eAAAA;;;+BAXY;uBACgD;uBAC/B;;;;;;;;;;;;AASnC,MAAMA;IACT,IAAIC,KAAK;QACL,OAAO;IACX;IAEAC,IAAIC,OAAgB,EAA2B;QAC3C,OAAOC,IAAAA,oBAAa,EAAC,IAAI,EAAED,SAAS,IAAI,CAACE,YAAY;IACzD;IAEAC,IAAI,EAAEC,IAAI,EAAEC,QAAQ,EAAa,EAAE;QAC/B,MAAM,EAAEC,YAAY,EAAEC,sBAAsB,EAAE,GAAGH,iBAAAA,kBAAAA,OAAQ,CAAC;QAC1D,IAAI,CAAEC,CAAAA,YAAYC,gBAAgBC,sBAAqB,GAAI;YACvD;QACJ;QAEAA,uBAAuBC,OAAO,CAACC,CAAAA;YAC3B;gBACI,CAAC,6BAA6B,EAAEA,KAAK,IAAI,EAAEH,YAAY,CAACG,KAAK,CAAC,KAAK,EAAEJ,UAAU;gBAC/E,CAAC,6BAA6B,EAAEI,KAAK,MAAM,EAAEJ,UAAU;aAC1D,CAACG,OAAO,CAACE,CAAAA,UAAWC,IAAAA,uBAAQ,EAACD,SAAS;oBAAEE,OAAO;gBAAU;QAC9D;IACJ;IAkBQC,cAAcJ,IAAY,EAAEH,YAAsB,EAAE;QACxD,IAAIA,aAAaQ,MAAM,KAAK,GAAG;YAC3B,OAAO,CAAC,SAAS,EAAEL,KAAK,SAAS,EAAEH,YAAY,CAAC,EAAE,CAAC,wCAAwC,CAAC;QAChG;QACA,MAAMS,OAAOC,IAAAA,iBAAU,EAACV,aAAaW,GAAG,CAACR,CAAAA,OAAQ,CAAC,CAAC,EAAEA,KAAK,CAAC,CAAC;QAC5D,OAAO,CAAC,SAAS,EAAEA,KAAK,QAAQ,EAAEM,KAAK,qCAAqC,CAAC;IACjF;;QAtBA,uBAAiBb,gBAAe,CAACgB;YAC7B,MAAM,EAAEZ,eAAe,CAAC,CAAC,EAAEa,mBAAmB,CAAC,CAAC,EAAE,GAAGD;YACrD,MAAMX,yBAAyBa,OAAOC,IAAI,CAACF,kBAAkBG,MAAM,CAC/DC,CAAAA,iBAAkB,CAAC,CAACjB,YAAY,CAACiB,eAAe;YAEpD,IAAIhB,uBAAuBO,MAAM,EAAE;gBAC/B,OAAO;oBACHhB,IAAI,IAAI,CAACA,EAAE;oBACX0B,SAAS,IAAI,CAACX,aAAa,CAACK,IAAIT,IAAI,EAAEF;oBACtCF,UAAUa,IAAIb,QAAQ;oBACtBoB,SAASC,kBAAW,CAACC,QAAQ;oBAC7BvB,MAAM;wBAAEE;wBAAcC;oBAAuB;gBACjD;YACJ;QACJ;;AASJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/cli/commands/review/rules/no-typescript-entry-point.ts"],"sourcesContent":["import { execSync } from 'child_process';\nimport path from 'path';\nimport { getFolders, log } from '../../../../utils';\nimport { FixCategory, Package, PackageError, PackageRule, Project } from '../types';\nimport { checkPackages } from '../utils';\n\ninterface ErrorData {\n key: string;\n value: string;\n}\n\nexport class NoTypescriptEntryPoint implements PackageRule {\n get id() {\n return 'no-typescript-entry-point';\n }\n\n run(project: Project): PackageError<ErrorData>[] {\n return checkPackages(this, project, this.checkEntryPoints);\n }\n\n fix({ data, location }: PackageError<ErrorData>) {\n const { key, value } = data ?? {};\n if (!(key && value && location)) {\n return;\n }\n\n const workspace = path.relative('.', location);\n const { source, destination } = getFolders(location);\n const newValue = value.replace(source, destination).replace(/\\.ts$/, '.js');\n const command = `npm pkg set \"${key}\"=\"${newValue}\" -w ${workspace}`;\n log.debug(`review:${this.id}`, `Running ${command}`);\n execSync(command);\n }\n\n private readonly checkEntryPoints = (pkg: Package) => {\n const errors: PackageError<ErrorData>[] = [];\n const addError = (message: string, data: ErrorData) =>\n errors.push({\n id: this.id,\n message,\n location: pkg.location,\n fixable: FixCategory.normal,\n data,\n });\n\n (['main', 'module', 'exports'] as (keyof Package)[]).forEach(key => {\n const value = pkg[key];\n if (typeof value === 'string' && this.isTypescriptEntryPoint(value)) {\n addError(`\"${key}\" is Typescript: ${value}`, { key, value });\n }\n });\n\n if (pkg.exports && typeof pkg.exports !== 'string') {\n const checkExports = (exports: NonNullable<Package['exports']>, prefix: string) => {\n Object.entries(exports).forEach(([key, value]) => {\n const path = `${prefix}[${key}]`;\n if (typeof value === 'string') {\n if (this.isTypescriptEntryPoint(value)) {\n addError(`\"${path}\" is Typescript: ${value}`, { key: path, value });\n }\n } else if (exports) {\n checkExports(value, path);\n }\n });\n };\n checkExports(pkg.exports, 'exports');\n }\n\n return errors;\n };\n\n private isTypescriptEntryPoint(str: string) {\n return str.endsWith('.ts') && !str.endsWith('.d.ts');\n }\n}\n"],"names":["NoTypescriptEntryPoint","id","run","project","checkPackages","checkEntryPoints","fix","data","location","key","value","workspace","path","relative","source","destination","getFolders","newValue","replace","command","log","debug","execSync","isTypescriptEntryPoint","str","endsWith","pkg","errors","addError","message","push","fixable","FixCategory","normal","forEach","exports","checkExports","prefix","Object","entries"],"mappings":";;;;+BAWaA;;;eAAAA;;;+BAXY;6DACR;uBACe;uBACyC;wBAC3C
|
|
1
|
+
{"version":3,"sources":["../../../../../src/cli/commands/review/rules/no-typescript-entry-point.ts"],"sourcesContent":["import { execSync } from 'child_process';\nimport path from 'path';\nimport { getFolders, log } from '../../../../utils';\nimport { FixCategory, Package, PackageError, PackageRule, Project } from '../types';\nimport { checkPackages } from '../utils';\n\ninterface ErrorData {\n key: string;\n value: string;\n}\n\nexport class NoTypescriptEntryPoint implements PackageRule {\n get id() {\n return 'no-typescript-entry-point';\n }\n\n run(project: Project): PackageError<ErrorData>[] {\n return checkPackages(this, project, this.checkEntryPoints);\n }\n\n fix({ data, location }: PackageError<ErrorData>) {\n const { key, value } = data ?? {};\n if (!(key && value && location)) {\n return;\n }\n\n const workspace = path.relative('.', location);\n const { source, destination } = getFolders(location);\n const newValue = value.replace(source, destination).replace(/\\.ts$/, '.js');\n const command = `npm pkg set \"${key}\"=\"${newValue}\" -w ${workspace}`;\n log.debug(`review:${this.id}`, `Running ${command}`);\n execSync(command);\n }\n\n private readonly checkEntryPoints = (pkg: Package) => {\n const errors: PackageError<ErrorData>[] = [];\n const addError = (message: string, data: ErrorData) =>\n errors.push({\n id: this.id,\n message,\n location: pkg.location,\n fixable: FixCategory.normal,\n data,\n });\n\n (['main', 'module', 'exports'] as (keyof Package)[]).forEach(key => {\n const value = pkg[key];\n if (typeof value === 'string' && this.isTypescriptEntryPoint(value)) {\n addError(`\"${key}\" is Typescript: ${value}`, { key, value });\n }\n });\n\n if (pkg.exports && typeof pkg.exports !== 'string') {\n const checkExports = (exports: NonNullable<Package['exports']>, prefix: string) => {\n Object.entries(exports).forEach(([key, value]) => {\n const path = `${prefix}[${key}]`;\n if (typeof value === 'string') {\n if (this.isTypescriptEntryPoint(value)) {\n addError(`\"${path}\" is Typescript: ${value}`, { key: path, value });\n }\n } else if (exports) {\n checkExports(value, path);\n }\n });\n };\n checkExports(pkg.exports, 'exports');\n }\n\n return errors;\n };\n\n private isTypescriptEntryPoint(str: string) {\n return str.endsWith('.ts') && !str.endsWith('.d.ts');\n }\n}\n"],"names":["NoTypescriptEntryPoint","id","run","project","checkPackages","checkEntryPoints","fix","data","location","key","value","workspace","path","relative","source","destination","getFolders","newValue","replace","command","log","debug","execSync","isTypescriptEntryPoint","str","endsWith","pkg","errors","addError","message","push","fixable","FixCategory","normal","forEach","exports","checkExports","prefix","Object","entries"],"mappings":";;;;+BAWaA;;;eAAAA;;;+BAXY;6DACR;uBACe;uBACyC;wBAC3C;;;;;;;;;;;;;;;;;AAOvB,MAAMA;IACT,IAAIC,KAAK;QACL,OAAO;IACX;IAEAC,IAAIC,OAAgB,EAA6B;QAC7C,OAAOC,IAAAA,qBAAa,EAAC,IAAI,EAAED,SAAS,IAAI,CAACE,gBAAgB;IAC7D;IAEAC,IAAI,EAAEC,IAAI,EAAEC,QAAQ,EAA2B,EAAE;QAC7C,MAAM,EAAEC,GAAG,EAAEC,KAAK,EAAE,GAAGH,iBAAAA,kBAAAA,OAAQ,CAAC;QAChC,IAAI,CAAEE,CAAAA,OAAOC,SAASF,QAAO,GAAI;YAC7B;QACJ;QAEA,MAAMG,YAAYC,aAAI,CAACC,QAAQ,CAAC,KAAKL;QACrC,MAAM,EAAEM,MAAM,EAAEC,WAAW,EAAE,GAAGC,IAAAA,iBAAU,EAACR;QAC3C,MAAMS,WAAWP,MAAMQ,OAAO,CAACJ,QAAQC,aAAaG,OAAO,CAAC,SAAS;QACrE,MAAMC,UAAU,CAAC,aAAa,EAAEV,IAAI,GAAG,EAAEQ,SAAS,KAAK,EAAEN,WAAW;QACpES,UAAG,CAACC,KAAK,CAAC,CAAC,OAAO,EAAE,IAAI,CAACpB,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAEkB,SAAS;QACnDG,IAAAA,uBAAQ,EAACH;IACb;IAuCQI,uBAAuBC,GAAW,EAAE;QACxC,OAAOA,IAAIC,QAAQ,CAAC,UAAU,CAACD,IAAIC,QAAQ,CAAC;IAChD;;QAvCA,uBAAiBpB,oBAAmB,CAACqB;YACjC,MAAMC,SAAoC,EAAE;YAC5C,MAAMC,WAAW,CAACC,SAAiBtB,OAC/BoB,OAAOG,IAAI,CAAC;oBACR7B,IAAI,IAAI,CAACA,EAAE;oBACX4B;oBACArB,UAAUkB,IAAIlB,QAAQ;oBACtBuB,SAASC,kBAAW,CAACC,MAAM;oBAC3B1B;gBACJ;YAEH;gBAAC;gBAAQ;gBAAU;aAAU,CAAuB2B,OAAO,CAACzB,CAAAA;gBACzD,MAAMC,QAAQgB,GAAG,CAACjB,IAAI;gBACtB,IAAI,OAAOC,UAAU,YAAY,IAAI,CAACa,sBAAsB,CAACb,QAAQ;oBACjEkB,SAAS,CAAC,CAAC,EAAEnB,IAAI,iBAAiB,EAAEC,OAAO,EAAE;wBAAED;wBAAKC;oBAAM;gBAC9D;YACJ;YAEA,IAAIgB,IAAIS,OAAO,IAAI,OAAOT,IAAIS,OAAO,KAAK,UAAU;gBAChD,MAAMC,eAAe,CAACD,UAA0CE;oBAC5DC,OAAOC,OAAO,CAACJ,UAASD,OAAO,CAAC,CAAC,CAACzB,KAAKC,MAAM;wBACzC,MAAME,OAAO,GAAGyB,OAAO,CAAC,EAAE5B,IAAI,CAAC,CAAC;wBAChC,IAAI,OAAOC,UAAU,UAAU;4BAC3B,IAAI,IAAI,CAACa,sBAAsB,CAACb,QAAQ;gCACpCkB,SAAS,CAAC,CAAC,EAAEhB,KAAK,iBAAiB,EAAEF,OAAO,EAAE;oCAAED,KAAKG;oCAAMF;gCAAM;4BACrE;wBACJ,OAAO,IAAIyB,UAAS;4BAChBC,aAAa1B,OAAOE;wBACxB;oBACJ;gBACJ;gBACAwB,aAAaV,IAAIS,OAAO,EAAE;YAC9B;YAEA,OAAOR;QACX;;AAKJ"}
|
|
@@ -18,15 +18,12 @@ function _check_private_redeclaration(obj, privateCollection) {
|
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
function _class_apply_descriptor_get(receiver, descriptor) {
|
|
21
|
-
if (descriptor.get)
|
|
22
|
-
return descriptor.get.call(receiver);
|
|
23
|
-
}
|
|
21
|
+
if (descriptor.get) return descriptor.get.call(receiver);
|
|
24
22
|
return descriptor.value;
|
|
25
23
|
}
|
|
26
24
|
function _class_apply_descriptor_set(receiver, descriptor, value) {
|
|
27
|
-
if (descriptor.set)
|
|
28
|
-
|
|
29
|
-
} else {
|
|
25
|
+
if (descriptor.set) descriptor.set.call(receiver, value);
|
|
26
|
+
else {
|
|
30
27
|
if (!descriptor.writable) {
|
|
31
28
|
throw new TypeError("attempted to set read only private field");
|
|
32
29
|
}
|
|
@@ -34,9 +31,7 @@ function _class_apply_descriptor_set(receiver, descriptor, value) {
|
|
|
34
31
|
}
|
|
35
32
|
}
|
|
36
33
|
function _class_extract_field_descriptor(receiver, privateMap, action) {
|
|
37
|
-
if (!privateMap.has(receiver))
|
|
38
|
-
throw new TypeError("attempted to " + action + " private field on non-instance");
|
|
39
|
-
}
|
|
34
|
+
if (!privateMap.has(receiver)) throw new TypeError("attempted to " + action + " private field on non-instance");
|
|
40
35
|
return privateMap.get(receiver);
|
|
41
36
|
}
|
|
42
37
|
function _class_private_field_get(receiver, privateMap) {
|
|
@@ -60,9 +55,7 @@ function _define_property(obj, key, value) {
|
|
|
60
55
|
configurable: true,
|
|
61
56
|
writable: true
|
|
62
57
|
});
|
|
63
|
-
} else
|
|
64
|
-
obj[key] = value;
|
|
65
|
-
}
|
|
58
|
+
} else obj[key] = value;
|
|
66
59
|
return obj;
|
|
67
60
|
}
|
|
68
61
|
var _project = /*#__PURE__*/ new WeakMap();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/cli/commands/review/rules/prefer-open-ended-peer-dependencies.ts"],"sourcesContent":["import { execSync } from 'child_process';\nimport { satisfies } from 'semver';\nimport { ErrorSeverity, FixCategory, Package, PackageError, PackageRule, Project } from '../types';\nimport { checkPackages } from '../utils';\n\ninterface ErrorData {\n dependency: string;\n version: string;\n}\n\ntype RuleError = PackageError<ErrorData>;\n\nexport class PreferOpenEndedPeerDependencies implements PackageRule {\n #project!: Project;\n\n get id() {\n return 'prefer-open-ended-peer-dependencies';\n }\n\n run(project: Project): RuleError[] | undefined {\n this.#project = project;\n return checkPackages(this, project, this.checkPackage);\n }\n\n fix({ data, location }: RuleError) {\n const { dependency, version } = data ?? {};\n if (!(location && dependency && version)) {\n return;\n }\n\n const openEndedVersion = version.replace(/^[\\^~]/, '>=');\n const command = `npm pkg set peerDependencies[\"${dependency}\"]=\"${openEndedVersion}\" -w ${location}`;\n execSync(command, { stdio: 'inherit' });\n }\n\n private readonly checkPackage = (pkg: Package): RuleError[] | undefined => {\n return Object.entries(pkg.peerDependencies ?? {}).reduce<RuleError[]>(\n (result, [dependency, version]) => {\n if (this.isViolation(pkg, { dependency, version })) {\n result.push({\n id: this.id,\n message: `package \"${pkg.name}\" has closed-ended peer dependency on \"${dependency}@${version}\"`,\n location: pkg.location,\n severity: ErrorSeverity.warning,\n ...(this.isFixable(version)\n ? { fixable: FixCategory.isolated, data: { dependency, version } }\n : {}),\n });\n }\n return result;\n },\n []\n );\n };\n\n private isExactVersion(version: string) {\n return /^\\d/.test(version);\n }\n\n private isExcluded({ name }: Package, dependency: string) {\n const ruleConfig = this.#project.config.rules?.[this.id];\n if (Array.isArray(ruleConfig)) {\n const { exclude } = ruleConfig[1] ?? {};\n if (typeof exclude === 'object' && !Array.isArray(exclude)) {\n return exclude[name]?.includes(dependency);\n }\n }\n return false;\n }\n\n private isOpenEndedVersion(version: string) {\n return satisfies('999.999.999', version);\n }\n\n private isFixable(version: string) {\n return /^[\\^~]\\d+(\\.\\d+){0,2}$/.test(version);\n }\n\n private isViolation(\n pkg: Package,\n { dependency, version }: { dependency: string; version: string }\n ) {\n return (\n !this.isExactVersion(version) &&\n !this.isOpenEndedVersion(version) &&\n !this.isExcluded(pkg, dependency)\n );\n }\n}\n"],"names":["PreferOpenEndedPeerDependencies","id","run","project","checkPackages","checkPackage","fix","data","location","dependency","version","openEndedVersion","replace","command","execSync","stdio","isExactVersion","test","isExcluded","name","ruleConfig","config","rules","Array","isArray","exclude","includes","isOpenEndedVersion","satisfies","isFixable","isViolation","pkg","Object","entries","peerDependencies","reduce","result","push","message","severity","ErrorSeverity","warning","fixable","FixCategory","isolated"],"mappings":";;;;+BAYaA;;;eAAAA;;;+BAZY;wBACC;uBAC8D;uBAC1D
|
|
1
|
+
{"version":3,"sources":["../../../../../src/cli/commands/review/rules/prefer-open-ended-peer-dependencies.ts"],"sourcesContent":["import { execSync } from 'child_process';\nimport { satisfies } from 'semver';\nimport { ErrorSeverity, FixCategory, Package, PackageError, PackageRule, Project } from '../types';\nimport { checkPackages } from '../utils';\n\ninterface ErrorData {\n dependency: string;\n version: string;\n}\n\ntype RuleError = PackageError<ErrorData>;\n\nexport class PreferOpenEndedPeerDependencies implements PackageRule {\n #project!: Project;\n\n get id() {\n return 'prefer-open-ended-peer-dependencies';\n }\n\n run(project: Project): RuleError[] | undefined {\n this.#project = project;\n return checkPackages(this, project, this.checkPackage);\n }\n\n fix({ data, location }: RuleError) {\n const { dependency, version } = data ?? {};\n if (!(location && dependency && version)) {\n return;\n }\n\n const openEndedVersion = version.replace(/^[\\^~]/, '>=');\n const command = `npm pkg set peerDependencies[\"${dependency}\"]=\"${openEndedVersion}\" -w ${location}`;\n execSync(command, { stdio: 'inherit' });\n }\n\n private readonly checkPackage = (pkg: Package): RuleError[] | undefined => {\n return Object.entries(pkg.peerDependencies ?? {}).reduce<RuleError[]>(\n (result, [dependency, version]) => {\n if (this.isViolation(pkg, { dependency, version })) {\n result.push({\n id: this.id,\n message: `package \"${pkg.name}\" has closed-ended peer dependency on \"${dependency}@${version}\"`,\n location: pkg.location,\n severity: ErrorSeverity.warning,\n ...(this.isFixable(version)\n ? { fixable: FixCategory.isolated, data: { dependency, version } }\n : {}),\n });\n }\n return result;\n },\n []\n );\n };\n\n private isExactVersion(version: string) {\n return /^\\d/.test(version);\n }\n\n private isExcluded({ name }: Package, dependency: string) {\n const ruleConfig = this.#project.config.rules?.[this.id];\n if (Array.isArray(ruleConfig)) {\n const { exclude } = ruleConfig[1] ?? {};\n if (typeof exclude === 'object' && !Array.isArray(exclude)) {\n return exclude[name]?.includes(dependency);\n }\n }\n return false;\n }\n\n private isOpenEndedVersion(version: string) {\n return satisfies('999.999.999', version);\n }\n\n private isFixable(version: string) {\n return /^[\\^~]\\d+(\\.\\d+){0,2}$/.test(version);\n }\n\n private isViolation(\n pkg: Package,\n { dependency, version }: { dependency: string; version: string }\n ) {\n return (\n !this.isExactVersion(version) &&\n !this.isOpenEndedVersion(version) &&\n !this.isExcluded(pkg, dependency)\n );\n }\n}\n"],"names":["PreferOpenEndedPeerDependencies","id","run","project","checkPackages","checkPackage","fix","data","location","dependency","version","openEndedVersion","replace","command","execSync","stdio","isExactVersion","test","isExcluded","name","ruleConfig","config","rules","Array","isArray","exclude","includes","isOpenEndedVersion","satisfies","isFixable","isViolation","pkg","Object","entries","peerDependencies","reduce","result","push","message","severity","ErrorSeverity","warning","fixable","FixCategory","isolated"],"mappings":"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"}
|
|
@@ -19,15 +19,12 @@ function _check_private_redeclaration(obj, privateCollection) {
|
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
function _class_apply_descriptor_get(receiver, descriptor) {
|
|
22
|
-
if (descriptor.get)
|
|
23
|
-
return descriptor.get.call(receiver);
|
|
24
|
-
}
|
|
22
|
+
if (descriptor.get) return descriptor.get.call(receiver);
|
|
25
23
|
return descriptor.value;
|
|
26
24
|
}
|
|
27
25
|
function _class_apply_descriptor_set(receiver, descriptor, value) {
|
|
28
|
-
if (descriptor.set)
|
|
29
|
-
|
|
30
|
-
} else {
|
|
26
|
+
if (descriptor.set) descriptor.set.call(receiver, value);
|
|
27
|
+
else {
|
|
31
28
|
if (!descriptor.writable) {
|
|
32
29
|
throw new TypeError("attempted to set read only private field");
|
|
33
30
|
}
|
|
@@ -35,9 +32,7 @@ function _class_apply_descriptor_set(receiver, descriptor, value) {
|
|
|
35
32
|
}
|
|
36
33
|
}
|
|
37
34
|
function _class_extract_field_descriptor(receiver, privateMap, action) {
|
|
38
|
-
if (!privateMap.has(receiver))
|
|
39
|
-
throw new TypeError("attempted to " + action + " private field on non-instance");
|
|
40
|
-
}
|
|
35
|
+
if (!privateMap.has(receiver)) throw new TypeError("attempted to " + action + " private field on non-instance");
|
|
41
36
|
return privateMap.get(receiver);
|
|
42
37
|
}
|
|
43
38
|
function _class_private_field_get(receiver, privateMap) {
|
|
@@ -61,9 +56,7 @@ function _define_property(obj, key, value) {
|
|
|
61
56
|
configurable: true,
|
|
62
57
|
writable: true
|
|
63
58
|
});
|
|
64
|
-
} else
|
|
65
|
-
obj[key] = value;
|
|
66
|
-
}
|
|
59
|
+
} else obj[key] = value;
|
|
67
60
|
return obj;
|
|
68
61
|
}
|
|
69
62
|
function _interop_require_default(obj) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/cli/commands/review/rules/require-compatible-launch-darkly-sdk.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { execSync } from 'child_process';\nimport { satisfies } from 'semver';\nimport { FixCategory, Package, PackageError, PackageRule, Project } from '../types';\nimport { applyFilter, checkPackages, setVersion } from '../utils';\n\nconst JS_CLIENT_SDK = 'launchdarkly-js-client-sdk';\nconst LD_SERVICE = '@servicetitan/launchdarkly-service';\n\ninterface ErrorData {\n name?: string;\n actualVersion: string;\n targetVersion: string;\n}\n\ntype RuleError = PackageError<ErrorData>;\n\nexport class RequireCompatibleLaunchDarklySdk implements PackageRule {\n #project!: Project;\n\n get id() {\n return 'require-compatible-launch-darkly-sdk';\n }\n\n run(project: Project): RuleError | RuleError[] | undefined {\n this.#project = project;\n\n /*\n * Pass an empty filter object to checkPackages to disable its filtering.\n * The project-level check is only useful when there are no package-level\n * errors so we need an accurate count.\n */\n const errors = checkPackages({}, project, this.checkPackage);\n\n if (!errors.length) {\n return this.checkProject();\n }\n\n return applyFilter(project.config.rules?.[this.id], errors, ({ data }) => data!.name!);\n }\n\n fix({ data }: RuleError, project: Project) {\n const { name, targetVersion } = data ?? {};\n if (!targetVersion) {\n return;\n }\n if (name) {\n setVersion({\n project,\n packageName: name,\n dependency: JS_CLIENT_SDK,\n version: targetVersion,\n });\n return;\n }\n\n [\n `npm pkg set dependencies[\"${JS_CLIENT_SDK}\"]=${targetVersion}`,\n 'npx @servicetitan/install --fix --quiet',\n `npm pkg delete dependencies[\"${JS_CLIENT_SDK}\"]`,\n ].forEach(command => execSync(command, { stdio: 'inherit' }));\n }\n\n private readonly checkPackage = ({\n dependencies = {},\n location,\n name,\n }: Package): RuleError | undefined => {\n if (!dependencies[JS_CLIENT_SDK]) {\n return;\n }\n\n const actualVersion = this.getActualJsClientSdkVersion(location);\n const targetVersion = this.getTargetJsClientSdkVersion(location);\n if (actualVersion && targetVersion && !satisfies(actualVersion, targetVersion)) {\n return this.createError({\n message: `package \"${name}\" depends on an incompatible version of ${JS_CLIENT_SDK}`,\n location,\n data: { name, actualVersion, targetVersion },\n });\n }\n };\n\n private checkProject() {\n const actualVersion = this.getActualJsClientSdkVersion();\n const targetVersion = this.getTargetJsClientSdkVersion();\n if (actualVersion && targetVersion && !satisfies(actualVersion, targetVersion)) {\n return this.createError({\n message: `project depends on an incompatible version of ${JS_CLIENT_SDK}`,\n location: this.#project.packageManager.lockFileName,\n data: { actualVersion, targetVersion },\n });\n }\n }\n\n private createError(params: { message: string; location: string; data: ErrorData }): RuleError {\n const { message, data, location } = params;\n return {\n id: this.id,\n message,\n details: this.formatDetails(data),\n location,\n fixable: data.name ? FixCategory.isolated : FixCategory.lockFile,\n data,\n };\n }\n\n private formatDetails({ actualVersion, targetVersion }: ErrorData) {\n return `${chalk.yellow(actualVersion)} does not match ${targetVersion}`;\n }\n\n private getActualJsClientSdkVersion(workspacePackage = '') {\n return this.#project.packageManager.getResolvedVersion({\n workspacePackage,\n dependency: JS_CLIENT_SDK,\n });\n }\n\n private getTargetJsClientSdkVersion(workspacePackage = '') {\n return this.#project.packageManager.getDeclaredVersion({\n workspacePackage,\n declaredBy: LD_SERVICE,\n dependency: JS_CLIENT_SDK,\n });\n }\n}\n"],"names":["RequireCompatibleLaunchDarklySdk","JS_CLIENT_SDK","LD_SERVICE","id","run","project","errors","checkPackages","checkPackage","length","checkProject","applyFilter","config","rules","data","name","fix","targetVersion","setVersion","packageName","dependency","version","forEach","command","execSync","stdio","actualVersion","getActualJsClientSdkVersion","getTargetJsClientSdkVersion","satisfies","createError","message","location","packageManager","lockFileName","params","details","formatDetails","fixable","FixCategory","isolated","lockFile","chalk","yellow","workspacePackage","getResolvedVersion","getDeclaredVersion","declaredBy","dependencies"],"mappings":";;;;+BAiBaA;;;eAAAA;;;8DAjBK;+BACO;wBACC;uBAC+C;uBAClB
|
|
1
|
+
{"version":3,"sources":["../../../../../src/cli/commands/review/rules/require-compatible-launch-darkly-sdk.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { execSync } from 'child_process';\nimport { satisfies } from 'semver';\nimport { FixCategory, Package, PackageError, PackageRule, Project } from '../types';\nimport { applyFilter, checkPackages, setVersion } from '../utils';\n\nconst JS_CLIENT_SDK = 'launchdarkly-js-client-sdk';\nconst LD_SERVICE = '@servicetitan/launchdarkly-service';\n\ninterface ErrorData {\n name?: string;\n actualVersion: string;\n targetVersion: string;\n}\n\ntype RuleError = PackageError<ErrorData>;\n\nexport class RequireCompatibleLaunchDarklySdk implements PackageRule {\n #project!: Project;\n\n get id() {\n return 'require-compatible-launch-darkly-sdk';\n }\n\n run(project: Project): RuleError | RuleError[] | undefined {\n this.#project = project;\n\n /*\n * Pass an empty filter object to checkPackages to disable its filtering.\n * The project-level check is only useful when there are no package-level\n * errors so we need an accurate count.\n */\n const errors = checkPackages({}, project, this.checkPackage);\n\n if (!errors.length) {\n return this.checkProject();\n }\n\n return applyFilter(project.config.rules?.[this.id], errors, ({ data }) => data!.name!);\n }\n\n fix({ data }: RuleError, project: Project) {\n const { name, targetVersion } = data ?? {};\n if (!targetVersion) {\n return;\n }\n if (name) {\n setVersion({\n project,\n packageName: name,\n dependency: JS_CLIENT_SDK,\n version: targetVersion,\n });\n return;\n }\n\n [\n `npm pkg set dependencies[\"${JS_CLIENT_SDK}\"]=${targetVersion}`,\n 'npx @servicetitan/install --fix --quiet',\n `npm pkg delete dependencies[\"${JS_CLIENT_SDK}\"]`,\n ].forEach(command => execSync(command, { stdio: 'inherit' }));\n }\n\n private readonly checkPackage = ({\n dependencies = {},\n location,\n name,\n }: Package): RuleError | undefined => {\n if (!dependencies[JS_CLIENT_SDK]) {\n return;\n }\n\n const actualVersion = this.getActualJsClientSdkVersion(location);\n const targetVersion = this.getTargetJsClientSdkVersion(location);\n if (actualVersion && targetVersion && !satisfies(actualVersion, targetVersion)) {\n return this.createError({\n message: `package \"${name}\" depends on an incompatible version of ${JS_CLIENT_SDK}`,\n location,\n data: { name, actualVersion, targetVersion },\n });\n }\n };\n\n private checkProject() {\n const actualVersion = this.getActualJsClientSdkVersion();\n const targetVersion = this.getTargetJsClientSdkVersion();\n if (actualVersion && targetVersion && !satisfies(actualVersion, targetVersion)) {\n return this.createError({\n message: `project depends on an incompatible version of ${JS_CLIENT_SDK}`,\n location: this.#project.packageManager.lockFileName,\n data: { actualVersion, targetVersion },\n });\n }\n }\n\n private createError(params: { message: string; location: string; data: ErrorData }): RuleError {\n const { message, data, location } = params;\n return {\n id: this.id,\n message,\n details: this.formatDetails(data),\n location,\n fixable: data.name ? FixCategory.isolated : FixCategory.lockFile,\n data,\n };\n }\n\n private formatDetails({ actualVersion, targetVersion }: ErrorData) {\n return `${chalk.yellow(actualVersion)} does not match ${targetVersion}`;\n }\n\n private getActualJsClientSdkVersion(workspacePackage = '') {\n return this.#project.packageManager.getResolvedVersion({\n workspacePackage,\n dependency: JS_CLIENT_SDK,\n });\n }\n\n private getTargetJsClientSdkVersion(workspacePackage = '') {\n return this.#project.packageManager.getDeclaredVersion({\n workspacePackage,\n declaredBy: LD_SERVICE,\n dependency: JS_CLIENT_SDK,\n });\n }\n}\n"],"names":["RequireCompatibleLaunchDarklySdk","JS_CLIENT_SDK","LD_SERVICE","id","run","project","errors","checkPackages","checkPackage","length","checkProject","applyFilter","config","rules","data","name","fix","targetVersion","setVersion","packageName","dependency","version","forEach","command","execSync","stdio","actualVersion","getActualJsClientSdkVersion","getTargetJsClientSdkVersion","satisfies","createError","message","location","packageManager","lockFileName","params","details","formatDetails","fixable","FixCategory","isolated","lockFile","chalk","yellow","workspacePackage","getResolvedVersion","getDeclaredVersion","declaredBy","dependencies"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/cli/commands/review/rules/require-explicit-side-effects.ts"],"sourcesContent":["import { ErrorSeverity, Package, PackageError, PackageRule, Project } from '../types';\nimport { checkPackages, isLibrary } from '../utils';\n\nexport class RequireExplicitSideEffects implements PackageRule {\n get id() {\n return 'require-explicit-side-effects';\n }\n\n run(project: Project): PackageError[] {\n return checkPackages(this, project, this.checkSideEffects);\n }\n\n private readonly checkSideEffects = (pkg: Package) => {\n if (this.needsSideEffects(pkg)) {\n return {\n id: this.id,\n message: `package \"${pkg.name}\" omits sideEffects property`,\n severity: ErrorSeverity.warning,\n location: pkg.location,\n };\n }\n };\n\n private needsSideEffects(pkg: Package) {\n return (\n isLibrary(pkg) &&\n (pkg.main !== undefined || pkg.exports !== undefined) &&\n pkg.sideEffects === undefined\n );\n }\n}\n"],"names":["RequireExplicitSideEffects","id","run","project","checkPackages","checkSideEffects","needsSideEffects","pkg","isLibrary","main","undefined","exports","sideEffects","message","name","severity","ErrorSeverity","warning","location"],"mappings":";;;;+BAGaA;;;eAAAA;;;uBAH8D;uBAClC
|
|
1
|
+
{"version":3,"sources":["../../../../../src/cli/commands/review/rules/require-explicit-side-effects.ts"],"sourcesContent":["import { ErrorSeverity, Package, PackageError, PackageRule, Project } from '../types';\nimport { checkPackages, isLibrary } from '../utils';\n\nexport class RequireExplicitSideEffects implements PackageRule {\n get id() {\n return 'require-explicit-side-effects';\n }\n\n run(project: Project): PackageError[] {\n return checkPackages(this, project, this.checkSideEffects);\n }\n\n private readonly checkSideEffects = (pkg: Package) => {\n if (this.needsSideEffects(pkg)) {\n return {\n id: this.id,\n message: `package \"${pkg.name}\" omits sideEffects property`,\n severity: ErrorSeverity.warning,\n location: pkg.location,\n };\n }\n };\n\n private needsSideEffects(pkg: Package) {\n return (\n isLibrary(pkg) &&\n (pkg.main !== undefined || pkg.exports !== undefined) &&\n pkg.sideEffects === undefined\n );\n }\n}\n"],"names":["RequireExplicitSideEffects","id","run","project","checkPackages","checkSideEffects","needsSideEffects","pkg","isLibrary","main","undefined","exports","sideEffects","message","name","severity","ErrorSeverity","warning","location"],"mappings":";;;;+BAGaA;;;eAAAA;;;uBAH8D;uBAClC;;;;;;;;;;;;AAElC,MAAMA;IACT,IAAIC,KAAK;QACL,OAAO;IACX;IAEAC,IAAIC,OAAgB,EAAkB;QAClC,OAAOC,IAAAA,oBAAa,EAAC,IAAI,EAAED,SAAS,IAAI,CAACE,gBAAgB;IAC7D;IAaQC,iBAAiBC,GAAY,EAAE;QACnC,OACIC,IAAAA,gBAAS,EAACD,QACTA,CAAAA,IAAIE,IAAI,KAAKC,aAAaH,IAAII,OAAO,KAAKD,SAAQ,KACnDH,IAAIK,WAAW,KAAKF;IAE5B;;QAjBA,uBAAiBL,oBAAmB,CAACE;YACjC,IAAI,IAAI,CAACD,gBAAgB,CAACC,MAAM;gBAC5B,OAAO;oBACHN,IAAI,IAAI,CAACA,EAAE;oBACXY,SAAS,CAAC,SAAS,EAAEN,IAAIO,IAAI,CAAC,4BAA4B,CAAC;oBAC3DC,UAAUC,oBAAa,CAACC,OAAO;oBAC/BC,UAAUX,IAAIW,QAAQ;gBAC1B;YACJ;QACJ;;AASJ"}
|