@servicetitan/startup 33.1.0 → 34.0.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/dist/cli/commands/build.d.ts +48 -22
- package/dist/cli/commands/build.d.ts.map +1 -1
- package/dist/cli/commands/build.js +72 -52
- package/dist/cli/commands/build.js.map +1 -1
- package/dist/cli/commands/bundle-package.d.ts +54 -10
- package/dist/cli/commands/bundle-package.d.ts.map +1 -1
- package/dist/cli/commands/bundle-package.js +40 -0
- package/dist/cli/commands/bundle-package.js.map +1 -1
- package/dist/cli/commands/clean.d.ts +4 -0
- package/dist/cli/commands/clean.d.ts.map +1 -1
- package/dist/cli/commands/clean.js +50 -16
- package/dist/cli/commands/clean.js.map +1 -1
- package/dist/cli/commands/convert-eslint-config.d.ts +1 -1
- package/dist/cli/commands/convert-eslint-config.d.ts.map +1 -1
- package/dist/cli/commands/convert-eslint-config.js +2 -15
- package/dist/cli/commands/convert-eslint-config.js.map +1 -1
- package/dist/cli/commands/eslint.d.ts +29 -7
- package/dist/cli/commands/eslint.d.ts.map +1 -1
- package/dist/cli/commands/eslint.js +18 -6
- package/dist/cli/commands/eslint.js.map +1 -1
- package/dist/cli/commands/get-command.d.ts.map +1 -1
- package/dist/cli/commands/get-command.js +6 -0
- package/dist/cli/commands/get-command.js.map +1 -1
- package/dist/cli/commands/index.d.ts +2 -2
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +2 -2
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/init.d.ts +10 -6
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +8 -6
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/install.d.ts +27 -15
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/commands/install.js +18 -16
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/kendo-ui-license.d.ts +1 -0
- package/dist/cli/commands/kendo-ui-license.d.ts.map +1 -1
- package/dist/cli/commands/kendo-ui-license.js +1 -0
- package/dist/cli/commands/kendo-ui-license.js.map +1 -1
- package/dist/cli/commands/lint.d.ts +51 -17
- package/dist/cli/commands/lint.d.ts.map +1 -1
- package/dist/cli/commands/lint.js +36 -26
- package/dist/cli/commands/lint.js.map +1 -1
- package/dist/cli/commands/mfe-check.d.ts +52 -0
- package/dist/cli/commands/mfe-check.d.ts.map +1 -0
- package/dist/cli/commands/mfe-check.js +145 -0
- package/dist/cli/commands/mfe-check.js.map +1 -0
- package/dist/cli/commands/mfe-generate-metadata.d.ts +20 -0
- package/dist/cli/commands/mfe-generate-metadata.d.ts.map +1 -0
- package/dist/cli/commands/mfe-generate-metadata.js +93 -0
- package/dist/cli/commands/mfe-generate-metadata.js.map +1 -0
- package/dist/cli/commands/mfe-list.d.ts +52 -15
- package/dist/cli/commands/mfe-list.d.ts.map +1 -1
- package/dist/cli/commands/mfe-list.js +42 -29
- package/dist/cli/commands/mfe-list.js.map +1 -1
- package/dist/cli/commands/mfe-package-clean.d.ts +34 -15
- package/dist/cli/commands/mfe-package-clean.d.ts.map +1 -1
- package/dist/cli/commands/mfe-package-clean.js +43 -34
- package/dist/cli/commands/mfe-package-clean.js.map +1 -1
- package/dist/cli/commands/mfe-package-publish.d.ts +60 -22
- package/dist/cli/commands/mfe-package-publish.d.ts.map +1 -1
- package/dist/cli/commands/mfe-package-publish.js +137 -78
- package/dist/cli/commands/mfe-package-publish.js.map +1 -1
- package/dist/cli/commands/mfe-package-rollback.d.ts +40 -0
- package/dist/cli/commands/mfe-package-rollback.d.ts.map +1 -0
- package/dist/cli/commands/mfe-package-rollback.js +119 -0
- package/dist/cli/commands/mfe-package-rollback.js.map +1 -0
- package/dist/cli/commands/mfe-publish.d.ts +36 -11
- package/dist/cli/commands/mfe-publish.d.ts.map +1 -1
- package/dist/cli/commands/mfe-publish.js +72 -22
- package/dist/cli/commands/mfe-publish.js.map +1 -1
- package/dist/cli/commands/prepare-package.d.ts +14 -5
- package/dist/cli/commands/prepare-package.d.ts.map +1 -1
- package/dist/cli/commands/prepare-package.js +20 -0
- package/dist/cli/commands/prepare-package.js.map +1 -1
- package/dist/cli/commands/review/review.d.ts +17 -8
- package/dist/cli/commands/review/review.d.ts.map +1 -1
- package/dist/cli/commands/review/review.js +16 -21
- package/dist/cli/commands/review/review.js.map +1 -1
- package/dist/cli/commands/review/rules/index.d.ts.map +1 -1
- package/dist/cli/commands/review/rules/index.js +3 -1
- package/dist/cli/commands/review/rules/index.js.map +1 -1
- package/dist/cli/commands/review/rules/no-deprecated-content-base.js.map +1 -1
- 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 +4 -4
- package/dist/cli/commands/review/rules/require-compatible-launch-darkly-sdk.js.map +1 -1
- package/dist/cli/commands/review/rules/require-one-collection-version.js +1 -2
- package/dist/cli/commands/review/rules/require-one-collection-version.js.map +1 -1
- package/dist/cli/commands/review/rules/require-one-uikit-version.d.ts.map +1 -1
- package/dist/cli/commands/review/rules/require-one-uikit-version.js +1 -0
- package/dist/cli/commands/review/rules/require-one-uikit-version.js.map +1 -1
- package/dist/cli/commands/review/rules/require-project-version-in-root-node-modules.d.ts.map +1 -1
- package/dist/cli/commands/review/rules/require-project-version-in-root-node-modules.js +8 -8
- package/dist/cli/commands/review/rules/require-project-version-in-root-node-modules.js.map +1 -1
- package/dist/cli/commands/review/rules/require-tsconfig-references.d.ts +24 -0
- package/dist/cli/commands/review/rules/require-tsconfig-references.d.ts.map +1 -0
- package/dist/cli/commands/review/rules/require-tsconfig-references.js +146 -0
- package/dist/cli/commands/review/rules/require-tsconfig-references.js.map +1 -0
- package/dist/cli/commands/review/utils/collate-dependencies.js +1 -3
- package/dist/cli/commands/review/utils/collate-dependencies.js.map +1 -1
- package/dist/cli/commands/review/utils/compare-version.js +2 -2
- package/dist/cli/commands/review/utils/compare-version.js.map +1 -1
- package/dist/cli/commands/review/utils/set-version.js +1 -1
- package/dist/cli/commands/review/utils/set-version.js.map +1 -1
- package/dist/cli/commands/run-task.d.ts +29 -7
- package/dist/cli/commands/run-task.d.ts.map +1 -1
- package/dist/cli/commands/run-task.js +21 -8
- package/dist/cli/commands/run-task.js.map +1 -1
- package/dist/cli/commands/run-task.test.js +14 -2
- package/dist/cli/commands/run-task.test.js.map +1 -1
- package/dist/cli/commands/start.d.ts +38 -18
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +65 -45
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/stylelint.d.ts +29 -7
- package/dist/cli/commands/stylelint.d.ts.map +1 -1
- package/dist/cli/commands/stylelint.js +18 -6
- package/dist/cli/commands/stylelint.js.map +1 -1
- package/dist/cli/commands/test/runners/vitest.js +1 -1
- package/dist/cli/commands/test/runners/vitest.js.map +1 -1
- package/dist/cli/commands/test/tests.d.ts +25 -5
- package/dist/cli/commands/test/tests.d.ts.map +1 -1
- package/dist/cli/commands/test/tests.js +22 -14
- package/dist/cli/commands/test/tests.js.map +1 -1
- package/dist/cli/commands/types.d.ts +51 -10
- package/dist/cli/commands/types.d.ts.map +1 -1
- package/dist/cli/commands/types.js +1 -0
- package/dist/cli/commands/types.js.map +1 -1
- package/dist/cli/commands/upload-sourcemaps.d.ts +26 -6
- package/dist/cli/commands/upload-sourcemaps.d.ts.map +1 -1
- package/dist/cli/commands/upload-sourcemaps.js +27 -4
- package/dist/cli/commands/upload-sourcemaps.js.map +1 -1
- package/dist/cli/commands/utils.d.ts +4 -0
- package/dist/cli/commands/utils.d.ts.map +1 -0
- package/dist/cli/commands/utils.js +28 -0
- package/dist/cli/commands/utils.js.map +1 -0
- package/dist/cli/index.js +8 -5
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/tasks/cli-task.d.ts.map +1 -1
- package/dist/cli/tasks/cli-task.js +1 -1
- package/dist/cli/tasks/cli-task.js.map +1 -1
- package/dist/cli/tasks/swc-compile-package.d.ts +1 -2
- package/dist/cli/tasks/swc-compile-package.d.ts.map +1 -1
- package/dist/cli/tasks/swc-compile-package.js.map +1 -1
- package/dist/cli/tasks/tsc-compile-package.d.ts +1 -2
- package/dist/cli/tasks/tsc-compile-package.d.ts.map +1 -1
- package/dist/cli/tasks/tsc-compile-package.js.map +1 -1
- package/dist/cli/tasks/tsc-compile.d.ts +1 -2
- package/dist/cli/tasks/tsc-compile.d.ts.map +1 -1
- package/dist/cli/tasks/tsc-compile.js.map +1 -1
- package/dist/cli/utils/bundle.d.ts.map +1 -1
- package/dist/cli/utils/bundle.js +2 -2
- package/dist/cli/utils/bundle.js.map +1 -1
- package/dist/cli/utils/check-startup-location.d.ts +4 -0
- package/dist/cli/utils/check-startup-location.d.ts.map +1 -0
- package/dist/cli/utils/check-startup-location.js +27 -0
- package/dist/cli/utils/check-startup-location.js.map +1 -0
- package/dist/cli/utils/cli-npm.d.ts +6 -0
- package/dist/cli/utils/cli-npm.d.ts.map +1 -1
- package/dist/cli/utils/cli-npm.js +25 -3
- package/dist/cli/utils/cli-npm.js.map +1 -1
- package/dist/cli/utils/compile-less.js +1 -1
- package/dist/cli/utils/compile-less.js.map +1 -1
- package/dist/cli/utils/constants.d.ts +2 -0
- package/dist/cli/utils/constants.d.ts.map +1 -0
- package/dist/cli/utils/constants.js +13 -0
- package/dist/cli/utils/constants.js.map +1 -0
- package/dist/cli/utils/copy-files.d.ts.map +1 -1
- package/dist/cli/utils/copy-files.js.map +1 -1
- package/dist/cli/utils/eslint.d.ts +1 -2
- package/dist/cli/utils/eslint.d.ts.map +1 -1
- package/dist/cli/utils/eslint.js.map +1 -1
- package/dist/cli/utils/index.d.ts +2 -0
- package/dist/cli/utils/index.d.ts.map +1 -1
- package/dist/cli/utils/index.js +2 -0
- package/dist/cli/utils/index.js.map +1 -1
- package/dist/cli/utils/is-module-installed.js +1 -1
- package/dist/cli/utils/is-module-installed.js.map +1 -1
- package/dist/cli/utils/lerna-exec.d.ts.map +1 -1
- package/dist/cli/utils/lerna-exec.js +1 -3
- package/dist/cli/utils/lerna-exec.js.map +1 -1
- package/dist/cli/utils/process-tree.js.map +1 -1
- package/dist/cli/utils/set-node-options.js +2 -4
- package/dist/cli/utils/set-node-options.js.map +1 -1
- package/dist/cli/utils/stylelint.d.ts +1 -2
- package/dist/cli/utils/stylelint.d.ts.map +1 -1
- package/dist/cli/utils/stylelint.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/jest/resolver.js +2 -2
- package/dist/jest/resolver.js.map +1 -1
- package/dist/jest/svg-transformer.d.ts.map +1 -1
- package/dist/jest/svg-transformer.js.map +1 -1
- package/dist/utils/find-packages.js +1 -1
- package/dist/utils/find-packages.js.map +1 -1
- package/dist/utils/format-relative-date.js +1 -1
- package/dist/utils/format-relative-date.js.map +1 -1
- package/dist/utils/get-configuration.d.ts +3 -0
- package/dist/utils/get-configuration.d.ts.map +1 -1
- package/dist/utils/get-configuration.js +14 -11
- package/dist/utils/get-configuration.js.map +1 -1
- package/dist/utils/get-destination-folders.d.ts.map +1 -1
- package/dist/utils/get-destination-folders.js.map +1 -1
- package/dist/utils/get-folders.d.ts.map +1 -1
- package/dist/utils/get-folders.js.map +1 -1
- package/dist/utils/get-jest-config.js +1 -1
- package/dist/utils/get-jest-config.js.map +1 -1
- package/dist/utils/get-package-data.js +1 -1
- package/dist/utils/get-package-data.js.map +1 -1
- package/dist/utils/get-packages.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/load-shared-dependencies.js.map +1 -1
- package/dist/utils/prettify.d.ts +13 -0
- package/dist/utils/prettify.d.ts.map +1 -0
- package/dist/utils/prettify.js +48 -0
- package/dist/utils/prettify.js.map +1 -0
- package/dist/utils/read-json.js +1 -1
- package/dist/utils/read-json.js.map +1 -1
- package/dist/utils/transform-svg.js +2 -2
- package/dist/utils/transform-svg.js.map +1 -1
- package/dist/webpack/configs/cache-config.js +1 -1
- package/dist/webpack/configs/cache-config.js.map +1 -1
- package/dist/webpack/configs/optimization-config.js +3 -4
- package/dist/webpack/configs/optimization-config.js.map +1 -1
- package/dist/webpack/configs/output-config.js +1 -1
- package/dist/webpack/configs/output-config.js.map +1 -1
- package/dist/webpack/configs/plugins/assets-manifest-plugin.d.ts.map +1 -1
- package/dist/webpack/configs/plugins/assets-manifest-plugin.js +5 -5
- package/dist/webpack/configs/plugins/assets-manifest-plugin.js.map +1 -1
- package/dist/webpack/configs/plugins/bundle-analyser-plugin.d.ts.map +1 -1
- package/dist/webpack/configs/plugins/bundle-analyser-plugin.js +1 -1
- package/dist/webpack/configs/plugins/bundle-analyser-plugin.js.map +1 -1
- package/dist/webpack/configs/plugins/define-exposed-dependencies-plugin.d.ts.map +1 -1
- package/dist/webpack/configs/plugins/define-exposed-dependencies-plugin.js +6 -9
- package/dist/webpack/configs/plugins/define-exposed-dependencies-plugin.js.map +1 -1
- package/dist/webpack/configs/plugins/html-tags-plugin.js +1 -1
- package/dist/webpack/configs/plugins/html-tags-plugin.js.map +1 -1
- package/dist/webpack/configs/plugins/ignore-plugin/check-resource.js +1 -1
- package/dist/webpack/configs/plugins/ignore-plugin/check-resource.js.map +1 -1
- package/dist/webpack/configs/plugins/ignore-plugin/ignore-plugin.d.ts.map +1 -1
- package/dist/webpack/configs/plugins/ignore-plugin/ignore-plugin.js.map +1 -1
- package/dist/webpack/configs/plugins/moment-locales-plugin.js +1 -1
- package/dist/webpack/configs/plugins/moment-locales-plugin.js.map +1 -1
- package/dist/webpack/configs/plugins/watch-run-plugin.d.ts.map +1 -1
- package/dist/webpack/configs/plugins/watch-run-plugin.js.map +1 -1
- package/dist/webpack/configs/types.d.ts +1 -0
- package/dist/webpack/configs/types.d.ts.map +1 -1
- package/dist/webpack/configs/utils/build-metadata.d.ts +10 -0
- package/dist/webpack/configs/utils/build-metadata.d.ts.map +1 -0
- package/dist/webpack/configs/utils/build-metadata.js +50 -0
- package/dist/webpack/configs/utils/build-metadata.js.map +1 -0
- package/dist/webpack/configs/utils/generate-metadata.d.ts.map +1 -1
- package/dist/webpack/configs/utils/generate-metadata.js +5 -24
- package/dist/webpack/configs/utils/generate-metadata.js.map +1 -1
- package/dist/webpack/configs/utils/get-exposed-dependencies.d.ts +3 -0
- package/dist/webpack/configs/utils/get-exposed-dependencies.d.ts.map +1 -0
- package/dist/webpack/configs/utils/get-exposed-dependencies.js +21 -0
- package/dist/webpack/configs/utils/get-exposed-dependencies.js.map +1 -0
- package/dist/webpack/configs/utils/get-launchdarkly-sdk-version.js +1 -1
- package/dist/webpack/configs/utils/get-launchdarkly-sdk-version.js.map +1 -1
- package/dist/webpack/configs/utils/index.d.ts +1 -0
- package/dist/webpack/configs/utils/index.d.ts.map +1 -1
- package/dist/webpack/configs/utils/index.js +1 -0
- package/dist/webpack/configs/utils/index.js.map +1 -1
- package/dist/webpack/create-webpack-config.js +10 -4
- package/dist/webpack/create-webpack-config.js.map +1 -1
- package/dist/webpack/loaders/expose-loader/index.d.ts.map +1 -1
- package/dist/webpack/loaders/expose-loader/index.js.map +1 -1
- package/dist/webpack/loaders/expose-loader/runtime/get-global-this.js +1 -1
- package/dist/webpack/loaders/expose-loader/runtime/get-global-this.js.map +1 -1
- package/dist/webpack/loaders/expose-loader/utils/get-new-user-request.js +2 -2
- package/dist/webpack/loaders/expose-loader/utils/get-new-user-request.js.map +1 -1
- package/dist/webpack/utils/stringify-config.js +2 -2
- package/dist/webpack/utils/stringify-config.js.map +1 -1
- package/dist/webpack/utils/testing/get-compiler.d.ts.map +1 -1
- package/dist/webpack/utils/testing/get-compiler.js +1 -1
- package/dist/webpack/utils/testing/get-compiler.js.map +1 -1
- package/dist/webpack/utils/testing/get-errors.d.ts.map +1 -1
- package/dist/webpack/utils/testing/get-errors.js.map +1 -1
- package/dist/webpack/utils/testing/get-warnings.d.ts.map +1 -1
- package/dist/webpack/utils/testing/get-warnings.js.map +1 -1
- package/dist/webpack/utils/testing/read-asset.d.ts.map +1 -1
- package/dist/webpack/utils/testing/read-asset.js +1 -1
- package/dist/webpack/utils/testing/read-asset.js.map +1 -1
- package/dist/webpack/utils/testing/read-assets.d.ts.map +1 -1
- package/dist/webpack/utils/testing/read-assets.js.map +1 -1
- package/package.json +35 -41
- package/src/cli/commands/__tests__/build.test.ts +32 -9
- package/src/cli/commands/__tests__/bundle-package.test.ts +2 -1
- package/src/cli/commands/__tests__/clean.test.ts +99 -8
- package/src/cli/commands/__tests__/convert-eslint-config.test.ts +14 -9
- package/src/cli/commands/__tests__/eslint.test.ts +1 -1
- package/src/cli/commands/__tests__/get-command.test.ts +3 -1
- package/src/cli/commands/__tests__/init.test.ts +14 -1
- package/src/cli/commands/__tests__/install.test.ts +6 -2
- package/src/cli/commands/__tests__/kendo-ui-license.test.ts +7 -2
- package/src/cli/commands/__tests__/lint.test.ts +4 -2
- package/src/cli/commands/__tests__/mfe-check.test.ts +346 -0
- package/src/cli/commands/__tests__/mfe-generate-metadata.test.ts +160 -0
- package/src/cli/commands/__tests__/mfe-list.test.ts +8 -1
- package/src/cli/commands/__tests__/mfe-package-clean.test.ts +0 -1
- package/src/cli/commands/__tests__/mfe-package-publish.test.ts +322 -93
- package/src/cli/commands/__tests__/mfe-package-rollback.test.ts +196 -0
- package/src/cli/commands/__tests__/mfe-publish.test.ts +65 -5
- package/src/cli/commands/__tests__/prepare-package.test.ts +3 -0
- package/src/cli/commands/__tests__/start.test.ts +30 -7
- package/src/cli/commands/__tests__/stylelint.test.ts +1 -1
- package/src/cli/commands/__tests__/styles-check.test.ts +1 -2
- package/src/cli/commands/__tests__/upload-sourcemaps.test.ts +3 -6
- package/src/cli/commands/build.ts +35 -26
- package/src/cli/commands/bundle-package.ts +11 -10
- package/src/cli/commands/clean.ts +51 -5
- package/src/cli/commands/convert-eslint-config.ts +3 -12
- package/src/cli/commands/eslint.ts +9 -11
- package/src/cli/commands/get-command.ts +6 -1
- package/src/cli/commands/index.ts +2 -2
- package/src/cli/commands/init.ts +7 -9
- package/src/cli/commands/install.ts +11 -13
- package/src/cli/commands/kendo-ui-license.ts +1 -1
- package/src/cli/commands/lint.ts +12 -18
- package/src/cli/commands/mfe-check.ts +166 -0
- package/src/cli/commands/mfe-generate-metadata.ts +69 -0
- package/src/cli/commands/mfe-list.ts +28 -30
- package/src/cli/commands/mfe-package-clean.ts +29 -34
- package/src/cli/commands/mfe-package-publish.ts +153 -87
- package/src/cli/commands/mfe-package-rollback.ts +100 -0
- package/src/cli/commands/mfe-publish.ts +80 -27
- package/src/cli/commands/prepare-package.ts +6 -5
- package/src/cli/commands/review/__tests__/review.test.ts +18 -19
- package/src/cli/commands/review/review.ts +11 -20
- package/src/cli/commands/review/rules/__tests__/no-deprecated-content-base.test.ts +1 -1
- package/src/cli/commands/review/rules/__tests__/no-deprecated-startup-install.test.ts +0 -1
- package/src/cli/commands/review/rules/__tests__/no-direct-peer-dependencies.test.ts +1 -1
- package/src/cli/commands/review/rules/__tests__/no-typescript-entry-point.test.ts +0 -1
- package/src/cli/commands/review/rules/__tests__/require-all-react-dependencies.test.ts +0 -1
- package/src/cli/commands/review/rules/__tests__/require-compatible-launch-darkly-sdk.test.ts +2 -2
- package/src/cli/commands/review/rules/__tests__/require-explicit-side-effects.test.ts +0 -1
- package/src/cli/commands/review/rules/__tests__/require-npmrc.test.ts +0 -1
- package/src/cli/commands/review/rules/__tests__/require-one-anvil-uikit-contrib-version.test.ts +1 -2
- package/src/cli/commands/review/rules/__tests__/require-one-collection-version.test.ts +0 -1
- package/src/cli/commands/review/rules/__tests__/require-one-package-version.test.ts +0 -1
- package/src/cli/commands/review/rules/__tests__/require-one-react-version.test.ts +0 -1
- package/src/cli/commands/review/rules/__tests__/require-one-uikit-version.test.ts +1 -1
- package/src/cli/commands/review/rules/__tests__/require-project-version-in-root-node-modules.test.ts +2 -3
- package/src/cli/commands/review/rules/__tests__/require-servicetitan-scope.test.ts +0 -1
- package/src/cli/commands/review/rules/__tests__/require-tsconfig-references.test.ts +315 -0
- package/src/cli/commands/review/rules/index.ts +2 -0
- package/src/cli/commands/review/rules/require-compatible-launch-darkly-sdk.ts +1 -1
- package/src/cli/commands/review/rules/require-one-uikit-version.ts +1 -0
- package/src/cli/commands/review/rules/require-project-version-in-root-node-modules.ts +3 -3
- package/src/cli/commands/review/rules/require-tsconfig-references.ts +157 -0
- package/src/cli/commands/review/utils/__tests__/set-version.test.ts +0 -1
- package/src/cli/commands/run-task.test.ts +15 -3
- package/src/cli/commands/run-task.ts +12 -14
- package/src/cli/commands/start.ts +75 -59
- package/src/cli/commands/stylelint.ts +9 -11
- package/src/cli/commands/test/runners/__tests__/jest.test.ts +1 -2
- package/src/cli/commands/test/runners/vitest.ts +1 -1
- package/src/cli/commands/test/tests.ts +13 -15
- package/src/cli/commands/types.ts +53 -7
- package/src/cli/commands/upload-sourcemaps.ts +14 -12
- package/src/cli/commands/utils.ts +6 -0
- package/src/cli/index.ts +11 -7
- package/src/cli/tasks/__tests__/cli-task.test.ts +1 -1
- package/src/cli/tasks/__tests__/swc-compile-package.test.ts +3 -1
- package/src/cli/tasks/__tests__/tsc-compile-package.test.ts +2 -0
- package/src/cli/tasks/__tests__/tsc-compile.test.ts +3 -13
- package/src/cli/tasks/cli-task.ts +1 -1
- package/src/cli/tasks/swc-compile-package.ts +1 -3
- package/src/cli/tasks/tsc-compile-package.ts +1 -2
- package/src/cli/tasks/tsc-compile.ts +1 -2
- package/src/cli/utils/__tests__/bundle.test.ts +1 -2
- package/src/cli/utils/__tests__/check-args.test.ts +1 -1
- package/src/cli/utils/__tests__/check-startup-location.test.ts +88 -0
- package/src/cli/utils/__tests__/cli-git.test.ts +1 -2
- package/src/cli/utils/__tests__/cli-npm.test.ts +51 -2
- package/src/cli/utils/__tests__/cli-os.test.ts +1 -2
- package/src/cli/utils/__tests__/compile.test.ts +1 -1
- package/src/cli/utils/__tests__/copy-files.test.ts +0 -1
- package/src/cli/utils/__tests__/eslint.test.ts +1 -1
- package/src/cli/utils/__tests__/lerna-exec.test.ts +1 -2
- package/src/cli/utils/__tests__/maybe-create-git-folder.test.ts +0 -1
- package/src/cli/utils/__tests__/set-node-options.test.ts +0 -1
- package/src/cli/utils/__tests__/stylelint.test.ts +1 -1
- package/src/cli/utils/bundle.ts +1 -3
- package/src/cli/utils/check-startup-location.ts +21 -0
- package/src/cli/utils/cli-npm.ts +22 -0
- package/src/cli/utils/compile-less.ts +1 -1
- package/src/cli/utils/constants.ts +1 -0
- package/src/cli/utils/copy-files.ts +0 -1
- package/src/cli/utils/eslint.ts +1 -3
- package/src/cli/utils/index.ts +2 -0
- package/src/cli/utils/lerna-exec.ts +0 -1
- package/src/cli/utils/stylelint.ts +1 -2
- package/src/index.ts +1 -1
- package/src/jest/svg-transformer.ts +0 -1
- package/src/utils/__tests__/get-branch-configs.test.ts +0 -1
- package/src/utils/__tests__/get-configuration.test.ts +0 -1
- package/src/utils/__tests__/get-destination-folders.test.ts +1 -2
- package/src/utils/__tests__/get-folders.test.ts +0 -1
- package/src/utils/__tests__/get-jest-config.test.ts +1 -2
- package/src/utils/__tests__/get-package-data.test.ts +1 -2
- package/src/utils/__tests__/get-packages.test.ts +1 -1
- package/src/utils/__tests__/get-startup-version.test.ts +0 -1
- package/src/utils/__tests__/get-tsconfig.test.ts +0 -1
- package/src/utils/__tests__/load-shared-dependencies.test.ts +1 -1
- package/src/utils/__tests__/log.test.ts +1 -1
- package/src/utils/__tests__/prettify.test.ts +80 -0
- package/src/utils/__tests__/read-json.test.ts +0 -1
- package/src/utils/find-packages.ts +1 -1
- package/src/utils/get-configuration.ts +8 -7
- package/src/utils/get-destination-folders.ts +0 -1
- package/src/utils/get-folders.ts +0 -1
- package/src/utils/get-jest-config.ts +1 -1
- package/src/utils/index.ts +1 -0
- package/src/utils/prettify.ts +36 -0
- package/src/webpack/__tests__/create-webpack-config-shared-dependencies.test.ts +6 -2
- package/src/webpack/__tests__/create-webpack-config-web-component.test.ts +7 -4
- package/src/webpack/__tests__/create-webpack-config.test.ts +8 -4
- package/src/webpack/configs/cache-config.ts +1 -1
- package/src/webpack/configs/plugins/assets-manifest-plugin.ts +1 -1
- package/src/webpack/configs/plugins/bundle-analyser-plugin.ts +2 -2
- package/src/webpack/configs/plugins/define-exposed-dependencies-plugin.ts +6 -15
- package/src/webpack/configs/plugins/ignore-plugin/__tests__/get-package-json.test.ts +1 -1
- package/src/webpack/configs/plugins/ignore-plugin/__tests__/is-optional-peer-dependency.test.ts +1 -1
- package/src/webpack/configs/plugins/ignore-plugin/ignore-plugin.ts +0 -1
- package/src/webpack/configs/plugins/watch-run-plugin.ts +0 -1
- package/src/webpack/configs/types.ts +1 -0
- package/src/webpack/configs/utils/__tests__/build-metadata.test.ts +71 -0
- package/src/webpack/configs/utils/__tests__/generate-metadata.test.ts +42 -46
- package/src/webpack/configs/utils/__tests__/get-exposed-dependencies.test.ts +39 -0
- package/src/webpack/configs/utils/__tests__/get-web-components-version.test.ts +0 -1
- package/src/webpack/configs/utils/build-metadata.ts +40 -0
- package/src/webpack/configs/utils/generate-metadata.ts +7 -21
- package/src/webpack/configs/utils/get-exposed-dependencies.ts +17 -0
- package/src/webpack/configs/utils/index.ts +1 -0
- package/src/webpack/create-webpack-config.ts +3 -3
- package/src/webpack/loaders/expose-loader/__tests__/index.test.ts +0 -2
- package/src/webpack/loaders/expose-loader/index.ts +0 -1
- package/src/webpack/utils/testing/get-compiler.ts +1 -3
- package/src/webpack/utils/testing/get-errors.ts +0 -1
- package/src/webpack/utils/testing/get-warnings.ts +0 -1
- package/src/webpack/utils/testing/read-asset.ts +1 -2
- package/src/webpack/utils/testing/read-assets.ts +0 -1
|
@@ -9,10 +9,11 @@ Object.defineProperty(exports, "MFEPublish", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
const _utils = require("../../utils");
|
|
12
|
+
const _utils1 = require("../utils");
|
|
12
13
|
const _mfepackageclean = require("./mfe-package-clean");
|
|
13
14
|
const _mfepackagepublish = require("./mfe-package-publish");
|
|
15
|
+
const _mfepackagerollback = require("./mfe-package-rollback");
|
|
14
16
|
const _types = require("./types");
|
|
15
|
-
const _utils1 = require("../utils");
|
|
16
17
|
function _define_property(obj, key, value) {
|
|
17
18
|
if (key in obj) {
|
|
18
19
|
Object.defineProperty(obj, key, {
|
|
@@ -35,41 +36,61 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
35
36
|
function _ts_metadata(k, v) {
|
|
36
37
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
37
38
|
}
|
|
39
|
+
const mfePublishOwnOptions = {
|
|
40
|
+
clean: {
|
|
41
|
+
boolean: true,
|
|
42
|
+
description: 'Unpublish old versions'
|
|
43
|
+
},
|
|
44
|
+
concurrency: {
|
|
45
|
+
number: true,
|
|
46
|
+
description: 'Publish/unpublish the specified number of packages concurrently',
|
|
47
|
+
defaultDescription: '1'
|
|
48
|
+
},
|
|
49
|
+
rollback: {
|
|
50
|
+
boolean: true,
|
|
51
|
+
description: 'Rollback specified tag to the previous version'
|
|
52
|
+
},
|
|
53
|
+
scope: {
|
|
54
|
+
array: true,
|
|
55
|
+
string: true,
|
|
56
|
+
description: 'Publish/unpublish only the specified packages'
|
|
57
|
+
}
|
|
58
|
+
};
|
|
38
59
|
class MFEPublish extends _types.Command {
|
|
39
60
|
static get options() {
|
|
40
|
-
const publishOptions = Object.entries(_mfepackagepublish.
|
|
61
|
+
const publishOptions = Object.entries(_mfepackagepublish.mfePackagePublishOptions).reduce((result, [key, value])=>{
|
|
41
62
|
result[key] = {
|
|
42
63
|
group: 'Publish Options:',
|
|
43
64
|
...value
|
|
44
65
|
};
|
|
45
66
|
return result;
|
|
46
67
|
}, {});
|
|
47
|
-
const cleanOptions = Object.entries(_mfepackageclean.
|
|
48
|
-
|
|
68
|
+
const cleanOptions = Object.entries(_mfepackageclean.mfePackageCleanOptions).reduce((result, [key, value])=>{
|
|
69
|
+
// no-break space suffix prevents key collisions
|
|
70
|
+
result[`${key}\u00A0`] = {
|
|
49
71
|
group: 'Clean Options:',
|
|
50
72
|
...value
|
|
51
73
|
};
|
|
52
74
|
return result;
|
|
53
75
|
}, {});
|
|
76
|
+
const rollbackOptions = Object.entries(_mfepackagerollback.mfePackageRollbackOptions).reduce((result, [key, value])=>{
|
|
77
|
+
const optionProps = Object.fromEntries(Object.entries(value).filter(([k])=>k !== 'required'));
|
|
78
|
+
// double no-break space suffix prevents key collisions
|
|
79
|
+
result[`${key}\u00A0\u00A0`] = {
|
|
80
|
+
group: 'Rollback Options:',
|
|
81
|
+
...optionProps
|
|
82
|
+
};
|
|
83
|
+
return result;
|
|
84
|
+
}, {});
|
|
54
85
|
return {
|
|
55
|
-
|
|
56
|
-
boolean: true,
|
|
57
|
-
description: 'Unpublish old versions'
|
|
58
|
-
},
|
|
59
|
-
concurrency: {
|
|
60
|
-
number: true,
|
|
61
|
-
description: 'Publish/unpublish the specified number of packages concurrently',
|
|
62
|
-
defaultDescription: '1'
|
|
63
|
-
},
|
|
64
|
-
scope: {
|
|
65
|
-
array: true,
|
|
66
|
-
description: 'Publish/unpublish only the specified packages'
|
|
67
|
-
},
|
|
86
|
+
...mfePublishOwnOptions,
|
|
68
87
|
...publishOptions,
|
|
69
|
-
...cleanOptions
|
|
88
|
+
...cleanOptions,
|
|
89
|
+
...rollbackOptions
|
|
70
90
|
};
|
|
71
91
|
}
|
|
72
92
|
async execute() {
|
|
93
|
+
var _this_args_concurrency;
|
|
73
94
|
const packages = (0, _utils.getPackages)({
|
|
74
95
|
scope: this.args.scope,
|
|
75
96
|
type: _utils.PackageType.Webpack
|
|
@@ -77,18 +98,27 @@ class MFEPublish extends _types.Command {
|
|
|
77
98
|
if (!packages.length) {
|
|
78
99
|
throw new Error('no packages found for publication');
|
|
79
100
|
}
|
|
101
|
+
const isRollback = !!this.args.rollback;
|
|
80
102
|
const isClean = !!this.args.clean;
|
|
81
|
-
|
|
103
|
+
let cmdSuffix;
|
|
104
|
+
let options;
|
|
105
|
+
if (isRollback) {
|
|
106
|
+
cmdSuffix = 'rollback';
|
|
107
|
+
options = this.getRollbackOptions();
|
|
108
|
+
} else {
|
|
109
|
+
cmdSuffix = isClean ? 'clean' : 'publish';
|
|
110
|
+
options = isClean ? this.getCleanOptions() : this.getPublishOptions();
|
|
111
|
+
}
|
|
82
112
|
await (0, _utils1.lernaExec)({
|
|
83
|
-
'cmd': `startup mfe-package-${
|
|
113
|
+
'cmd': `startup mfe-package-${cmdSuffix}`,
|
|
84
114
|
'parallel': (_this_args_concurrency = this.args.concurrency) !== null && _this_args_concurrency !== void 0 ? _this_args_concurrency : 1,
|
|
85
115
|
'scope': packages.map(({ name })=>name),
|
|
86
116
|
'stream': true,
|
|
87
|
-
'--':
|
|
117
|
+
'--': options
|
|
88
118
|
});
|
|
89
119
|
}
|
|
90
120
|
getPublishOptions() {
|
|
91
|
-
const { build, branch, dry, force, registry, tag, uploadSourcemaps } = this.args;
|
|
121
|
+
const { build, branch, dry, force, registry, tag, uploadSourcemaps, trackHistory } = this.args;
|
|
92
122
|
return [
|
|
93
123
|
...[
|
|
94
124
|
branch && `--branch ${branch}`
|
|
@@ -105,6 +135,12 @@ class MFEPublish extends _types.Command {
|
|
|
105
135
|
...[
|
|
106
136
|
registry && `--registry ${registry}`
|
|
107
137
|
],
|
|
138
|
+
...[
|
|
139
|
+
trackHistory === true && '--track-history'
|
|
140
|
+
],
|
|
141
|
+
...[
|
|
142
|
+
trackHistory === false && '--no-track-history'
|
|
143
|
+
],
|
|
108
144
|
...[
|
|
109
145
|
typeof tag === 'string' && `--tag ${tag}`
|
|
110
146
|
],
|
|
@@ -116,6 +152,20 @@ class MFEPublish extends _types.Command {
|
|
|
116
152
|
]
|
|
117
153
|
].filter((item)=>!!item);
|
|
118
154
|
}
|
|
155
|
+
getRollbackOptions() {
|
|
156
|
+
const { dry, registry, tag } = this.args;
|
|
157
|
+
return [
|
|
158
|
+
...[
|
|
159
|
+
dry && '--dry'
|
|
160
|
+
],
|
|
161
|
+
...[
|
|
162
|
+
registry && `--registry ${registry}`
|
|
163
|
+
],
|
|
164
|
+
...[
|
|
165
|
+
typeof tag === 'string' && `--tag ${tag}`
|
|
166
|
+
]
|
|
167
|
+
].filter((item)=>!!item);
|
|
168
|
+
}
|
|
119
169
|
getCleanOptions() {
|
|
120
170
|
const { all, branch, count, dry, registry } = this.args;
|
|
121
171
|
return [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/cli/commands/mfe-publish.ts"],"sourcesContent":["import { getPackages, isWebComponent, logErrors, PackageType } from '../../utils';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../src/cli/commands/mfe-publish.ts"],"sourcesContent":["import { getPackages, isWebComponent, logErrors, PackageType } from '../../utils';\nimport { lernaExec } from '../utils';\nimport { mfePackageCleanOptions } from './mfe-package-clean';\nimport { mfePackagePublishOptions } from './mfe-package-publish';\nimport { mfePackageRollbackOptions } from './mfe-package-rollback';\nimport { Command, CommandOptions } from './types';\n\nconst mfePublishOwnOptions = {\n clean: { boolean: true, description: 'Unpublish old versions' },\n concurrency: {\n number: true,\n description: 'Publish/unpublish the specified number of packages concurrently',\n defaultDescription: '1',\n },\n rollback: {\n boolean: true,\n description: 'Rollback specified tag to the previous version',\n },\n scope: {\n array: true,\n string: true,\n description: 'Publish/unpublish only the specified packages',\n },\n} satisfies CommandOptions;\n\ntype MFEPublishOptions = typeof mfePublishOwnOptions &\n typeof mfePackagePublishOptions &\n typeof mfePackageCleanOptions &\n // make 'tag' not required for mfe-publish args, since it is only required for rollback\n Omit<typeof mfePackageRollbackOptions, 'tag'> & {\n tag: Omit<typeof mfePackageRollbackOptions.tag, 'required'>;\n };\n\nexport class MFEPublish extends Command<MFEPublishOptions> {\n static readonly description = 'Publish or unpublish MFE packages';\n static get options() {\n const publishOptions = Object.entries(mfePackagePublishOptions).reduce(\n (result, [key, value]) => {\n result[key] = { group: 'Publish Options:', ...value };\n return result;\n },\n {} as NonNullable<typeof Command.options>\n );\n\n const cleanOptions = Object.entries(mfePackageCleanOptions).reduce(\n (result, [key, value]) => {\n // no-break space suffix prevents key collisions\n result[`${key}\\u00A0`] = {\n group: 'Clean Options:',\n ...value,\n };\n return result;\n },\n {} as NonNullable<typeof Command.options>\n );\n\n const rollbackOptions = Object.entries(mfePackageRollbackOptions).reduce(\n (result, [key, value]) => {\n const optionProps = Object.fromEntries(\n Object.entries(value).filter(([k]) => k !== 'required')\n );\n // double no-break space suffix prevents key collisions\n result[`${key}\\u00A0\\u00A0`] = {\n group: 'Rollback Options:',\n ...optionProps,\n };\n return result;\n },\n {} as NonNullable<typeof Command.options>\n );\n\n return {\n ...mfePublishOwnOptions,\n ...publishOptions,\n ...cleanOptions,\n ...rollbackOptions,\n };\n }\n\n @logErrors\n async execute() {\n const packages = getPackages({ scope: this.args.scope, type: PackageType.Webpack }).filter(\n ({ location }) => isWebComponent(location)\n );\n\n if (!packages.length) {\n throw new Error('no packages found for publication');\n }\n\n const isRollback = !!this.args.rollback;\n const isClean = !!this.args.clean;\n\n let cmdSuffix: string;\n let options: string[];\n\n if (isRollback) {\n cmdSuffix = 'rollback';\n options = this.getRollbackOptions();\n } else {\n cmdSuffix = isClean ? 'clean' : 'publish';\n options = isClean ? this.getCleanOptions() : this.getPublishOptions();\n }\n\n await lernaExec({\n 'cmd': `startup mfe-package-${cmdSuffix}`,\n 'parallel': this.args.concurrency ?? 1,\n 'scope': packages.map(({ name }) => name),\n 'stream': true,\n '--': options,\n });\n }\n\n getPublishOptions() {\n const { build, branch, dry, force, registry, tag, uploadSourcemaps, trackHistory } =\n this.args;\n return [\n ...[branch && `--branch ${branch}`],\n ...[build && `--build ${build}`],\n ...[dry && '--dry'],\n ...[force && '--force'],\n ...[registry && `--registry ${registry}`],\n ...[trackHistory === true && '--track-history'],\n ...[trackHistory === false && '--no-track-history'],\n ...[typeof tag === 'string' && `--tag ${tag}`],\n ...[uploadSourcemaps === true && `--upload-sourcemaps`],\n ...[uploadSourcemaps === false && `--no-upload-sourcemaps`],\n ].filter(item => !!item) as string[];\n }\n\n getRollbackOptions() {\n const { dry, registry, tag } = this.args;\n return [\n ...[dry && '--dry'],\n ...[registry && `--registry ${registry}`],\n ...[typeof tag === 'string' && `--tag ${tag}`],\n ].filter(item => !!item) as string[];\n }\n\n getCleanOptions() {\n const { all, branch, count, dry, registry } = this.args;\n return [\n ...[all && '--all'],\n ...[typeof branch === 'string' && `--branch ${branch}`],\n ...[count && `--count ${count}`],\n ...[dry && '--dry'],\n ...[registry && `--registry ${registry}`],\n ].filter(item => !!item) as string[];\n }\n}\n"],"names":["MFEPublish","mfePublishOwnOptions","clean","boolean","description","concurrency","number","defaultDescription","rollback","scope","array","string","Command","options","publishOptions","Object","entries","mfePackagePublishOptions","reduce","result","key","value","group","cleanOptions","mfePackageCleanOptions","rollbackOptions","mfePackageRollbackOptions","optionProps","fromEntries","filter","k","execute","packages","getPackages","args","type","PackageType","Webpack","location","isWebComponent","length","Error","isRollback","isClean","cmdSuffix","getRollbackOptions","getCleanOptions","getPublishOptions","lernaExec","map","name","build","branch","dry","force","registry","tag","uploadSourcemaps","trackHistory","item","all","count"],"mappings":"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"}
|
|
@@ -1,8 +1,17 @@
|
|
|
1
|
-
import { Command
|
|
2
|
-
|
|
3
|
-
watch
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { Command } from './types';
|
|
2
|
+
declare const options: {
|
|
3
|
+
watch: {
|
|
4
|
+
boolean: true;
|
|
5
|
+
hidden: true;
|
|
6
|
+
};
|
|
7
|
+
};
|
|
8
|
+
export declare class PreparePackage extends Command<typeof options> {
|
|
9
|
+
static readonly options: {
|
|
10
|
+
watch: {
|
|
11
|
+
boolean: true;
|
|
12
|
+
hidden: true;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
6
15
|
execute(): Promise<void>;
|
|
7
16
|
}
|
|
8
17
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare-package.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/prepare-package.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"prepare-package.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/prepare-package.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAkB,MAAM,SAAS,CAAC;AAElD,QAAA,MAAM,OAAO;;;;;CAEa,CAAC;AAE3B,qBAAa,cAAe,SAAQ,OAAO,CAAC,OAAO,OAAO,CAAC;IACvD,MAAM,CAAC,QAAQ,CAAC,OAAO;;;;;MAAW;IAElC,OAAO;CAGV"}
|
|
@@ -11,6 +11,19 @@ Object.defineProperty(exports, "PreparePackage", {
|
|
|
11
11
|
const _utils = require("../../utils");
|
|
12
12
|
const _utils1 = require("../utils");
|
|
13
13
|
const _types = require("./types");
|
|
14
|
+
function _define_property(obj, key, value) {
|
|
15
|
+
if (key in obj) {
|
|
16
|
+
Object.defineProperty(obj, key, {
|
|
17
|
+
value: value,
|
|
18
|
+
enumerable: true,
|
|
19
|
+
configurable: true,
|
|
20
|
+
writable: true
|
|
21
|
+
});
|
|
22
|
+
} else {
|
|
23
|
+
obj[key] = value;
|
|
24
|
+
}
|
|
25
|
+
return obj;
|
|
26
|
+
}
|
|
14
27
|
function _ts_decorate(decorators, target, key, desc) {
|
|
15
28
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
16
29
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -20,6 +33,12 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
20
33
|
function _ts_metadata(k, v) {
|
|
21
34
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
22
35
|
}
|
|
36
|
+
const options = {
|
|
37
|
+
watch: {
|
|
38
|
+
boolean: true,
|
|
39
|
+
hidden: true
|
|
40
|
+
}
|
|
41
|
+
};
|
|
23
42
|
class PreparePackage extends _types.Command {
|
|
24
43
|
execute() {
|
|
25
44
|
return (0, _utils1.copyFiles)({
|
|
@@ -27,6 +46,7 @@ class PreparePackage extends _types.Command {
|
|
|
27
46
|
});
|
|
28
47
|
}
|
|
29
48
|
}
|
|
49
|
+
_define_property(PreparePackage, "options", options);
|
|
30
50
|
_ts_decorate([
|
|
31
51
|
_utils.logErrors,
|
|
32
52
|
_ts_metadata("design:type", Function),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/cli/commands/prepare-package.ts"],"sourcesContent":["import { logErrors } from '../../utils';\nimport { copyFiles } from '../utils';\nimport { Command,
|
|
1
|
+
{"version":3,"sources":["../../../src/cli/commands/prepare-package.ts"],"sourcesContent":["import { logErrors } from '../../utils';\nimport { copyFiles } from '../utils';\nimport { Command, CommandOptions } from './types';\n\nconst options = {\n watch: { boolean: true, hidden: true },\n} satisfies CommandOptions;\n\nexport class PreparePackage extends Command<typeof options> {\n static readonly options = options;\n @logErrors\n execute() {\n return copyFiles({ watch: this.args.watch });\n }\n}\n"],"names":["PreparePackage","options","watch","boolean","hidden","Command","execute","copyFiles","args"],"mappings":";;;;+BAQaA;;;eAAAA;;;uBARa;wBACA;uBACc;;;;;;;;;;;;;;;;;;;;;;;AAExC,MAAMC,UAAU;IACZC,OAAO;QAAEC,SAAS;QAAMC,QAAQ;IAAK;AACzC;AAEO,MAAMJ,uBAAuBK,cAAO;IAGvCC,UAAU;QACN,OAAOC,IAAAA,iBAAS,EAAC;YAAEL,OAAO,IAAI,CAACM,IAAI,CAACN,KAAK;QAAC;IAC9C;AACJ;AALI,iBADSF,gBACOC,WAAUA"}
|
|
@@ -1,17 +1,26 @@
|
|
|
1
|
-
import { Command
|
|
2
|
-
|
|
3
|
-
fix
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { Command } from '../types';
|
|
2
|
+
declare const options: {
|
|
3
|
+
fix: {
|
|
4
|
+
boolean: true;
|
|
5
|
+
description: string;
|
|
6
|
+
};
|
|
7
|
+
rule: {
|
|
8
|
+
array: true;
|
|
9
|
+
string: true;
|
|
10
|
+
description: string;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
export declare class Review extends Command<typeof options> {
|
|
14
|
+
static readonly allowRunFromGlobal = true;
|
|
7
15
|
static readonly description = "Check project for configuration errors";
|
|
8
16
|
static readonly options: {
|
|
9
17
|
fix: {
|
|
10
|
-
boolean:
|
|
18
|
+
boolean: true;
|
|
11
19
|
description: string;
|
|
12
20
|
};
|
|
13
21
|
rule: {
|
|
14
|
-
array:
|
|
22
|
+
array: true;
|
|
23
|
+
string: true;
|
|
15
24
|
description: string;
|
|
16
25
|
};
|
|
17
26
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/review/review.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/review/review.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,OAAO,EAAkB,MAAM,UAAU,CAAC;AAuBnD,QAAA,MAAM,OAAO;;;;;;;;;;CAGa,CAAC;AAE3B,qBAAa,MAAO,SAAQ,OAAO,CAAC,OAAO,OAAO,CAAC;IAC/C,MAAM,CAAC,QAAQ,CAAC,kBAAkB,QAAQ;IAC1C,MAAM,CAAC,QAAQ,CAAC,WAAW,4CAA4C;IACvE,MAAM,CAAC,QAAQ,CAAC,OAAO;;;;;;;;;;MAAW;IAElC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAG9B;IAEF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAG9B;IAGI,OAAO;IAMb,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,SAAS;IAyCjB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,YAAY;IAoBpB,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,OAAO;IASf,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,gBAAgB;CAI3B"}
|
|
@@ -13,9 +13,9 @@ const _child_process = require("child_process");
|
|
|
13
13
|
const _terminallink = /*#__PURE__*/ _interop_require_default(require("terminal-link"));
|
|
14
14
|
const _utils = require("../../../utils");
|
|
15
15
|
const _types = require("../types");
|
|
16
|
+
const _rules = require("./rules");
|
|
16
17
|
const _types1 = require("./types");
|
|
17
18
|
const _utils1 = require("./utils");
|
|
18
|
-
const _rules = require("./rules");
|
|
19
19
|
function _define_property(obj, key, value) {
|
|
20
20
|
if (key in obj) {
|
|
21
21
|
Object.defineProperty(obj, key, {
|
|
@@ -44,6 +44,17 @@ function _ts_metadata(k, v) {
|
|
|
44
44
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
45
45
|
}
|
|
46
46
|
const collator = new Intl.Collator();
|
|
47
|
+
const options = {
|
|
48
|
+
fix: {
|
|
49
|
+
boolean: true,
|
|
50
|
+
description: 'Fix detected problems'
|
|
51
|
+
},
|
|
52
|
+
rule: {
|
|
53
|
+
array: true,
|
|
54
|
+
string: true,
|
|
55
|
+
description: 'Limit checks to specified rule(s)'
|
|
56
|
+
}
|
|
57
|
+
};
|
|
47
58
|
class Review extends _types.Command {
|
|
48
59
|
async execute() {
|
|
49
60
|
const errors = this.args.fix ? this.fixErrors() : this.findErrors();
|
|
@@ -113,7 +124,7 @@ class Review extends _types.Command {
|
|
|
113
124
|
totalFixed += 1;
|
|
114
125
|
}
|
|
115
126
|
});
|
|
116
|
-
(0, _child_process.execSync)('npx
|
|
127
|
+
(0, _child_process.execSync)('npx @servicetitan/install --fix --quiet', {
|
|
117
128
|
stdio: 'inherit'
|
|
118
129
|
});
|
|
119
130
|
project = this.createProject();
|
|
@@ -196,15 +207,7 @@ class Review extends _types.Command {
|
|
|
196
207
|
}
|
|
197
208
|
getSelectedRules() {
|
|
198
209
|
const rule = this.args.rule;
|
|
199
|
-
|
|
200
|
-
return new Set([
|
|
201
|
-
rule
|
|
202
|
-
]);
|
|
203
|
-
}
|
|
204
|
-
if (Array.isArray(rule)) {
|
|
205
|
-
return new Set(rule.filter((id)=>!!id));
|
|
206
|
-
}
|
|
207
|
-
return undefined;
|
|
210
|
+
return rule ? new Set(rule.filter((id)=>!!id)) : undefined;
|
|
208
211
|
}
|
|
209
212
|
constructor(...args){
|
|
210
213
|
super(...args), _define_property(this, "severityToLabel", {
|
|
@@ -216,17 +219,9 @@ class Review extends _types.Command {
|
|
|
216
219
|
});
|
|
217
220
|
}
|
|
218
221
|
}
|
|
222
|
+
_define_property(Review, "allowRunFromGlobal", true);
|
|
219
223
|
_define_property(Review, "description", 'Check project for configuration errors');
|
|
220
|
-
_define_property(Review, "options",
|
|
221
|
-
fix: {
|
|
222
|
-
boolean: true,
|
|
223
|
-
description: 'Fix detected problems'
|
|
224
|
-
},
|
|
225
|
-
rule: {
|
|
226
|
-
array: true,
|
|
227
|
-
description: 'Limit checks to specified rule(s)'
|
|
228
|
-
}
|
|
229
|
-
});
|
|
224
|
+
_define_property(Review, "options", options);
|
|
230
225
|
_ts_decorate([
|
|
231
226
|
_utils.logErrors,
|
|
232
227
|
_ts_metadata("design:type", Function),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/cli/commands/review/review.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { execSync } from 'child_process';\nimport terminalLink from 'terminal-link';\nimport {\n findPackages,\n getReviewConfiguration,\n log,\n logErrors,\n readJsonSafe,\n toArray,\n} from '../../../utils';\nimport { Command, CommandArgs } from '../types';\n\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';\nimport { rules } from './rules';\n\nconst collator = new Intl.Collator();\n\ninterface Args extends CommandArgs {\n fix?: boolean;\n rule?: string | string[];\n}\n\nexport class Review extends Command<Args> {\n static readonly description = 'Check project for configuration errors';\n static readonly options = {\n fix: { boolean: true, description: 'Fix detected problems' },\n rule: { array: true, description: 'Limit checks to specified rule(s)' },\n };\n\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 packageLock = readJsonSafe<Project['packageLock']>('package-lock.json');\n if (!packageLock?.packages) {\n throw new Error('this command must be run with valid package-lock.json');\n }\n\n root.location = '.'; // identifies the root package.json for rules that care\n packageLock.location = './package-lock.json';\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 { config, dependencies, packageLock, packages };\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 execSync('npx startup install --fix --quiet', { 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 if (typeof rule === 'string' && rule) {\n return new Set([rule]);\n }\n if (Array.isArray(rule)) {\n return new Set(rule.filter(id => !!id));\n }\n return 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","packageLock","packages","location","config","getReviewConfiguration","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","execSync","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","description","options","boolean","array","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 chalk from 'chalk';\nimport { execSync } from 'child_process';\nimport terminalLink from 'terminal-link';\nimport {\n findPackages,\n getReviewConfiguration,\n log,\n logErrors,\n readJsonSafe,\n toArray,\n} from '../../../utils';\nimport { Command, CommandOptions } 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\nconst options = {\n fix: { boolean: true, description: 'Fix detected problems' },\n rule: { array: true, string: true, description: 'Limit checks to specified rule(s)' },\n} satisfies CommandOptions;\n\nexport class Review extends Command<typeof options> {\n static readonly allowRunFromGlobal = true;\n static readonly description = 'Check project for configuration errors';\n static readonly options = options;\n\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 packageLock = readJsonSafe<Project['packageLock']>('package-lock.json');\n if (!packageLock?.packages) {\n throw new Error('this command must be run with valid package-lock.json');\n }\n\n root.location = '.'; // identifies the root package.json for rules that care\n packageLock.location = './package-lock.json';\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 { config, dependencies, packageLock, packages };\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 execSync('npx @servicetitan/install --fix --quiet', { 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","options","fix","boolean","description","rule","array","string","Command","execute","errors","args","fixErrors","findErrors","summary","reportErrors","error","Promise","reject","resolve","createProject","root","readJsonSafe","workspaces","Error","packageLock","packages","location","config","getReviewConfiguration","findPackages","dependencies","sortByKey","collateDependencies","debug","namespace","data","log","JSON","stringify","project","runRules","rulesById","rules","reduce","result","id","totalFixed","category","FixCategory","isolated","normal","lockFile","fixable","filter","length","forEach","text","formatError","details","execSync","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","allowRunFromGlobal","locationA","severityA","locationB","severityB","compare","obj","Object","fromEntries","entries","a","b"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/review/rules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/review/rules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAkBvC,eAAO,MAAM,KAAK,EAAE,WAAW,EAiB9B,CAAC"}
|
|
@@ -23,6 +23,7 @@ const _requireonereactversion = require("./require-one-react-version");
|
|
|
23
23
|
const _requireoneuikitversion = require("./require-one-uikit-version");
|
|
24
24
|
const _requireprojectversioninrootnodemodules = require("./require-project-version-in-root-node-modules");
|
|
25
25
|
const _requireservicetitanscope = require("./require-servicetitan-scope");
|
|
26
|
+
const _requiretsconfigreferences = require("./require-tsconfig-references");
|
|
26
27
|
const rules = [
|
|
27
28
|
new _requireallreactdependencies.RequireAllReactDependencies(),
|
|
28
29
|
new _requireoneanviluikitcontribversion.RequireOneAnvilUikitContribVersion(),
|
|
@@ -38,7 +39,8 @@ const rules = [
|
|
|
38
39
|
new _preferopenendedpeerdependencies.PreferOpenEndedPeerDependencies(),
|
|
39
40
|
new _requireservicetitanscope.RequireServiceTitanScope(),
|
|
40
41
|
new _requireexplicitsideeffects.RequireExplicitSideEffects(),
|
|
41
|
-
new _requirenpmrc.RequireNpmrc()
|
|
42
|
+
new _requirenpmrc.RequireNpmrc(),
|
|
43
|
+
new _requiretsconfigreferences.RequireTsconfigReferences()
|
|
42
44
|
];
|
|
43
45
|
|
|
44
46
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/cli/commands/review/rules/index.ts"],"sourcesContent":["import { PackageRule } from '../types';\nimport { NoDeprecatedContentBase } from './no-deprecated-content-base';\nimport { NoDeprecatedStartupInstall } from './no-deprecated-startup-install';\nimport { NoDirectPeerDependencies } from './no-direct-peer-dependencies';\nimport { NoTypescriptEntryPoint } from './no-typescript-entry-point';\nimport { PreferOpenEndedPeerDependencies } from './prefer-open-ended-peer-dependencies';\nimport { RequireAllReactDependencies } from './require-all-react-dependencies';\nimport { RequireCompatibleLaunchDarklySdk } from './require-compatible-launch-darkly-sdk';\nimport { RequireExplicitSideEffects } from './require-explicit-side-effects';\nimport { RequireNpmrc } from './require-npmrc';\nimport { RequireOneAnvilUikitContribVersion } from './require-one-anvil-uikit-contrib-version';\nimport { RequireOnePackageVersion } from './require-one-package-version';\nimport { RequireOneReactVersion } from './require-one-react-version';\nimport { RequireOneUikitVersion } from './require-one-uikit-version';\nimport { RequireProjectVersionInRootNodeModules } from './require-project-version-in-root-node-modules';\nimport { RequireServiceTitanScope } from './require-servicetitan-scope';\n\nexport const rules: PackageRule[] = [\n new RequireAllReactDependencies(),\n new RequireOneAnvilUikitContribVersion(),\n new RequireOnePackageVersion(),\n new RequireOneReactVersion(),\n new RequireOneUikitVersion(),\n new RequireProjectVersionInRootNodeModules(),\n new RequireCompatibleLaunchDarklySdk(),\n new NoDeprecatedContentBase(),\n new NoDirectPeerDependencies(),\n new NoDeprecatedStartupInstall(),\n new NoTypescriptEntryPoint(),\n new PreferOpenEndedPeerDependencies(),\n new RequireServiceTitanScope(),\n new RequireExplicitSideEffects(),\n new RequireNpmrc(),\n];\n"],"names":["rules","RequireAllReactDependencies","RequireOneAnvilUikitContribVersion","RequireOnePackageVersion","RequireOneReactVersion","RequireOneUikitVersion","RequireProjectVersionInRootNodeModules","RequireCompatibleLaunchDarklySdk","NoDeprecatedContentBase","NoDirectPeerDependencies","NoDeprecatedStartupInstall","NoTypescriptEntryPoint","PreferOpenEndedPeerDependencies","RequireServiceTitanScope","RequireExplicitSideEffects","RequireNpmrc"],"mappings":";;;;+
|
|
1
|
+
{"version":3,"sources":["../../../../../src/cli/commands/review/rules/index.ts"],"sourcesContent":["import { PackageRule } from '../types';\nimport { NoDeprecatedContentBase } from './no-deprecated-content-base';\nimport { NoDeprecatedStartupInstall } from './no-deprecated-startup-install';\nimport { NoDirectPeerDependencies } from './no-direct-peer-dependencies';\nimport { NoTypescriptEntryPoint } from './no-typescript-entry-point';\nimport { PreferOpenEndedPeerDependencies } from './prefer-open-ended-peer-dependencies';\nimport { RequireAllReactDependencies } from './require-all-react-dependencies';\nimport { RequireCompatibleLaunchDarklySdk } from './require-compatible-launch-darkly-sdk';\nimport { RequireExplicitSideEffects } from './require-explicit-side-effects';\nimport { RequireNpmrc } from './require-npmrc';\nimport { RequireOneAnvilUikitContribVersion } from './require-one-anvil-uikit-contrib-version';\nimport { RequireOnePackageVersion } from './require-one-package-version';\nimport { RequireOneReactVersion } from './require-one-react-version';\nimport { RequireOneUikitVersion } from './require-one-uikit-version';\nimport { RequireProjectVersionInRootNodeModules } from './require-project-version-in-root-node-modules';\nimport { RequireServiceTitanScope } from './require-servicetitan-scope';\nimport { RequireTsconfigReferences } from './require-tsconfig-references';\n\nexport const rules: PackageRule[] = [\n new RequireAllReactDependencies(),\n new RequireOneAnvilUikitContribVersion(),\n new RequireOnePackageVersion(),\n new RequireOneReactVersion(),\n new RequireOneUikitVersion(),\n new RequireProjectVersionInRootNodeModules(),\n new RequireCompatibleLaunchDarklySdk(),\n new NoDeprecatedContentBase(),\n new NoDirectPeerDependencies(),\n new NoDeprecatedStartupInstall(),\n new NoTypescriptEntryPoint(),\n new PreferOpenEndedPeerDependencies(),\n new RequireServiceTitanScope(),\n new RequireExplicitSideEffects(),\n new RequireNpmrc(),\n new RequireTsconfigReferences(),\n];\n"],"names":["rules","RequireAllReactDependencies","RequireOneAnvilUikitContribVersion","RequireOnePackageVersion","RequireOneReactVersion","RequireOneUikitVersion","RequireProjectVersionInRootNodeModules","RequireCompatibleLaunchDarklySdk","NoDeprecatedContentBase","NoDirectPeerDependencies","NoDeprecatedStartupInstall","NoTypescriptEntryPoint","PreferOpenEndedPeerDependencies","RequireServiceTitanScope","RequireExplicitSideEffects","RequireNpmrc","RequireTsconfigReferences"],"mappings":";;;;+BAkBaA;;;eAAAA;;;yCAjB2B;4CACG;0CACF;wCACF;iDACS;6CACJ;kDACK;4CACN;8BACd;oDACsB;0CACV;wCACF;wCACA;wDACgB;0CACd;2CACC;AAEnC,MAAMA,QAAuB;IAChC,IAAIC,wDAA2B;IAC/B,IAAIC,sEAAkC;IACtC,IAAIC,kDAAwB;IAC5B,IAAIC,8CAAsB;IAC1B,IAAIC,8CAAsB;IAC1B,IAAIC,8EAAsC;IAC1C,IAAIC,kEAAgC;IACpC,IAAIC,gDAAuB;IAC3B,IAAIC,kDAAwB;IAC5B,IAAIC,sDAA0B;IAC9B,IAAIC,8CAAsB;IAC1B,IAAIC,gEAA+B;IACnC,IAAIC,kDAAwB;IAC5B,IAAIC,sDAA0B;IAC9B,IAAIC,0BAAY;IAChB,IAAIC,oDAAyB;CAChC"}
|
|
@@ -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;;;;;;;;;;;;;;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,
|
|
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/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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAU1B;AADG,MAAMA;IAGT,IAAIC,KAAK;QACL,OAAO;IACX;IAEAC,IAAIC,OAAgB,EAA2B;uCACtC,UAAWA;QAChB,OAAOC,IAAAA,oBAAa,EAAC,IAAI,EAAED,SAAS,IAAI,CAACE,YAAY;IACzD;IAEAC,IAAI,EAAEC,IAAI,EAAEC,QAAQ,EAAa,EAAE;QAC/B,MAAM,EAAEC,UAAU,EAAEC,OAAO,EAAE,GAAGH,iBAAAA,kBAAAA,OAAQ,CAAC;QACzC,IAAI,CAAEC,CAAAA,YAAYC,cAAcC,OAAM,GAAI;YACtC;QACJ;QAEA,MAAMC,mBAAmBD,QAAQE,OAAO,CAAC,UAAU;QACnD,MAAMC,UAAU,CAAC,8BAA8B,EAAEJ,WAAW,IAAI,EAAEE,iBAAiB,KAAK,EAAEH,UAAU;QACpGM,IAAAA,uBAAQ,EAACD,SAAS;YAAEE,OAAO;QAAU;IACzC;IAsBQC,eAAeN,OAAe,EAAE;QACpC,OAAO,MAAMO,IAAI,CAACP;IACtB;IAEQQ,WAAW,EAAEC,IAAI,EAAW,EAAEV,UAAkB,EAAE;YACnC;QAAnB,MAAMW,cAAa,wCAAA,yBAAA,IAAI,EAAC,UAASC,MAAM,CAACC,KAAK,cAA1B,4DAAA,qCAA4B,CAAC,IAAI,CAACrB,EAAE,CAAC;QACxD,IAAIsB,MAAMC,OAAO,CAACJ,aAAa;gBACPA;YAApB,MAAM,EAAEK,OAAO,EAAE,
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAU1B;AADG,MAAMA;IAGT,IAAIC,KAAK;QACL,OAAO;IACX;IAEAC,IAAIC,OAAgB,EAA2B;uCACtC,UAAWA;QAChB,OAAOC,IAAAA,oBAAa,EAAC,IAAI,EAAED,SAAS,IAAI,CAACE,YAAY;IACzD;IAEAC,IAAI,EAAEC,IAAI,EAAEC,QAAQ,EAAa,EAAE;QAC/B,MAAM,EAAEC,UAAU,EAAEC,OAAO,EAAE,GAAGH,iBAAAA,kBAAAA,OAAQ,CAAC;QACzC,IAAI,CAAEC,CAAAA,YAAYC,cAAcC,OAAM,GAAI;YACtC;QACJ;QAEA,MAAMC,mBAAmBD,QAAQE,OAAO,CAAC,UAAU;QACnD,MAAMC,UAAU,CAAC,8BAA8B,EAAEJ,WAAW,IAAI,EAAEE,iBAAiB,KAAK,EAAEH,UAAU;QACpGM,IAAAA,uBAAQ,EAACD,SAAS;YAAEE,OAAO;QAAU;IACzC;IAsBQC,eAAeN,OAAe,EAAE;QACpC,OAAO,MAAMO,IAAI,CAACP;IACtB;IAEQQ,WAAW,EAAEC,IAAI,EAAW,EAAEV,UAAkB,EAAE;YACnC;QAAnB,MAAMW,cAAa,wCAAA,yBAAA,IAAI,EAAC,UAASC,MAAM,CAACC,KAAK,cAA1B,4DAAA,qCAA4B,CAAC,IAAI,CAACrB,EAAE,CAAC;QACxD,IAAIsB,MAAMC,OAAO,CAACJ,aAAa;gBACPA;YAApB,MAAM,EAAEK,OAAO,EAAE,IAAGL,eAAAA,UAAU,CAAC,EAAE,cAAbA,0BAAAA,eAAiB,CAAC;YACtC,IAAI,OAAOK,YAAY,YAAY,CAACF,MAAMC,OAAO,CAACC,UAAU;oBACjDA;gBAAP,QAAOA,gBAAAA,OAAO,CAACN,KAAK,cAAbM,oCAAAA,cAAeC,QAAQ,CAACjB;YACnC;QACJ;QACA,OAAO;IACX;IAEQkB,mBAAmBjB,OAAe,EAAE;QACxC,OAAOkB,IAAAA,iBAAS,EAAC,eAAelB;IACpC;IAEQmB,UAAUnB,OAAe,EAAE;QAC/B,OAAO,yBAAyBO,IAAI,CAACP;IACzC;IAEQoB,YACJC,GAAY,EACZ,EAAEtB,UAAU,EAAEC,OAAO,EAA2C,EAClE;QACE,OACI,CAAC,IAAI,CAACM,cAAc,CAACN,YACrB,CAAC,IAAI,CAACiB,kBAAkB,CAACjB,YACzB,CAAC,IAAI,CAACQ,UAAU,CAACa,KAAKtB;IAE9B;;QA1EA,gCAAA;;mBAAA,KAAA;;QAsBA,uBAAiBJ,gBAAe,CAAC0B;gBACPA;YAAtB,OAAOC,OAAOC,OAAO,EAACF,wBAAAA,IAAIG,gBAAgB,cAApBH,mCAAAA,wBAAwB,CAAC,GAAGI,MAAM,CACpD,CAACC,QAAQ,CAAC3B,YAAYC,QAAQ;gBAC1B,IAAI,IAAI,CAACoB,WAAW,CAACC,KAAK;oBAAEtB;oBAAYC;gBAAQ,IAAI;oBAChD0B,OAAOC,IAAI,CAAC;wBACRpC,IAAI,IAAI,CAACA,EAAE;wBACXqC,SAAS,CAAC,SAAS,EAAEP,IAAIZ,IAAI,CAAC,uCAAuC,EAAEV,WAAW,CAAC,EAAEC,QAAQ,CAAC,CAAC;wBAC/FF,UAAUuB,IAAIvB,QAAQ;wBACtB+B,UAAUC,oBAAa,CAACC,OAAO;wBAC/B,GAAI,IAAI,CAACZ,SAAS,CAACnB,WACb;4BAAEgC,SAASC,kBAAW,CAACC,QAAQ;4BAAErC,MAAM;gCAAEE;gCAAYC;4BAAQ;wBAAE,IAC/D,CAAC,CAAC;oBACZ;gBACJ;gBACA,OAAO0B;YACX,GACA,EAAE;QAEV;;AAmCJ"}
|
|
@@ -107,7 +107,7 @@ class RequireCompatibleLaunchDarklySdk {
|
|
|
107
107
|
}
|
|
108
108
|
[
|
|
109
109
|
`npm pkg set dependencies["${JS_CLIENT_SDK}"]=${targetVersion}`,
|
|
110
|
-
'npx
|
|
110
|
+
'npx @servicetitan/install --fix --quiet',
|
|
111
111
|
`npm pkg delete dependencies["${JS_CLIENT_SDK}"]`
|
|
112
112
|
].forEach((command)=>(0, _child_process.execSync)(command, {
|
|
113
113
|
stdio: 'inherit'
|
|
@@ -148,16 +148,16 @@ class RequireCompatibleLaunchDarklySdk {
|
|
|
148
148
|
}).version;
|
|
149
149
|
}
|
|
150
150
|
getResolvedDependency({ packageName, dependency }) {
|
|
151
|
-
const { packages } = _class_private_field_get(this, _project).packageLock;
|
|
152
151
|
var _ref, _ref1;
|
|
153
|
-
|
|
152
|
+
const { packages } = _class_private_field_get(this, _project).packageLock;
|
|
153
|
+
return (_ref = (_ref1 = packageName ? packages[`node_modules/${packageName}/node_modules/${dependency}`] : undefined) !== null && _ref1 !== void 0 ? _ref1 : packages[`node_modules/${dependency}`]) !== null && _ref !== void 0 ? _ref : {};
|
|
154
154
|
}
|
|
155
155
|
getTargetJsClientSdkVersion(packageName) {
|
|
156
|
+
var _dependencies_JS_CLIENT_SDK;
|
|
156
157
|
const { dependencies = {}, peerDependencies = {} } = this.getResolvedDependency({
|
|
157
158
|
packageName,
|
|
158
159
|
dependency: LD_SERVICE
|
|
159
160
|
});
|
|
160
|
-
var _dependencies_JS_CLIENT_SDK;
|
|
161
161
|
return (_dependencies_JS_CLIENT_SDK = dependencies[JS_CLIENT_SDK]) !== null && _dependencies_JS_CLIENT_SDK !== void 0 ? _dependencies_JS_CLIENT_SDK : peerDependencies[JS_CLIENT_SDK];
|
|
162
162
|
}
|
|
163
163
|
constructor(){
|