diff --git a/dist/package.json b/dist/package.json index f5b4410..d038fc7 100644 --- a/dist/package.json +++ b/dist/package.json @@ -1,6 +1,6 @@ { "name": "@aet/eslint-rules", - "version": "2.0.23", + "version": "2.0.25", "license": "UNLICENSED", "type": "module", "bin": { @@ -23,11 +23,11 @@ "@tanstack/eslint-plugin-query": "^5.62.1" }, "dependencies": { - "@aet/eslint-define-config": "^0.1.0-beta.40", + "@aet/eslint-define-config": "^0.1.2", "@antfu/install-pkg": "^0.5.0", "@eslint-community/eslint-utils": "^4.4.1", "@eslint-react/eslint-plugin": "1.19.0", - "@eslint/js": "^9.16.0", + "@eslint/js": "^9.17.0", "@nolyfill/is-core-module": "^1.0.39", "@stylistic/eslint-plugin": "^2.12.1", "@types/eslint": "^9.6.1", diff --git a/package.json b/package.json index 5320cec..6e146be 100644 --- a/package.json +++ b/package.json @@ -11,11 +11,11 @@ }, "private": true, "dependencies": { - "@aet/eslint-define-config": "^0.1.0-beta.40", + "@aet/eslint-define-config": "^0.1.2", "@antfu/install-pkg": "^0.5.0", "@eslint-community/eslint-utils": "^4.4.1", "@eslint-react/eslint-plugin": "1.19.0", - "@eslint/js": "^9.16.0", + "@eslint/js": "^9.17.0", "@nolyfill/is-core-module": "^1.0.39", "@stylistic/eslint-plugin": "^2.12.1", "@types/eslint": "^9.6.1", @@ -84,7 +84,7 @@ "eslint-plugin-storybook": "^0.11.1", "eslint-plugin-testing-library": "^7.1.1", "find-cache-dir": "^5.0.0", - "graphql": "^16.9.0", + "graphql": "^16.10.0", "json-schema-to-ts": "^3.1.1", "nolyfill": "^1.0.43", "patch-package": "^8.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 74a91bb..f3e55d8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -31,8 +31,8 @@ importers: .: dependencies: '@aet/eslint-define-config': - specifier: ^0.1.0-beta.40 - version: 0.1.0-beta.40 + specifier: ^0.1.2 + version: 0.1.2 '@antfu/install-pkg': specifier: ^0.5.0 version: 0.5.0 @@ -43,8 +43,8 @@ importers: specifier: 1.19.0 version: 1.19.0(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2) '@eslint/js': - specifier: ^9.16.0 - version: 9.16.0 + specifier: ^9.17.0 + version: 9.17.0 '@nolyfill/is-core-module': specifier: ^1.0.39 version: 1.0.39 @@ -162,7 +162,7 @@ importers: version: 7.26.0(@babel/core@7.26.0) '@graphql-eslint/eslint-plugin': specifier: ^4.3.0 - version: 4.3.0(@types/node@22.10.2)(eslint@9.17.0(jiti@2.4.0))(graphql@16.9.0)(json-schema-to-ts@3.1.1)(typescript@5.7.2) + version: 4.3.0(@types/node@22.10.2)(eslint@9.17.0(jiti@2.4.0))(graphql@16.10.0)(json-schema-to-ts@3.1.1)(typescript@5.7.2) '@swc-node/register': specifier: ^1.10.9 version: 1.10.9(@swc/core@1.7.23)(@swc/types@0.1.12)(typescript@5.7.2) @@ -245,8 +245,8 @@ importers: specifier: ^5.0.0 version: 5.0.0 graphql: - specifier: ^16.9.0 - version: 16.9.0 + specifier: ^16.10.0 + version: 16.10.0 json-schema-to-ts: specifier: ^3.1.1 version: 3.1.1 @@ -277,8 +277,8 @@ importers: packages: - '@aet/eslint-define-config@0.1.0-beta.40': - resolution: {integrity: sha512-zJuiQ/puiw98PPzGQUglZzKv6vdmnj7DwrkhBz5mqE1aceVYk3NgV6JY2bP/EMkql4ix4N+7jPCx248otggD0A==} + '@aet/eslint-define-config@0.1.2': + resolution: {integrity: sha512-hY6xwuxKTBX0sCh+fXJrfXojCOC9t15NvVEi+XNVYrCRH+Ow1taYuDitsPtqJOu5X3uWSRxEUHDmsb0yCSaz0g==} engines: {node: '>=18.0.0', npm: '>=9.0.0'} '@ampproject/remapping@2.3.0': @@ -1034,10 +1034,6 @@ packages: resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.16.0': - resolution: {integrity: sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.17.0': resolution: {integrity: sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2197,8 +2193,8 @@ packages: peerDependencies: graphql: '>=0.11 <=16' - graphql@16.9.0: - resolution: {integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==} + graphql@16.10.0: + resolution: {integrity: sha512-AjqGKbDGUFRKIRCP9tCKiIGHyriz2oHEbPIbEtcSLSs4YjReZOIPQQWek4+6hjw62H9QShXHyaGivGiYVLeYFQ==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} has-flag@3.0.0: @@ -2980,7 +2976,7 @@ packages: snapshots: - '@aet/eslint-define-config@0.1.0-beta.40': {} + '@aet/eslint-define-config@0.1.2': {} '@ampproject/remapping@2.3.0': dependencies: @@ -3931,8 +3927,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.16.0': {} - '@eslint/js@9.17.0': {} '@eslint/object-schema@2.1.4': {} @@ -3941,17 +3935,17 @@ snapshots: dependencies: levn: 0.4.1 - '@graphql-eslint/eslint-plugin@4.3.0(@types/node@22.10.2)(eslint@9.17.0(jiti@2.4.0))(graphql@16.9.0)(json-schema-to-ts@3.1.1)(typescript@5.7.2)': + '@graphql-eslint/eslint-plugin@4.3.0(@types/node@22.10.2)(eslint@9.17.0(jiti@2.4.0))(graphql@16.10.0)(json-schema-to-ts@3.1.1)(typescript@5.7.2)': dependencies: - '@graphql-tools/code-file-loader': 8.1.7(graphql@16.9.0) - '@graphql-tools/graphql-tag-pluck': 8.3.6(graphql@16.9.0) - '@graphql-tools/utils': 10.6.1(graphql@16.9.0) + '@graphql-tools/code-file-loader': 8.1.7(graphql@16.10.0) + '@graphql-tools/graphql-tag-pluck': 8.3.6(graphql@16.10.0) + '@graphql-tools/utils': 10.6.1(graphql@16.10.0) debug: 4.4.0 eslint: 9.17.0(jiti@2.4.0) fast-glob: 3.3.2 - graphql: 16.9.0 - graphql-config: 5.1.3(@types/node@22.10.2)(graphql@16.9.0)(typescript@5.7.2) - graphql-depth-limit: 1.1.0(graphql@16.9.0) + graphql: 16.10.0 + graphql-config: 5.1.3(@types/node@22.10.2)(graphql@16.10.0)(typescript@5.7.2) + graphql-depth-limit: 1.1.0(graphql@16.10.0) lodash.lowercase: 4.3.0 optionalDependencies: json-schema-to-ts: 3.1.1 @@ -3964,42 +3958,42 @@ snapshots: - typescript - utf-8-validate - '@graphql-tools/batch-execute@9.0.7(graphql@16.9.0)': + '@graphql-tools/batch-execute@9.0.7(graphql@16.10.0)': dependencies: - '@graphql-tools/utils': 10.6.1(graphql@16.9.0) + '@graphql-tools/utils': 10.6.1(graphql@16.10.0) dataloader: 2.2.2 - graphql: 16.9.0 + graphql: 16.10.0 tslib: 2.7.0 - '@graphql-tools/code-file-loader@8.1.7(graphql@16.9.0)': + '@graphql-tools/code-file-loader@8.1.7(graphql@16.10.0)': dependencies: - '@graphql-tools/graphql-tag-pluck': 8.3.6(graphql@16.9.0) - '@graphql-tools/utils': 10.6.1(graphql@16.9.0) + '@graphql-tools/graphql-tag-pluck': 8.3.6(graphql@16.10.0) + '@graphql-tools/utils': 10.6.1(graphql@16.10.0) globby: 11.1.0 - graphql: 16.9.0 + graphql: 16.10.0 tslib: 2.7.0 unixify: 1.0.0 transitivePeerDependencies: - supports-color - '@graphql-tools/delegate@10.2.1(graphql@16.9.0)': + '@graphql-tools/delegate@10.2.1(graphql@16.10.0)': dependencies: - '@graphql-tools/batch-execute': 9.0.7(graphql@16.9.0) - '@graphql-tools/executor': 1.3.5(graphql@16.9.0) - '@graphql-tools/schema': 10.0.10(graphql@16.9.0) - '@graphql-tools/utils': 10.6.1(graphql@16.9.0) + '@graphql-tools/batch-execute': 9.0.7(graphql@16.10.0) + '@graphql-tools/executor': 1.3.5(graphql@16.10.0) + '@graphql-tools/schema': 10.0.10(graphql@16.10.0) + '@graphql-tools/utils': 10.6.1(graphql@16.10.0) '@repeaterjs/repeater': 3.0.6 dataloader: 2.2.2 dset: 3.1.4 - graphql: 16.9.0 + graphql: 16.10.0 tslib: 2.7.0 - '@graphql-tools/executor-graphql-ws@1.3.3(graphql@16.9.0)': + '@graphql-tools/executor-graphql-ws@1.3.3(graphql@16.10.0)': dependencies: - '@graphql-tools/utils': 10.6.1(graphql@16.9.0) + '@graphql-tools/utils': 10.6.1(graphql@16.10.0) '@whatwg-node/disposablestack': 0.0.5 - graphql: 16.9.0 - graphql-ws: 5.16.0(graphql@16.9.0) + graphql: 16.10.0 + graphql-ws: 5.16.0(graphql@16.10.0) isomorphic-ws: 5.0.0(ws@8.18.0) tslib: 2.7.0 ws: 8.18.0 @@ -4007,25 +4001,25 @@ snapshots: - bufferutil - utf-8-validate - '@graphql-tools/executor-http@1.1.10(@types/node@22.10.2)(graphql@16.9.0)': + '@graphql-tools/executor-http@1.1.10(@types/node@22.10.2)(graphql@16.10.0)': dependencies: - '@graphql-tools/utils': 10.6.1(graphql@16.9.0) + '@graphql-tools/utils': 10.6.1(graphql@16.10.0) '@repeaterjs/repeater': 3.0.6 '@whatwg-node/disposablestack': 0.0.5 '@whatwg-node/fetch': 0.10.1 extract-files: 11.0.0 - graphql: 16.9.0 + graphql: 16.10.0 meros: 1.3.0(@types/node@22.10.2) tslib: 2.7.0 value-or-promise: 1.0.12 transitivePeerDependencies: - '@types/node' - '@graphql-tools/executor-legacy-ws@1.1.4(graphql@16.9.0)': + '@graphql-tools/executor-legacy-ws@1.1.4(graphql@16.10.0)': dependencies: - '@graphql-tools/utils': 10.6.1(graphql@16.9.0) + '@graphql-tools/utils': 10.6.1(graphql@16.10.0) '@types/ws': 8.5.12 - graphql: 16.9.0 + graphql: 16.10.0 isomorphic-ws: 5.0.0(ws@8.18.0) tslib: 2.7.0 ws: 8.18.0 @@ -4033,85 +4027,85 @@ snapshots: - bufferutil - utf-8-validate - '@graphql-tools/executor@1.3.5(graphql@16.9.0)': + '@graphql-tools/executor@1.3.5(graphql@16.10.0)': dependencies: - '@graphql-tools/utils': 10.6.1(graphql@16.9.0) - '@graphql-typed-document-node/core': 3.2.0(graphql@16.9.0) + '@graphql-tools/utils': 10.6.1(graphql@16.10.0) + '@graphql-typed-document-node/core': 3.2.0(graphql@16.10.0) '@repeaterjs/repeater': 3.0.6 - graphql: 16.9.0 + graphql: 16.10.0 tslib: 2.7.0 value-or-promise: 1.0.12 - '@graphql-tools/graphql-file-loader@8.0.5(graphql@16.9.0)': + '@graphql-tools/graphql-file-loader@8.0.5(graphql@16.10.0)': dependencies: - '@graphql-tools/import': 7.0.5(graphql@16.9.0) - '@graphql-tools/utils': 10.6.1(graphql@16.9.0) + '@graphql-tools/import': 7.0.5(graphql@16.10.0) + '@graphql-tools/utils': 10.6.1(graphql@16.10.0) globby: 11.1.0 - graphql: 16.9.0 + graphql: 16.10.0 tslib: 2.7.0 unixify: 1.0.0 - '@graphql-tools/graphql-tag-pluck@8.3.6(graphql@16.9.0)': + '@graphql-tools/graphql-tag-pluck@8.3.6(graphql@16.10.0)': dependencies: '@babel/core': 7.26.0 '@babel/parser': 7.26.2 '@babel/plugin-syntax-import-assertions': 7.26.0(@babel/core@7.26.0) '@babel/traverse': 7.25.9 '@babel/types': 7.25.2 - '@graphql-tools/utils': 10.6.1(graphql@16.9.0) - graphql: 16.9.0 + '@graphql-tools/utils': 10.6.1(graphql@16.10.0) + graphql: 16.10.0 tslib: 2.7.0 transitivePeerDependencies: - supports-color - '@graphql-tools/import@7.0.5(graphql@16.9.0)': + '@graphql-tools/import@7.0.5(graphql@16.10.0)': dependencies: - '@graphql-tools/utils': 10.6.1(graphql@16.9.0) - graphql: 16.9.0 + '@graphql-tools/utils': 10.6.1(graphql@16.10.0) + graphql: 16.10.0 resolve-from: 5.0.0 tslib: 2.7.0 - '@graphql-tools/json-file-loader@8.0.5(graphql@16.9.0)': + '@graphql-tools/json-file-loader@8.0.5(graphql@16.10.0)': dependencies: - '@graphql-tools/utils': 10.6.1(graphql@16.9.0) + '@graphql-tools/utils': 10.6.1(graphql@16.10.0) globby: 11.1.0 - graphql: 16.9.0 + graphql: 16.10.0 tslib: 2.7.0 unixify: 1.0.0 - '@graphql-tools/load@8.0.6(graphql@16.9.0)': + '@graphql-tools/load@8.0.6(graphql@16.10.0)': dependencies: - '@graphql-tools/schema': 10.0.10(graphql@16.9.0) - '@graphql-tools/utils': 10.6.1(graphql@16.9.0) - graphql: 16.9.0 + '@graphql-tools/schema': 10.0.10(graphql@16.10.0) + '@graphql-tools/utils': 10.6.1(graphql@16.10.0) + graphql: 16.10.0 p-limit: 3.1.0 tslib: 2.7.0 - '@graphql-tools/merge@9.0.11(graphql@16.9.0)': + '@graphql-tools/merge@9.0.11(graphql@16.10.0)': dependencies: - '@graphql-tools/utils': 10.6.1(graphql@16.9.0) - graphql: 16.9.0 + '@graphql-tools/utils': 10.6.1(graphql@16.10.0) + graphql: 16.10.0 tslib: 2.7.0 - '@graphql-tools/schema@10.0.10(graphql@16.9.0)': + '@graphql-tools/schema@10.0.10(graphql@16.10.0)': dependencies: - '@graphql-tools/merge': 9.0.11(graphql@16.9.0) - '@graphql-tools/utils': 10.6.1(graphql@16.9.0) - graphql: 16.9.0 + '@graphql-tools/merge': 9.0.11(graphql@16.10.0) + '@graphql-tools/utils': 10.6.1(graphql@16.10.0) + graphql: 16.10.0 tslib: 2.7.0 value-or-promise: 1.0.12 - '@graphql-tools/url-loader@8.0.17(@types/node@22.10.2)(graphql@16.9.0)': + '@graphql-tools/url-loader@8.0.17(@types/node@22.10.2)(graphql@16.10.0)': dependencies: '@ardatan/sync-fetch': 0.0.1 - '@graphql-tools/executor-graphql-ws': 1.3.3(graphql@16.9.0) - '@graphql-tools/executor-http': 1.1.10(@types/node@22.10.2)(graphql@16.9.0) - '@graphql-tools/executor-legacy-ws': 1.1.4(graphql@16.9.0) - '@graphql-tools/utils': 10.6.1(graphql@16.9.0) - '@graphql-tools/wrap': 10.0.19(graphql@16.9.0) + '@graphql-tools/executor-graphql-ws': 1.3.3(graphql@16.10.0) + '@graphql-tools/executor-http': 1.1.10(@types/node@22.10.2)(graphql@16.10.0) + '@graphql-tools/executor-legacy-ws': 1.1.4(graphql@16.10.0) + '@graphql-tools/utils': 10.6.1(graphql@16.10.0) + '@graphql-tools/wrap': 10.0.19(graphql@16.10.0) '@types/ws': 8.5.12 '@whatwg-node/fetch': 0.10.1 - graphql: 16.9.0 + graphql: 16.10.0 isomorphic-ws: 5.0.0(ws@8.18.0) tslib: 2.7.0 value-or-promise: 1.0.12 @@ -4122,25 +4116,25 @@ snapshots: - encoding - utf-8-validate - '@graphql-tools/utils@10.6.1(graphql@16.9.0)': + '@graphql-tools/utils@10.6.1(graphql@16.10.0)': dependencies: - '@graphql-typed-document-node/core': 3.2.0(graphql@16.9.0) + '@graphql-typed-document-node/core': 3.2.0(graphql@16.10.0) cross-inspect: 1.0.1 dset: 3.1.4 - graphql: 16.9.0 + graphql: 16.10.0 tslib: 2.7.0 - '@graphql-tools/wrap@10.0.19(graphql@16.9.0)': + '@graphql-tools/wrap@10.0.19(graphql@16.10.0)': dependencies: - '@graphql-tools/delegate': 10.2.1(graphql@16.9.0) - '@graphql-tools/schema': 10.0.10(graphql@16.9.0) - '@graphql-tools/utils': 10.6.1(graphql@16.9.0) - graphql: 16.9.0 + '@graphql-tools/delegate': 10.2.1(graphql@16.10.0) + '@graphql-tools/schema': 10.0.10(graphql@16.10.0) + '@graphql-tools/utils': 10.6.1(graphql@16.10.0) + graphql: 16.10.0 tslib: 2.7.0 - '@graphql-typed-document-node/core@3.2.0(graphql@16.9.0)': + '@graphql-typed-document-node/core@3.2.0(graphql@16.10.0)': dependencies: - graphql: 16.9.0 + graphql: 16.10.0 '@humanfs/core@0.19.1': {} @@ -5284,16 +5278,16 @@ snapshots: graphemer@1.4.0: {} - graphql-config@5.1.3(@types/node@22.10.2)(graphql@16.9.0)(typescript@5.7.2): + graphql-config@5.1.3(@types/node@22.10.2)(graphql@16.10.0)(typescript@5.7.2): dependencies: - '@graphql-tools/graphql-file-loader': 8.0.5(graphql@16.9.0) - '@graphql-tools/json-file-loader': 8.0.5(graphql@16.9.0) - '@graphql-tools/load': 8.0.6(graphql@16.9.0) - '@graphql-tools/merge': 9.0.11(graphql@16.9.0) - '@graphql-tools/url-loader': 8.0.17(@types/node@22.10.2)(graphql@16.9.0) - '@graphql-tools/utils': 10.6.1(graphql@16.9.0) + '@graphql-tools/graphql-file-loader': 8.0.5(graphql@16.10.0) + '@graphql-tools/json-file-loader': 8.0.5(graphql@16.10.0) + '@graphql-tools/load': 8.0.6(graphql@16.10.0) + '@graphql-tools/merge': 9.0.11(graphql@16.10.0) + '@graphql-tools/url-loader': 8.0.17(@types/node@22.10.2)(graphql@16.10.0) + '@graphql-tools/utils': 10.6.1(graphql@16.10.0) cosmiconfig: 8.3.6(typescript@5.7.2) - graphql: 16.9.0 + graphql: 16.10.0 jiti: 2.4.0 minimatch: 9.0.5 string-env-interpolation: 1.0.1 @@ -5305,16 +5299,16 @@ snapshots: - typescript - utf-8-validate - graphql-depth-limit@1.1.0(graphql@16.9.0): + graphql-depth-limit@1.1.0(graphql@16.10.0): dependencies: arrify: 1.0.1 - graphql: 16.9.0 + graphql: 16.10.0 - graphql-ws@5.16.0(graphql@16.9.0): + graphql-ws@5.16.0(graphql@16.10.0): dependencies: - graphql: 16.9.0 + graphql: 16.10.0 - graphql@16.9.0: {} + graphql@16.10.0: {} has-flag@3.0.0: {} diff --git a/src/environment.ts b/src/environment.ts index abb967c..8c06333 100644 --- a/src/environment.ts +++ b/src/environment.ts @@ -5,18 +5,23 @@ import type { Middleware } from './middleware'; import { reactQuery, storybook, vitest } from './presets/misc'; import { react, reactRefresh } from './presets/react'; -const jsdoc = () => import('./presets/jsdoc'); -const tailwind = () => import('./presets/tailwind'); -const testingLibrary = () => import('./presets/testing-library'); +type Pkg = typeof import('../package.json'); +type Dependency = keyof Pkg['dependencies'] | RemoveType; + +type RemoveType = T extends `@types/${infer U}__${infer V}` + ? `@${U}/${V}` + : T extends `@types/${infer U}` + ? U + : T; const middlewares = { react, reactRefresh, - tailwind, + tailwind: () => import('./presets/tailwind'), storybook, reactQuery, - testingLibrary, - jsdoc, + testingLibrary: () => import('./presets/testing-library'), + jsdoc: () => import('./presets/jsdoc'), vitest, } satisfies { [key: string]: Middleware; @@ -24,7 +29,7 @@ const middlewares = { export const envs: { dependency: string; - eslintPlugin?: string; + eslintPlugin?: Dependency; middleware: keyof typeof middlewares; }[] = [ { @@ -57,7 +62,7 @@ export const envs: { }, { dependency: 'vitest', - eslintPlugin: 'eslint-plugin-vitest', + eslintPlugin: '@vitest/eslint-plugin', middleware: 'vitest', }, ];