From 30a84c978b92d3dade5e55f54e48e59ec23cb75b Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Tue, 10 Dec 2024 02:12:49 +0700 Subject: [PATCH 01/17] aa --- examples/custom-rules/my-rule.js | 2 ++ examples/custom-rules/my-rule.test.ts | 30 +++++++++++++++++++++++++++ examples/custom-rules/package.json | 7 +++++-- examples/custom-rules/tsconfig.json | 17 +++++++++++++++ pnpm-lock.yaml | 16 +++++++++----- website/content/docs/custom-rules.mdx | 11 +++++----- 6 files changed, 70 insertions(+), 13 deletions(-) create mode 100644 examples/custom-rules/my-rule.test.ts create mode 100644 examples/custom-rules/tsconfig.json diff --git a/examples/custom-rules/my-rule.js b/examples/custom-rules/my-rule.js index ac1c8cecf52..a56ba127684 100644 --- a/examples/custom-rules/my-rule.js +++ b/examples/custom-rules/my-rule.js @@ -1,3 +1,5 @@ +// @ts-check + export const rule = { create(context) { return { diff --git a/examples/custom-rules/my-rule.test.ts b/examples/custom-rules/my-rule.test.ts new file mode 100644 index 00000000000..22c9f548910 --- /dev/null +++ b/examples/custom-rules/my-rule.test.ts @@ -0,0 +1,30 @@ +import { RuleTester } from 'eslint' +import { parser } from '@graphql-eslint/eslint-plugin' +import { rule } from './my-rule.js' + +const ruleTester = new RuleTester({ + languageOptions: { + parser, + parserOptions: { + graphQLConfig: { + // Optionally, your schema, your rule could have access to it + // schema: '...', + + // Optionally, your operations, your rule could have access to them + // documents: '...' + } + } + } +}) + +ruleTester.run('my-rule', rule, { + valid: [ + { code: 'query bar { foo }' } + ], + invalid: [ + { + code: '{ foo }', + errors: [{ message: 'Oops, name is required!' }] + } + ] +}) diff --git a/examples/custom-rules/package.json b/examples/custom-rules/package.json index ce7143561aa..17b9ce8b8e6 100644 --- a/examples/custom-rules/package.json +++ b/examples/custom-rules/package.json @@ -6,13 +6,16 @@ "author": "Dimitri POSTOLOV ", "private": true, "scripts": { - "lint": "eslint --cache ." + "lint": "eslint --cache .", + "test": "vitest ." }, "dependencies": { "graphql": "16.9.0" }, "devDependencies": { "@graphql-eslint/eslint-plugin": "workspace:*", - "eslint": "9.16.0" + "eslint": "9.16.0", + "typescript": "5.7.2", + "vitest": "2.1.8" } } diff --git a/examples/custom-rules/tsconfig.json b/examples/custom-rules/tsconfig.json new file mode 100644 index 00000000000..d342f917c28 --- /dev/null +++ b/examples/custom-rules/tsconfig.json @@ -0,0 +1,17 @@ +{ + "compilerOptions": { + "target": "es2022", + "module": "nodenext", + "moduleResolution": "node16", + "declaration": false, + "noEmit": true, + "allowJs": true, + "esModuleInterop": true, + "strict": true, + "lib": ["ESNext", "dom"], + "strictNullChecks": true, + "resolveJsonModule": true, + "skipLibCheck": true + }, + "exclude": ["dist"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8c6d15b2b4c..421d5ade2f8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -120,6 +120,12 @@ importers: eslint: specifier: 9.16.0 version: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + typescript: + specifier: 5.7.2 + version: 5.7.2 + vitest: + specifier: 2.1.8 + version: 2.1.8(@types/node@22.10.1)(lightningcss@1.28.2)(terser@5.37.0) examples/graphql-config: dependencies: @@ -9763,7 +9769,7 @@ snapshots: '@typescript-eslint/parser': 8.17.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2) eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) eslint-config-prettier: 9.1.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) - eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) + eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2))(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)))(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2))(eslint-import-resolver-typescript@3.7.0)(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) eslint-plugin-jsonc: 2.18.2(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) @@ -11333,7 +11339,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0)(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)): + eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2))(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)))(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.0 @@ -11380,14 +11386,14 @@ snapshots: dependencies: eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2))(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)))(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)))(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 8.17.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2) eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) + eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2))(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)))(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) transitivePeerDependencies: - supports-color @@ -11415,7 +11421,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2))(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)))(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)))(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 diff --git a/website/content/docs/custom-rules.mdx b/website/content/docs/custom-rules.mdx index 946d3518b90..cc849efee5d 100644 --- a/website/content/docs/custom-rules.mdx +++ b/website/content/docs/custom-rules.mdx @@ -173,12 +173,11 @@ const ruleTester = new RuleTester({ parser, parserOptions: { graphQLConfig: { - schema: /* GraphQL */ ` - # Optionally, your schema, your rule could have access to it - `, - documents: /* GraphQL */ ` - # Optionally, your operations, your rule could have access to them - ` + // Optionally, your schema, your rule could have access to it + // schema: '...', + + // Optionally, your operations, your rule could have access to them + // documents: '...' } } } From 2954118bfb5bdda57c7c1d61776f2fdf8059e234 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Tue, 10 Dec 2024 02:27:58 +0700 Subject: [PATCH 02/17] aa --- .changeset/bright-otters-wonder.md | 10 + examples/custom-rules/my-rule.js | 4 + examples/custom-rules/my-rule.test.ts | 6 +- examples/custom-rules/package.json | 3 +- patches/eslint.patch | 2 +- pnpm-lock.yaml | 260 +++++++++++++------------- 6 files changed, 152 insertions(+), 133 deletions(-) create mode 100644 .changeset/bright-otters-wonder.md diff --git a/.changeset/bright-otters-wonder.md b/.changeset/bright-otters-wonder.md new file mode 100644 index 00000000000..dc8503f65d2 --- /dev/null +++ b/.changeset/bright-otters-wonder.md @@ -0,0 +1,10 @@ +--- +'@graphql-eslint/eslint-plugin': patch +--- + +fix type error: + +``` +Type 'RuleContext' is not assignable to type 'GraphQLESLintRuleContext<[]>'. + Property 'parserServices' is missing in type 'RuleContext' but required in type '{ options: []; parserServices: ParserServices; report(descriptor: ReportDescriptor): void; }'. +``` diff --git a/examples/custom-rules/my-rule.js b/examples/custom-rules/my-rule.js index a56ba127684..510d7f3c2f7 100644 --- a/examples/custom-rules/my-rule.js +++ b/examples/custom-rules/my-rule.js @@ -1,6 +1,10 @@ // @ts-check +/** @type {import("@graphql-eslint/eslint-plugin").GraphQLESLintRule} */ export const rule = { + meta: { + schema: [] + }, create(context) { return { OperationDefinition(node) { diff --git a/examples/custom-rules/my-rule.test.ts b/examples/custom-rules/my-rule.test.ts index 22c9f548910..9f90ccc861a 100644 --- a/examples/custom-rules/my-rule.test.ts +++ b/examples/custom-rules/my-rule.test.ts @@ -19,10 +19,14 @@ const ruleTester = new RuleTester({ ruleTester.run('my-rule', rule, { valid: [ - { code: 'query bar { foo }' } + { + name: 'should work', + code: 'query bar { foo }' + } ], invalid: [ { + name: 'should fail', code: '{ foo }', errors: [{ message: 'Oops, name is required!' }] } diff --git a/examples/custom-rules/package.json b/examples/custom-rules/package.json index 17b9ce8b8e6..064d6cd645e 100644 --- a/examples/custom-rules/package.json +++ b/examples/custom-rules/package.json @@ -7,7 +7,8 @@ "private": true, "scripts": { "lint": "eslint --cache .", - "test": "vitest ." + "test": "vitest --globals", + "typecheck": "tsc --noEmit" }, "dependencies": { "graphql": "16.9.0" diff --git a/patches/eslint.patch b/patches/eslint.patch index bfa7d9ce9d5..346f1e33b3b 100644 --- a/patches/eslint.patch +++ b/patches/eslint.patch @@ -45,7 +45,7 @@ index 756490e1df3d97ef47cc42f120ecda8813ec9f73..00a7146fe0be6574528cc053f69e454b } - + // used by @theguild/eslint-rule-tester -+ item.assertMessages(item, messages) ++ if (!process.cwd().includes('/examples/')) item.assertMessages(item, messages) assertASTDidntChange(result.beforeAST, result.afterAST); } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 421d5ade2f8..a3c6c699602 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,7 +9,7 @@ overrides: patchedDependencies: eslint: - hash: t64n7kxodazs6lnwu42sgf5voe + hash: ev7ndsq3rvzgmf6ig6be3zznqa path: patches/eslint.patch json-schema-to-markdown@1.1.1: hash: beglqnggvhpsclgwbdw27hzvu4 @@ -33,7 +33,7 @@ importers: version: 10.6.2(graphql@16.9.0) '@theguild/eslint-config': specifier: 0.13.2 - version: 0.13.2(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2) + version: 0.13.2(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2) '@theguild/prettier-config': specifier: 3.0.0 version: 3.0.0(@vue/compiler-sfc@3.5.13)(prettier@3.4.2) @@ -54,10 +54,10 @@ importers: version: 2.4.1 eslint: specifier: 9.16.0 - version: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + version: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) eslint-plugin-eslint-plugin: specifier: 6.3.2 - version: 6.3.2(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) + version: 6.3.2(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) eslint-plugin-tailwindcss: specifier: 3.17.5 version: 3.17.5(tailwindcss@3.4.16) @@ -106,7 +106,7 @@ importers: version: link:../../packages/plugin/dist eslint: specifier: 9.16.0 - version: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + version: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) examples/custom-rules: dependencies: @@ -119,7 +119,7 @@ importers: version: link:../../packages/plugin/dist eslint: specifier: 9.16.0 - version: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + version: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) typescript: specifier: 5.7.2 version: 5.7.2 @@ -141,7 +141,7 @@ importers: version: link:../../packages/plugin/dist eslint: specifier: 9.16.0 - version: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + version: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) examples/monorepo: dependencies: @@ -157,7 +157,7 @@ importers: version: link:../../packages/plugin/dist eslint: specifier: 9.16.0 - version: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + version: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) examples/multiple-projects-graphql-config: dependencies: @@ -170,7 +170,7 @@ importers: version: link:../../packages/plugin/dist eslint: specifier: 9.16.0 - version: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + version: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) examples/prettier: dependencies: @@ -186,13 +186,13 @@ importers: version: link:../../packages/plugin/dist eslint: specifier: 9.16.0 - version: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + version: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) + version: 9.1.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) eslint-plugin-prettier: specifier: 5.2.1 - version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)))(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(prettier@3.4.2) + version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)))(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(prettier@3.4.2) prettier: specifier: 3.4.2 version: 3.4.2 @@ -211,7 +211,7 @@ importers: version: link:../../packages/plugin/dist eslint: specifier: 9.16.0 - version: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + version: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) examples/svelte-code-file: dependencies: @@ -224,7 +224,7 @@ importers: version: link:../../packages/plugin/dist eslint: specifier: 9.16.0 - version: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + version: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) svelte: specifier: 5.10.0 version: 5.10.0 @@ -246,16 +246,16 @@ importers: version: link:../../packages/plugin/dist eslint: specifier: 9.16.0 - version: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + version: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) eslint-merge-processors: specifier: ^0.1.0 - version: 0.1.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) + version: 0.1.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) eslint-plugin-vue: specifier: ^9.31.0 - version: 9.32.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) + version: 9.32.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) eslint-processor-vue-blocks: specifier: ^0.1.2 - version: 0.1.2(@vue/compiler-sfc@3.5.13)(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) + version: 0.1.2(@vue/compiler-sfc@3.5.13)(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) packages/plugin: dependencies: @@ -273,7 +273,7 @@ importers: version: 4.4.0 eslint: specifier: '>=8.44.0' - version: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + version: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) fast-glob: specifier: ^3.2.12 version: 3.3.2 @@ -336,7 +336,7 @@ importers: version: 22.10.1 eslint: specifier: 9.16.0 - version: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + version: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) website: dependencies: @@ -7441,11 +7441,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/eslint-parser@7.25.9(@babel/core@7.26.0)(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))': + '@babel/eslint-parser@7.25.9(@babel/core@7.26.0)(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))': dependencies: '@babel/core': 7.26.0 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) eslint-visitor-keys: 2.1.0 semver: 6.3.1 @@ -8571,9 +8571,9 @@ snapshots: '@esbuild/win32-x64@0.24.0': optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))': + '@eslint-community/eslint-utils@4.4.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))': dependencies: - eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} @@ -9762,25 +9762,25 @@ snapshots: - use-sync-external-store - utf-8-validate - '@theguild/eslint-config@0.13.2(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2)': + '@theguild/eslint-config@0.13.2(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2)': dependencies: '@rushstack/eslint-patch': 1.10.4 - '@typescript-eslint/eslint-plugin': 8.17.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2))(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2) - '@typescript-eslint/parser': 8.17.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2) - eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) - eslint-config-prettier: 9.1.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) - eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2))(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)))(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2))(eslint-import-resolver-typescript@3.7.0)(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) - eslint-plugin-jsonc: 2.18.2(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) - eslint-plugin-jsx-a11y: 6.10.2(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) - eslint-plugin-mdx: 3.1.5(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) - eslint-plugin-n: 17.14.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) - eslint-plugin-promise: 7.2.1(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) - eslint-plugin-react: 7.37.2(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) - eslint-plugin-react-hooks: 5.0.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) - eslint-plugin-sonarjs: 3.0.1(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) - eslint-plugin-unicorn: 56.0.1(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) - eslint-plugin-yml: 1.16.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) + '@typescript-eslint/eslint-plugin': 8.17.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2))(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2) + '@typescript-eslint/parser': 8.17.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2) + eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + eslint-config-prettier: 9.1.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2))(eslint-import-resolver-typescript@3.7.0)(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + eslint-plugin-jsonc: 2.18.2(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + eslint-plugin-jsx-a11y: 6.10.2(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + eslint-plugin-mdx: 3.1.5(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + eslint-plugin-n: 17.14.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + eslint-plugin-promise: 7.2.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + eslint-plugin-react: 7.37.2(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + eslint-plugin-react-hooks: 5.0.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + eslint-plugin-sonarjs: 3.0.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + eslint-plugin-unicorn: 56.0.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + eslint-plugin-yml: 1.16.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) typescript: 5.7.2 transitivePeerDependencies: - '@eslint/json' @@ -10043,15 +10043,15 @@ snapshots: dependencies: '@types/node': 22.10.1 - '@typescript-eslint/eslint-plugin@8.17.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2))(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2)': + '@typescript-eslint/eslint-plugin@8.17.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2))(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.17.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2) + '@typescript-eslint/parser': 8.17.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2) '@typescript-eslint/scope-manager': 8.17.0 - '@typescript-eslint/type-utils': 8.17.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2) - '@typescript-eslint/utils': 8.17.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2) + '@typescript-eslint/type-utils': 8.17.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2) + '@typescript-eslint/utils': 8.17.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2) '@typescript-eslint/visitor-keys': 8.17.0 - eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -10061,14 +10061,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2)': + '@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2)': dependencies: '@typescript-eslint/scope-manager': 8.17.0 '@typescript-eslint/types': 8.17.0 '@typescript-eslint/typescript-estree': 8.17.0(typescript@5.7.2) '@typescript-eslint/visitor-keys': 8.17.0 debug: 4.4.0 - eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) optionalDependencies: typescript: 5.7.2 transitivePeerDependencies: @@ -10079,12 +10079,12 @@ snapshots: '@typescript-eslint/types': 8.17.0 '@typescript-eslint/visitor-keys': 8.17.0 - '@typescript-eslint/type-utils@8.17.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2)': + '@typescript-eslint/type-utils@8.17.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2)': dependencies: '@typescript-eslint/typescript-estree': 8.17.0(typescript@5.7.2) - '@typescript-eslint/utils': 8.17.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2) + '@typescript-eslint/utils': 8.17.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2) debug: 4.4.0 - eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) ts-api-utils: 1.4.3(typescript@5.7.2) optionalDependencies: typescript: 5.7.2 @@ -10108,13 +10108,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.17.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2)': + '@typescript-eslint/utils@8.17.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) '@typescript-eslint/scope-manager': 8.17.0 '@typescript-eslint/types': 8.17.0 '@typescript-eslint/typescript-estree': 8.17.0(typescript@5.7.2) - eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) optionalDependencies: typescript: 5.7.2 transitivePeerDependencies: @@ -11317,19 +11317,19 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-compat-utils@0.5.1(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)): + eslint-compat-utils@0.5.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): dependencies: - eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) semver: 7.6.3 - eslint-compat-utils@0.6.4(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)): + eslint-compat-utils@0.6.4(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): dependencies: - eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) semver: 7.6.3 - eslint-config-prettier@9.1.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)): + eslint-config-prettier@9.1.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): dependencies: - eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) eslint-import-resolver-node@0.3.9: dependencies: @@ -11339,33 +11339,33 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2))(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)))(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)): + eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0)(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.0 enhanced-resolve: 5.17.1 - eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) fast-glob: 3.3.2 get-tsconfig: 4.8.1 is-bun-module: 1.3.0 is-glob: 4.0.3 stable-hash: 0.0.4 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2))(eslint-import-resolver-typescript@3.7.0)(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2))(eslint-import-resolver-typescript@3.7.0)(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) transitivePeerDependencies: - supports-color - eslint-json-compat-utils@0.2.1(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(jsonc-eslint-parser@2.4.0): + eslint-json-compat-utils@0.2.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(jsonc-eslint-parser@2.4.0): dependencies: - eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) esquery: 1.6.0 jsonc-eslint-parser: 2.4.0 - eslint-mdx@3.1.5(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)): + eslint-mdx@3.1.5(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): dependencies: acorn: 8.14.0 acorn-jsx: 5.3.2(acorn@8.14.0) - eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) espree: 9.6.1 estree-util-visit: 2.0.0 remark-mdx: 3.1.0 @@ -11382,35 +11382,35 @@ snapshots: - bluebird - supports-color - eslint-merge-processors@0.1.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)): + eslint-merge-processors@0.1.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): dependencies: - eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2))(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)))(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)))(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.17.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2) - eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + '@typescript-eslint/parser': 8.17.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2) + eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2))(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)))(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) + eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) transitivePeerDependencies: - supports-color - eslint-plugin-es-x@7.8.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)): + eslint-plugin-es-x@7.8.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) '@eslint-community/regexpp': 4.12.1 - eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) - eslint-compat-utils: 0.5.1(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) + eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + eslint-compat-utils: 0.5.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) - eslint-plugin-eslint-plugin@6.3.2(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)): + eslint-plugin-eslint-plugin@6.3.2(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) - eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) estraverse: 5.3.0 - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2))(eslint-import-resolver-typescript@3.7.0)(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2))(eslint-import-resolver-typescript@3.7.0)(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -11419,9 +11419,9 @@ snapshots: array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2))(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)))(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)))(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -11433,18 +11433,18 @@ snapshots: string.prototype.trimend: 1.0.8 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.17.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(typescript@5.7.2) + '@typescript-eslint/parser': 8.17.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jsonc@2.18.2(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)): + eslint-plugin-jsonc@2.18.2(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) - eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) - eslint-compat-utils: 0.6.4(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) - eslint-json-compat-utils: 0.2.1(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(jsonc-eslint-parser@2.4.0) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + eslint-compat-utils: 0.6.4(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + eslint-json-compat-utils: 0.2.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(jsonc-eslint-parser@2.4.0) espree: 9.6.1 graphemer: 1.4.0 jsonc-eslint-parser: 2.4.0 @@ -11453,7 +11453,7 @@ snapshots: transitivePeerDependencies: - '@eslint/json' - eslint-plugin-jsx-a11y@6.10.2(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)): + eslint-plugin-jsx-a11y@6.10.2(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): dependencies: aria-query: 5.3.2 array-includes: 3.1.8 @@ -11463,7 +11463,7 @@ snapshots: axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -11472,18 +11472,18 @@ snapshots: safe-regex-test: 1.0.3 string.prototype.includes: 2.0.1 - eslint-plugin-markdown@3.0.1(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)): + eslint-plugin-markdown@3.0.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): dependencies: - eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) mdast-util-from-markdown: 0.8.5 transitivePeerDependencies: - supports-color - eslint-plugin-mdx@3.1.5(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)): + eslint-plugin-mdx@3.1.5(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): dependencies: - eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) - eslint-mdx: 3.1.5(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) - eslint-plugin-markdown: 3.0.1(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) + eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + eslint-mdx: 3.1.5(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + eslint-plugin-markdown: 3.0.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) remark-mdx: 3.1.0 remark-parse: 11.0.0 remark-stringify: 11.0.0 @@ -11494,38 +11494,38 @@ snapshots: - bluebird - supports-color - eslint-plugin-n@17.14.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)): + eslint-plugin-n@17.14.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) enhanced-resolve: 5.17.1 - eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) - eslint-plugin-es-x: 7.8.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) + eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + eslint-plugin-es-x: 7.8.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) get-tsconfig: 4.8.1 globals: 15.13.0 ignore: 5.3.2 minimatch: 9.0.5 semver: 7.6.3 - eslint-plugin-prettier@5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)))(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1))(prettier@3.4.2): + eslint-plugin-prettier@5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)))(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(prettier@3.4.2): dependencies: - eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) prettier: 3.4.2 prettier-linter-helpers: 1.0.0 synckit: 0.9.2 optionalDependencies: '@types/eslint': 9.6.1 - eslint-config-prettier: 9.1.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) + eslint-config-prettier: 9.1.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) - eslint-plugin-promise@7.2.1(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)): + eslint-plugin-promise@7.2.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) - eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) - eslint-plugin-react-hooks@5.0.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)): + eslint-plugin-react-hooks@5.0.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): dependencies: - eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) - eslint-plugin-react@7.37.2(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)): + eslint-plugin-react@7.37.2(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 @@ -11533,7 +11533,7 @@ snapshots: array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.2.0 - eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 @@ -11547,10 +11547,10 @@ snapshots: string.prototype.matchall: 4.0.11 string.prototype.repeat: 1.0.0 - eslint-plugin-sonarjs@3.0.1(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)): + eslint-plugin-sonarjs@3.0.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): dependencies: '@babel/core': 7.26.0 - '@babel/eslint-parser': 7.25.9(@babel/core@7.26.0)(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) + '@babel/eslint-parser': 7.25.9(@babel/core@7.26.0)(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) '@babel/plugin-proposal-decorators': 7.25.9(@babel/core@7.26.0) '@babel/preset-env': 7.26.0(@babel/core@7.26.0) '@babel/preset-flow': 7.25.9(@babel/core@7.26.0) @@ -11558,7 +11558,7 @@ snapshots: '@eslint-community/regexpp': 4.12.1 builtin-modules: 3.3.0 bytes: 3.1.2 - eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) functional-red-black-tree: 1.0.1 jsx-ast-utils: 3.3.5 minimatch: 9.0.5 @@ -11574,14 +11574,14 @@ snapshots: postcss: 8.4.49 tailwindcss: 3.4.16 - eslint-plugin-unicorn@56.0.1(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)): + eslint-plugin-unicorn@56.0.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): dependencies: '@babel/helper-validator-identifier': 7.25.9 - '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) ci-info: 4.1.0 clean-regexp: 1.0.0 core-js-compat: 3.39.0 - eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) esquery: 1.6.0 globals: 15.13.0 indent-string: 4.0.0 @@ -11594,35 +11594,35 @@ snapshots: semver: 7.6.3 strip-indent: 3.0.0 - eslint-plugin-vue@9.32.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)): + eslint-plugin-vue@9.32.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) - eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) globals: 13.24.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.1.2 semver: 7.6.3 - vue-eslint-parser: 9.4.3(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) + vue-eslint-parser: 9.4.3(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color - eslint-plugin-yml@1.16.0(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)): + eslint-plugin-yml@1.16.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): dependencies: debug: 4.4.0 - eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) - eslint-compat-utils: 0.6.4(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) + eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + eslint-compat-utils: 0.6.4(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) lodash: 4.17.21 natural-compare: 1.4.0 yaml-eslint-parser: 1.2.3 transitivePeerDependencies: - supports-color - eslint-processor-vue-blocks@0.1.2(@vue/compiler-sfc@3.5.13)(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)): + eslint-processor-vue-blocks@0.1.2(@vue/compiler-sfc@3.5.13)(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): dependencies: '@vue/compiler-sfc': 3.5.13 - eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) eslint-scope@5.1.1: dependencies: @@ -11645,9 +11645,9 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1): + eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.19.1 '@eslint/core': 0.9.1 @@ -15224,10 +15224,10 @@ snapshots: vscode-uri@3.0.8: {} - vue-eslint-parser@9.4.3(eslint@9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1)): + vue-eslint-parser@9.4.3(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): dependencies: debug: 4.4.0 - eslint: 9.16.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 From 72e11a8fc857a7414739cb0bb0c5390c125a01dc Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Tue, 10 Dec 2024 02:29:37 +0700 Subject: [PATCH 03/17] aa --- examples/custom-rules/my-rule.js | 2 +- examples/custom-rules/my-rule.test.ts | 27 +++++++++++++-------------- website/content/docs/custom-rules.mdx | 4 +++- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/examples/custom-rules/my-rule.js b/examples/custom-rules/my-rule.js index 510d7f3c2f7..676e091a454 100644 --- a/examples/custom-rules/my-rule.js +++ b/examples/custom-rules/my-rule.js @@ -3,7 +3,7 @@ /** @type {import("@graphql-eslint/eslint-plugin").GraphQLESLintRule} */ export const rule = { meta: { - schema: [] + schema: [], }, create(context) { return { diff --git a/examples/custom-rules/my-rule.test.ts b/examples/custom-rules/my-rule.test.ts index 9f90ccc861a..6f61f872cd2 100644 --- a/examples/custom-rules/my-rule.test.ts +++ b/examples/custom-rules/my-rule.test.ts @@ -1,6 +1,6 @@ -import { RuleTester } from 'eslint' -import { parser } from '@graphql-eslint/eslint-plugin' -import { rule } from './my-rule.js' +import { RuleTester } from 'eslint'; +import { parser } from '@graphql-eslint/eslint-plugin'; +import { rule } from './my-rule.js'; const ruleTester = new RuleTester({ languageOptions: { @@ -9,26 +9,25 @@ const ruleTester = new RuleTester({ graphQLConfig: { // Optionally, your schema, your rule could have access to it // schema: '...', - // Optionally, your operations, your rule could have access to them // documents: '...' - } - } - } -}) + }, + }, + }, +}); ruleTester.run('my-rule', rule, { valid: [ { name: 'should work', - code: 'query bar { foo }' - } + code: 'query bar { foo }', + }, ], invalid: [ { name: 'should fail', code: '{ foo }', - errors: [{ message: 'Oops, name is required!' }] - } - ] -}) + errors: [{ message: 'Oops, name is required!' }], + }, + ], +}); diff --git a/website/content/docs/custom-rules.mdx b/website/content/docs/custom-rules.mdx index cc849efee5d..5f14d4a4ed3 100644 --- a/website/content/docs/custom-rules.mdx +++ b/website/content/docs/custom-rules.mdx @@ -175,7 +175,7 @@ const ruleTester = new RuleTester({ graphQLConfig: { // Optionally, your schema, your rule could have access to it // schema: '...', - + // // Optionally, your operations, your rule could have access to them // documents: '...' } @@ -186,11 +186,13 @@ const ruleTester = new RuleTester({ ruleTester.run('my-rule', rule, { valid: [ { + name: 'should work', code: 'query something { foo }' } ], invalid: [ { + name: 'should fail', code: 'query invalid { foo }', errors: [{ message: 'Your error message.' }] } From f47345240610f79717d5cd720ad804f5434adeca Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Tue, 10 Dec 2024 18:23:40 +0700 Subject: [PATCH 04/17] rename --- package.json | 1 + .../plugin/src/rules/graphql-js-validation.ts | 60 +++++++++---------- .../plugin/src/rules/no-deprecated/index.ts | 2 +- .../plugin/src/rules/no-root-type/index.ts | 2 +- .../src/rules/relay-connection-types/index.ts | 2 +- packages/rule-tester/src/index.ts | 1 - turbo.json | 6 +- website/app/_meta.global.ts | 4 +- .../content/rules/executable-definitions.mdx | 2 +- .../content/rules/fields-on-correct-type.mdx | 2 +- .../rules/fragments-on-composite-type.mdx | 2 +- .../content/rules/known-fragment-names.mdx | 2 +- .../rules/lone-anonymous-operation.mdx | 2 +- .../content/rules/lone-schema-definition.mdx | 2 +- website/content/rules/naming-convention.mdx | 4 +- website/content/rules/no-deprecated.mdx | 2 +- website/content/rules/no-fragment-cycles.mdx | 2 +- website/content/rules/no-root-type.mdx | 2 +- .../content/rules/no-undefined-variables.mdx | 2 +- website/content/rules/no-unused-fragments.mdx | 2 +- website/content/rules/no-unused-variables.mdx | 2 +- .../content/rules/one-field-subscriptions.mdx | 2 +- .../overlapping-fields-can-be-merged.mdx | 2 +- .../rules/possible-fragment-spread.mdx | 2 +- .../content/rules/possible-type-extension.mdx | 2 +- .../content/rules/relay-connection-types.mdx | 2 +- website/content/rules/scalar-leafs.mdx | 2 +- .../content/rules/unique-argument-names.mdx | 2 +- .../content/rules/unique-directive-names.mdx | 2 +- .../rules/unique-field-definition-names.mdx | 2 +- .../rules/unique-input-field-names.mdx | 2 +- .../content/rules/unique-operation-types.mdx | 2 +- website/content/rules/unique-type-names.mdx | 2 +- .../content/rules/unique-variable-names.mdx | 2 +- .../rules/value-literals-of-correct-type.mdx | 2 +- .../rules/variables-are-input-types.mdx | 2 +- .../rules/variables-in-allowed-position.mdx | 2 +- 37 files changed, 69 insertions(+), 69 deletions(-) diff --git a/package.json b/package.json index 5fc10f7b37a..56f21b2d8e8 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "pnpm": ">=9.0.6" }, "scripts": { + "dev": "turbo run dev --filter=!website", "build": "turbo run build --filter=!website && attw --pack packages/plugin/dist", "ci:lint": "pnpm lint --output-file eslint_report.json --format json", "create-rule": "tsx scripts/create-rule.ts", diff --git a/packages/plugin/src/rules/graphql-js-validation.ts b/packages/plugin/src/rules/graphql-js-validation.ts index 6c7918f6d7b..59a5b9fba90 100644 --- a/packages/plugin/src/rules/graphql-js-validation.ts +++ b/packages/plugin/src/rules/graphql-js-validation.ts @@ -246,7 +246,7 @@ export const GRAPHQL_JS_VALIDATIONS: Record = Object. rule: ExecutableDefinitionsRule, }, { - category: 'Operations', + category: 'operations', description: 'A GraphQL document is only valid for execution if all definitions are either operation or fragment definitions.', requiresSchema: true, @@ -259,7 +259,7 @@ export const GRAPHQL_JS_VALIDATIONS: Record = Object. hasDidYouMeanSuggestions: true, }, { - category: 'Operations', + category: 'operations', description: 'A GraphQL document is only valid if all fields selected are defined by the parent type, or are an allowed meta field such as `__typename`.', requiresSchema: true, @@ -271,7 +271,7 @@ export const GRAPHQL_JS_VALIDATIONS: Record = Object. rule: FragmentsOnCompositeTypesRule, }, { - category: 'Operations', + category: 'operations', description: 'Fragments use a type condition to determine if they apply, since fragments can only be spread into a composite type (object, interface, or union), the type condition must also be a composite type.', requiresSchema: true, @@ -284,7 +284,7 @@ export const GRAPHQL_JS_VALIDATIONS: Record = Object. hasDidYouMeanSuggestions: true, }, { - category: ['Schema', 'Operations'], + category: 'schema-and-operations', description: 'A GraphQL field is only valid if all supplied arguments are defined by that field.', requiresSchema: true, @@ -326,7 +326,7 @@ export const GRAPHQL_JS_VALIDATIONS: Record = Object. }, }, { - category: ['Schema', 'Operations'], + category: "schema-and-operations", description: 'A GraphQL document is only valid if all `@directive`s are known by the schema and legally positioned.', requiresSchema: true, @@ -352,7 +352,7 @@ export const GRAPHQL_JS_VALIDATIONS: Record = Object. getDocumentNode: handleMissingFragments, }, { - category: 'Operations', + category: 'operations', description: 'A GraphQL document is only valid if all `...Fragment` fragment spreads refer to fragments defined in the same document.', requiresSchema: true, @@ -412,7 +412,7 @@ export const GRAPHQL_JS_VALIDATIONS: Record = Object. hasDidYouMeanSuggestions: true, }, { - category: ['Schema', 'Operations'], + category: 'schema-and-operations', description: 'A GraphQL document is only valid if referenced types (specifically variable definitions and fragment conditions) are defined by the type schema.', requiresSchema: true, @@ -424,7 +424,7 @@ export const GRAPHQL_JS_VALIDATIONS: Record = Object. rule: LoneAnonymousOperationRule, }, { - category: 'Operations', + category: 'operations', description: 'A GraphQL document that contains an anonymous operation (the `query` short-hand) is only valid if it contains only that one operation definition.', requiresSchema: true, @@ -436,7 +436,7 @@ export const GRAPHQL_JS_VALIDATIONS: Record = Object. rule: LoneSchemaDefinitionRule, }, { - category: 'Schema', + category: 'schema', description: 'A GraphQL document is only valid if it contains only one schema definition.', }, ), @@ -446,7 +446,7 @@ export const GRAPHQL_JS_VALIDATIONS: Record = Object. rule: NoFragmentCyclesRule, }, { - category: 'Operations', + category: 'operations', description: 'A GraphQL fragment is only valid when it does not have cycles in fragments usage.', requiresSchema: true, @@ -459,7 +459,7 @@ export const GRAPHQL_JS_VALIDATIONS: Record = Object. getDocumentNode: handleMissingFragments, }, { - category: 'Operations', + category: 'operations', description: 'A GraphQL operation is only valid if all variables encountered, both directly and via fragment spreads, are defined by that operation.', requiresSchema: true, @@ -512,7 +512,7 @@ export const GRAPHQL_JS_VALIDATIONS: Record = Object. }, }, { - category: 'Operations', + category: 'operations', description: 'A GraphQL document is only valid if all fragment definitions are spread within operations, or spread within other fragments spread within operations.', requiresSchema: true, @@ -526,7 +526,7 @@ export const GRAPHQL_JS_VALIDATIONS: Record = Object. getDocumentNode: handleMissingFragments, }, { - category: 'Operations', + category: 'operations', description: 'A GraphQL operation is only valid if all variables defined by an operation are used, either directly or within a spread fragment.', requiresSchema: true, @@ -539,7 +539,7 @@ export const GRAPHQL_JS_VALIDATIONS: Record = Object. rule: OverlappingFieldsCanBeMergedRule, }, { - category: 'Operations', + category: 'operations', description: 'A selection set is only valid if all fields (including spreading any fragments) either correspond to distinct response names or can be merged without ambiguity.', requiresSchema: true, @@ -551,7 +551,7 @@ export const GRAPHQL_JS_VALIDATIONS: Record = Object. rule: PossibleFragmentSpreadsRule, }, { - category: 'Operations', + category: 'operations', description: 'A fragment spread is only valid if the type condition could ever possibly be true: if there is a non-empty intersection of the possible parent types, and possible types which pass the type condition.', requiresSchema: true, @@ -564,7 +564,7 @@ export const GRAPHQL_JS_VALIDATIONS: Record = Object. hasDidYouMeanSuggestions: true, }, { - category: 'Schema', + category: 'schema', description: 'A type extension is only valid if the type is defined and has the same kind.', recommended: true, requiresSchema: true, @@ -576,7 +576,7 @@ export const GRAPHQL_JS_VALIDATIONS: Record = Object. rule: ProvidedRequiredArgumentsRule, }, { - category: ['Schema', 'Operations'], + category: 'schema-and-operations', description: 'A field or directive is only valid if all required (non-null without a default value) field arguments have been provided.', requiresSchema: true, @@ -589,7 +589,7 @@ export const GRAPHQL_JS_VALIDATIONS: Record = Object. hasDidYouMeanSuggestions: true, }, { - category: 'Operations', + category: 'operations', description: 'A GraphQL document is valid only if all leaf fields (fields without sub selections) are of scalar or enum types.', requiresSchema: true, @@ -601,7 +601,7 @@ export const GRAPHQL_JS_VALIDATIONS: Record = Object. rule: SingleFieldSubscriptionsRule, }, { - category: 'Operations', + category: 'operations', description: 'A GraphQL subscription is valid only if it contains a single root field.', requiresSchema: true, }, @@ -612,7 +612,7 @@ export const GRAPHQL_JS_VALIDATIONS: Record = Object. rule: UniqueArgumentNamesRule, }, { - category: 'Operations', + category: 'operations', description: 'A GraphQL field or directive is only valid if all supplied arguments are uniquely named.', requiresSchema: true, @@ -624,7 +624,7 @@ export const GRAPHQL_JS_VALIDATIONS: Record = Object. rule: UniqueDirectiveNamesRule, }, { - category: 'Schema', + category: 'schema', description: 'A GraphQL document is only valid if all defined directives have unique names.', }, ), @@ -634,7 +634,7 @@ export const GRAPHQL_JS_VALIDATIONS: Record = Object. rule: UniqueDirectivesPerLocationRule, }, { - category: ['Schema', 'Operations'], + category: "schema-and-operations", description: 'A GraphQL document is only valid if all non-repeatable directives at a given location are uniquely named.', requiresSchema: true, @@ -646,7 +646,7 @@ export const GRAPHQL_JS_VALIDATIONS: Record = Object. rule: UniqueFieldDefinitionNamesRule, }, { - category: 'Schema', + category: 'schema', description: 'A GraphQL complex type is only valid if all its fields are uniquely named.', }, ), @@ -656,7 +656,7 @@ export const GRAPHQL_JS_VALIDATIONS: Record = Object. rule: UniqueInputFieldNamesRule, }, { - category: 'Operations', + category: 'operations', description: 'A GraphQL input object value is only valid if all supplied fields are uniquely named.', }, @@ -667,7 +667,7 @@ export const GRAPHQL_JS_VALIDATIONS: Record = Object. rule: UniqueOperationTypesRule, }, { - category: 'Schema', + category: 'schema', description: 'A GraphQL document is only valid if it has only one type per operation.', }, ), @@ -677,7 +677,7 @@ export const GRAPHQL_JS_VALIDATIONS: Record = Object. rule: UniqueTypeNamesRule, }, { - category: 'Schema', + category: 'schema', description: 'A GraphQL document is only valid if all defined types have unique names.', }, ), @@ -687,7 +687,7 @@ export const GRAPHQL_JS_VALIDATIONS: Record = Object. rule: UniqueVariableNamesRule, }, { - category: 'Operations', + category: 'operations', description: 'A GraphQL operation is only valid if all its variables are uniquely named.', requiresSchema: true, }, @@ -699,7 +699,7 @@ export const GRAPHQL_JS_VALIDATIONS: Record = Object. hasDidYouMeanSuggestions: true, }, { - category: 'Operations', + category: 'operations', description: 'A GraphQL document is only valid if all value literals are of the type expected at their position.', requiresSchema: true, @@ -711,7 +711,7 @@ export const GRAPHQL_JS_VALIDATIONS: Record = Object. rule: VariablesAreInputTypesRule, }, { - category: 'Operations', + category: 'operations', description: 'A GraphQL operation is only valid if all the variables it defines are of input types (scalar, enum, or input object).', requiresSchema: true, @@ -723,7 +723,7 @@ export const GRAPHQL_JS_VALIDATIONS: Record = Object. rule: VariablesInAllowedPositionRule, }, { - category: 'Operations', + category: 'operations', description: 'Variables passed to field arguments conform to type.', requiresSchema: true, }, diff --git a/packages/plugin/src/rules/no-deprecated/index.ts b/packages/plugin/src/rules/no-deprecated/index.ts index 9114de38ad1..53ef256d7e6 100644 --- a/packages/plugin/src/rules/no-deprecated/index.ts +++ b/packages/plugin/src/rules/no-deprecated/index.ts @@ -10,7 +10,7 @@ export const rule: GraphQLESLintRule<[], true> = { type: 'suggestion', hasSuggestions: true, docs: { - category: 'Operations', + category: 'operations', description: 'Enforce that deprecated fields or enum values are not in use by operations.', url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`, requiresSchema: true, diff --git a/packages/plugin/src/rules/no-root-type/index.ts b/packages/plugin/src/rules/no-root-type/index.ts index 40395ce48de..e962b786781 100644 --- a/packages/plugin/src/rules/no-root-type/index.ts +++ b/packages/plugin/src/rules/no-root-type/index.ts @@ -30,7 +30,7 @@ export const rule: GraphQLESLintRule = { type: 'suggestion', hasSuggestions: true, docs: { - category: 'Schema', + category: 'schema', description: 'Disallow using root types `mutation` and/or `subscription`.', url: 'https://the-guild.dev/graphql/eslint/rules/no-root-type', requiresSchema: true, diff --git a/packages/plugin/src/rules/relay-connection-types/index.ts b/packages/plugin/src/rules/relay-connection-types/index.ts index cfba5058c90..0b9ad5dd546 100644 --- a/packages/plugin/src/rules/relay-connection-types/index.ts +++ b/packages/plugin/src/rules/relay-connection-types/index.ts @@ -32,7 +32,7 @@ export const rule: GraphQLESLintRule = { meta: { type: 'problem', docs: { - category: 'Schema', + category: 'schema', description: [ 'Set of rules to follow Relay specification for Connection types.', '', diff --git a/packages/rule-tester/src/index.ts b/packages/rule-tester/src/index.ts index 4e8893d27ef..c1fa2b46e29 100644 --- a/packages/rule-tester/src/index.ts +++ b/packages/rule-tester/src/index.ts @@ -33,7 +33,6 @@ export class RuleTester extends ESLintRuleTester { return readFileSync(resolve(__dirname, `../../plugin/__tests__/mocks/${path}`), 'utf8'); } - // @ts-expect-error -- fix later run( ruleId: string, rule: GraphQLESLintRule, diff --git a/turbo.json b/turbo.json index 93b7c3ec5d7..4cacb8bc22b 100644 --- a/turbo.json +++ b/turbo.json @@ -10,13 +10,13 @@ "dev": { "dependsOn": [ // Run `dev` in workspaces I depend on first - "^dev" + "^build" ], // Never cache anything (including logs) emitted by a `dev` task - "cache": false, - "persistent": true + "cache": false }, "typecheck": { + "outputs": ["dist/**"], "dependsOn": [ // Run `build` in workspaces I depend on first "^build" diff --git a/website/app/_meta.global.ts b/website/app/_meta.global.ts index c3e16317092..2ee632aa2d2 100644 --- a/website/app/_meta.global.ts +++ b/website/app/_meta.global.ts @@ -10,9 +10,9 @@ const { schemaRules, operationsRules, schemaAndOperationsRules } = Object.entrie (acc, [ruleId, curr]) => { // @ts-expect-error -- fixme const { category } = curr.meta.docs; - if (category === 'Schema') { + if (category === 'schema') { acc.schemaRules.push(ruleId); - } else if (category === 'Operations') { + } else if (category === 'operations') { acc.operationsRules.push(ruleId); } else { // @ts-expect-error -- fixme diff --git a/website/content/rules/executable-definitions.mdx b/website/content/rules/executable-definitions.mdx index e0f23c63288..a7efe9641c3 100644 --- a/website/content/rules/executable-definitions.mdx +++ b/website/content/rules/executable-definitions.mdx @@ -9,7 +9,7 @@ description: ✅ The `"extends": "plugin:@graphql-eslint/operations-recommended"` property in a configuration file enables this rule. -- Category: `Operations` +- Category: `operations` - Rule name: `@graphql-eslint/executable-definitions` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/fields-on-correct-type.mdx b/website/content/rules/fields-on-correct-type.mdx index a9cae08fe66..30847c7112b 100644 --- a/website/content/rules/fields-on-correct-type.mdx +++ b/website/content/rules/fields-on-correct-type.mdx @@ -12,7 +12,7 @@ enables this rule. 💡 This rule provides [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions) -- Category: `Operations` +- Category: `operations` - Rule name: `@graphql-eslint/fields-on-correct-type` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/fragments-on-composite-type.mdx b/website/content/rules/fragments-on-composite-type.mdx index a1d753b050c..1afd65a5f06 100644 --- a/website/content/rules/fragments-on-composite-type.mdx +++ b/website/content/rules/fragments-on-composite-type.mdx @@ -10,7 +10,7 @@ description: ✅ The `"extends": "plugin:@graphql-eslint/operations-recommended"` property in a configuration file enables this rule. -- Category: `Operations` +- Category: `operations` - Rule name: `@graphql-eslint/fragments-on-composite-type` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/known-fragment-names.mdx b/website/content/rules/known-fragment-names.mdx index 7902703a8ab..192d4591392 100644 --- a/website/content/rules/known-fragment-names.mdx +++ b/website/content/rules/known-fragment-names.mdx @@ -9,7 +9,7 @@ description: ✅ The `"extends": "plugin:@graphql-eslint/operations-recommended"` property in a configuration file enables this rule. -- Category: `Operations` +- Category: `operations` - Rule name: `@graphql-eslint/known-fragment-names` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/lone-anonymous-operation.mdx b/website/content/rules/lone-anonymous-operation.mdx index ac8c2fb3e96..8c10c76285d 100644 --- a/website/content/rules/lone-anonymous-operation.mdx +++ b/website/content/rules/lone-anonymous-operation.mdx @@ -9,7 +9,7 @@ description: ✅ The `"extends": "plugin:@graphql-eslint/operations-recommended"` property in a configuration file enables this rule. -- Category: `Operations` +- Category: `operations` - Rule name: `@graphql-eslint/lone-anonymous-operation` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/lone-schema-definition.mdx b/website/content/rules/lone-schema-definition.mdx index f011ea3b7c3..08976a84418 100644 --- a/website/content/rules/lone-schema-definition.mdx +++ b/website/content/rules/lone-schema-definition.mdx @@ -7,7 +7,7 @@ description: 'A GraphQL document is only valid if it contains only one schema de ✅ The `"extends": "plugin:@graphql-eslint/schema-recommended"` property in a configuration file enables this rule. -- Category: `Schema` +- Category: `schema` - Rule name: `@graphql-eslint/lone-schema-definition` - Requires GraphQL Schema: `false` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/naming-convention.mdx b/website/content/rules/naming-convention.mdx index e144adfea60..c2d0dba90bb 100644 --- a/website/content/rules/naming-convention.mdx +++ b/website/content/rules/naming-convention.mdx @@ -35,7 +35,7 @@ type user { ### Incorrect ```graphql -# eslint @graphql-eslint/naming-convention: ['error', { FragmentDefinition: { style: 'PascalCase', forbiddenPatterns: ['/fragment$/i'] } }] +# eslint @graphql-eslint/naming-convention: ['error', { FragmentDefinition: { style: 'PascalCase', forbiddenPatterns: ['/(^fragment)|(fragment$)/i'] } }] fragment UserFragment on User { # ... @@ -65,7 +65,7 @@ type User { ### Correct ```graphql -# eslint @graphql-eslint/naming-convention: ['error', { FragmentDefinition: { style: 'PascalCase', forbiddenPatterns: ['/fragment$/i'] } }] +# eslint @graphql-eslint/naming-convention: ['error', { FragmentDefinition: { style: 'PascalCase', forbiddenPatterns: ['/(^fragment)|(fragment$)/i'] } }] fragment UserFields on User { # ... diff --git a/website/content/rules/no-deprecated.mdx b/website/content/rules/no-deprecated.mdx index 759103f0f81..ee507ca4fb1 100644 --- a/website/content/rules/no-deprecated.mdx +++ b/website/content/rules/no-deprecated.mdx @@ -10,7 +10,7 @@ enables this rule. 💡 This rule provides [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions) -- Category: `Operations` +- Category: `operations` - Rule name: `@graphql-eslint/no-deprecated` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/no-fragment-cycles.mdx b/website/content/rules/no-fragment-cycles.mdx index bcc60fb2f7a..6c41a0226e4 100644 --- a/website/content/rules/no-fragment-cycles.mdx +++ b/website/content/rules/no-fragment-cycles.mdx @@ -7,7 +7,7 @@ description: 'A GraphQL fragment is only valid when it does not have cycles in f ✅ The `"extends": "plugin:@graphql-eslint/operations-recommended"` property in a configuration file enables this rule. -- Category: `Operations` +- Category: `operations` - Rule name: `@graphql-eslint/no-fragment-cycles` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/no-root-type.mdx b/website/content/rules/no-root-type.mdx index 764e43786ac..bdbb758d6a8 100644 --- a/website/content/rules/no-root-type.mdx +++ b/website/content/rules/no-root-type.mdx @@ -7,7 +7,7 @@ description: 'Disallow using root types `mutation` and/or `subscription`.' 💡 This rule provides [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions) -- Category: `Schema` +- Category: `schema` - Rule name: `@graphql-eslint/no-root-type` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/no-undefined-variables.mdx b/website/content/rules/no-undefined-variables.mdx index ee29cec0ad8..be6e020c338 100644 --- a/website/content/rules/no-undefined-variables.mdx +++ b/website/content/rules/no-undefined-variables.mdx @@ -9,7 +9,7 @@ description: ✅ The `"extends": "plugin:@graphql-eslint/operations-recommended"` property in a configuration file enables this rule. -- Category: `Operations` +- Category: `operations` - Rule name: `@graphql-eslint/no-undefined-variables` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/no-unused-fragments.mdx b/website/content/rules/no-unused-fragments.mdx index e0c9c7a745d..4c407b45370 100644 --- a/website/content/rules/no-unused-fragments.mdx +++ b/website/content/rules/no-unused-fragments.mdx @@ -9,7 +9,7 @@ description: ✅ The `"extends": "plugin:@graphql-eslint/operations-recommended"` property in a configuration file enables this rule. -- Category: `Operations` +- Category: `operations` - Rule name: `@graphql-eslint/no-unused-fragments` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/no-unused-variables.mdx b/website/content/rules/no-unused-variables.mdx index d097f057d6c..f27f6142e60 100644 --- a/website/content/rules/no-unused-variables.mdx +++ b/website/content/rules/no-unused-variables.mdx @@ -9,7 +9,7 @@ description: ✅ The `"extends": "plugin:@graphql-eslint/operations-recommended"` property in a configuration file enables this rule. -- Category: `Operations` +- Category: `operations` - Rule name: `@graphql-eslint/no-unused-variables` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/one-field-subscriptions.mdx b/website/content/rules/one-field-subscriptions.mdx index 668e7409b89..b1a23b8c251 100644 --- a/website/content/rules/one-field-subscriptions.mdx +++ b/website/content/rules/one-field-subscriptions.mdx @@ -7,7 +7,7 @@ description: 'A GraphQL subscription is valid only if it contains a single root ✅ The `"extends": "plugin:@graphql-eslint/operations-recommended"` property in a configuration file enables this rule. -- Category: `Operations` +- Category: `operations` - Rule name: `@graphql-eslint/one-field-subscriptions` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/overlapping-fields-can-be-merged.mdx b/website/content/rules/overlapping-fields-can-be-merged.mdx index 652c42ace8b..b6115402fdd 100644 --- a/website/content/rules/overlapping-fields-can-be-merged.mdx +++ b/website/content/rules/overlapping-fields-can-be-merged.mdx @@ -9,7 +9,7 @@ description: ✅ The `"extends": "plugin:@graphql-eslint/operations-recommended"` property in a configuration file enables this rule. -- Category: `Operations` +- Category: `operations` - Rule name: `@graphql-eslint/overlapping-fields-can-be-merged` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/possible-fragment-spread.mdx b/website/content/rules/possible-fragment-spread.mdx index b30f76d8e31..9247f7fdbb5 100644 --- a/website/content/rules/possible-fragment-spread.mdx +++ b/website/content/rules/possible-fragment-spread.mdx @@ -10,7 +10,7 @@ description: ✅ The `"extends": "plugin:@graphql-eslint/operations-recommended"` property in a configuration file enables this rule. -- Category: `Operations` +- Category: `operations` - Rule name: `@graphql-eslint/possible-fragment-spread` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/possible-type-extension.mdx b/website/content/rules/possible-type-extension.mdx index 3a02b1ea4c4..ed26a0f535a 100644 --- a/website/content/rules/possible-type-extension.mdx +++ b/website/content/rules/possible-type-extension.mdx @@ -10,7 +10,7 @@ enables this rule. 💡 This rule provides [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions) -- Category: `Schema` +- Category: `schema` - Rule name: `@graphql-eslint/possible-type-extension` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/relay-connection-types.mdx b/website/content/rules/relay-connection-types.mdx index 23c984a6585..da39318c9dc 100644 --- a/website/content/rules/relay-connection-types.mdx +++ b/website/content/rules/relay-connection-types.mdx @@ -4,7 +4,7 @@ description: 'Set of rules to follow Relay specification for Connection types.' # `relay-connection-types` -- Category: `Schema` +- Category: `schema` - Rule name: `@graphql-eslint/relay-connection-types` - Requires GraphQL Schema: `false` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/scalar-leafs.mdx b/website/content/rules/scalar-leafs.mdx index 9ece88100c1..76e8b731c51 100644 --- a/website/content/rules/scalar-leafs.mdx +++ b/website/content/rules/scalar-leafs.mdx @@ -12,7 +12,7 @@ enables this rule. 💡 This rule provides [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions) -- Category: `Operations` +- Category: `operations` - Rule name: `@graphql-eslint/scalar-leafs` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/unique-argument-names.mdx b/website/content/rules/unique-argument-names.mdx index 462b859ecd0..d37d9031059 100644 --- a/website/content/rules/unique-argument-names.mdx +++ b/website/content/rules/unique-argument-names.mdx @@ -8,7 +8,7 @@ description: ✅ The `"extends": "plugin:@graphql-eslint/operations-recommended"` property in a configuration file enables this rule. -- Category: `Operations` +- Category: `operations` - Rule name: `@graphql-eslint/unique-argument-names` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/unique-directive-names.mdx b/website/content/rules/unique-directive-names.mdx index 5b806bc4b8b..3a300a24bdc 100644 --- a/website/content/rules/unique-directive-names.mdx +++ b/website/content/rules/unique-directive-names.mdx @@ -7,7 +7,7 @@ description: 'A GraphQL document is only valid if all defined directives have un ✅ The `"extends": "plugin:@graphql-eslint/schema-recommended"` property in a configuration file enables this rule. -- Category: `Schema` +- Category: `schema` - Rule name: `@graphql-eslint/unique-directive-names` - Requires GraphQL Schema: `false` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/unique-field-definition-names.mdx b/website/content/rules/unique-field-definition-names.mdx index 70eea9c76ad..36359ecab12 100644 --- a/website/content/rules/unique-field-definition-names.mdx +++ b/website/content/rules/unique-field-definition-names.mdx @@ -7,7 +7,7 @@ description: 'A GraphQL complex type is only valid if all its fields are uniquel ✅ The `"extends": "plugin:@graphql-eslint/schema-recommended"` property in a configuration file enables this rule. -- Category: `Schema` +- Category: `schema` - Rule name: `@graphql-eslint/unique-field-definition-names` - Requires GraphQL Schema: `false` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/unique-input-field-names.mdx b/website/content/rules/unique-input-field-names.mdx index b31d0104cf2..591bd1bebc6 100644 --- a/website/content/rules/unique-input-field-names.mdx +++ b/website/content/rules/unique-input-field-names.mdx @@ -7,7 +7,7 @@ description: 'A GraphQL input object value is only valid if all supplied fields ✅ The `"extends": "plugin:@graphql-eslint/operations-recommended"` property in a configuration file enables this rule. -- Category: `Operations` +- Category: `operations` - Rule name: `@graphql-eslint/unique-input-field-names` - Requires GraphQL Schema: `false` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/unique-operation-types.mdx b/website/content/rules/unique-operation-types.mdx index 60aaf90909b..7fd9f9006c9 100644 --- a/website/content/rules/unique-operation-types.mdx +++ b/website/content/rules/unique-operation-types.mdx @@ -7,7 +7,7 @@ description: 'A GraphQL document is only valid if it has only one type per opera ✅ The `"extends": "plugin:@graphql-eslint/schema-recommended"` property in a configuration file enables this rule. -- Category: `Schema` +- Category: `schema` - Rule name: `@graphql-eslint/unique-operation-types` - Requires GraphQL Schema: `false` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/unique-type-names.mdx b/website/content/rules/unique-type-names.mdx index a3dcee6a561..70792b0a200 100644 --- a/website/content/rules/unique-type-names.mdx +++ b/website/content/rules/unique-type-names.mdx @@ -7,7 +7,7 @@ description: 'A GraphQL document is only valid if all defined types have unique ✅ The `"extends": "plugin:@graphql-eslint/schema-recommended"` property in a configuration file enables this rule. -- Category: `Schema` +- Category: `schema` - Rule name: `@graphql-eslint/unique-type-names` - Requires GraphQL Schema: `false` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/unique-variable-names.mdx b/website/content/rules/unique-variable-names.mdx index 8eb8b8e82ea..371c7b377fc 100644 --- a/website/content/rules/unique-variable-names.mdx +++ b/website/content/rules/unique-variable-names.mdx @@ -7,7 +7,7 @@ description: 'A GraphQL operation is only valid if all its variables are uniquel ✅ The `"extends": "plugin:@graphql-eslint/operations-recommended"` property in a configuration file enables this rule. -- Category: `Operations` +- Category: `operations` - Rule name: `@graphql-eslint/unique-variable-names` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/value-literals-of-correct-type.mdx b/website/content/rules/value-literals-of-correct-type.mdx index 72b224b1602..37069c6c5b3 100644 --- a/website/content/rules/value-literals-of-correct-type.mdx +++ b/website/content/rules/value-literals-of-correct-type.mdx @@ -12,7 +12,7 @@ enables this rule. 💡 This rule provides [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions) -- Category: `Operations` +- Category: `operations` - Rule name: `@graphql-eslint/value-literals-of-correct-type` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/variables-are-input-types.mdx b/website/content/rules/variables-are-input-types.mdx index 1427f338c1f..5fc0b928734 100644 --- a/website/content/rules/variables-are-input-types.mdx +++ b/website/content/rules/variables-are-input-types.mdx @@ -9,7 +9,7 @@ description: ✅ The `"extends": "plugin:@graphql-eslint/operations-recommended"` property in a configuration file enables this rule. -- Category: `Operations` +- Category: `operations` - Rule name: `@graphql-eslint/variables-are-input-types` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/variables-in-allowed-position.mdx b/website/content/rules/variables-in-allowed-position.mdx index 83833b3faa3..0711b3b4f6e 100644 --- a/website/content/rules/variables-in-allowed-position.mdx +++ b/website/content/rules/variables-in-allowed-position.mdx @@ -7,7 +7,7 @@ description: 'Variables passed to field arguments conform to type.' ✅ The `"extends": "plugin:@graphql-eslint/operations-recommended"` property in a configuration file enables this rule. -- Category: `Operations` +- Category: `operations` - Rule name: `@graphql-eslint/variables-in-allowed-position` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) From 5685cffb36b9d0aa94d24881c3a96aa5d8d78cd0 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Tue, 10 Dec 2024 18:32:44 +0700 Subject: [PATCH 05/17] aa --- packages/plugin/src/rules/alphabetize/index.ts | 2 +- packages/plugin/src/rules/description-style/index.ts | 2 +- packages/plugin/src/rules/input-name/index.ts | 2 +- packages/plugin/src/rules/lone-executable-definition/index.ts | 2 +- packages/plugin/src/rules/match-document-filename/index.ts | 2 +- packages/plugin/src/rules/naming-convention/index.ts | 2 +- packages/plugin/src/rules/no-anonymous-operations/index.ts | 2 +- packages/plugin/src/rules/no-duplicate-fields/index.ts | 2 +- packages/plugin/src/rules/no-hashtag-description/index.ts | 2 +- packages/plugin/src/rules/no-one-place-fragments/index.ts | 2 +- .../plugin/src/rules/no-scalar-result-type-on-mutation/index.ts | 2 +- packages/plugin/src/rules/no-typename-prefix/index.ts | 2 +- packages/plugin/src/rules/no-unreachable-types/index.ts | 2 +- packages/plugin/src/rules/no-unused-fields/index.ts | 2 +- packages/plugin/src/rules/relay-arguments/index.ts | 2 +- packages/plugin/src/rules/relay-edge-types/index.ts | 2 +- packages/plugin/src/rules/relay-page-info/index.ts | 2 +- packages/plugin/src/rules/require-deprecation-date/index.ts | 2 +- packages/plugin/src/rules/require-deprecation-reason/index.ts | 2 +- packages/plugin/src/rules/require-description/index.ts | 2 +- .../require-field-of-type-query-in-mutation-result/index.ts | 2 +- packages/plugin/src/rules/require-import-fragment/index.ts | 2 +- .../src/rules/require-nullable-fields-with-oneof/index.ts | 2 +- .../plugin/src/rules/require-nullable-result-in-root/index.ts | 2 +- packages/plugin/src/rules/require-selections/index.ts | 2 +- .../plugin/src/rules/require-type-pattern-with-oneof/index.ts | 2 +- packages/plugin/src/rules/selection-set-depth/index.ts | 2 +- packages/plugin/src/rules/strict-id-in-types/index.ts | 2 +- packages/plugin/src/rules/unique-enum-value-names/index.ts | 2 +- packages/plugin/src/rules/unique-fragment-name/index.ts | 2 +- packages/plugin/src/rules/unique-operation-name/index.ts | 2 +- website/content/rules/alphabetize.mdx | 2 +- website/content/rules/description-style.mdx | 2 +- website/content/rules/input-name.mdx | 2 +- website/content/rules/known-argument-names.mdx | 2 +- website/content/rules/known-directives.mdx | 2 +- website/content/rules/known-type-names.mdx | 2 +- website/content/rules/lone-executable-definition.mdx | 2 +- website/content/rules/match-document-filename.mdx | 2 +- website/content/rules/naming-convention.mdx | 2 +- website/content/rules/no-anonymous-operations.mdx | 2 +- website/content/rules/no-duplicate-fields.mdx | 2 +- website/content/rules/no-hashtag-description.mdx | 2 +- website/content/rules/no-one-place-fragments.mdx | 2 +- website/content/rules/no-scalar-result-type-on-mutation.mdx | 2 +- website/content/rules/no-typename-prefix.mdx | 2 +- website/content/rules/no-unreachable-types.mdx | 2 +- website/content/rules/no-unused-fields.mdx | 2 +- website/content/rules/provided-required-arguments.mdx | 2 +- website/content/rules/relay-arguments.mdx | 2 +- website/content/rules/relay-edge-types.mdx | 2 +- website/content/rules/relay-page-info.mdx | 2 +- website/content/rules/require-deprecation-date.mdx | 2 +- website/content/rules/require-deprecation-reason.mdx | 2 +- website/content/rules/require-description.mdx | 2 +- .../rules/require-field-of-type-query-in-mutation-result.mdx | 2 +- website/content/rules/require-import-fragment.mdx | 2 +- website/content/rules/require-nullable-fields-with-oneof.mdx | 2 +- website/content/rules/require-nullable-result-in-root.mdx | 2 +- website/content/rules/require-selections.mdx | 2 +- website/content/rules/require-type-pattern-with-oneof.mdx | 2 +- website/content/rules/selection-set-depth.mdx | 2 +- website/content/rules/strict-id-in-types.mdx | 2 +- website/content/rules/unique-directive-names-per-location.mdx | 2 +- website/content/rules/unique-enum-value-names.mdx | 2 +- website/content/rules/unique-fragment-name.mdx | 2 +- website/content/rules/unique-operation-name.mdx | 2 +- 67 files changed, 67 insertions(+), 67 deletions(-) diff --git a/packages/plugin/src/rules/alphabetize/index.ts b/packages/plugin/src/rules/alphabetize/index.ts index ee9508ac105..a01c2cc4242 100644 --- a/packages/plugin/src/rules/alphabetize/index.ts +++ b/packages/plugin/src/rules/alphabetize/index.ts @@ -112,7 +112,7 @@ export const rule: GraphQLESLintRule = { type: 'suggestion', fixable: 'code', docs: { - category: ['Schema', 'Operations'], + category: 'schema-and-operations', description: 'Enforce arrange in alphabetical order for type fields, enum values, input object fields, operation selections and more.', url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`, diff --git a/packages/plugin/src/rules/description-style/index.ts b/packages/plugin/src/rules/description-style/index.ts index 154964e0855..803c0700b74 100644 --- a/packages/plugin/src/rules/description-style/index.ts +++ b/packages/plugin/src/rules/description-style/index.ts @@ -50,7 +50,7 @@ export const rule: GraphQLESLintRule = { }, ], description: 'Require all comments to follow the same style (either block or inline).', - category: 'Schema', + category: 'schema', url: 'https://the-guild.dev/graphql/eslint/rules/description-style', recommended: true, }, diff --git a/packages/plugin/src/rules/input-name/index.ts b/packages/plugin/src/rules/input-name/index.ts index e8da9f0a74d..9753e24c468 100644 --- a/packages/plugin/src/rules/input-name/index.ts +++ b/packages/plugin/src/rules/input-name/index.ts @@ -62,7 +62,7 @@ export const rule: GraphQLESLintRule = { docs: { description: 'Require mutation argument to be always called "input" and input type to be called Mutation name + "Input".\nUsing the same name for all input parameters will make your schemas easier to consume and more predictable. Using the same name as mutation for InputType will make it easier to find mutations that InputType belongs to.', - category: 'Schema', + category: 'schema', url: 'https://the-guild.dev/graphql/eslint/rules/input-name', examples: [ { diff --git a/packages/plugin/src/rules/lone-executable-definition/index.ts b/packages/plugin/src/rules/lone-executable-definition/index.ts index 8533da94786..33d00c19ea9 100644 --- a/packages/plugin/src/rules/lone-executable-definition/index.ts +++ b/packages/plugin/src/rules/lone-executable-definition/index.ts @@ -37,7 +37,7 @@ export const rule: GraphQLESLintRule = { meta: { type: 'suggestion', docs: { - category: 'Operations', + category: 'operations', description: 'Require queries, mutations, subscriptions or fragments to be located in separate files.', url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`, diff --git a/packages/plugin/src/rules/match-document-filename/index.ts b/packages/plugin/src/rules/match-document-filename/index.ts index 6aa595b0bf9..732f482c7e6 100644 --- a/packages/plugin/src/rules/match-document-filename/index.ts +++ b/packages/plugin/src/rules/match-document-filename/index.ts @@ -70,7 +70,7 @@ export const rule: GraphQLESLintRule = { meta: { type: 'suggestion', docs: { - category: 'Operations', + category: 'operations', description: 'This rule allows you to enforce that the file name should match the operation name.', url: 'https://the-guild.dev/graphql/eslint/rules/match-document-filename', diff --git a/packages/plugin/src/rules/naming-convention/index.ts b/packages/plugin/src/rules/naming-convention/index.ts index 5f7d2c446d1..b2e4a969040 100644 --- a/packages/plugin/src/rules/naming-convention/index.ts +++ b/packages/plugin/src/rules/naming-convention/index.ts @@ -169,7 +169,7 @@ export const rule: GraphQLESLintRule = { type: 'suggestion', docs: { description: 'Require names to follow specified conventions.', - category: ['Schema', 'Operations'], + category: 'schema-and-operations', recommended: true, url: 'https://the-guild.dev/graphql/eslint/rules/naming-convention', examples: [ diff --git a/packages/plugin/src/rules/no-anonymous-operations/index.ts b/packages/plugin/src/rules/no-anonymous-operations/index.ts index b53c69d0567..9edf1464389 100644 --- a/packages/plugin/src/rules/no-anonymous-operations/index.ts +++ b/packages/plugin/src/rules/no-anonymous-operations/index.ts @@ -10,7 +10,7 @@ export const rule: GraphQLESLintRule = { type: 'suggestion', hasSuggestions: true, docs: { - category: 'Operations', + category: 'operations', description: 'Require name for your GraphQL operations. This is useful since most GraphQL client libraries are using the operation name for caching purposes.', recommended: true, diff --git a/packages/plugin/src/rules/no-duplicate-fields/index.ts b/packages/plugin/src/rules/no-duplicate-fields/index.ts index a0c004d8266..d505551861d 100644 --- a/packages/plugin/src/rules/no-duplicate-fields/index.ts +++ b/packages/plugin/src/rules/no-duplicate-fields/index.ts @@ -11,7 +11,7 @@ export const rule: GraphQLESLintRule = { docs: { description: 'Checks for duplicate fields in selection set, variables in operation definition, or in arguments set of a field.', - category: 'Operations', + category: 'operations', url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`, recommended: true, examples: [ diff --git a/packages/plugin/src/rules/no-hashtag-description/index.ts b/packages/plugin/src/rules/no-hashtag-description/index.ts index 53d8f4b7564..7351c6db170 100644 --- a/packages/plugin/src/rules/no-hashtag-description/index.ts +++ b/packages/plugin/src/rules/no-hashtag-description/index.ts @@ -17,7 +17,7 @@ export const rule: GraphQLESLintRule = { docs: { description: 'Requires to use `"""` or `"` for adding a GraphQL description instead of `#`.\nAllows to use hashtag for comments, as long as it\'s not attached to an AST definition.', - category: 'Schema', + category: 'schema', url: 'https://the-guild.dev/graphql/eslint/rules/no-hashtag-description', examples: [ { diff --git a/packages/plugin/src/rules/no-one-place-fragments/index.ts b/packages/plugin/src/rules/no-one-place-fragments/index.ts index e94f813ae41..ad150bd4575 100644 --- a/packages/plugin/src/rules/no-one-place-fragments/index.ts +++ b/packages/plugin/src/rules/no-one-place-fragments/index.ts @@ -10,7 +10,7 @@ export const rule: GraphQLESLintRule = { meta: { type: 'suggestion', docs: { - category: 'Operations', + category: 'operations', description: 'Disallow fragments that are used only in one place.', url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`, examples: [ diff --git a/packages/plugin/src/rules/no-scalar-result-type-on-mutation/index.ts b/packages/plugin/src/rules/no-scalar-result-type-on-mutation/index.ts index a23c18beeb3..da66709585a 100644 --- a/packages/plugin/src/rules/no-scalar-result-type-on-mutation/index.ts +++ b/packages/plugin/src/rules/no-scalar-result-type-on-mutation/index.ts @@ -10,7 +10,7 @@ export const rule: GraphQLESLintRule = { type: 'suggestion', hasSuggestions: true, docs: { - category: 'Schema', + category: 'schema', description: 'Avoid scalar result type on mutation type to make sure to return a valid state.', url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`, diff --git a/packages/plugin/src/rules/no-typename-prefix/index.ts b/packages/plugin/src/rules/no-typename-prefix/index.ts index 0d5d37f2580..8e25e1052f8 100644 --- a/packages/plugin/src/rules/no-typename-prefix/index.ts +++ b/packages/plugin/src/rules/no-typename-prefix/index.ts @@ -14,7 +14,7 @@ export const rule: GraphQLESLintRule = { type: 'suggestion', hasSuggestions: true, docs: { - category: 'Schema', + category: 'schema', description: 'Enforces users to avoid using the type name in a field name while defining your schema.', recommended: true, diff --git a/packages/plugin/src/rules/no-unreachable-types/index.ts b/packages/plugin/src/rules/no-unreachable-types/index.ts index 280d2f88df0..5ba25ff20ec 100644 --- a/packages/plugin/src/rules/no-unreachable-types/index.ts +++ b/packages/plugin/src/rules/no-unreachable-types/index.ts @@ -118,7 +118,7 @@ export const rule: GraphQLESLintRule = { }, docs: { description: 'Requires all types to be reachable at some level by root level fields.', - category: 'Schema', + category: 'schema', url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`, requiresSchema: true, examples: [ diff --git a/packages/plugin/src/rules/no-unused-fields/index.ts b/packages/plugin/src/rules/no-unused-fields/index.ts index b29571608fa..7ce158c897a 100644 --- a/packages/plugin/src/rules/no-unused-fields/index.ts +++ b/packages/plugin/src/rules/no-unused-fields/index.ts @@ -146,7 +146,7 @@ export const rule: GraphQLESLintRule = { }, docs: { description: 'Requires all fields to be used at some level by siblings operations.', - category: 'Schema', + category: 'schema', url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`, requiresSiblings: true, requiresSchema: true, diff --git a/packages/plugin/src/rules/relay-arguments/index.ts b/packages/plugin/src/rules/relay-arguments/index.ts index d9e94a35b8b..932c58f157d 100644 --- a/packages/plugin/src/rules/relay-arguments/index.ts +++ b/packages/plugin/src/rules/relay-arguments/index.ts @@ -30,7 +30,7 @@ export const rule: GraphQLESLintRule = { meta: { type: 'problem', docs: { - category: 'Schema', + category: 'schema', description: [ 'Set of rules to follow Relay specification for Arguments.', '', diff --git a/packages/plugin/src/rules/relay-edge-types/index.ts b/packages/plugin/src/rules/relay-edge-types/index.ts index 4abdbd87375..980940f903c 100644 --- a/packages/plugin/src/rules/relay-edge-types/index.ts +++ b/packages/plugin/src/rules/relay-edge-types/index.ts @@ -88,7 +88,7 @@ export const rule: GraphQLESLintRule = { meta: { type: 'problem', docs: { - category: 'Schema', + category: 'schema', description: [ 'Set of rules to follow Relay specification for Edge types.', '', diff --git a/packages/plugin/src/rules/relay-page-info/index.ts b/packages/plugin/src/rules/relay-page-info/index.ts index 422d34cd523..d3fa7644240 100644 --- a/packages/plugin/src/rules/relay-page-info/index.ts +++ b/packages/plugin/src/rules/relay-page-info/index.ts @@ -16,7 +16,7 @@ export const rule: GraphQLESLintRule = { meta: { type: 'problem', docs: { - category: 'Schema', + category: 'schema', description: [ 'Set of rules to follow Relay specification for `PageInfo` object.', '', diff --git a/packages/plugin/src/rules/require-deprecation-date/index.ts b/packages/plugin/src/rules/require-deprecation-date/index.ts index 2fb0df1b358..19a35a68f10 100644 --- a/packages/plugin/src/rules/require-deprecation-date/index.ts +++ b/packages/plugin/src/rules/require-deprecation-date/index.ts @@ -32,7 +32,7 @@ export const rule: GraphQLESLintRule = { type: 'suggestion', hasSuggestions: true, docs: { - category: 'Schema', + category: 'schema', description: 'Require deletion date on `@deprecated` directive. Suggest removing deprecated things after deprecated date.', url: 'https://the-guild.dev/graphql/eslint/rules/require-deprecation-date', diff --git a/packages/plugin/src/rules/require-deprecation-reason/index.ts b/packages/plugin/src/rules/require-deprecation-reason/index.ts index c6c57fa570a..936d370e5df 100644 --- a/packages/plugin/src/rules/require-deprecation-reason/index.ts +++ b/packages/plugin/src/rules/require-deprecation-reason/index.ts @@ -7,7 +7,7 @@ export const rule: GraphQLESLintRule = { meta: { docs: { description: 'Require all deprecation directives to specify a reason.', - category: 'Schema', + category: 'schema', url: 'https://the-guild.dev/graphql/eslint/rules/require-deprecation-reason', recommended: true, examples: [ diff --git a/packages/plugin/src/rules/require-description/index.ts b/packages/plugin/src/rules/require-description/index.ts index 12bd6cbd28b..1ddc5aedc23 100644 --- a/packages/plugin/src/rules/require-description/index.ts +++ b/packages/plugin/src/rules/require-description/index.ts @@ -78,7 +78,7 @@ export type RuleOptions = FromSchema; export const rule: GraphQLESLintRule = { meta: { docs: { - category: 'Schema', + category: 'schema', description: 'Enforce descriptions in type definitions and operations.', url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`, examples: [ diff --git a/packages/plugin/src/rules/require-field-of-type-query-in-mutation-result/index.ts b/packages/plugin/src/rules/require-field-of-type-query-in-mutation-result/index.ts index 8096b4ae9a8..d23c5994f99 100644 --- a/packages/plugin/src/rules/require-field-of-type-query-in-mutation-result/index.ts +++ b/packages/plugin/src/rules/require-field-of-type-query-in-mutation-result/index.ts @@ -9,7 +9,7 @@ export const rule: GraphQLESLintRule = { meta: { type: 'suggestion', docs: { - category: 'Schema', + category: 'schema', description: 'Allow the client in one round-trip not only to call mutation but also to get a wagon of data to update their application.\n> Currently, no errors are reported for result type `union`, `interface` and `scalar`.', url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`, diff --git a/packages/plugin/src/rules/require-import-fragment/index.ts b/packages/plugin/src/rules/require-import-fragment/index.ts index 8ba691a21db..7b73cf80d1d 100644 --- a/packages/plugin/src/rules/require-import-fragment/index.ts +++ b/packages/plugin/src/rules/require-import-fragment/index.ts @@ -11,7 +11,7 @@ export const rule: GraphQLESLintRule = { meta: { type: 'suggestion', docs: { - category: 'Operations', + category: 'operations', description: 'Require fragments to be imported via an import expression.', url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`, examples: [ diff --git a/packages/plugin/src/rules/require-nullable-fields-with-oneof/index.ts b/packages/plugin/src/rules/require-nullable-fields-with-oneof/index.ts index 44c7f4a5c58..dc49ee5a21d 100644 --- a/packages/plugin/src/rules/require-nullable-fields-with-oneof/index.ts +++ b/packages/plugin/src/rules/require-nullable-fields-with-oneof/index.ts @@ -9,7 +9,7 @@ export const rule: GraphQLESLintRule = { meta: { type: 'suggestion', docs: { - category: 'Schema', + category: 'schema', description: 'Require `input` or `type` fields to be non-nullable with `@oneOf` directive.', url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`, examples: [ diff --git a/packages/plugin/src/rules/require-nullable-result-in-root/index.ts b/packages/plugin/src/rules/require-nullable-result-in-root/index.ts index e01608b2888..edad679bc5f 100644 --- a/packages/plugin/src/rules/require-nullable-result-in-root/index.ts +++ b/packages/plugin/src/rules/require-nullable-result-in-root/index.ts @@ -10,7 +10,7 @@ export const rule: GraphQLESLintRule = { type: 'suggestion', hasSuggestions: true, docs: { - category: 'Schema', + category: 'schema', description: 'Require nullable fields in root types.', url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`, requiresSchema: true, diff --git a/packages/plugin/src/rules/require-selections/index.ts b/packages/plugin/src/rules/require-selections/index.ts index 12748fe0c84..5cf16ed5c50 100644 --- a/packages/plugin/src/rules/require-selections/index.ts +++ b/packages/plugin/src/rules/require-selections/index.ts @@ -57,7 +57,7 @@ export const rule: GraphQLESLintRule = { type: 'suggestion', hasSuggestions: true, docs: { - category: 'Operations', + category: 'operations', description: 'Enforce selecting specific fields when they are available on the GraphQL type.', url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`, requiresSchema: true, diff --git a/packages/plugin/src/rules/require-type-pattern-with-oneof/index.ts b/packages/plugin/src/rules/require-type-pattern-with-oneof/index.ts index 0bdf57a4351..a290034e025 100644 --- a/packages/plugin/src/rules/require-type-pattern-with-oneof/index.ts +++ b/packages/plugin/src/rules/require-type-pattern-with-oneof/index.ts @@ -9,7 +9,7 @@ export const rule: GraphQLESLintRule = { meta: { type: 'suggestion', docs: { - category: 'Schema', + category: 'schema', description: 'Enforce types with `@oneOf` directive have `error` and `ok` fields.', url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`, examples: [ diff --git a/packages/plugin/src/rules/selection-set-depth/index.ts b/packages/plugin/src/rules/selection-set-depth/index.ts index 9295d0e52a0..8cbbc18d8d1 100644 --- a/packages/plugin/src/rules/selection-set-depth/index.ts +++ b/packages/plugin/src/rules/selection-set-depth/index.ts @@ -33,7 +33,7 @@ export const rule: GraphQLESLintRule = { type: 'suggestion', hasSuggestions: true, docs: { - category: 'Operations', + category: 'operations', description: 'Limit the complexity of the GraphQL operations solely by their depth. Based on [graphql-depth-limit](https://npmjs.com/package/graphql-depth-limit).', url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`, diff --git a/packages/plugin/src/rules/strict-id-in-types/index.ts b/packages/plugin/src/rules/strict-id-in-types/index.ts index c0a37efbafd..b970c2dfb61 100644 --- a/packages/plugin/src/rules/strict-id-in-types/index.ts +++ b/packages/plugin/src/rules/strict-id-in-types/index.ts @@ -54,7 +54,7 @@ export const rule: GraphQLESLintRule = { docs: { description: 'Requires output types to have one unique identifier unless they do not have a logical one. Exceptions can be used to ignore output types that do not have unique identifiers.', - category: 'Schema', + category: 'schema', recommended: true, url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`, requiresSchema: true, diff --git a/packages/plugin/src/rules/unique-enum-value-names/index.ts b/packages/plugin/src/rules/unique-enum-value-names/index.ts index de783423d96..278a945dae7 100644 --- a/packages/plugin/src/rules/unique-enum-value-names/index.ts +++ b/packages/plugin/src/rules/unique-enum-value-names/index.ts @@ -9,7 +9,7 @@ export const rule: GraphQLESLintRule = { hasSuggestions: true, docs: { url: 'https://the-guild.dev/graphql/eslint/rules/unique-enum-value-names', - category: 'Schema', + category: 'schema', recommended: true, description: `A GraphQL enum type is only valid if all its values are uniquely named. > This rule disallows case-insensitive enum values duplicates too.`, diff --git a/packages/plugin/src/rules/unique-fragment-name/index.ts b/packages/plugin/src/rules/unique-fragment-name/index.ts index 1a07e53f795..d2351c68979 100644 --- a/packages/plugin/src/rules/unique-fragment-name/index.ts +++ b/packages/plugin/src/rules/unique-fragment-name/index.ts @@ -45,7 +45,7 @@ export const rule: GraphQLESLintRule = { meta: { type: 'suggestion', docs: { - category: 'Operations', + category: 'operations', description: 'Enforce unique fragment names across your project.', url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`, requiresSiblings: true, diff --git a/packages/plugin/src/rules/unique-operation-name/index.ts b/packages/plugin/src/rules/unique-operation-name/index.ts index 3eb27d04e4f..a8b255fa100 100644 --- a/packages/plugin/src/rules/unique-operation-name/index.ts +++ b/packages/plugin/src/rules/unique-operation-name/index.ts @@ -9,7 +9,7 @@ export const rule: GraphQLESLintRule = { meta: { type: 'suggestion', docs: { - category: 'Operations', + category: 'operations', description: 'Enforce unique operation names across your project.', url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`, requiresSiblings: true, diff --git a/website/content/rules/alphabetize.mdx b/website/content/rules/alphabetize.mdx index cae85338b8c..3e450855eef 100644 --- a/website/content/rules/alphabetize.mdx +++ b/website/content/rules/alphabetize.mdx @@ -10,7 +10,7 @@ description: [command line](https://eslint.org/docs/user-guide/command-line-interface#--fix) can automatically fix some of the problems reported by this rule. -- Category: `Schema & Operations` +- Category: `schema & operations` - Rule name: `@graphql-eslint/alphabetize` - Requires GraphQL Schema: `false` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/description-style.mdx b/website/content/rules/description-style.mdx index 60d7ebf2c06..bc20a195618 100644 --- a/website/content/rules/description-style.mdx +++ b/website/content/rules/description-style.mdx @@ -10,7 +10,7 @@ enables this rule. 💡 This rule provides [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions) -- Category: `Schema` +- Category: `schema` - Rule name: `@graphql-eslint/description-style` - Requires GraphQL Schema: `false` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/input-name.mdx b/website/content/rules/input-name.mdx index d680be83379..b87fc681440 100644 --- a/website/content/rules/input-name.mdx +++ b/website/content/rules/input-name.mdx @@ -9,7 +9,7 @@ description: 💡 This rule provides [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions) -- Category: `Schema` +- Category: `schema` - Rule name: `@graphql-eslint/input-name` - Requires GraphQL Schema: `false` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/known-argument-names.mdx b/website/content/rules/known-argument-names.mdx index 898c77db6a0..9ea4f86229e 100644 --- a/website/content/rules/known-argument-names.mdx +++ b/website/content/rules/known-argument-names.mdx @@ -11,7 +11,7 @@ rule. 💡 This rule provides [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions) -- Category: `Schema & Operations` +- Category: `schema & operations` - Rule name: `@graphql-eslint/known-argument-names` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/known-directives.mdx b/website/content/rules/known-directives.mdx index 823c1ee472f..9f855c44f7e 100644 --- a/website/content/rules/known-directives.mdx +++ b/website/content/rules/known-directives.mdx @@ -10,7 +10,7 @@ description: `"plugin:@graphql-eslint/operations-recommended"` property in a configuration file enables this rule. -- Category: `Schema & Operations` +- Category: `schema & operations` - Rule name: `@graphql-eslint/known-directives` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/known-type-names.mdx b/website/content/rules/known-type-names.mdx index d56d59d4a05..5671bbc6055 100644 --- a/website/content/rules/known-type-names.mdx +++ b/website/content/rules/known-type-names.mdx @@ -13,7 +13,7 @@ rule. 💡 This rule provides [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions) -- Category: `Schema & Operations` +- Category: `schema & operations` - Rule name: `@graphql-eslint/known-type-names` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/lone-executable-definition.mdx b/website/content/rules/lone-executable-definition.mdx index 344f098bcc7..5a6bc5bcec6 100644 --- a/website/content/rules/lone-executable-definition.mdx +++ b/website/content/rules/lone-executable-definition.mdx @@ -5,7 +5,7 @@ description: # `lone-executable-definition` -- Category: `Operations` +- Category: `operations` - Rule name: `@graphql-eslint/lone-executable-definition` - Requires GraphQL Schema: `false` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/match-document-filename.mdx b/website/content/rules/match-document-filename.mdx index 576c8401e76..9f01ad6874c 100644 --- a/website/content/rules/match-document-filename.mdx +++ b/website/content/rules/match-document-filename.mdx @@ -4,7 +4,7 @@ description: 'This rule allows you to enforce that the file name should match th # `match-document-filename` -- Category: `Operations` +- Category: `operations` - Rule name: `@graphql-eslint/match-document-filename` - Requires GraphQL Schema: `false` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/naming-convention.mdx b/website/content/rules/naming-convention.mdx index c2d0dba90bb..68306202632 100644 --- a/website/content/rules/naming-convention.mdx +++ b/website/content/rules/naming-convention.mdx @@ -11,7 +11,7 @@ rule. 💡 This rule provides [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions) -- Category: `Schema & Operations` +- Category: `schema & operations` - Rule name: `@graphql-eslint/naming-convention` - Requires GraphQL Schema: `false` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/no-anonymous-operations.mdx b/website/content/rules/no-anonymous-operations.mdx index 9225096ac5c..17e527d8324 100644 --- a/website/content/rules/no-anonymous-operations.mdx +++ b/website/content/rules/no-anonymous-operations.mdx @@ -12,7 +12,7 @@ enables this rule. 💡 This rule provides [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions) -- Category: `Operations` +- Category: `operations` - Rule name: `@graphql-eslint/no-anonymous-operations` - Requires GraphQL Schema: `false` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/no-duplicate-fields.mdx b/website/content/rules/no-duplicate-fields.mdx index 1dd9f8e1b99..cf94edd6aeb 100644 --- a/website/content/rules/no-duplicate-fields.mdx +++ b/website/content/rules/no-duplicate-fields.mdx @@ -12,7 +12,7 @@ enables this rule. 💡 This rule provides [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions) -- Category: `Operations` +- Category: `operations` - Rule name: `@graphql-eslint/no-duplicate-fields` - Requires GraphQL Schema: `false` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/no-hashtag-description.mdx b/website/content/rules/no-hashtag-description.mdx index 8ea8a3f5ef9..5e1eb550cd9 100644 --- a/website/content/rules/no-hashtag-description.mdx +++ b/website/content/rules/no-hashtag-description.mdx @@ -10,7 +10,7 @@ enables this rule. 💡 This rule provides [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions) -- Category: `Schema` +- Category: `schema` - Rule name: `@graphql-eslint/no-hashtag-description` - Requires GraphQL Schema: `false` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/no-one-place-fragments.mdx b/website/content/rules/no-one-place-fragments.mdx index 6086f0f1904..7d3b5331bb8 100644 --- a/website/content/rules/no-one-place-fragments.mdx +++ b/website/content/rules/no-one-place-fragments.mdx @@ -4,7 +4,7 @@ description: 'Disallow fragments that are used only in one place.' # `no-one-place-fragments` -- Category: `Operations` +- Category: `operations` - Rule name: `@graphql-eslint/no-one-place-fragments` - Requires GraphQL Schema: `false` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/no-scalar-result-type-on-mutation.mdx b/website/content/rules/no-scalar-result-type-on-mutation.mdx index 8da736402cc..6aef4fc9e26 100644 --- a/website/content/rules/no-scalar-result-type-on-mutation.mdx +++ b/website/content/rules/no-scalar-result-type-on-mutation.mdx @@ -7,7 +7,7 @@ description: 'Avoid scalar result type on mutation type to make sure to return a 💡 This rule provides [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions) -- Category: `Schema` +- Category: `schema` - Rule name: `@graphql-eslint/no-scalar-result-type-on-mutation` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/no-typename-prefix.mdx b/website/content/rules/no-typename-prefix.mdx index 37cd748e525..15031e6ae43 100644 --- a/website/content/rules/no-typename-prefix.mdx +++ b/website/content/rules/no-typename-prefix.mdx @@ -11,7 +11,7 @@ enables this rule. 💡 This rule provides [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions) -- Category: `Schema` +- Category: `schema` - Rule name: `@graphql-eslint/no-typename-prefix` - Requires GraphQL Schema: `false` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/no-unreachable-types.mdx b/website/content/rules/no-unreachable-types.mdx index faaf0396cb7..f1c4955024e 100644 --- a/website/content/rules/no-unreachable-types.mdx +++ b/website/content/rules/no-unreachable-types.mdx @@ -10,7 +10,7 @@ enables this rule. 💡 This rule provides [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions) -- Category: `Schema` +- Category: `schema` - Rule name: `@graphql-eslint/no-unreachable-types` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/no-unused-fields.mdx b/website/content/rules/no-unused-fields.mdx index d8da4326c43..96aacc9365f 100644 --- a/website/content/rules/no-unused-fields.mdx +++ b/website/content/rules/no-unused-fields.mdx @@ -7,7 +7,7 @@ description: 'Requires all fields to be used at some level by siblings operation 💡 This rule provides [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions) -- Category: `Schema` +- Category: `schema` - Rule name: `@graphql-eslint/no-unused-fields` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/provided-required-arguments.mdx b/website/content/rules/provided-required-arguments.mdx index b77b650976a..00680421476 100644 --- a/website/content/rules/provided-required-arguments.mdx +++ b/website/content/rules/provided-required-arguments.mdx @@ -10,7 +10,7 @@ description: `"plugin:@graphql-eslint/operations-recommended"` property in a configuration file enables this rule. -- Category: `Schema & Operations` +- Category: `schema & operations` - Rule name: `@graphql-eslint/provided-required-arguments` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/relay-arguments.mdx b/website/content/rules/relay-arguments.mdx index 09c8ec32f26..da0c1e36e23 100644 --- a/website/content/rules/relay-arguments.mdx +++ b/website/content/rules/relay-arguments.mdx @@ -4,7 +4,7 @@ description: 'Set of rules to follow Relay specification for Arguments.' # `relay-arguments` -- Category: `Schema` +- Category: `schema` - Rule name: `@graphql-eslint/relay-arguments` - Requires GraphQL Schema: `false` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/relay-edge-types.mdx b/website/content/rules/relay-edge-types.mdx index 554e502c0aa..8b5c63f5f01 100644 --- a/website/content/rules/relay-edge-types.mdx +++ b/website/content/rules/relay-edge-types.mdx @@ -4,7 +4,7 @@ description: 'Set of rules to follow Relay specification for Edge types.' # `relay-edge-types` -- Category: `Schema` +- Category: `schema` - Rule name: `@graphql-eslint/relay-edge-types` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/relay-page-info.mdx b/website/content/rules/relay-page-info.mdx index acd709ae50b..2031f02c9df 100644 --- a/website/content/rules/relay-page-info.mdx +++ b/website/content/rules/relay-page-info.mdx @@ -4,7 +4,7 @@ description: 'Set of rules to follow Relay specification for `PageInfo` object.' # `relay-page-info` -- Category: `Schema` +- Category: `schema` - Rule name: `@graphql-eslint/relay-page-info` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/require-deprecation-date.mdx b/website/content/rules/require-deprecation-date.mdx index dd7e121600a..deef1f71f5e 100644 --- a/website/content/rules/require-deprecation-date.mdx +++ b/website/content/rules/require-deprecation-date.mdx @@ -9,7 +9,7 @@ description: 💡 This rule provides [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions) -- Category: `Schema` +- Category: `schema` - Rule name: `@graphql-eslint/require-deprecation-date` - Requires GraphQL Schema: `false` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/require-deprecation-reason.mdx b/website/content/rules/require-deprecation-reason.mdx index 12e82444023..58c2ec86145 100644 --- a/website/content/rules/require-deprecation-reason.mdx +++ b/website/content/rules/require-deprecation-reason.mdx @@ -7,7 +7,7 @@ description: 'Require all deprecation directives to specify a reason.' ✅ The `"extends": "plugin:@graphql-eslint/schema-recommended"` property in a configuration file enables this rule. -- Category: `Schema` +- Category: `schema` - Rule name: `@graphql-eslint/require-deprecation-reason` - Requires GraphQL Schema: `false` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/require-description.mdx b/website/content/rules/require-description.mdx index ef19c96cc4f..f3e082c4364 100644 --- a/website/content/rules/require-description.mdx +++ b/website/content/rules/require-description.mdx @@ -7,7 +7,7 @@ description: 'Enforce descriptions in type definitions and operations.' ✅ The `"extends": "plugin:@graphql-eslint/schema-recommended"` property in a configuration file enables this rule. -- Category: `Schema` +- Category: `schema` - Rule name: `@graphql-eslint/require-description` - Requires GraphQL Schema: `false` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/require-field-of-type-query-in-mutation-result.mdx b/website/content/rules/require-field-of-type-query-in-mutation-result.mdx index e6ce0ddd5e3..533c943d55c 100644 --- a/website/content/rules/require-field-of-type-query-in-mutation-result.mdx +++ b/website/content/rules/require-field-of-type-query-in-mutation-result.mdx @@ -6,7 +6,7 @@ description: # `require-field-of-type-query-in-mutation-result` -- Category: `Schema` +- Category: `schema` - Rule name: `@graphql-eslint/require-field-of-type-query-in-mutation-result` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/require-import-fragment.mdx b/website/content/rules/require-import-fragment.mdx index e7dd11740a3..c3e887f346d 100644 --- a/website/content/rules/require-import-fragment.mdx +++ b/website/content/rules/require-import-fragment.mdx @@ -7,7 +7,7 @@ description: 'Require fragments to be imported via an import expression.' 💡 This rule provides [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions) -- Category: `Operations` +- Category: `operations` - Rule name: `@graphql-eslint/require-import-fragment` - Requires GraphQL Schema: `false` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/require-nullable-fields-with-oneof.mdx b/website/content/rules/require-nullable-fields-with-oneof.mdx index 69d02b58e83..ff4b54ad228 100644 --- a/website/content/rules/require-nullable-fields-with-oneof.mdx +++ b/website/content/rules/require-nullable-fields-with-oneof.mdx @@ -4,7 +4,7 @@ description: 'Require `input` or `type` fields to be non-nullable with `@oneOf` # `require-nullable-fields-with-oneof` -- Category: `Schema` +- Category: `schema` - Rule name: `@graphql-eslint/require-nullable-fields-with-oneof` - Requires GraphQL Schema: `false` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/require-nullable-result-in-root.mdx b/website/content/rules/require-nullable-result-in-root.mdx index 688dca13b39..be42a3b430e 100644 --- a/website/content/rules/require-nullable-result-in-root.mdx +++ b/website/content/rules/require-nullable-result-in-root.mdx @@ -7,7 +7,7 @@ description: 'Require nullable fields in root types.' 💡 This rule provides [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions) -- Category: `Schema` +- Category: `schema` - Rule name: `@graphql-eslint/require-nullable-result-in-root` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/require-selections.mdx b/website/content/rules/require-selections.mdx index ba5d8f5dd1f..4d281bc3940 100644 --- a/website/content/rules/require-selections.mdx +++ b/website/content/rules/require-selections.mdx @@ -10,7 +10,7 @@ enables this rule. 💡 This rule provides [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions) -- Category: `Operations` +- Category: `operations` - Rule name: `@graphql-eslint/require-selections` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/require-type-pattern-with-oneof.mdx b/website/content/rules/require-type-pattern-with-oneof.mdx index 30e28c6c0ff..345f59f198e 100644 --- a/website/content/rules/require-type-pattern-with-oneof.mdx +++ b/website/content/rules/require-type-pattern-with-oneof.mdx @@ -4,7 +4,7 @@ description: 'Enforce types with `@oneOf` directive have `error` and `ok` fields # `require-type-pattern-with-oneof` -- Category: `Schema` +- Category: `schema` - Rule name: `@graphql-eslint/require-type-pattern-with-oneof` - Requires GraphQL Schema: `false` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/selection-set-depth.mdx b/website/content/rules/selection-set-depth.mdx index 30d68058d2d..945c9fb2e22 100644 --- a/website/content/rules/selection-set-depth.mdx +++ b/website/content/rules/selection-set-depth.mdx @@ -12,7 +12,7 @@ enables this rule. 💡 This rule provides [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions) -- Category: `Operations` +- Category: `operations` - Rule name: `@graphql-eslint/selection-set-depth` - Requires GraphQL Schema: `false` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/strict-id-in-types.mdx b/website/content/rules/strict-id-in-types.mdx index cff446c9a88..3c151e0eeaa 100644 --- a/website/content/rules/strict-id-in-types.mdx +++ b/website/content/rules/strict-id-in-types.mdx @@ -9,7 +9,7 @@ description: ✅ The `"extends": "plugin:@graphql-eslint/schema-recommended"` property in a configuration file enables this rule. -- Category: `Schema` +- Category: `schema` - Rule name: `@graphql-eslint/strict-id-in-types` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/unique-directive-names-per-location.mdx b/website/content/rules/unique-directive-names-per-location.mdx index 7cc14651be3..35a50429b31 100644 --- a/website/content/rules/unique-directive-names-per-location.mdx +++ b/website/content/rules/unique-directive-names-per-location.mdx @@ -10,7 +10,7 @@ description: `"plugin:@graphql-eslint/operations-recommended"` property in a configuration file enables this rule. -- Category: `Schema & Operations` +- Category: `schema & operations` - Rule name: `@graphql-eslint/unique-directive-names-per-location` - Requires GraphQL Schema: `true` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/unique-enum-value-names.mdx b/website/content/rules/unique-enum-value-names.mdx index 2f3c712c472..fd3db111694 100644 --- a/website/content/rules/unique-enum-value-names.mdx +++ b/website/content/rules/unique-enum-value-names.mdx @@ -10,7 +10,7 @@ enables this rule. 💡 This rule provides [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions) -- Category: `Schema` +- Category: `schema` - Rule name: `@graphql-eslint/unique-enum-value-names` - Requires GraphQL Schema: `false` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/unique-fragment-name.mdx b/website/content/rules/unique-fragment-name.mdx index 04d5a7620b7..03cef93741e 100644 --- a/website/content/rules/unique-fragment-name.mdx +++ b/website/content/rules/unique-fragment-name.mdx @@ -7,7 +7,7 @@ description: 'Enforce unique fragment names across your project.' ✅ The `"extends": "plugin:@graphql-eslint/operations-recommended"` property in a configuration file enables this rule. -- Category: `Operations` +- Category: `operations` - Rule name: `@graphql-eslint/unique-fragment-name` - Requires GraphQL Schema: `false` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) diff --git a/website/content/rules/unique-operation-name.mdx b/website/content/rules/unique-operation-name.mdx index 4ef2c02e6a4..1c4143099d0 100644 --- a/website/content/rules/unique-operation-name.mdx +++ b/website/content/rules/unique-operation-name.mdx @@ -7,7 +7,7 @@ description: 'Enforce unique operation names across your project.' ✅ The `"extends": "plugin:@graphql-eslint/operations-recommended"` property in a configuration file enables this rule. -- Category: `Operations` +- Category: `operations` - Rule name: `@graphql-eslint/unique-operation-name` - Requires GraphQL Schema: `false` [ℹ️](/docs/getting-started#extended-linting-rules-with-graphql-schema) From 73c42407cd4b0f1a2c792895fad1e785ac8f326e Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Tue, 10 Dec 2024 18:35:56 +0700 Subject: [PATCH 06/17] aa --- scripts/generate-docs.ts | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/scripts/generate-docs.ts b/scripts/generate-docs.ts index b1f478df7fa..10eed7eb84d 100644 --- a/scripts/generate-docs.ts +++ b/scripts/generate-docs.ts @@ -5,7 +5,6 @@ import dedent from 'dedent'; // @ts-expect-error -- ignore types import md from 'json-schema-to-markdown'; import prettier from 'prettier'; -import { asArray } from '@graphql-tools/utils'; import { rules } from '../packages/plugin/src/index.js'; const BR = ''; @@ -53,6 +52,10 @@ function printMarkdownTable(columns: (Column | string)[], dataSource: string[][] const MARKDOWN_LINK_RE = /\[(.*?)]\(.*\)/; +function getCategories(category: string): string[] { + return category === 'schema-and-operations' ? ['schema', 'operations'] : [category] +} + async function generateDocs(): Promise { const prettierConfigMd = await prettier.resolveConfig('./README.md'); @@ -71,7 +74,7 @@ async function generateDocs(): Promise { if (deprecated) { blocks.push('- ❗ DEPRECATED ❗'); } - const categories = asArray(docs.category); + const categories = getCategories(docs.category) if (docs.recommended) { const configNames = categories.map( category => `"plugin:@graphql-eslint/${category.toLowerCase()}-recommended"`, @@ -179,11 +182,11 @@ async function generateDocs(): Promise { } else if (!docs.isDisabledForAllConfig) { config = docs.recommended ? 'recommended' : 'all'; } - const categoryIcons = asArray(docs.category).map(item => { - if (item === 'Schema') { + const categoryIcons = getCategories(docs.category).map(item => { + if (item === 'schema') { return Icon.SCHEMA; } - if (item === 'Operations') { + if (item === 'operations') { return Icon.OPERATIONS; } return ''; From 0fcc4f14b295575c642fa70603c1fd7f8fcb1b84 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Tue, 10 Dec 2024 18:38:37 +0700 Subject: [PATCH 07/17] aa --- package.json | 1 - packages/plugin/src/rules/graphql-js-validation.ts | 5 ++--- packages/rule-tester/src/index.ts | 2 +- pnpm-lock.yaml | 6 +++--- website/package.json | 1 + 5 files changed, 7 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 56f21b2d8e8..f178d4ebfb5 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,6 @@ "@arethetypeswrong/cli": "^0.17.0", "@changesets/changelog-github": "0.5.0", "@changesets/cli": "2.27.10", - "@graphql-tools/utils": "10.6.2", "@theguild/eslint-config": "0.13.2", "@theguild/prettier-config": "3.0.0", "@types/dedent": "0.7.2", diff --git a/packages/plugin/src/rules/graphql-js-validation.ts b/packages/plugin/src/rules/graphql-js-validation.ts index 59a5b9fba90..0cb8ac80e8d 100644 --- a/packages/plugin/src/rules/graphql-js-validation.ts +++ b/packages/plugin/src/rules/graphql-js-validation.ts @@ -1,4 +1,4 @@ -import { AST } from 'eslint'; +import { AST, Rule } from "eslint"; import { ASTVisitor, DirectiveNode, @@ -46,7 +46,6 @@ import { } from 'graphql/validation/index.js'; import { validateSDL } from 'graphql/validation/validate.js'; import { SDLValidationRule } from 'graphql/validation/ValidationContext.js'; -import { JSONSchema } from 'json-schema-to-ts'; import { GraphQLESLintRule, GraphQLESLintRuleContext, RuleDocsInfo } from '../types.js'; import { ARRAY_DEFAULT_OPTIONS, @@ -197,7 +196,7 @@ const validationToRule = ( ruleId: string; rule: GraphQLJSRule; getDocumentNode?: GetDocumentNode; - schema?: JSONSchema | []; + schema?: Rule.RuleMetaData['schema']; hasDidYouMeanSuggestions?: boolean; }, docs: RuleDocsInfo, diff --git a/packages/rule-tester/src/index.ts b/packages/rule-tester/src/index.ts index c1fa2b46e29..21fed64ea2e 100644 --- a/packages/rule-tester/src/index.ts +++ b/packages/rule-tester/src/index.ts @@ -80,7 +80,7 @@ export class RuleTester extends ESLintRuleTester { } } } - if (rule.meta.fixable) { + if (rule.meta?.fixable) { const pluginName = 'rule-to-test'; const { fixed, output } = linter.verifyAndFix( code, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a3c6c699602..d5ec3e22312 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -28,9 +28,6 @@ importers: '@changesets/cli': specifier: 2.27.10 version: 2.27.10 - '@graphql-tools/utils': - specifier: 10.6.2 - version: 10.6.2(graphql@16.9.0) '@theguild/eslint-config': specifier: 0.13.2 version: 0.13.2(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2) @@ -343,6 +340,9 @@ importers: '@graphql-eslint/eslint-plugin': specifier: workspace:* version: link:../packages/plugin/dist + '@graphql-tools/utils': + specifier: 10.6.2 + version: 10.6.2(graphql@16.9.0) '@monaco-editor/react': specifier: ^4.6.0 version: 4.6.0(monaco-editor@0.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) diff --git a/website/package.json b/website/package.json index 7e02796eceb..cf8033e0e5b 100644 --- a/website/package.json +++ b/website/package.json @@ -12,6 +12,7 @@ "start": "next start" }, "dependencies": { + "@graphql-tools/utils": "10.6.2", "@graphql-eslint/eslint-plugin": "workspace:*", "@monaco-editor/react": "^4.6.0", "@radix-ui/react-icons": "^1.3.0", From a21df8c00ef525fc838367c67a66a734b8f143c8 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Tue, 10 Dec 2024 19:02:13 +0700 Subject: [PATCH 08/17] aa --- package.json | 2 +- packages/plugin/src/rules/alphabetize/index.ts | 1 + packages/plugin/src/rules/description-style/index.ts | 2 ++ packages/plugin/src/rules/input-name/index.ts | 6 ++++-- .../plugin/src/rules/lone-executable-definition/index.ts | 1 + packages/plugin/src/rules/match-document-filename/index.ts | 4 ++-- packages/plugin/src/rules/naming-convention/index.ts | 4 +++- packages/plugin/src/rules/no-anonymous-operations/index.ts | 1 + packages/plugin/src/rules/no-deprecated/index.ts | 3 ++- packages/plugin/src/rules/no-duplicate-fields/index.ts | 1 + packages/plugin/src/rules/no-hashtag-description/index.ts | 3 ++- packages/plugin/src/rules/no-root-type/index.ts | 4 +++- .../src/rules/no-scalar-result-type-on-mutation/index.ts | 3 ++- packages/plugin/src/rules/no-typename-prefix/index.ts | 3 ++- packages/plugin/src/rules/no-unreachable-types/index.ts | 3 ++- packages/plugin/src/utils.ts | 4 ++++ packages/plugin/tsup.config.ts | 2 +- scripts/generate-docs.ts | 4 ++-- website/next.config.ts | 2 +- website/package.json | 2 +- 20 files changed, 38 insertions(+), 17 deletions(-) diff --git a/package.json b/package.json index f178d4ebfb5..e33f482f1d3 100644 --- a/package.json +++ b/package.json @@ -11,10 +11,10 @@ "pnpm": ">=9.0.6" }, "scripts": { - "dev": "turbo run dev --filter=!website", "build": "turbo run build --filter=!website && attw --pack packages/plugin/dist", "ci:lint": "pnpm lint --output-file eslint_report.json --format json", "create-rule": "tsx scripts/create-rule.ts", + "dev": "turbo run dev --filter=!website", "generate:configs": "tsx scripts/generate-configs.ts", "lint": "ESLINT_USE_FLAT_CONFIG=false eslint --ignore-path .gitignore --cache .", "lint:prettier": "prettier --ignore-path .gitignore --ignore-path .prettierignore --cache --check .", diff --git a/packages/plugin/src/rules/alphabetize/index.ts b/packages/plugin/src/rules/alphabetize/index.ts index a01c2cc4242..c5fe97f251c 100644 --- a/packages/plugin/src/rules/alphabetize/index.ts +++ b/packages/plugin/src/rules/alphabetize/index.ts @@ -314,6 +314,7 @@ export const rule: GraphQLESLintRule = { currNode: displayNodeName(currNode), prevNode: prevName ? displayNodeName(prevNode) : lowerCase(prevNode.kind), }, + // @ts-expect-error -- fixme *fix(fixer) { const prevRange = getRangeWithComments(prevNode); const currRange = getRangeWithComments(currNode); diff --git a/packages/plugin/src/rules/description-style/index.ts b/packages/plugin/src/rules/description-style/index.ts index 803c0700b74..e18a4fb7715 100644 --- a/packages/plugin/src/rules/description-style/index.ts +++ b/packages/plugin/src/rules/description-style/index.ts @@ -54,6 +54,7 @@ export const rule: GraphQLESLintRule = { url: 'https://the-guild.dev/graphql/eslint/rules/description-style', recommended: true, }, + // @ts-expect-error -- fixme schema, }, create(context) { @@ -71,6 +72,7 @@ export const rule: GraphQLESLintRule = { suggest: [ { desc: `Change to ${isBlock ? 'block' : 'inline'} style description`, + // @ts-expect-error -- fixme fix(fixer) { const sourceCode = context.getSourceCode(); const originalText = sourceCode.getText(node as any); diff --git a/packages/plugin/src/rules/input-name/index.ts b/packages/plugin/src/rules/input-name/index.ts index 9753e24c468..37d2ba9df03 100644 --- a/packages/plugin/src/rules/input-name/index.ts +++ b/packages/plugin/src/rules/input-name/index.ts @@ -122,7 +122,8 @@ export const rule: GraphQLESLintRule = { suggest: [ { desc: 'Rename to `input`', - fix: fixer => fixer.replaceText(node as any, 'input'), + // @ts-expect-error -- fixme + fix: fixer => fixer.replaceText(node, 'input'), }, ], }); @@ -159,7 +160,8 @@ export const rule: GraphQLESLintRule = { suggest: [ { desc: `Rename to \`${mutationName}\``, - fix: fixer => fixer.replaceText(node as any, mutationName), + // @ts-expect-error -- fixme + fix: fixer => fixer.replaceText(node, mutationName), }, ], }); diff --git a/packages/plugin/src/rules/lone-executable-definition/index.ts b/packages/plugin/src/rules/lone-executable-definition/index.ts index 33d00c19ea9..a2f5f370645 100644 --- a/packages/plugin/src/rules/lone-executable-definition/index.ts +++ b/packages/plugin/src/rules/lone-executable-definition/index.ts @@ -66,6 +66,7 @@ export const rule: GraphQLESLintRule = { messages: { [RULE_ID]: '{{name}} should be in a separate file.', }, + // @ts-expect-error -- fixme schema, }, create(context) { diff --git a/packages/plugin/src/rules/match-document-filename/index.ts b/packages/plugin/src/rules/match-document-filename/index.ts index 732f482c7e6..44563c4e95d 100644 --- a/packages/plugin/src/rules/match-document-filename/index.ts +++ b/packages/plugin/src/rules/match-document-filename/index.ts @@ -175,10 +175,10 @@ export const rule: GraphQLESLintRule = { ], }, messages: { - [MATCH_EXTENSION]: - 'File extension "{{ fileExtension }}" don\'t match extension "{{ expectedFileExtension }}"', + [MATCH_EXTENSION]: `File extension "{{ fileExtension }}" don't match extension "{{ expectedFileExtension }}"`, [MATCH_STYLE]: 'Unexpected filename "{{ filename }}". Rename it to "{{ expectedFilename }}"', }, + // @ts-expect-error -- fixme schema, }, create(context) { diff --git a/packages/plugin/src/rules/naming-convention/index.ts b/packages/plugin/src/rules/naming-convention/index.ts index b2e4a969040..3283fe18bd1 100644 --- a/packages/plugin/src/rules/naming-convention/index.ts +++ b/packages/plugin/src/rules/naming-convention/index.ts @@ -365,6 +365,7 @@ export const rule: GraphQLESLintRule = { }, }, hasSuggestions: true, + // @ts-expect-error -- fixme schema, }, create(context) { @@ -387,7 +388,8 @@ export const rule: GraphQLESLintRule = { message, suggest: suggestedNames.map(suggestedName => ({ desc: `Rename to \`${suggestedName}\``, - fix: fixer => fixer.replaceText(node as any, suggestedName), + // @ts-expect-error -- fixme + fix: fixer => fixer.replaceText(node, suggestedName), })), }); } diff --git a/packages/plugin/src/rules/no-anonymous-operations/index.ts b/packages/plugin/src/rules/no-anonymous-operations/index.ts index 9edf1464389..25ccc7c6433 100644 --- a/packages/plugin/src/rules/no-anonymous-operations/index.ts +++ b/packages/plugin/src/rules/no-anonymous-operations/index.ts @@ -58,6 +58,7 @@ export const rule: GraphQLESLintRule = { suggest: [ { desc: `Rename to \`${suggestedName}\``, + // @ts-expect-error -- fixme fix(fixer) { const sourceCode = context.getSourceCode(); const hasQueryKeyword = diff --git a/packages/plugin/src/rules/no-deprecated/index.ts b/packages/plugin/src/rules/no-deprecated/index.ts index 53ef256d7e6..a7b53263e1d 100644 --- a/packages/plugin/src/rules/no-deprecated/index.ts +++ b/packages/plugin/src/rules/no-deprecated/index.ts @@ -101,7 +101,8 @@ export const rule: GraphQLESLintRule<[], true> = { suggest: [ { desc: `Remove ${nodeType}`, - fix: fixer => fixer.remove(node as any), + // @ts-expect-error -- fixme + fix: fixer => fixer.remove(node), }, ], }); diff --git a/packages/plugin/src/rules/no-duplicate-fields/index.ts b/packages/plugin/src/rules/no-duplicate-fields/index.ts index d505551861d..9e7b1113396 100644 --- a/packages/plugin/src/rules/no-duplicate-fields/index.ts +++ b/packages/plugin/src/rules/no-duplicate-fields/index.ts @@ -77,6 +77,7 @@ export const rule: GraphQLESLintRule = { suggest: [ { desc: `Remove \`${fieldName}\` ${parent.type.toLowerCase()}`, + // @ts-expect-error -- fixme fix(fixer) { return fixer.remove( (parent.type === Kind.VARIABLE ? parent.parent : parent) as any, diff --git a/packages/plugin/src/rules/no-hashtag-description/index.ts b/packages/plugin/src/rules/no-hashtag-description/index.ts index 7351c6db170..51bb61821f9 100644 --- a/packages/plugin/src/rules/no-hashtag-description/index.ts +++ b/packages/plugin/src/rules/no-hashtag-description/index.ts @@ -97,9 +97,10 @@ export const rule: GraphQLESLintRule = { }, suggest: ['"""', '"'].map(descriptionSyntax => ({ desc: `Replace with \`${descriptionSyntax}\` description syntax`, + // @ts-expect-error -- fixme fix: fixer => fixer.replaceTextRange( - [token.start, token.end] as [number, number], + [token.start, token.end], [descriptionSyntax, value.trim(), descriptionSyntax].join(''), ), })), diff --git a/packages/plugin/src/rules/no-root-type/index.ts b/packages/plugin/src/rules/no-root-type/index.ts index e962b786781..c2e144d3edb 100644 --- a/packages/plugin/src/rules/no-root-type/index.ts +++ b/packages/plugin/src/rules/no-root-type/index.ts @@ -56,6 +56,7 @@ export const rule: GraphQLESLintRule = { ], configOptions: [{ disallow: ['mutation', 'subscription'] }], }, + // @ts-expect-error -- fixme schema, }, create(context) { @@ -85,7 +86,8 @@ export const rule: GraphQLESLintRule = { suggest: [ { desc: `Remove \`${typeName}\` type`, - fix: fixer => fixer.remove(node.parent as any), + // @ts-expect-error -- fixme + fix: fixer => fixer.remove(node.parent), }, ], }); diff --git a/packages/plugin/src/rules/no-scalar-result-type-on-mutation/index.ts b/packages/plugin/src/rules/no-scalar-result-type-on-mutation/index.ts index da66709585a..c27ff9bcae0 100644 --- a/packages/plugin/src/rules/no-scalar-result-type-on-mutation/index.ts +++ b/packages/plugin/src/rules/no-scalar-result-type-on-mutation/index.ts @@ -63,7 +63,8 @@ export const rule: GraphQLESLintRule = { suggest: [ { desc: `Remove \`${typeName}\``, - fix: fixer => fixer.remove(node as any), + // @ts-expect-error -- fixme + fix: fixer => fixer.remove(node), }, ], }); diff --git a/packages/plugin/src/rules/no-typename-prefix/index.ts b/packages/plugin/src/rules/no-typename-prefix/index.ts index 8e25e1052f8..becd682477f 100644 --- a/packages/plugin/src/rules/no-typename-prefix/index.ts +++ b/packages/plugin/src/rules/no-typename-prefix/index.ts @@ -71,9 +71,10 @@ export const rule: GraphQLESLintRule = { suggest: [ { desc: `Remove \`${fieldName.slice(0, typeName.length)}\` prefix`, + // @ts-expect-error -- fixme fix: fixer => fixer.replaceText( - field.name as any, + field.name, fieldName.replace(new RegExp(`^${typeName}`, 'i'), ''), ), }, diff --git a/packages/plugin/src/rules/no-unreachable-types/index.ts b/packages/plugin/src/rules/no-unreachable-types/index.ts index 5ba25ff20ec..c163701b792 100644 --- a/packages/plugin/src/rules/no-unreachable-types/index.ts +++ b/packages/plugin/src/rules/no-unreachable-types/index.ts @@ -175,7 +175,8 @@ export const rule: GraphQLESLintRule = { suggest: [ { desc: `Remove \`${typeName}\``, - fix: fixer => fixer.remove(node.parent as any), + // @ts-expect-error -- fixme + fix: fixer => fixer.remove(node.parent), }, ], }); diff --git a/packages/plugin/src/utils.ts b/packages/plugin/src/utils.ts index 1f8ea13f463..00efce72a99 100644 --- a/packages/plugin/src/utils.ts +++ b/packages/plugin/src/utils.ts @@ -199,3 +199,7 @@ export const eslintSelectorsTip = `> [!TIP] > > These fields are defined by ESLint [\`selectors\`](https://eslint.org/docs/developer-guide/selectors). > Paste or drop code into the editor in [ASTExplorer](https://astexplorer.net) and inspect the generated AST to compose your selector.`; + +export function pluralize(size: number) { + return size > 1 ? 's' : ''; +} diff --git a/packages/plugin/tsup.config.ts b/packages/plugin/tsup.config.ts index aed579609ab..984e3701db7 100644 --- a/packages/plugin/tsup.config.ts +++ b/packages/plugin/tsup.config.ts @@ -81,7 +81,7 @@ export default defineConfig([ { ...opts, entry: { - browser: 'src/index.ts', + programmatic: 'src/index.ts', }, outDir: 'dist', dts: false, diff --git a/scripts/generate-docs.ts b/scripts/generate-docs.ts index 10eed7eb84d..6c7beef20e1 100644 --- a/scripts/generate-docs.ts +++ b/scripts/generate-docs.ts @@ -53,7 +53,7 @@ function printMarkdownTable(columns: (Column | string)[], dataSource: string[][] const MARKDOWN_LINK_RE = /\[(.*?)]\(.*\)/; function getCategories(category: string): string[] { - return category === 'schema-and-operations' ? ['schema', 'operations'] : [category] + return category === 'schema-and-operations' ? ['schema', 'operations'] : [category]; } async function generateDocs(): Promise { @@ -74,7 +74,7 @@ async function generateDocs(): Promise { if (deprecated) { blocks.push('- ❗ DEPRECATED ❗'); } - const categories = getCategories(docs.category) + const categories = getCategories(docs.category); if (docs.recommended) { const configNames = categories.map( category => `"plugin:@graphql-eslint/${category.toLowerCase()}-recommended"`, diff --git a/website/next.config.ts b/website/next.config.ts index 0147fb86cff..78983345a01 100644 --- a/website/next.config.ts +++ b/website/next.config.ts @@ -28,7 +28,7 @@ export default withGuildDocs({ eslint: require.resolve('eslint').replace(/api\.js$/, `linter${path.sep}index.js`), '@graphql-eslint/eslint-plugin': require .resolve('@graphql-eslint/eslint-plugin') - .replace(`cjs${path.sep}index.js`, 'browser.js'), + .replace(`cjs${path.sep}index.js`, 'programmatic.js'), // fixes Cannot use GraphQLNonNull "Boolean!" from another module or realm. 'graphql/utilities/valueFromASTUntyped.js': require.resolve( diff --git a/website/package.json b/website/package.json index cf8033e0e5b..c67055e7ade 100644 --- a/website/package.json +++ b/website/package.json @@ -12,8 +12,8 @@ "start": "next start" }, "dependencies": { - "@graphql-tools/utils": "10.6.2", "@graphql-eslint/eslint-plugin": "workspace:*", + "@graphql-tools/utils": "10.6.2", "@monaco-editor/react": "^4.6.0", "@radix-ui/react-icons": "^1.3.0", "@radix-ui/react-select": "^2.0.0", From d1c0920b71d7ca764d37c6a89f4f4574c8757a65 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Tue, 10 Dec 2024 19:03:03 +0700 Subject: [PATCH 09/17] aa --- packages/plugin/src/rules/graphql-js-validation.ts | 7 ++++--- packages/plugin/src/rules/no-unused-fields/index.ts | 1 + .../src/rules/require-deprecation-date/index.ts | 1 + .../plugin/src/rules/require-description/index.ts | 1 + .../src/rules/require-import-fragment/index.ts | 1 + .../rules/require-nullable-result-in-root/index.ts | 1 + .../plugin/src/rules/require-selections/index.ts | 12 +++++++----- .../plugin/src/rules/selection-set-depth/index.ts | 2 ++ .../plugin/src/rules/strict-id-in-types/index.ts | 8 ++++---- .../src/rules/unique-enum-value-names/index.ts | 3 ++- .../plugin/src/rules/unique-fragment-name/index.ts | 1 - 11 files changed, 24 insertions(+), 14 deletions(-) diff --git a/packages/plugin/src/rules/graphql-js-validation.ts b/packages/plugin/src/rules/graphql-js-validation.ts index 0cb8ac80e8d..77c63a1788e 100644 --- a/packages/plugin/src/rules/graphql-js-validation.ts +++ b/packages/plugin/src/rules/graphql-js-validation.ts @@ -1,4 +1,4 @@ -import { AST, Rule } from "eslint"; +import { AST, Rule } from 'eslint'; import { ASTVisitor, DirectiveNode, @@ -108,6 +108,7 @@ function validateDocument({ const { name } = match.groups!; return { desc: `Rename to \`${name}\``, + // @ts-expect-error -- fixme fix: fixer => fixer.replaceText(token!, name), }; }) @@ -325,7 +326,7 @@ export const GRAPHQL_JS_VALIDATIONS: Record = Object. }, }, { - category: "schema-and-operations", + category: 'schema-and-operations', description: 'A GraphQL document is only valid if all `@directive`s are known by the schema and legally positioned.', requiresSchema: true, @@ -633,7 +634,7 @@ export const GRAPHQL_JS_VALIDATIONS: Record = Object. rule: UniqueDirectivesPerLocationRule, }, { - category: "schema-and-operations", + category: 'schema-and-operations', description: 'A GraphQL document is only valid if all non-repeatable directives at a given location are uniquely named.', requiresSchema: true, diff --git a/packages/plugin/src/rules/no-unused-fields/index.ts b/packages/plugin/src/rules/no-unused-fields/index.ts index 7ce158c897a..d41e0afcb80 100644 --- a/packages/plugin/src/rules/no-unused-fields/index.ts +++ b/packages/plugin/src/rules/no-unused-fields/index.ts @@ -236,6 +236,7 @@ export const rule: GraphQLESLintRule = { suggest: [ { desc: `Remove \`${fieldName}\` field`, + // @ts-expect-error -- fixme fix(fixer) { const sourceCode = context.getSourceCode() as any; const tokenBefore = sourceCode.getTokenBefore(node); diff --git a/packages/plugin/src/rules/require-deprecation-date/index.ts b/packages/plugin/src/rules/require-deprecation-date/index.ts index 19a35a68f10..847c068ea9c 100644 --- a/packages/plugin/src/rules/require-deprecation-date/index.ts +++ b/packages/plugin/src/rules/require-deprecation-date/index.ts @@ -132,6 +132,7 @@ export const rule: GraphQLESLintRule = { suggest: [ { desc: `Remove \`${nodeName}\``, + // @ts-expect-error -- fixme fix: fixer => fixer.remove(parent), }, ], diff --git a/packages/plugin/src/rules/require-description/index.ts b/packages/plugin/src/rules/require-description/index.ts index 1ddc5aedc23..afe49edf5ba 100644 --- a/packages/plugin/src/rules/require-description/index.ts +++ b/packages/plugin/src/rules/require-description/index.ts @@ -171,6 +171,7 @@ export const rule: GraphQLESLintRule = { messages: { [RULE_ID]: 'Description is required for {{ nodeName }}', }, + // @ts-expect-error -- fixme schema, }, create(context) { diff --git a/packages/plugin/src/rules/require-import-fragment/index.ts b/packages/plugin/src/rules/require-import-fragment/index.ts index 7b73cf80d1d..40436965fdd 100644 --- a/packages/plugin/src/rules/require-import-fragment/index.ts +++ b/packages/plugin/src/rules/require-import-fragment/index.ts @@ -113,6 +113,7 @@ export const rule: GraphQLESLintRule = { suggest: suggestedFilePaths.map(suggestedPath => ({ messageId: SUGGESTION_ID, data: { fragmentName }, + // @ts-expect-error -- fixme fix: fixer => fixer.insertTextBeforeRange( [0, 0], diff --git a/packages/plugin/src/rules/require-nullable-result-in-root/index.ts b/packages/plugin/src/rules/require-nullable-result-in-root/index.ts index edad679bc5f..512f8cae1e1 100644 --- a/packages/plugin/src/rules/require-nullable-result-in-root/index.ts +++ b/packages/plugin/src/rules/require-nullable-result-in-root/index.ts @@ -73,6 +73,7 @@ export const rule: GraphQLESLintRule = { suggest: [ { desc: `Make ${resultType} nullable`, + // @ts-expect-error -- fixme fix(fixer) { const text = sourceCode.getText(field.gqlType as any); diff --git a/packages/plugin/src/rules/require-selections/index.ts b/packages/plugin/src/rules/require-selections/index.ts index 5cf16ed5c50..99e0d984092 100644 --- a/packages/plugin/src/rules/require-selections/index.ts +++ b/packages/plugin/src/rules/require-selections/index.ts @@ -18,6 +18,7 @@ import { GraphQLESLintRule, OmitRecursively, ReportDescriptor } from '../../type import { ARRAY_DEFAULT_OPTIONS, englishJoinWords, + pluralize, requireGraphQLOperations, requireGraphQLSchema, } from '../../utils.js'; @@ -114,6 +115,7 @@ export const rule: GraphQLESLintRule = { [RULE_ID]: "Field{{ pluralSuffix }} {{ fieldName }} must be selected when it's available on a type.\nInclude it in your selection set{{ addition }}.", }, + // @ts-expect-error -- fixme schema, }, create(context) { @@ -251,19 +253,18 @@ export const rule: GraphQLESLintRule = { const fieldName = englishJoinWords( idNames.map(name => `\`${(parent.alias || parent.name).value}.${name}\``), ); - const pluralSuffix = idNames.length > 1 ? 's' : ''; const addition = checkedFragmentSpreads.size === 0 ? '' - : ` or add to used fragment${ - checkedFragmentSpreads.size > 1 ? 's' : '' - } ${englishJoinWords([...checkedFragmentSpreads].map(name => `\`${name}\``))}`; + : ` or add to used fragment${pluralize( + checkedFragmentSpreads.size, + )} ${englishJoinWords([...checkedFragmentSpreads].map(name => `\`${name}\``))}`; const problem: ReportDescriptor = { loc, messageId: RULE_ID, data: { - pluralSuffix, + pluralSuffix: pluralize(idNames.length), fieldName, addition, }, @@ -273,6 +274,7 @@ export const rule: GraphQLESLintRule = { if ('type' in node) { problem.suggest = idNames.map(idName => ({ desc: `Add \`${idName}\` selection`, + // @ts-expect-error -- fixme fix: fixer => { let insertNode = (node as any).selections[0]; insertNode = diff --git a/packages/plugin/src/rules/selection-set-depth/index.ts b/packages/plugin/src/rules/selection-set-depth/index.ts index 8cbbc18d8d1..df69639d360 100644 --- a/packages/plugin/src/rules/selection-set-depth/index.ts +++ b/packages/plugin/src/rules/selection-set-depth/index.ts @@ -82,6 +82,7 @@ export const rule: GraphQLESLintRule = { recommended: true, configOptions: [{ maxDepth: 7 }], }, + // @ts-expect-error -- fixme schema, }, create(context) { @@ -130,6 +131,7 @@ export const rule: GraphQLESLintRule = { suggest: [ { desc: 'Remove selections', + // @ts-expect-error -- fixme fix(fixer) { const sourceCode = context.getSourceCode(); const foundNode = sourceCode.getNodeByRangeIndex(token.range[0]) as any; diff --git a/packages/plugin/src/rules/strict-id-in-types/index.ts b/packages/plugin/src/rules/strict-id-in-types/index.ts index b970c2dfb61..16da0b2e163 100644 --- a/packages/plugin/src/rules/strict-id-in-types/index.ts +++ b/packages/plugin/src/rules/strict-id-in-types/index.ts @@ -6,6 +6,7 @@ import { ARRAY_DEFAULT_OPTIONS, displayNodeName, englishJoinWords, + pluralize, requireGraphQLSchema, } from '../../utils.js'; @@ -120,6 +121,7 @@ export const rule: GraphQLESLintRule = { }, ], }, + // @ts-expect-error -- fixme schema, }, create(context) { @@ -172,13 +174,11 @@ export const rule: GraphQLESLintRule = { // Some clients allow multiple fields to be used. If more people need this, // we can extend this rule later. if (validIds?.length !== 1) { - const pluralNamesSuffix = options.acceptedIdNames.length > 1 ? 's' : ''; - const pluralTypesSuffix = options.acceptedIdTypes.length > 1 ? 's' : ''; context.report({ node: node.name, message: `${displayNodeName(node)} must have exactly one non-nullable unique identifier. -Accepted name${pluralNamesSuffix}: ${englishJoinWords(options.acceptedIdNames)}. -Accepted type${pluralTypesSuffix}: ${englishJoinWords(options.acceptedIdTypes)}.`, +Accepted name${pluralize(options.acceptedIdNames.length)}: ${englishJoinWords(options.acceptedIdNames)}. +Accepted type${pluralize(options.acceptedIdTypes.length)}: ${englishJoinWords(options.acceptedIdTypes)}.`, }); } }, diff --git a/packages/plugin/src/rules/unique-enum-value-names/index.ts b/packages/plugin/src/rules/unique-enum-value-names/index.ts index 278a945dae7..b9deb7d389d 100644 --- a/packages/plugin/src/rules/unique-enum-value-names/index.ts +++ b/packages/plugin/src/rules/unique-enum-value-names/index.ts @@ -57,7 +57,8 @@ export const rule: GraphQLESLintRule = { suggest: [ { desc: `Remove \`${enumName}\` enum value`, - fix: fixer => fixer.remove(duplicate as any), + // @ts-expect-error -- fixme + fix: fixer => fixer.remove(duplicate), }, ], }); diff --git a/packages/plugin/src/rules/unique-fragment-name/index.ts b/packages/plugin/src/rules/unique-fragment-name/index.ts index d2351c68979..671af242c5a 100644 --- a/packages/plugin/src/rules/unique-fragment-name/index.ts +++ b/packages/plugin/src/rules/unique-fragment-name/index.ts @@ -35,7 +35,6 @@ export const checkNode = ( .map(f => `\t${relative(CWD, f.filePath.replace(VIRTUAL_DOCUMENT_REGEX, ''))}`) .join('\n'), }, - // @ts-expect-error name will exist node: node.name, }); } From 08a1394d08df44f5777847e31f8acc70e93c271b Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Tue, 10 Dec 2024 19:08:02 +0700 Subject: [PATCH 10/17] aa --- .changeset/smart-taxis-add.md | 5 +++++ .../rules/match-document-filename/index.ts | 2 +- packages/plugin/src/types.ts | 21 +++++++++---------- 3 files changed, 16 insertions(+), 12 deletions(-) create mode 100644 .changeset/smart-taxis-add.md diff --git a/.changeset/smart-taxis-add.md b/.changeset/smart-taxis-add.md new file mode 100644 index 00000000000..61c536b2d83 --- /dev/null +++ b/.changeset/smart-taxis-add.md @@ -0,0 +1,5 @@ +--- +'@theguild/eslint-rule-tester': patch +--- + +fix TypeScript error `Type "RuleContext" is not assignable to type "GraphQLESLintRuleContext<[]>"` diff --git a/packages/plugin/src/rules/match-document-filename/index.ts b/packages/plugin/src/rules/match-document-filename/index.ts index 44563c4e95d..2346024ff53 100644 --- a/packages/plugin/src/rules/match-document-filename/index.ts +++ b/packages/plugin/src/rules/match-document-filename/index.ts @@ -175,7 +175,7 @@ export const rule: GraphQLESLintRule = { ], }, messages: { - [MATCH_EXTENSION]: `File extension "{{ fileExtension }}" don't match extension "{{ expectedFileExtension }}"`, + [MATCH_EXTENSION]: 'File extension "{{ fileExtension }}" don\'t match extension "{{ expectedFileExtension }}"', [MATCH_STYLE]: 'Unexpected filename "{{ filename }}". Rename it to "{{ expectedFilename }}"', }, // @ts-expect-error -- fixme diff --git a/packages/plugin/src/types.ts b/packages/plugin/src/types.ts index 33ae8668c5f..9259668e4e0 100644 --- a/packages/plugin/src/types.ts +++ b/packages/plugin/src/types.ts @@ -1,8 +1,9 @@ -import { AST, Linter, Rule } from 'eslint'; -import * as ESTree from 'estree'; +import { + // AST, + Linter, Rule } from 'eslint'; +// import * as ESTree from 'estree'; import { ASTKindToNode, GraphQLSchema } from 'graphql'; import { IGraphQLConfig } from 'graphql-config'; -import { JSONSchema } from 'json-schema-to-ts'; import { GraphQLESTreeNode } from './estree-converter/index.js'; import { SiblingOperations } from './siblings.js'; @@ -24,28 +25,27 @@ export type GraphQLESLintParseResult = Linter.ESLintParseResult & { services: ParserServices; }; -type Location = AST.SourceLocation | ESTree.Position; +// type Location = AST.SourceLocation | ESTree.Position; -type ReportDescriptorLocation = { loc: Location } | { node: { loc: Location } }; +type ReportDescriptorLocation = any; // { loc: Location } | { node: { loc: Location } }; export type ReportDescriptor = ReportDescriptorLocation & Rule.ReportDescriptorMessage & Rule.ReportDescriptorOptions; export type GraphQLESLintRuleContext = Omit< Rule.RuleContext, - 'options' | 'parserServices' | 'report' + 'options' | 'report' > & { options: Options; - parserServices: ParserServices; report(descriptor: ReportDescriptor): void; }; -export type CategoryType = 'Operations' | 'Schema'; +export type CategoryType = 'schema' | 'operations' | 'schema-and-operations'; type RuleMetaDataDocs = Required['docs']; export type RuleDocsInfo = Omit & { - category: CategoryType | CategoryType[]; + category?: string; requiresSchema?: true; requiresSiblings?: true; examples?: { @@ -67,9 +67,8 @@ export type GraphQLESLintRuleListener = Re }; export type GraphQLESLintRule = { - meta: Omit & { + meta?: Omit & { docs?: RuleDocsInfo; - schema: Readonly | []; }; create(context: GraphQLESLintRuleContext): GraphQLESLintRuleListener; }; From b2ec17e03360468017efec8e518732a93f8dad87 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Tue, 10 Dec 2024 19:08:16 +0700 Subject: [PATCH 11/17] aa --- packages/plugin/src/rules/match-document-filename/index.ts | 3 ++- packages/plugin/src/types.ts | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/plugin/src/rules/match-document-filename/index.ts b/packages/plugin/src/rules/match-document-filename/index.ts index 2346024ff53..b376ff52850 100644 --- a/packages/plugin/src/rules/match-document-filename/index.ts +++ b/packages/plugin/src/rules/match-document-filename/index.ts @@ -175,7 +175,8 @@ export const rule: GraphQLESLintRule = { ], }, messages: { - [MATCH_EXTENSION]: 'File extension "{{ fileExtension }}" don\'t match extension "{{ expectedFileExtension }}"', + [MATCH_EXTENSION]: + 'File extension "{{ fileExtension }}" don\'t match extension "{{ expectedFileExtension }}"', [MATCH_STYLE]: 'Unexpected filename "{{ filename }}". Rename it to "{{ expectedFilename }}"', }, // @ts-expect-error -- fixme diff --git a/packages/plugin/src/types.ts b/packages/plugin/src/types.ts index 9259668e4e0..13ee5e8622e 100644 --- a/packages/plugin/src/types.ts +++ b/packages/plugin/src/types.ts @@ -1,6 +1,8 @@ import { // AST, - Linter, Rule } from 'eslint'; + Linter, + Rule, +} from 'eslint'; // import * as ESTree from 'estree'; import { ASTKindToNode, GraphQLSchema } from 'graphql'; import { IGraphQLConfig } from 'graphql-config'; From 22133a7d66f4a5d831e5588ca0ce4fc789bca4ed Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Tue, 10 Dec 2024 19:09:09 +0700 Subject: [PATCH 12/17] aa --- .changeset/bright-otters-wonder.md | 2 +- .changeset/smart-taxis-add.md | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) delete mode 100644 .changeset/smart-taxis-add.md diff --git a/.changeset/bright-otters-wonder.md b/.changeset/bright-otters-wonder.md index dc8503f65d2..98602f2193e 100644 --- a/.changeset/bright-otters-wonder.md +++ b/.changeset/bright-otters-wonder.md @@ -2,7 +2,7 @@ '@graphql-eslint/eslint-plugin': patch --- -fix type error: +fix TypeScript error ``` Type 'RuleContext' is not assignable to type 'GraphQLESLintRuleContext<[]>'. diff --git a/.changeset/smart-taxis-add.md b/.changeset/smart-taxis-add.md deleted file mode 100644 index 61c536b2d83..00000000000 --- a/.changeset/smart-taxis-add.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@theguild/eslint-rule-tester': patch ---- - -fix TypeScript error `Type "RuleContext" is not assignable to type "GraphQLESLintRuleContext<[]>"` From 4bd3af1ef9c487676eead0539a47192eee009778 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Tue, 10 Dec 2024 19:12:55 +0700 Subject: [PATCH 13/17] aa --- examples/custom-rules/my-rule.test.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/custom-rules/my-rule.test.ts b/examples/custom-rules/my-rule.test.ts index 6f61f872cd2..7a6114af900 100644 --- a/examples/custom-rules/my-rule.test.ts +++ b/examples/custom-rules/my-rule.test.ts @@ -9,6 +9,7 @@ const ruleTester = new RuleTester({ graphQLConfig: { // Optionally, your schema, your rule could have access to it // schema: '...', + // // Optionally, your operations, your rule could have access to them // documents: '...' }, From 181d10f9b0a3e9b73e3de466eecce3342d1c5232 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Tue, 10 Dec 2024 19:19:47 +0700 Subject: [PATCH 14/17] fix type errors --- website/app/play/graphql-editor.tsx | 1 - website/app/play/page.client.tsx | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/website/app/play/graphql-editor.tsx b/website/app/play/graphql-editor.tsx index 9ab2cd01a4d..a982e121511 100644 --- a/website/app/play/graphql-editor.tsx +++ b/website/app/play/graphql-editor.tsx @@ -37,7 +37,6 @@ export function GraphQLEditor({ { files: ['*.graphql'], plugins: { - // @ts-expect-error -- fixme '@graphql-eslint': { rules }, }, languageOptions: { diff --git a/website/app/play/page.client.tsx b/website/app/play/page.client.tsx index 69428f51c90..c2737bbe7e5 100644 --- a/website/app/play/page.client.tsx +++ b/website/app/play/page.client.tsx @@ -18,11 +18,11 @@ const operationsConfigs: ReadonlyArray = [ ] as const; const schemaRulesOptions = Object.entries(rules) - .filter(([, rule]) => asArray(rule.meta.docs!.category).includes('Schema')) + .filter(([, rule]) => asArray(rule.meta!.docs!.category).includes('Schema')) .map(([ruleId]) => ({ key: ruleId, name: ruleId })) .sort(({ key: a }, { key: b }) => a.localeCompare(b)); const operationsRulesOptions = Object.entries(rules) - .filter(([, rule]) => asArray(rule.meta.docs!.category).includes('Operations')) + .filter(([, rule]) => asArray(rule.meta!.docs!.category).includes('Operations')) .map(([ruleId]) => ({ key: ruleId, name: ruleId })) .sort(({ key: a }, { key: b }) => a.localeCompare(b)); From 201a14b05ca7626b07c4afd5939919c0a3bcda7e Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Tue, 10 Dec 2024 19:32:40 +0700 Subject: [PATCH 15/17] fixxx --- package.json | 2 +- packages/plugin/package.json | 12 +++--------- packages/plugin/tsup.config.ts | 2 +- website/app/_meta.global.ts | 2 +- website/app/play/graphql-editor.tsx | 2 +- website/app/play/page.client.tsx | 2 +- website/app/play/page.tsx | 2 +- website/next.config.ts | 4 ---- 8 files changed, 9 insertions(+), 19 deletions(-) diff --git a/package.json b/package.json index e33f482f1d3..9c3075d03e7 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "pnpm": ">=9.0.6" }, "scripts": { - "build": "turbo run build --filter=!website && attw --pack packages/plugin/dist", + "build": "turbo run build --filter=!website && attw --pack packages/plugin/dist --exclude-entrypoints programmatic", "ci:lint": "pnpm lint --output-file eslint_report.json --format json", "create-rule": "tsx scripts/create-rule.ts", "dev": "turbo run dev --filter=!website", diff --git a/packages/plugin/package.json b/packages/plugin/package.json index 4676865f5a2..57bd890e35a 100644 --- a/packages/plugin/package.json +++ b/packages/plugin/package.json @@ -21,15 +21,9 @@ "default": "./dist/esm/index.js" } }, - "./*": { - "require": { - "types": "./dist/cjs/*.d.cts", - "default": "./dist/cjs/*.js" - }, - "import": { - "types": "./dist/esm/*.d.ts", - "default": "./dist/esm/*.js" - } + "./programmatic": { + "import": "./dist/programmatic.js", + "types": "./dist/programmatic.d.ts" } }, "types": "dist/esm/index.d.ts", diff --git a/packages/plugin/tsup.config.ts b/packages/plugin/tsup.config.ts index 984e3701db7..e43dbebacd0 100644 --- a/packages/plugin/tsup.config.ts +++ b/packages/plugin/tsup.config.ts @@ -84,7 +84,7 @@ export default defineConfig([ programmatic: 'src/index.ts', }, outDir: 'dist', - dts: false, + dts: true, bundle: true, env: { ...opts.env, diff --git a/website/app/_meta.global.ts b/website/app/_meta.global.ts index 2ee632aa2d2..0bedf7b65a3 100644 --- a/website/app/_meta.global.ts +++ b/website/app/_meta.global.ts @@ -1,4 +1,4 @@ -import { rules } from '@graphql-eslint/eslint-plugin'; +import { rules } from '@graphql-eslint/eslint-plugin/programmatic'; const { schemaRules, operationsRules, schemaAndOperationsRules } = Object.entries(rules) .sort(([a], [b]) => a.localeCompare(b)) diff --git a/website/app/play/graphql-editor.tsx b/website/app/play/graphql-editor.tsx index a982e121511..5ef2adb3d50 100644 --- a/website/app/play/graphql-editor.tsx +++ b/website/app/play/graphql-editor.tsx @@ -2,7 +2,7 @@ import { ReactElement, useEffect, useRef, useState } from 'react'; import { clsx } from 'clsx'; import { Linter } from 'eslint'; import uniqWith from 'lodash.uniqwith'; -import { parser, rules } from '@graphql-eslint/eslint-plugin'; +import { parser, rules } from '@graphql-eslint/eslint-plugin/programmatic'; import Editor, { OnMount } from '@monaco-editor/react'; import { Anchor, Callout, InformationCircleIcon, useTheme } from '@theguild/components'; diff --git a/website/app/play/page.client.tsx b/website/app/play/page.client.tsx index c2737bbe7e5..656738b3927 100644 --- a/website/app/play/page.client.tsx +++ b/website/app/play/page.client.tsx @@ -2,7 +2,7 @@ import { FC, ReactNode, useCallback } from 'react'; import { ReadonlyURLSearchParams, usePathname, useRouter, useSearchParams } from 'next/navigation'; -import { ConfigName, configs, rules } from '@graphql-eslint/eslint-plugin'; +import { ConfigName, configs, rules } from '@graphql-eslint/eslint-plugin/programmatic'; import { asArray } from '@graphql-tools/utils'; import { GraphQLEditor } from './graphql-editor'; import { Select } from './select'; diff --git a/website/app/play/page.tsx b/website/app/play/page.tsx index f5a82eb3ad5..4619bc52a7e 100644 --- a/website/app/play/page.tsx +++ b/website/app/play/page.tsx @@ -1,7 +1,7 @@ import { FC, Suspense } from 'react'; import { clsx } from 'clsx'; import { Linter } from 'eslint'; -import { parser } from '@graphql-eslint/eslint-plugin'; +import { parser } from '@graphql-eslint/eslint-plugin/programmatic'; import { ClientPage } from './page.client'; export const metadata = { diff --git a/website/next.config.ts b/website/next.config.ts index 78983345a01..9043d985aea 100644 --- a/website/next.config.ts +++ b/website/next.config.ts @@ -26,10 +26,6 @@ export default withGuildDocs({ esquery: require.resolve('esquery'), // fixes for @eslint/eslintrc TypeError: __webpack_require__(...).pathToFileURL is not a function eslint: require.resolve('eslint').replace(/api\.js$/, `linter${path.sep}index.js`), - '@graphql-eslint/eslint-plugin': require - .resolve('@graphql-eslint/eslint-plugin') - .replace(`cjs${path.sep}index.js`, 'programmatic.js'), - // fixes Cannot use GraphQLNonNull "Boolean!" from another module or realm. 'graphql/utilities/valueFromASTUntyped.js': require.resolve( 'graphql/utilities/valueFromASTUntyped', From 37546942474e54378c2b293d843e141891961747 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Tue, 10 Dec 2024 19:46:44 +0700 Subject: [PATCH 16/17] fixxx --- packages/plugin/__tests__/rules.spec.ts | 1 - .../src/rules/naming-convention/index.test.ts | 4 +- .../src/rules/no-unused-fields/index.test.ts | 2 +- patches/eslint.patch | 2 +- pnpm-lock.yaml | 260 +++++++++--------- 5 files changed, 134 insertions(+), 135 deletions(-) diff --git a/packages/plugin/__tests__/rules.spec.ts b/packages/plugin/__tests__/rules.spec.ts index 0e9084b8bb4..32550d8d0b6 100644 --- a/packages/plugin/__tests__/rules.spec.ts +++ b/packages/plugin/__tests__/rules.spec.ts @@ -21,7 +21,6 @@ export function getESLintWithConfig( } satisfies ParserOptionsForTests, }, plugins: { - // @ts-expect-error -- TODO fixme '@graphql-eslint': { rules }, }, rules: config.rules, diff --git a/packages/plugin/src/rules/naming-convention/index.test.ts b/packages/plugin/src/rules/naming-convention/index.test.ts index 455fe627227..77daaba2acc 100644 --- a/packages/plugin/src/rules/naming-convention/index.test.ts +++ b/packages/plugin/src/rules/naming-convention/index.test.ts @@ -466,7 +466,7 @@ ruleTester.run('naming-convention', rule, { id: ID } `, - options: (rule.meta.docs!.configOptions as any).schema, + options: (rule.meta!.docs!.configOptions as any).schema, errors: 15, }, { @@ -486,7 +486,7 @@ ruleTester.run('naming-convention', rule, { fragment TestFragment on Test { id } fragment FragmentTest on Test { id } `, - options: (rule.meta.docs!.configOptions as any).operations, + options: (rule.meta!.docs!.configOptions as any).operations, errors: [ { message: diff --git a/packages/plugin/src/rules/no-unused-fields/index.test.ts b/packages/plugin/src/rules/no-unused-fields/index.test.ts index fd05baa7c81..a6c0a80c7a9 100644 --- a/packages/plugin/src/rules/no-unused-fields/index.test.ts +++ b/packages/plugin/src/rules/no-unused-fields/index.test.ts @@ -50,7 +50,7 @@ const ruleTester = new RuleTester({ }, }); -const example = rule.meta.docs!.examples!.find(example => example.title.includes('ignoring')); +const example = rule.meta!.docs!.examples!.find(example => example.title.includes('ignoring')); const [RELAY_SCHEMA, RELAY_QUERY] = example!.code.split('### 2️⃣ YOUR QUERY'); ruleTester.run('no-unused-fields', rule, { diff --git a/patches/eslint.patch b/patches/eslint.patch index 346f1e33b3b..7bd73051b48 100644 --- a/patches/eslint.patch +++ b/patches/eslint.patch @@ -45,7 +45,7 @@ index 756490e1df3d97ef47cc42f120ecda8813ec9f73..00a7146fe0be6574528cc053f69e454b } - + // used by @theguild/eslint-rule-tester -+ if (!process.cwd().includes('/examples/')) item.assertMessages(item, messages) ++ if (!process.cwd().includes('examples')) item.assertMessages(item, messages) assertASTDidntChange(result.beforeAST, result.afterAST); } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d5ec3e22312..75482638b10 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,7 +9,7 @@ overrides: patchedDependencies: eslint: - hash: ev7ndsq3rvzgmf6ig6be3zznqa + hash: cx4rtah67zn2p2nger76wx3dki path: patches/eslint.patch json-schema-to-markdown@1.1.1: hash: beglqnggvhpsclgwbdw27hzvu4 @@ -30,7 +30,7 @@ importers: version: 2.27.10 '@theguild/eslint-config': specifier: 0.13.2 - version: 0.13.2(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2) + version: 0.13.2(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1))(typescript@5.7.2) '@theguild/prettier-config': specifier: 3.0.0 version: 3.0.0(@vue/compiler-sfc@3.5.13)(prettier@3.4.2) @@ -51,10 +51,10 @@ importers: version: 2.4.1 eslint: specifier: 9.16.0 - version: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + version: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) eslint-plugin-eslint-plugin: specifier: 6.3.2 - version: 6.3.2(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + version: 6.3.2(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) eslint-plugin-tailwindcss: specifier: 3.17.5 version: 3.17.5(tailwindcss@3.4.16) @@ -103,7 +103,7 @@ importers: version: link:../../packages/plugin/dist eslint: specifier: 9.16.0 - version: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + version: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) examples/custom-rules: dependencies: @@ -116,7 +116,7 @@ importers: version: link:../../packages/plugin/dist eslint: specifier: 9.16.0 - version: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + version: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) typescript: specifier: 5.7.2 version: 5.7.2 @@ -138,7 +138,7 @@ importers: version: link:../../packages/plugin/dist eslint: specifier: 9.16.0 - version: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + version: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) examples/monorepo: dependencies: @@ -154,7 +154,7 @@ importers: version: link:../../packages/plugin/dist eslint: specifier: 9.16.0 - version: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + version: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) examples/multiple-projects-graphql-config: dependencies: @@ -167,7 +167,7 @@ importers: version: link:../../packages/plugin/dist eslint: specifier: 9.16.0 - version: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + version: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) examples/prettier: dependencies: @@ -183,13 +183,13 @@ importers: version: link:../../packages/plugin/dist eslint: specifier: 9.16.0 - version: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + version: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) eslint-config-prettier: specifier: 9.1.0 - version: 9.1.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + version: 9.1.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) eslint-plugin-prettier: specifier: 5.2.1 - version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)))(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(prettier@3.4.2) + version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)))(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1))(prettier@3.4.2) prettier: specifier: 3.4.2 version: 3.4.2 @@ -208,7 +208,7 @@ importers: version: link:../../packages/plugin/dist eslint: specifier: 9.16.0 - version: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + version: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) examples/svelte-code-file: dependencies: @@ -221,7 +221,7 @@ importers: version: link:../../packages/plugin/dist eslint: specifier: 9.16.0 - version: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + version: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) svelte: specifier: 5.10.0 version: 5.10.0 @@ -243,16 +243,16 @@ importers: version: link:../../packages/plugin/dist eslint: specifier: 9.16.0 - version: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + version: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) eslint-merge-processors: specifier: ^0.1.0 - version: 0.1.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + version: 0.1.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) eslint-plugin-vue: specifier: ^9.31.0 - version: 9.32.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + version: 9.32.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) eslint-processor-vue-blocks: specifier: ^0.1.2 - version: 0.1.2(@vue/compiler-sfc@3.5.13)(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + version: 0.1.2(@vue/compiler-sfc@3.5.13)(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) packages/plugin: dependencies: @@ -270,7 +270,7 @@ importers: version: 4.4.0 eslint: specifier: '>=8.44.0' - version: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + version: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) fast-glob: specifier: ^3.2.12 version: 3.3.2 @@ -333,7 +333,7 @@ importers: version: 22.10.1 eslint: specifier: 9.16.0 - version: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + version: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) website: dependencies: @@ -7441,11 +7441,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/eslint-parser@7.25.9(@babel/core@7.26.0)(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))': + '@babel/eslint-parser@7.25.9(@babel/core@7.26.0)(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1))': dependencies: '@babel/core': 7.26.0 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) eslint-visitor-keys: 2.1.0 semver: 6.3.1 @@ -8571,9 +8571,9 @@ snapshots: '@esbuild/win32-x64@0.24.0': optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))': + '@eslint-community/eslint-utils@4.4.1(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1))': dependencies: - eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} @@ -9762,25 +9762,25 @@ snapshots: - use-sync-external-store - utf-8-validate - '@theguild/eslint-config@0.13.2(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2)': + '@theguild/eslint-config@0.13.2(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1))(typescript@5.7.2)': dependencies: '@rushstack/eslint-patch': 1.10.4 - '@typescript-eslint/eslint-plugin': 8.17.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2))(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2) - '@typescript-eslint/parser': 8.17.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2) - eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) - eslint-config-prettier: 9.1.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) - eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2))(eslint-import-resolver-typescript@3.7.0)(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) - eslint-plugin-jsonc: 2.18.2(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) - eslint-plugin-jsx-a11y: 6.10.2(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) - eslint-plugin-mdx: 3.1.5(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) - eslint-plugin-n: 17.14.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) - eslint-plugin-promise: 7.2.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) - eslint-plugin-react: 7.37.2(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) - eslint-plugin-react-hooks: 5.0.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) - eslint-plugin-sonarjs: 3.0.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) - eslint-plugin-unicorn: 56.0.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) - eslint-plugin-yml: 1.16.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + '@typescript-eslint/eslint-plugin': 8.17.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1))(typescript@5.7.2))(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1))(typescript@5.7.2) + '@typescript-eslint/parser': 8.17.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1))(typescript@5.7.2) + eslint: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) + eslint-config-prettier: 9.1.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) + eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1))(typescript@5.7.2))(eslint-import-resolver-typescript@3.7.0)(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) + eslint-plugin-jsonc: 2.18.2(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) + eslint-plugin-jsx-a11y: 6.10.2(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) + eslint-plugin-mdx: 3.1.5(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) + eslint-plugin-n: 17.14.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) + eslint-plugin-promise: 7.2.1(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) + eslint-plugin-react: 7.37.2(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) + eslint-plugin-react-hooks: 5.0.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) + eslint-plugin-sonarjs: 3.0.1(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) + eslint-plugin-unicorn: 56.0.1(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) + eslint-plugin-yml: 1.16.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) typescript: 5.7.2 transitivePeerDependencies: - '@eslint/json' @@ -10043,15 +10043,15 @@ snapshots: dependencies: '@types/node': 22.10.1 - '@typescript-eslint/eslint-plugin@8.17.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2))(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2)': + '@typescript-eslint/eslint-plugin@8.17.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1))(typescript@5.7.2))(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1))(typescript@5.7.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.17.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2) + '@typescript-eslint/parser': 8.17.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1))(typescript@5.7.2) '@typescript-eslint/scope-manager': 8.17.0 - '@typescript-eslint/type-utils': 8.17.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2) - '@typescript-eslint/utils': 8.17.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2) + '@typescript-eslint/type-utils': 8.17.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1))(typescript@5.7.2) + '@typescript-eslint/utils': 8.17.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1))(typescript@5.7.2) '@typescript-eslint/visitor-keys': 8.17.0 - eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -10061,14 +10061,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2)': + '@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1))(typescript@5.7.2)': dependencies: '@typescript-eslint/scope-manager': 8.17.0 '@typescript-eslint/types': 8.17.0 '@typescript-eslint/typescript-estree': 8.17.0(typescript@5.7.2) '@typescript-eslint/visitor-keys': 8.17.0 debug: 4.4.0 - eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) optionalDependencies: typescript: 5.7.2 transitivePeerDependencies: @@ -10079,12 +10079,12 @@ snapshots: '@typescript-eslint/types': 8.17.0 '@typescript-eslint/visitor-keys': 8.17.0 - '@typescript-eslint/type-utils@8.17.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2)': + '@typescript-eslint/type-utils@8.17.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1))(typescript@5.7.2)': dependencies: '@typescript-eslint/typescript-estree': 8.17.0(typescript@5.7.2) - '@typescript-eslint/utils': 8.17.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2) + '@typescript-eslint/utils': 8.17.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1))(typescript@5.7.2) debug: 4.4.0 - eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) ts-api-utils: 1.4.3(typescript@5.7.2) optionalDependencies: typescript: 5.7.2 @@ -10108,13 +10108,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.17.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2)': + '@typescript-eslint/utils@8.17.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1))(typescript@5.7.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) '@typescript-eslint/scope-manager': 8.17.0 '@typescript-eslint/types': 8.17.0 '@typescript-eslint/typescript-estree': 8.17.0(typescript@5.7.2) - eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) optionalDependencies: typescript: 5.7.2 transitivePeerDependencies: @@ -11317,19 +11317,19 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-compat-utils@0.5.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): + eslint-compat-utils@0.5.1(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)): dependencies: - eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) semver: 7.6.3 - eslint-compat-utils@0.6.4(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): + eslint-compat-utils@0.6.4(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)): dependencies: - eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) semver: 7.6.3 - eslint-config-prettier@9.1.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): + eslint-config-prettier@9.1.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)): dependencies: - eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) eslint-import-resolver-node@0.3.9: dependencies: @@ -11339,33 +11339,33 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0)(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): + eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0)(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.0 enhanced-resolve: 5.17.1 - eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) fast-glob: 3.3.2 get-tsconfig: 4.8.1 is-bun-module: 1.3.0 is-glob: 4.0.3 stable-hash: 0.0.4 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2))(eslint-import-resolver-typescript@3.7.0)(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1))(typescript@5.7.2))(eslint-import-resolver-typescript@3.7.0)(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) transitivePeerDependencies: - supports-color - eslint-json-compat-utils@0.2.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(jsonc-eslint-parser@2.4.0): + eslint-json-compat-utils@0.2.1(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1))(jsonc-eslint-parser@2.4.0): dependencies: - eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) esquery: 1.6.0 jsonc-eslint-parser: 2.4.0 - eslint-mdx@3.1.5(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): + eslint-mdx@3.1.5(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)): dependencies: acorn: 8.14.0 acorn-jsx: 5.3.2(acorn@8.14.0) - eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) espree: 9.6.1 estree-util-visit: 2.0.0 remark-mdx: 3.1.0 @@ -11382,35 +11382,35 @@ snapshots: - bluebird - supports-color - eslint-merge-processors@0.1.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): + eslint-merge-processors@0.1.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)): dependencies: - eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1))(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.17.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2) - eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + '@typescript-eslint/parser': 8.17.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1))(typescript@5.7.2) + eslint: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) transitivePeerDependencies: - supports-color - eslint-plugin-es-x@7.8.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): + eslint-plugin-es-x@7.8.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) '@eslint-community/regexpp': 4.12.1 - eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) - eslint-compat-utils: 0.5.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + eslint: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) + eslint-compat-utils: 0.5.1(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) - eslint-plugin-eslint-plugin@6.3.2(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): + eslint-plugin-eslint-plugin@6.3.2(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) - eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) + eslint: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) estraverse: 5.3.0 - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2))(eslint-import-resolver-typescript@3.7.0)(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1))(typescript@5.7.2))(eslint-import-resolver-typescript@3.7.0)(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -11419,9 +11419,9 @@ snapshots: array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1))(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -11433,18 +11433,18 @@ snapshots: string.prototype.trimend: 1.0.8 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.17.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(typescript@5.7.2) + '@typescript-eslint/parser': 8.17.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1))(typescript@5.7.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jsonc@2.18.2(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): + eslint-plugin-jsonc@2.18.2(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) - eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) - eslint-compat-utils: 0.6.4(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) - eslint-json-compat-utils: 0.2.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(jsonc-eslint-parser@2.4.0) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) + eslint: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) + eslint-compat-utils: 0.6.4(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) + eslint-json-compat-utils: 0.2.1(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1))(jsonc-eslint-parser@2.4.0) espree: 9.6.1 graphemer: 1.4.0 jsonc-eslint-parser: 2.4.0 @@ -11453,7 +11453,7 @@ snapshots: transitivePeerDependencies: - '@eslint/json' - eslint-plugin-jsx-a11y@6.10.2(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): + eslint-plugin-jsx-a11y@6.10.2(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)): dependencies: aria-query: 5.3.2 array-includes: 3.1.8 @@ -11463,7 +11463,7 @@ snapshots: axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -11472,18 +11472,18 @@ snapshots: safe-regex-test: 1.0.3 string.prototype.includes: 2.0.1 - eslint-plugin-markdown@3.0.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): + eslint-plugin-markdown@3.0.1(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)): dependencies: - eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) mdast-util-from-markdown: 0.8.5 transitivePeerDependencies: - supports-color - eslint-plugin-mdx@3.1.5(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): + eslint-plugin-mdx@3.1.5(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)): dependencies: - eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) - eslint-mdx: 3.1.5(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) - eslint-plugin-markdown: 3.0.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + eslint: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) + eslint-mdx: 3.1.5(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) + eslint-plugin-markdown: 3.0.1(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) remark-mdx: 3.1.0 remark-parse: 11.0.0 remark-stringify: 11.0.0 @@ -11494,38 +11494,38 @@ snapshots: - bluebird - supports-color - eslint-plugin-n@17.14.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): + eslint-plugin-n@17.14.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) enhanced-resolve: 5.17.1 - eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) - eslint-plugin-es-x: 7.8.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + eslint: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) + eslint-plugin-es-x: 7.8.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) get-tsconfig: 4.8.1 globals: 15.13.0 ignore: 5.3.2 minimatch: 9.0.5 semver: 7.6.3 - eslint-plugin-prettier@5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)))(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1))(prettier@3.4.2): + eslint-plugin-prettier@5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)))(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1))(prettier@3.4.2): dependencies: - eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) prettier: 3.4.2 prettier-linter-helpers: 1.0.0 synckit: 0.9.2 optionalDependencies: '@types/eslint': 9.6.1 - eslint-config-prettier: 9.1.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + eslint-config-prettier: 9.1.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) - eslint-plugin-promise@7.2.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): + eslint-plugin-promise@7.2.1(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) - eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) + eslint: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) - eslint-plugin-react-hooks@5.0.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): + eslint-plugin-react-hooks@5.0.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)): dependencies: - eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) - eslint-plugin-react@7.37.2(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): + eslint-plugin-react@7.37.2(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 @@ -11533,7 +11533,7 @@ snapshots: array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.2.0 - eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 @@ -11547,10 +11547,10 @@ snapshots: string.prototype.matchall: 4.0.11 string.prototype.repeat: 1.0.0 - eslint-plugin-sonarjs@3.0.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): + eslint-plugin-sonarjs@3.0.1(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)): dependencies: '@babel/core': 7.26.0 - '@babel/eslint-parser': 7.25.9(@babel/core@7.26.0)(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + '@babel/eslint-parser': 7.25.9(@babel/core@7.26.0)(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) '@babel/plugin-proposal-decorators': 7.25.9(@babel/core@7.26.0) '@babel/preset-env': 7.26.0(@babel/core@7.26.0) '@babel/preset-flow': 7.25.9(@babel/core@7.26.0) @@ -11558,7 +11558,7 @@ snapshots: '@eslint-community/regexpp': 4.12.1 builtin-modules: 3.3.0 bytes: 3.1.2 - eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) functional-red-black-tree: 1.0.1 jsx-ast-utils: 3.3.5 minimatch: 9.0.5 @@ -11574,14 +11574,14 @@ snapshots: postcss: 8.4.49 tailwindcss: 3.4.16 - eslint-plugin-unicorn@56.0.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): + eslint-plugin-unicorn@56.0.1(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)): dependencies: '@babel/helper-validator-identifier': 7.25.9 - '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) ci-info: 4.1.0 clean-regexp: 1.0.0 core-js-compat: 3.39.0 - eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) esquery: 1.6.0 globals: 15.13.0 indent-string: 4.0.0 @@ -11594,35 +11594,35 @@ snapshots: semver: 7.6.3 strip-indent: 3.0.0 - eslint-plugin-vue@9.32.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): + eslint-plugin-vue@9.32.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) - eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) + eslint: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) globals: 13.24.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.1.2 semver: 7.6.3 - vue-eslint-parser: 9.4.3(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + vue-eslint-parser: 9.4.3(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color - eslint-plugin-yml@1.16.0(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): + eslint-plugin-yml@1.16.0(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)): dependencies: debug: 4.4.0 - eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) - eslint-compat-utils: 0.6.4(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + eslint: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) + eslint-compat-utils: 0.6.4(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) lodash: 4.17.21 natural-compare: 1.4.0 yaml-eslint-parser: 1.2.3 transitivePeerDependencies: - supports-color - eslint-processor-vue-blocks@0.1.2(@vue/compiler-sfc@3.5.13)(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): + eslint-processor-vue-blocks@0.1.2(@vue/compiler-sfc@3.5.13)(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)): dependencies: '@vue/compiler-sfc': 3.5.13 - eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) eslint-scope@5.1.1: dependencies: @@ -11645,9 +11645,9 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1): + eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.19.1 '@eslint/core': 0.9.1 @@ -15224,10 +15224,10 @@ snapshots: vscode-uri@3.0.8: {} - vue-eslint-parser@9.4.3(eslint@9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1)): + vue-eslint-parser@9.4.3(eslint@9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1)): dependencies: debug: 4.4.0 - eslint: 9.16.0(patch_hash=ev7ndsq3rvzgmf6ig6be3zznqa)(jiti@2.4.1) + eslint: 9.16.0(patch_hash=cx4rtah67zn2p2nger76wx3dki)(jiti@2.4.1) eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 From c86c74902285624344165bb32d972962226b7df8 Mon Sep 17 00:00:00 2001 From: Dimitri POSTOLOV Date: Tue, 10 Dec 2024 19:59:22 +0700 Subject: [PATCH 17/17] fixxx --- .changeset/lovely-dryers-notice.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/lovely-dryers-notice.md b/.changeset/lovely-dryers-notice.md index 9a7be120948..ea70e6b4c1c 100644 --- a/.changeset/lovely-dryers-notice.md +++ b/.changeset/lovely-dryers-notice.md @@ -2,4 +2,4 @@ '@graphql-eslint/eslint-plugin': patch --- -add `"./*"` to `exports` field in `package.json` +add `"./programmatic"` to `exports` field in `package.json`