From 7a31da012ea4e1ec1e24b649ddfdf4c089ca6fb4 Mon Sep 17 00:00:00 2001 From: Tommy Nguyen <4123478+tido64@users.noreply.github.com> Date: Thu, 17 Oct 2024 14:50:37 +0200 Subject: [PATCH] fixup! fix(deps): update eslint --- .changeset/eleven-apples-fly.md | 6 + package.json | 5 +- packages/eslint-config/index.js | 22 +-- packages/eslint-config/package.json | 6 +- packages/eslint-plugin/package.json | 8 +- packages/eslint-plugin/src/configs/react.js | 25 +++ .../eslint-plugin/src/configs/recommended.js | 20 +-- packages/jest-preset/eslint.config.js | 12 ++ .../src/utils/patchMetro.ts | 2 +- yarn.lock | 156 ++++++++---------- 10 files changed, 135 insertions(+), 127 deletions(-) create mode 100644 .changeset/eleven-apples-fly.md create mode 100644 packages/eslint-plugin/src/configs/react.js diff --git a/.changeset/eleven-apples-fly.md b/.changeset/eleven-apples-fly.md new file mode 100644 index 000000000..8cc7159ec --- /dev/null +++ b/.changeset/eleven-apples-fly.md @@ -0,0 +1,6 @@ +--- +"@rnx-kit/eslint-plugin": patch +--- + +Bumped `eslint-plugin-react` and `eslint-plugin-react-hooks` to better support +ESLint 9.x diff --git a/package.json b/package.json index e89e348d5..f18ee3e2a 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ }, "packageManager": "yarn@4.4.0", "resolutions": { - "@microsoft/eslint-plugin-sdl/eslint-plugin-react": "^7.33.0", + "@microsoft/eslint-plugin-sdl/eslint-plugin-react": "^7.35.2", "@microsoft/eslint-plugin-sdl/eslint-plugin-security": "^1.4.0", "@react-native-community/cli": "^14.0.0", "@react-native-community/cli-platform-android": "^14.0.0", @@ -148,9 +148,6 @@ }, "packages/eslint-plugin": { "ignoreDependencies": [ - "@microsoft/eslint-plugin-sdl", - "eslint-plugin-node", - "eslint-plugin-react", "eslint-plugin-react-hooks" ] }, diff --git a/packages/eslint-config/index.js b/packages/eslint-config/index.js index 33286b15b..4e663bbfa 100644 --- a/packages/eslint-config/index.js +++ b/packages/eslint-config/index.js @@ -1,21 +1,23 @@ -const { FlatCompat } = require("@eslint/eslintrc"); -const js = require("@eslint/js"); +const sdl = require("@microsoft/eslint-plugin-sdl"); const rnx = require("@rnx-kit/eslint-plugin"); -const compat = new FlatCompat({ - // Use `@rnx-kit/eslint-plugin` as base directory to ensure we get the same - // plugin instances - baseDirectory: require.resolve("@rnx-kit/eslint-plugin/package.json"), - recommendedConfig: js.configs.recommended, -}); - +/** + * Note that we don't directly use `sdl.configs.required` because: + * + * 1. It includes rules for Angular and Electron + * 2. Its `react` preset conflicts with our direct use of `eslint-plugin-react` + * + * https://github.com/microsoft/eslint-plugin-sdl/blob/957996315c80fdadcd1a9f7bb76fc4663d33ef1e/lib/index.js#L47-L54 + */ module.exports = [ + ...sdl.configs.common, + ...sdl.configs.node, ...rnx.configs.strict, ...rnx.configs.stylistic, - ...compat.extends("plugin:@microsoft/sdl/required"), { rules: { "@typescript-eslint/consistent-type-definitions": ["error", "type"], + ...sdl.configs.react[0].rules, }, }, ]; diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json index ecb8bdc0b..ce0d2d30b 100644 --- a/packages/eslint-config/package.json +++ b/packages/eslint-config/package.json @@ -22,14 +22,14 @@ "format": "prettier --write --log-level error README.md index.js package.json" }, "dependencies": { - "@eslint/eslintrc": "^3.0.0", - "@eslint/js": "^9.0.0", + "@microsoft/eslint-plugin-sdl": "^1.0.0", "@rnx-kit/eslint-plugin": "workspace:*" }, "peerDependencies": { - "eslint": ">=8.56.0" + "eslint": "^9.0.0" }, "devDependencies": { + "eslint": "^9.0.0", "prettier": "^3.0.0" }, "engines": { diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json index bb57f49f4..221b14ef4 100644 --- a/packages/eslint-plugin/package.json +++ b/packages/eslint-plugin/package.json @@ -46,20 +46,19 @@ "@eslint/eslintrc": "^3.0.0", "@react-native/eslint-plugin": "^0.75.0", "enhanced-resolve": "^5.8.3", - "eslint-plugin-react": "^7.33.0", - "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react": "^7.35.2", + "eslint-plugin-react-hooks": "^5.0.0", "typescript-eslint": "^8.0.0" }, "peerDependencies": { "eslint": ">=8.57.0" }, "devDependencies": { - "@microsoft/eslint-plugin-sdl": "^0.2.0", "@rnx-kit/eslint-config": "*", "@rnx-kit/jest-preset": "*", "@rnx-kit/scripts": "*", "@rnx-kit/tsconfig": "*", - "@types/eslint": "^8.0.0", + "@types/eslint": "^9.0.0", "@types/eslint__eslintrc": "^2.1.1", "@types/eslint__js": "^8.0.0", "@types/estree": "*", @@ -68,7 +67,6 @@ "@typescript-eslint/parser": "^8.0.0", "@typescript-eslint/types": "^8.0.0", "eslint": "^9.0.0", - "eslint-plugin-node": "11.1.0", "jest": "^29.2.1", "prettier": "^3.0.0", "typescript": "^5.0.0" diff --git a/packages/eslint-plugin/src/configs/react.js b/packages/eslint-plugin/src/configs/react.js new file mode 100644 index 000000000..2d43a7a7f --- /dev/null +++ b/packages/eslint-plugin/src/configs/react.js @@ -0,0 +1,25 @@ +// @ts-check +"use strict"; + +const { FlatCompat } = require("@eslint/eslintrc"); +const js = (() => { + const path = require("node:path"); + try { + const eslint = path.dirname(require.resolve("eslint/package.json")); + const eslintjs = require.resolve("@eslint/js", { paths: [eslint] }); + return require(eslintjs); + } catch (_) { + return require("@eslint/js"); + } +})(); +const react = require("eslint-plugin-react"); + +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, +}); + +module.exports = [ + ...compat.extends("plugin:react-hooks/recommended"), + react.configs.flat.recommended, +]; diff --git a/packages/eslint-plugin/src/configs/recommended.js b/packages/eslint-plugin/src/configs/recommended.js index 1e4a39ecd..07db84ccb 100644 --- a/packages/eslint-plugin/src/configs/recommended.js +++ b/packages/eslint-plugin/src/configs/recommended.js @@ -1,24 +1,8 @@ // @ts-check "use strict"; -const { FlatCompat } = require("@eslint/eslintrc"); -const js = (() => { - const path = require("node:path"); - try { - const eslint = path.dirname(require.resolve("eslint/package.json")); - const eslintjs = require.resolve("@eslint/js", { paths: [eslint] }); - return require(eslintjs); - } catch (_) { - return require("@eslint/js"); - } -})(); const tseslint = require("typescript-eslint"); -const compat = new FlatCompat({ - baseDirectory: __dirname, - recommendedConfig: js.configs.recommended, -}); - /** * @param {string} spec * @returns {boolean} @@ -32,9 +16,7 @@ function isInstalled(spec) { } const usesReact = isInstalled("react"); -const reactConfigs = usesReact - ? compat.extends("plugin:react-hooks/recommended", "plugin:react/recommended") - : []; +const reactConfigs = usesReact ? require("./react") : []; module.exports = [ ...tseslint.configs.recommended, diff --git a/packages/jest-preset/eslint.config.js b/packages/jest-preset/eslint.config.js index 964c02bf6..bdf8abc83 100644 --- a/packages/jest-preset/eslint.config.js +++ b/packages/jest-preset/eslint.config.js @@ -27,6 +27,18 @@ module.exports = [ }, }, ], + "no-unused-vars": [ + "error", + { + args: "all", + argsIgnorePattern: "^_", + caughtErrors: "all", + caughtErrorsIgnorePattern: "^_", + destructuredArrayIgnorePattern: "^_", + varsIgnorePattern: "^_", + ignoreRestSiblings: true, + }, + ], }, }, ]; diff --git a/packages/metro-resolver-symlinks/src/utils/patchMetro.ts b/packages/metro-resolver-symlinks/src/utils/patchMetro.ts index c96227d04..bc33d0ab9 100644 --- a/packages/metro-resolver-symlinks/src/utils/patchMetro.ts +++ b/packages/metro-resolver-symlinks/src/utils/patchMetro.ts @@ -155,7 +155,7 @@ export function patchMetro(options: Options): void { req: { url: string }, res: unknown ): Promise { - // eslint-disable-next-line node/no-deprecated-api + // eslint-disable-next-line n/no-deprecated-api const urlObj = url.parse(decodeURI(req.url), true); let [, assetPath] = (urlObj && diff --git a/yarn.lock b/yarn.lock index 5e383efc8..5f0a357d3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2111,7 +2111,7 @@ __metadata: languageName: node linkType: hard -"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": +"@eslint-community/eslint-utils@npm:^4.1.2, @eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": version: 4.4.0 resolution: "@eslint-community/eslint-utils@npm:4.4.0" dependencies: @@ -2698,16 +2698,16 @@ __metadata: languageName: node linkType: hard -"@microsoft/eslint-plugin-sdl@npm:^0.2.0": - version: 0.2.2 - resolution: "@microsoft/eslint-plugin-sdl@npm:0.2.2" +"@microsoft/eslint-plugin-sdl@npm:^1.0.0": + version: 1.0.0 + resolution: "@microsoft/eslint-plugin-sdl@npm:1.0.0" dependencies: - eslint-plugin-node: "npm:11.1.0" - eslint-plugin-react: "npm:7.33.0" + eslint-plugin-n: "npm:17.10.3" + eslint-plugin-react: "npm:7.35.2" eslint-plugin-security: "npm:1.4.0" peerDependencies: - eslint: ^4.19.1 || ^5 || ^6 || ^7 || ^8 - checksum: 10c0/6c67a7a40a6f70474791899cca771f25eb21965ba6b251b4f18a6f5aa24fa1d95989df13f50242cd7a448d8d0918be32da1c13352690793542164731e5ba8a86 + eslint: ^9 + checksum: 10c0/3ba090ecdd08b5c4ec3e5520d9b4ff908b5ffdef0c2609349a5efa322b02b962df60f20abd8688254d76456e54ca1860c4f7699fb7e33d6befe1b8b65d83d613 languageName: node linkType: hard @@ -3938,12 +3938,12 @@ __metadata: version: 0.0.0-use.local resolution: "@rnx-kit/eslint-config@workspace:packages/eslint-config" dependencies: - "@eslint/eslintrc": "npm:^3.0.0" - "@eslint/js": "npm:^9.0.0" + "@microsoft/eslint-plugin-sdl": "npm:^1.0.0" "@rnx-kit/eslint-plugin": "workspace:*" + eslint: "npm:^9.0.0" prettier: "npm:^3.0.0" peerDependencies: - eslint: ">=8.56.0" + eslint: ^9.0.0 languageName: unknown linkType: soft @@ -3952,13 +3952,12 @@ __metadata: resolution: "@rnx-kit/eslint-plugin@workspace:packages/eslint-plugin" dependencies: "@eslint/eslintrc": "npm:^3.0.0" - "@microsoft/eslint-plugin-sdl": "npm:^0.2.0" "@react-native/eslint-plugin": "npm:^0.75.0" "@rnx-kit/eslint-config": "npm:*" "@rnx-kit/jest-preset": "npm:*" "@rnx-kit/scripts": "npm:*" "@rnx-kit/tsconfig": "npm:*" - "@types/eslint": "npm:^8.0.0" + "@types/eslint": "npm:^9.0.0" "@types/eslint__eslintrc": "npm:^2.1.1" "@types/eslint__js": "npm:^8.0.0" "@types/estree": "npm:*" @@ -3968,9 +3967,8 @@ __metadata: "@typescript-eslint/types": "npm:^8.0.0" enhanced-resolve: "npm:^5.8.3" eslint: "npm:^9.0.0" - eslint-plugin-node: "npm:11.1.0" - eslint-plugin-react: "npm:^7.33.0" - eslint-plugin-react-hooks: "npm:^4.6.0" + eslint-plugin-react: "npm:^7.35.2" + eslint-plugin-react-hooks: "npm:^5.0.0" jest: "npm:^29.2.1" prettier: "npm:^3.0.0" typescript: "npm:^5.0.0" @@ -4858,7 +4856,7 @@ __metadata: languageName: node linkType: hard -"@types/eslint@npm:*": +"@types/eslint@npm:*, @types/eslint@npm:^9.0.0": version: 9.6.1 resolution: "@types/eslint@npm:9.6.1" dependencies: @@ -4868,16 +4866,6 @@ __metadata: languageName: node linkType: hard -"@types/eslint@npm:^8.0.0": - version: 8.56.12 - resolution: "@types/eslint@npm:8.56.12" - dependencies: - "@types/estree": "npm:*" - "@types/json-schema": "npm:*" - checksum: 10c0/e4ca426abe9d55f82b69a3250bec78b6d340ad1e567f91c97ecc59d3b2d6a1d8494955ac62ad0ea14b97519db580611c02be8277cbea370bdfb0f96aa2910504 - languageName: node - linkType: hard - "@types/eslint__eslintrc@npm:^2.1.1": version: 2.1.2 resolution: "@types/eslint__eslintrc@npm:2.1.2" @@ -7071,7 +7059,7 @@ __metadata: languageName: node linkType: hard -"enhanced-resolve@npm:^5.17.1, enhanced-resolve@npm:^5.8.3": +"enhanced-resolve@npm:^5.17.0, enhanced-resolve@npm:^5.17.1, enhanced-resolve@npm:^5.8.3": version: 5.17.1 resolution: "enhanced-resolve@npm:5.17.1" dependencies: @@ -7412,46 +7400,60 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-es@npm:^3.0.0": - version: 3.0.1 - resolution: "eslint-plugin-es@npm:3.0.1" +"eslint-compat-utils@npm:^0.5.1": + version: 0.5.1 + resolution: "eslint-compat-utils@npm:0.5.1" dependencies: - eslint-utils: "npm:^2.0.0" - regexpp: "npm:^3.0.0" + semver: "npm:^7.5.4" peerDependencies: - eslint: ">=4.19.1" - checksum: 10c0/12ae730aa9603e680af048e1653aac15e529411b68b8d0da6e290700b17c695485af7c3f5360f531f80970786cab7288c2c1d4a58c35ec1bb89649897c016c4a + eslint: ">=6.0.0" + checksum: 10c0/325e815205fab70ebcd379f6d4b5d44c7d791bb8dfe0c9888233f30ebabd9418422595b53a781b946c768d9244d858540e5e6129a6b3dd6d606f467d599edc6c languageName: node linkType: hard -"eslint-plugin-node@npm:11.1.0": - version: 11.1.0 - resolution: "eslint-plugin-node@npm:11.1.0" +"eslint-plugin-es-x@npm:^7.5.0": + version: 7.8.0 + resolution: "eslint-plugin-es-x@npm:7.8.0" dependencies: - eslint-plugin-es: "npm:^3.0.0" - eslint-utils: "npm:^2.0.0" - ignore: "npm:^5.1.1" - minimatch: "npm:^3.0.4" - resolve: "npm:^1.10.1" - semver: "npm:^6.1.0" + "@eslint-community/eslint-utils": "npm:^4.1.2" + "@eslint-community/regexpp": "npm:^4.11.0" + eslint-compat-utils: "npm:^0.5.1" peerDependencies: - eslint: ">=5.16.0" - checksum: 10c0/c7716adac4020cb852fd2410dcd8bdb13a227004de77f96d7f9806d0cf2274f24e0920a7ca73bcd72d90003696c1f17fdd9fe3ca218e64ee03dc2b840e4416fa + eslint: ">=8" + checksum: 10c0/002fda8c029bc5da41e24e7ac11654062831d675fc4f5f20d0de460e24bf1e05cd559000678ef3e46c48641190f4fc07ae3d57aa5e8b085ef5f67e5f63742614 languageName: node linkType: hard -"eslint-plugin-react-hooks@npm:^4.6.0": - version: 4.6.2 - resolution: "eslint-plugin-react-hooks@npm:4.6.2" +"eslint-plugin-n@npm:17.10.3": + version: 17.10.3 + resolution: "eslint-plugin-n@npm:17.10.3" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.4.0" + enhanced-resolve: "npm:^5.17.0" + eslint-plugin-es-x: "npm:^7.5.0" + get-tsconfig: "npm:^4.7.0" + globals: "npm:^15.8.0" + ignore: "npm:^5.2.4" + minimatch: "npm:^9.0.5" + semver: "npm:^7.5.3" peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - checksum: 10c0/4844e58c929bc05157fb70ba1e462e34f1f4abcbc8dd5bbe5b04513d33e2699effb8bca668297976ceea8e7ebee4e8fc29b9af9d131bcef52886feaa2308b2cc + eslint: ">=8.23.0" + checksum: 10c0/4da20f824327f244361dcc61d061e5621baafe48998e17fea5d749d9d96bd80fc39991effc39eb62fdbedddc04eac4e519a60adab4480f404469961ce888797d languageName: node linkType: hard -"eslint-plugin-react@npm:^7.33.0": - version: 7.35.0 - resolution: "eslint-plugin-react@npm:7.35.0" +"eslint-plugin-react-hooks@npm:^5.0.0": + version: 5.0.0 + resolution: "eslint-plugin-react-hooks@npm:5.0.0" + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 + checksum: 10c0/bcb74b421f32e4203a7100405b57aab85526be4461e5a1da01bc537969a30012d2ee209a2c2a6cac543833a27188ce1e6ad71e4628d0bb4a2e5365cad86c5002 + languageName: node + linkType: hard + +"eslint-plugin-react@npm:^7.35.2": + version: 7.37.1 + resolution: "eslint-plugin-react@npm:7.37.1" dependencies: array-includes: "npm:^3.1.8" array.prototype.findlast: "npm:^1.2.5" @@ -7473,7 +7475,7 @@ __metadata: string.prototype.repeat: "npm:^1.0.0" peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - checksum: 10c0/eedcc33de4b2cda91d56ae517a4f771a0c76da9c1e26c95543969012871381e11d4d6cffdf6fa8423036585c289eb3500f3f93fb1d314fb2624e0aa1e463305e + checksum: 10c0/13cf55666f16d2ca45b14aad1b0e14741d1817679c86d20aff0bc1e802439a8541f40a42c4c8e3486ffb710f1bcc2f3e56697f2b5f724306a7fca174e1ad6433 languageName: node linkType: hard @@ -7496,22 +7498,6 @@ __metadata: languageName: node linkType: hard -"eslint-utils@npm:^2.0.0": - version: 2.1.0 - resolution: "eslint-utils@npm:2.1.0" - dependencies: - eslint-visitor-keys: "npm:^1.1.0" - checksum: 10c0/69521c5d6569384b24093125d037ba238d3d6e54367f7143af9928f5286369e912c26cad5016d730c0ffb9797ac9e83831059d7f1d863f7dc84330eb02414611 - languageName: node - linkType: hard - -"eslint-visitor-keys@npm:^1.1.0": - version: 1.3.0 - resolution: "eslint-visitor-keys@npm:1.3.0" - checksum: 10c0/10c91fdbbe36810dd4308e57f9a8bc7177188b2a70247e54e3af1fa05ebc66414ae6fd4ce3c6c6821591f43a556e9037bc6b071122e099b5f8b7d2f76df553e3 - languageName: node - linkType: hard - "eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.3": version: 3.4.3 resolution: "eslint-visitor-keys@npm:3.4.3" @@ -8239,12 +8225,12 @@ __metadata: languageName: node linkType: hard -"get-tsconfig@npm:^4.7.5": - version: 4.7.5 - resolution: "get-tsconfig@npm:4.7.5" +"get-tsconfig@npm:^4.7.0, get-tsconfig@npm:^4.7.5": + version: 4.8.1 + resolution: "get-tsconfig@npm:4.8.1" dependencies: resolve-pkg-maps: "npm:^1.0.0" - checksum: 10c0/a917dff2ba9ee187c41945736bf9bbab65de31ce5bc1effd76267be483a7340915cff232199406379f26517d2d0a4edcdbcda8cca599c2480a0f2cf1e1de3efa + checksum: 10c0/536ee85d202f604f4b5fb6be81bcd6e6d9a96846811e83e9acc6de4a04fb49506edea0e1b8cf1d5ee7af33e469916ec2809d4c5445ab8ae015a7a51fbd1572f9 languageName: node linkType: hard @@ -8328,6 +8314,13 @@ __metadata: languageName: node linkType: hard +"globals@npm:^15.8.0": + version: 15.11.0 + resolution: "globals@npm:15.11.0" + checksum: 10c0/861e39bb6bd9bd1b9f355c25c962e5eb4b3f0e1567cf60fa6c06e8c502b0ec8706b1cce055d69d84d0b7b8e028bec5418cf629a54e7047e116538d1c1c1a375c + languageName: node + linkType: hard + "globalthis@npm:^1.0.3": version: 1.0.3 resolution: "globalthis@npm:1.0.3" @@ -8610,7 +8603,7 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.0.4, ignore@npm:^5.1.1, ignore@npm:^5.1.8, ignore@npm:^5.2.0, ignore@npm:^5.3.1": +"ignore@npm:^5.0.4, ignore@npm:^5.1.8, ignore@npm:^5.2.0, ignore@npm:^5.2.4, ignore@npm:^5.3.1": version: 5.3.2 resolution: "ignore@npm:5.3.2" checksum: 10c0/f9f652c957983634ded1e7f02da3b559a0d4cc210fca3792cb67f1b153623c9c42efdc1c4121af171e295444459fc4a9201101fb041b1104a3c000bccb188337 @@ -12451,13 +12444,6 @@ __metadata: languageName: node linkType: hard -"regexpp@npm:^3.0.0": - version: 3.2.0 - resolution: "regexpp@npm:3.2.0" - checksum: 10c0/d1da82385c8754a1681416b90b9cca0e21b4a2babef159099b88f640637d789c69011d0bc94705dacab85b81133e929d027d85210e8b8b03f8035164dbc14710 - languageName: node - linkType: hard - "regexpu-core@npm:^6.1.1": version: 6.1.1 resolution: "regexpu-core@npm:6.1.1" @@ -12584,7 +12570,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.1.6, resolve@npm:^1.10.1, resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1": +"resolve@npm:^1.1.6, resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1": version: 1.22.8 resolution: "resolve@npm:1.22.8" dependencies: @@ -12800,7 +12786,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^6.0.0, semver@npm:^6.1.0, semver@npm:^6.1.1, semver@npm:^6.1.2, semver@npm:^6.3.0, semver@npm:^6.3.1": +"semver@npm:^6.0.0, semver@npm:^6.1.1, semver@npm:^6.1.2, semver@npm:^6.3.0, semver@npm:^6.3.1": version: 6.3.1 resolution: "semver@npm:6.3.1" bin: