@jimmy.codes/eslint-config 3.8.1 → 3.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var B=Object.defineProperty;var r=(e,t)=>B(e,"name",{value:t,configurable:!0});var I=require("astro-eslint-parser"),N=require("eslint-plugin-astro"),m=require("eslint-plugin-jsx-a11y"),d=require("globals"),a=require("typescript-eslint"),h=require("@eslint-community/eslint-plugin-eslint-comments/configs"),c=require("eslint-plugin-import-x"),v=require("eslint-plugin-n"),$=require("@eslint/js"),k=require("eslint-plugin-perfectionist"),F=require("eslint-config-prettier"),J=require("@tanstack/eslint-plugin-query"),y=require("eslint-plugin-react"),V=require("eslint-plugin-react-hooks"),X=require("eslint-plugin-react-refresh"),n=require("local-pkg"),p=require("eslint-plugin-jest"),z=require("eslint-plugin-jest-dom"),q=require("eslint-plugin-testing-library"),O=require("eslint-plugin-unicorn");function g(e){var t=Object.create(null);return e&&Object.keys(e).forEach(function(s){if(s!=="default"){var i=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(t,s,i.get?i:{enumerable:!0,get:r(function(){return e[s]},"get")})}}),t.default=e,Object.freeze(t)}r(g,"_interopNamespaceDefault");var D=g(I),U=g(X),w=g(z);const o="?([cm])[jt]s?(x)",H=["**/node_modules","**/dist","**/package-lock.json","**/yarn.lock","**/pnpm-lock.yaml","**/bun.lockb","**/output","**/coverage","**/temp","**/.temp","**/tmp","**/.tmp","**/.history","**/.vitepress/cache","**/.nuxt","**/.next","**/.vercel","**/.changeset","**/.idea","**/.cache","**/.output","**/.vite-inspect","**/.yarn","**/storybook-static","**/.eslint-config-inspector","**/playwright-report","**/.astro","**/.vinxi","**/app.config.timestamp_*.js","**/CHANGELOG*.md","**/*.min.*","**/LICENSE*","**/__snapshots__","**/auto-import?(s).d.ts","**/components.d.ts","**/vite.config.ts.*.mjs","**/*.gen.*","!.storybook"],M="**/*.?([cm])js",j="**/*.?([cm])jsx",E="**/*.?([cm])tsx",l=[`**/__tests__/**/*.${o}`,`**/*.spec.${o}`,`**/*.test.${o}`,`**/*.bench.${o}`,`**/*.benchmark.${o}`],_=[`**/e2e/**/*.spec.${o}`,`**/e2e/**/*.test.${o}`,`**/cypress/**/*.spec.${o}`,`**/cypress/**/*.test.${o}`],Q="**/*.cjs",W="**/*.astro",Y=["vi.mock","describe","expect","it"],K=["@testing-library/react"],Z=r(()=>{const e=[W];return[{files:e,languageOptions:{globals:{...d.node,Astro:!1,Fragment:!1},parser:D,parserOptions:{extraFileExtensions:[".astro"],parser:a.parser},sourceType:"module"},name:"jimmy.codes/astro",plugins:{astro:N,"jsx-a11y":m},processor:"astro/client-side-ts",rules:{...m.configs.recommended.rules,"astro/missing-client-only-directive-value":"error","astro/no-conflict-set-directives":"error","astro/no-deprecated-astro-canonicalurl":"error","astro/no-deprecated-astro-fetchcontent":"error","astro/no-deprecated-astro-resolve":"error","astro/no-deprecated-getentrybyslug":"error","astro/no-exports-from-components":"off","astro/no-unused-define-vars-in-style":"error","astro/valid-compile":"error"}},{files:e,languageOptions:{parserOptions:a.configs.disableTypeChecked.languageOptions?.parserOptions},name:"jimmy.codes/astro/disable-type-checked",rules:a.configs.disableTypeChecked.rules},{name:"jimmy.codes/astro/imports",settings:{"import-x/core-modules":["astro:content"]}}]},"astroConfig"),ee=r(()=>[{files:[Q],languageOptions:{globals:d.commonjs},name:"jimmy.codes/commonjs"}],"commonjsConfig"),re={...h.recommended.rules,"@eslint-community/eslint-comments/no-unused-disable":"off","@eslint-community/eslint-comments/require-description":"error"},te=r(()=>[{...h.recommended,name:"jimmy.codes/eslint-comments",rules:re}],"eslintCommentsConfig"),se=r(e=>[{ignores:[...H,...e],name:"jimmy.codes/ignores"}],"ignoresConfig"),oe={...c.configs.recommended.rules,"import-x/consistent-type-specifier-style":["error","prefer-top-level"],"import-x/extensions":["error","never",{checkTypedImports:!0,svg:"always"}],"import-x/first":"error","import-x/namespace":"off","import-x/newline-after-import":"error","import-x/no-absolute-path":"error","import-x/no-duplicates":"error","import-x/no-empty-named-blocks":"error","import-x/no-named-as-default":"error","import-x/no-named-as-default-member":"error","import-x/no-self-import":"error","import-x/no-unresolved":["error",{ignore:[String.raw`\.svg$`]}],"import-x/no-useless-path-segments":"error"},ne={name:"jimmy.codes/imports/typescript",rules:c.configs.typescript.rules,settings:{...c.configs.typescript.settings,"import-x/resolver":{...c.configs.typescript.settings["import-x/resolver"],typescript:!0}}},ie=r(({typescript:e=!1}={})=>[{languageOptions:{parserOptions:{ecmaVersion:"latest",sourceType:"module"}},name:"jimmy.codes/imports",plugins:{"import-x":c,n:v},rules:oe,settings:{"import-x/parsers":{espree:[".js",".cjs",".mjs",".jsx"]}}},...e?[ne]:[]],"importsConfig"),ae={...$.configs.recommended.rules,"array-callback-return":["error",{allowImplicit:!0}],"arrow-body-style":["error","always"],curly:["error","all"],"no-console":"warn","no-self-compare":"error","no-template-curly-in-string":"error","no-unmodified-loop-condition":"error","no-unreachable-loop":"error","no-use-before-define":["error",{allowNamedExports:!1,classes:!1,functions:!1,variables:!0}],"no-useless-rename":"error","object-shorthand":"error","prefer-arrow-callback":"error"},ce=r(()=>[{linterOptions:{reportUnusedDisableDirectives:!0},name:"jimmy.codes/javascript",rules:ae}],"javascriptConfig"),pe={"n/no-process-exit":"off","n/prefer-node-protocol":"error"},le=r(()=>[{name:"jimmy.codes/node",plugins:{n:v},rules:pe}],"nodeConfig"),fe={...k.configs["recommended-natural"].rules,"perfectionist/sort-imports":["error",{customGroups:{type:{},value:{}},environment:"node",groups:["builtin","type","external","internal-type","internal",["parent-type","sibling-type","index-type"],["parent","sibling","index"],"object","unknown"],internalPattern:["~/**","@/**"],order:"asc",type:"natural"}]},ue=r(()=>[{name:"jimmy.codes/perfectionist",plugins:{perfectionist:k},rules:fe}],"perfectionistConfig"),me=r(()=>[{name:"jimmy.codes/prettier",...F}],"prettierConfig"),de=r(()=>n.isPackageExists("typescript"),"hasTypescript"),ye=r(()=>n.isPackageExists("react"),"hasReact"),C=r(()=>n.isPackageExists("vitest"),"hasVitest"),T=r(()=>n.isPackageExists("jest"),"hasJest"),ge=r(()=>C()||T(),"hasTesting"),je=r(()=>K.some(e=>n.isPackageExists(e)),"hasTestingLibrary"),xe=r(()=>n.isPackageExists("@tanstack/react-query"),"hasReactQuery"),be=r(()=>n.isPackageExists("astro"),"hasAstro"),he=r(e=>e===2?"error":e===1?"warn":"off","toStringSeverity"),R=r((e={})=>Object.fromEntries(Object.entries(e).map(([t,s])=>[t,typeof s=="number"?he(s):s])),"normalizeRuleEntries"),ve={...m.configs.recommended.rules,...R(y.configs.flat?.recommended?.rules),...R(y.configs.flat?.["jsx-runtime"]?.rules),"react/boolean-prop-naming":"off","react/button-has-type":"error","react/checked-requires-onchange-or-readonly":"error","react/default-props-match-prop-types":"error","react/destructuring-assignment":"off","react/forbid-component-props":"off","react/forbid-dom-props":"off","react/forbid-elements":"off","react/forbid-foreign-prop-types":"off","react/forbid-prop-types":"off","react/forward-ref-uses-ref":"error","react/function-component-definition":"off","react/hook-use-state":"error","react/iframe-missing-sandbox":"error","react/jsx-boolean-value":["error","never"],"react/jsx-curly-brace-presence":"error","react/jsx-filename-extension":"off","react/jsx-fragments":["error","syntax"],"react/jsx-handler-names":"off","react/jsx-max-depth":"off","react/jsx-no-bind":"off","react/jsx-no-constructed-context-values":"error","react/jsx-no-leaked-render":"error","react/jsx-no-literals":"off","react/jsx-no-script-url":"error","react/jsx-no-useless-fragment":"error","react/jsx-one-expression-per-line":"off","react/jsx-pascal-case":["error",{allowNamespace:!0}],"react/jsx-props-no-spread-multi":"off","react/jsx-props-no-spreading":"off","react/jsx-sort-default-props":"off","react/jsx-sort-props":"off","react/no-access-state-in-setstate":"error","react/no-adjacent-inline-elements":"off","react/no-array-index-key":"off","react/no-arrow-function-lifecycle":"error","react/no-danger":"off","react/no-did-mount-set-state":"error","react/no-did-update-set-state":"error","react/no-invalid-html-attribute":"error","react/no-multi-comp":"off","react/no-namespace":"error","react/no-object-type-as-default-prop":"error","react/no-redundant-should-component-update":"error","react/no-set-state":"off","react/no-this-in-sfc":"error","react/no-typos":"error","react/no-unstable-nested-components":"error","react/no-unused-class-component-methods":"error","react/no-unused-prop-types":"error","react/no-unused-state":"error","react/no-will-update-set-state":"error","react/prefer-es6-class":"off","react/prefer-exact-props":"off","react/prefer-read-only-props":"off","react/prefer-stateless-function":"off","react/require-default-props":"off","react/require-optimization":"off","react/self-closing-comp":"error","react/sort-comp":"off","react/sort-default-props":"off","react/sort-prop-types":"off","react/state-in-constructor":"off","react/static-property-placement":"off","react/style-prop-object":"error","react/void-dom-elements-no-children":"error","react-hooks/exhaustive-deps":"error","react-hooks/rules-of-hooks":"error","react-refresh/only-export-components":["warn",{allowConstantExport:!0}]},ke=r(({utilities:e=[]}={},t=!0)=>{const s=e.includes("@tanstack/query")||t&&xe();return[{files:[j,E],languageOptions:{globals:{...d.browser},parserOptions:{ecmaFeatures:{jsx:!0},jsxPragma:null}},name:"jimmy.codes/react",plugins:{"jsx-a11y":m,react:y,"react-hooks":V,"react-refresh":U},rules:ve,settings:{react:{version:"detect"}}},...s?[{files:[j,E],name:"jimmy.codes/react/query",plugins:{"@tanstack/query":J},rules:{"@tanstack/query/exhaustive-deps":"error","@tanstack/query/no-rest-destructuring":"warn","@tanstack/query/stable-query-client":"error"}}]:[]]},"reactConfig"),L={...p.configs["flat/recommended"].rules,...p.configs["flat/style"].rules,"jest/consistent-test-it":["error",{fn:"test",withinDescribe:"it"}],"jest/no-alias-methods":"error","jest/no-commented-out-tests":"error","jest/no-conditional-in-test":"error","jest/no-confusing-set-timeout":"error","jest/no-duplicate-hooks":"error","jest/no-hooks":"off","jest/no-large-snapshots":"off","jest/no-restricted-jest-methods":"off","jest/no-restricted-matchers":"off","jest/no-test-return-statement":"error","jest/no-untyped-mock-factory":"off","jest/prefer-called-with":"error","jest/prefer-comparison-matcher":"error","jest/prefer-each":"error","jest/prefer-equality-matcher":"error","jest/prefer-expect-assertions":"off","jest/prefer-expect-resolves":"error","jest/prefer-hooks-in-order":"error","jest/prefer-hooks-on-top":"error","jest/prefer-lowercase-title":"off","jest/prefer-mock-promise-shorthand":"error","jest/prefer-snapshot-hint":"error","jest/prefer-spy-on":"off","jest/prefer-strict-equal":"error","jest/prefer-todo":"warn","jest/require-hook":"error","jest/require-to-throw-message":"error","jest/require-top-level-describe":"off","jest/unbound-method":"off"},qe=r(()=>[{files:l,name:"jimmy.codes/testing/testing-library",plugins:{"jest-dom":w,"testing-library":q},rules:{...q.configs.react.rules,...w.configs["flat/recommended"].rules}},{files:_,name:"jimmy.codes/testing/testing-library/disabled",rules:{"testing-library/prefer-screen-queries":"off"}}],"testingLibraryConfig"),Oe=r(({framework:e="vitest",utilities:t}={},s=!0)=>{const i=s?C():e==="vitest",f=e==="jest"||s&&T(),u=!!t?.includes("testing-library")||s&&je();return[{files:l,name:"jimmy.codes/testing",...p.configs["flat/recommended"]},...i?[{files:l,name:"jimmy.codes/testing/vitest",...p.configs["flat/recommended"],rules:{...L,"jest/no-deprecated-functions":"off","jest/require-hook":["error",{allowedFunctionCalls:Y}]}}]:[],...f?[{files:l,name:"jimmy.codes/testing/jest",...p.configs["flat/recommended"],rules:L}]:[],{files:_,name:"jimmy.codes/testing/disabled",rules:{"jest/expect-expect":"off","jest/no-deprecated-functions":"off","jest/require-hook":"off"}},...u?qe():[]]},"testingConfig"),we=r(e=>[...a.configs.strictTypeChecked,...a.configs.stylisticTypeChecked.filter(t=>t.name==="typescript-eslint/stylistic-type-checked"),{languageOptions:{parserOptions:{project:e.project,tsconfigRootDir:process.cwd()}},name:"jimmy.codes/typescript",rules:{"@typescript-eslint/consistent-type-exports":["error",{fixMixedExportsWithInlineTypeSpecifier:!1}],"@typescript-eslint/consistent-type-imports":["error",{fixStyle:"separate-type-imports"}],"@typescript-eslint/no-deprecated":"warn","@typescript-eslint/no-misused-promises":["error",{checksVoidReturn:{attributes:!1}}],"@typescript-eslint/no-use-before-define":["error",{allowNamedExports:!1,classes:!1,functions:!1,variables:!0}],"@typescript-eslint/restrict-template-expressions":["error",{allowNumber:!0}],"no-use-before-define":"off"}},{files:[M,j],...a.configs.disableTypeChecked},{files:l,name:"jimmy.codes/typescript/testing",rules:{"@typescript-eslint/no-unsafe-argument":"off","@typescript-eslint/no-unsafe-assignment":"off"}}],"typescriptConfig"),Ee={...O.configs["flat/recommended"].rules,"unicorn/filename-case":"off","unicorn/import-style":"off","unicorn/no-abusive-eslint-disable":"off","unicorn/no-anonymous-default-export":"off","unicorn/no-array-callback-reference":"off","unicorn/no-array-reduce":"off","unicorn/no-null":"off","unicorn/no-process-exit":"off","unicorn/no-useless-undefined":["error",{checkArguments:!1,checkArrowFunctionBody:!1}],"unicorn/prefer-node-protocol":"off","unicorn/prevent-abbreviations":"off"},_e=r(()=>[{...O.configs["flat/recommended"],name:"jimmy.codes/unicorn",rules:Ee}],"unicornConfig"),Ce=r(e=>typeof e=="object"?e:{project:"./tsconfig.json"},"typescriptOptions"),Te=r(e=>typeof e=="object"?e:{framework:"vitest"},"testingOptions"),Re=r(e=>typeof e=="object"?e:{utilities:[]},"reactOptions"),Le=r(({astro:e=!1,autoDetect:t=!0,configs:s=[],ignores:i=[],react:f=!1,testing:u=!1,typescript:x=!1}={},...S)=>{const b=x||t&&de(),P=f||t&&ye(),A=u||t&&ge(),G=e||t&&be();return[ce(),ue(),le(),_e(),te(),ie({typescript:b}),b?we(Ce(x)):[],P?ke(Re(f),t):[],G?Z():[],A?Oe(Te(u),t):[],me(),ee(),se(i),s,S].flat()},"jimmyDotCodes");module.exports=Le;
1
+ "use strict";var B=Object.defineProperty;var r=(e,t)=>B(e,"name",{value:t,configurable:!0});var I=require("astro-eslint-parser"),N=require("eslint-plugin-astro"),m=require("eslint-plugin-jsx-a11y"),d=require("globals"),a=require("typescript-eslint"),h=require("@eslint-community/eslint-plugin-eslint-comments/configs"),c=require("eslint-plugin-import-x"),v=require("eslint-plugin-n"),$=require("@eslint/js"),k=require("eslint-plugin-perfectionist"),F=require("eslint-config-prettier"),J=require("@tanstack/eslint-plugin-query"),y=require("eslint-plugin-react"),V=require("eslint-plugin-react-hooks"),X=require("eslint-plugin-react-refresh"),n=require("local-pkg"),p=require("eslint-plugin-jest"),z=require("eslint-plugin-jest-dom"),q=require("eslint-plugin-testing-library"),O=require("eslint-plugin-unicorn");function g(e){var t=Object.create(null);return e&&Object.keys(e).forEach(function(s){if(s!=="default"){var i=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(t,s,i.get?i:{enumerable:!0,get:r(function(){return e[s]},"get")})}}),t.default=e,Object.freeze(t)}r(g,"_interopNamespaceDefault");var D=g(I),U=g(X),w=g(z);const o="?([cm])[jt]s?(x)",H=["**/node_modules","**/dist","**/package-lock.json","**/yarn.lock","**/pnpm-lock.yaml","**/bun.lockb","**/output","**/coverage","**/temp","**/.temp","**/tmp","**/.tmp","**/.history","**/.vitepress/cache","**/.nuxt","**/.next","**/.vercel","**/.changeset","**/.idea","**/.cache","**/.output","**/.vite-inspect","**/.yarn","**/storybook-static","**/.eslint-config-inspector","**/playwright-report","**/.astro","**/.vinxi","**/app.config.timestamp_*.js","**/CHANGELOG*.md","**/*.min.*","**/LICENSE*","**/__snapshots__","**/auto-import?(s).d.ts","**/components.d.ts","**/vite.config.ts.*.mjs","**/*.gen.*","!.storybook"],M="**/*.?([cm])js",j="**/*.?([cm])jsx",E="**/*.?([cm])tsx",l=[`**/__tests__/**/*.${o}`,`**/*.spec.${o}`,`**/*.test.${o}`,`**/*.bench.${o}`,`**/*.benchmark.${o}`],_=[`**/e2e/**/*.spec.${o}`,`**/e2e/**/*.test.${o}`,`**/cypress/**/*.spec.${o}`,`**/cypress/**/*.test.${o}`],Q="**/*.cjs",W="**/*.astro",Y=["vi.mock","describe","expect","it"],K=["@testing-library/react"],Z=r(()=>{const e=[W];return[{files:e,languageOptions:{globals:{...d.node,Astro:!1,Fragment:!1},parser:D,parserOptions:{extraFileExtensions:[".astro"],parser:a.parser},sourceType:"module"},name:"jimmy.codes/astro",plugins:{astro:N,"jsx-a11y":m},processor:"astro/client-side-ts",rules:{...m.configs.recommended.rules,"astro/missing-client-only-directive-value":"error","astro/no-conflict-set-directives":"error","astro/no-deprecated-astro-canonicalurl":"error","astro/no-deprecated-astro-fetchcontent":"error","astro/no-deprecated-astro-resolve":"error","astro/no-deprecated-getentrybyslug":"error","astro/no-exports-from-components":"off","astro/no-unused-define-vars-in-style":"error","astro/valid-compile":"error"}},{files:e,languageOptions:{parserOptions:a.configs.disableTypeChecked.languageOptions?.parserOptions},name:"jimmy.codes/astro/disable-type-checked",rules:a.configs.disableTypeChecked.rules},{name:"jimmy.codes/astro/imports",settings:{"import-x/core-modules":["astro:content"]}}]},"astroConfig"),ee=r(()=>[{files:[Q],languageOptions:{globals:d.commonjs},name:"jimmy.codes/commonjs"}],"commonjsConfig"),re={...h.recommended.rules,"@eslint-community/eslint-comments/no-unused-disable":"off","@eslint-community/eslint-comments/require-description":"error"},te=r(()=>[{...h.recommended,name:"jimmy.codes/eslint-comments",rules:re}],"eslintCommentsConfig"),se=r(e=>[{ignores:[...H,...e],name:"jimmy.codes/ignores"}],"ignoresConfig"),oe={...c.configs.recommended.rules,"import-x/consistent-type-specifier-style":["error","prefer-top-level"],"import-x/extensions":["error","never",{checkTypedImports:!0,svg:"always"}],"import-x/first":"error","import-x/namespace":"off","import-x/newline-after-import":"error","import-x/no-absolute-path":"error","import-x/no-duplicates":"error","import-x/no-empty-named-blocks":"error","import-x/no-named-as-default":"error","import-x/no-named-as-default-member":"error","import-x/no-self-import":"error","import-x/no-unresolved":["error",{ignore:[String.raw`\.svg$`]}],"import-x/no-useless-path-segments":"error"},ne={name:"jimmy.codes/imports/typescript",rules:c.configs.typescript.rules,settings:{...c.configs.typescript.settings,"import-x/resolver":{...c.configs.typescript.settings["import-x/resolver"],typescript:!0}}},ie=r(({typescript:e=!1}={})=>[{name:"jimmy.codes/imports",plugins:{"import-x":c,n:v},rules:oe},...e?[ne]:[]],"importsConfig"),ae={...$.configs.recommended.rules,"array-callback-return":["error",{allowImplicit:!0}],"arrow-body-style":["error","always"],curly:["error","all"],"no-console":"warn","no-self-compare":"error","no-template-curly-in-string":"error","no-unmodified-loop-condition":"error","no-unreachable-loop":"error","no-use-before-define":["error",{allowNamedExports:!1,classes:!1,functions:!1,variables:!0}],"no-useless-rename":"error","object-shorthand":"error","prefer-arrow-callback":"error"},ce=r(()=>[{linterOptions:{reportUnusedDisableDirectives:!0},name:"jimmy.codes/javascript",rules:ae}],"javascriptConfig"),pe={"n/no-process-exit":"off","n/prefer-node-protocol":"error"},le=r(()=>[{name:"jimmy.codes/node",plugins:{n:v},rules:pe}],"nodeConfig"),fe={...k.configs["recommended-natural"].rules,"perfectionist/sort-imports":["error",{customGroups:{type:{},value:{}},environment:"node",groups:["builtin","type","external","internal-type","internal",["parent-type","sibling-type","index-type"],["parent","sibling","index"],"object","unknown"],internalPattern:["~/**","@/**"],order:"asc",type:"natural"}]},ue=r(()=>[{name:"jimmy.codes/perfectionist",plugins:{perfectionist:k},rules:fe}],"perfectionistConfig"),me=r(()=>[{name:"jimmy.codes/prettier",...F}],"prettierConfig"),de=r(()=>n.isPackageExists("typescript"),"hasTypescript"),ye=r(()=>n.isPackageExists("react"),"hasReact"),C=r(()=>n.isPackageExists("vitest"),"hasVitest"),T=r(()=>n.isPackageExists("jest"),"hasJest"),ge=r(()=>C()||T(),"hasTesting"),je=r(()=>K.some(e=>n.isPackageExists(e)),"hasTestingLibrary"),be=r(()=>n.isPackageExists("@tanstack/react-query"),"hasReactQuery"),xe=r(()=>n.isPackageExists("astro"),"hasAstro"),he=r(e=>e===2?"error":e===1?"warn":"off","toStringSeverity"),R=r((e={})=>Object.fromEntries(Object.entries(e).map(([t,s])=>[t,typeof s=="number"?he(s):s])),"normalizeRuleEntries"),ve={...m.configs.recommended.rules,...R(y.configs.flat?.recommended?.rules),...R(y.configs.flat?.["jsx-runtime"]?.rules),"react/boolean-prop-naming":"off","react/button-has-type":"error","react/checked-requires-onchange-or-readonly":"error","react/default-props-match-prop-types":"error","react/destructuring-assignment":"off","react/forbid-component-props":"off","react/forbid-dom-props":"off","react/forbid-elements":"off","react/forbid-foreign-prop-types":"off","react/forbid-prop-types":"off","react/forward-ref-uses-ref":"error","react/function-component-definition":"off","react/hook-use-state":"error","react/iframe-missing-sandbox":"error","react/jsx-boolean-value":["error","never"],"react/jsx-curly-brace-presence":"error","react/jsx-filename-extension":"off","react/jsx-fragments":["error","syntax"],"react/jsx-handler-names":"off","react/jsx-max-depth":"off","react/jsx-no-bind":"off","react/jsx-no-constructed-context-values":"error","react/jsx-no-leaked-render":"error","react/jsx-no-literals":"off","react/jsx-no-script-url":"error","react/jsx-no-useless-fragment":"error","react/jsx-one-expression-per-line":"off","react/jsx-pascal-case":["error",{allowNamespace:!0}],"react/jsx-props-no-spread-multi":"off","react/jsx-props-no-spreading":"off","react/jsx-sort-default-props":"off","react/jsx-sort-props":"off","react/no-access-state-in-setstate":"error","react/no-adjacent-inline-elements":"off","react/no-array-index-key":"off","react/no-arrow-function-lifecycle":"error","react/no-danger":"off","react/no-did-mount-set-state":"error","react/no-did-update-set-state":"error","react/no-invalid-html-attribute":"error","react/no-multi-comp":"off","react/no-namespace":"error","react/no-object-type-as-default-prop":"error","react/no-redundant-should-component-update":"error","react/no-set-state":"off","react/no-this-in-sfc":"error","react/no-typos":"error","react/no-unstable-nested-components":"error","react/no-unused-class-component-methods":"error","react/no-unused-prop-types":"error","react/no-unused-state":"error","react/no-will-update-set-state":"error","react/prefer-es6-class":"off","react/prefer-exact-props":"off","react/prefer-read-only-props":"off","react/prefer-stateless-function":"off","react/require-default-props":"off","react/require-optimization":"off","react/self-closing-comp":"error","react/sort-comp":"off","react/sort-default-props":"off","react/sort-prop-types":"off","react/state-in-constructor":"off","react/static-property-placement":"off","react/style-prop-object":"error","react/void-dom-elements-no-children":"error","react-hooks/exhaustive-deps":"error","react-hooks/rules-of-hooks":"error","react-refresh/only-export-components":["warn",{allowConstantExport:!0}]},ke=r(({utilities:e=[]}={},t=!0)=>{const s=e.includes("@tanstack/query")||t&&be();return[{files:[j,E],languageOptions:{globals:{...d.browser},parserOptions:{ecmaFeatures:{jsx:!0},jsxPragma:null}},name:"jimmy.codes/react",plugins:{"jsx-a11y":m,react:y,"react-hooks":V,"react-refresh":U},rules:ve,settings:{react:{version:"detect"}}},...s?[{files:[j,E],name:"jimmy.codes/react/query",plugins:{"@tanstack/query":J},rules:{"@tanstack/query/exhaustive-deps":"error","@tanstack/query/no-rest-destructuring":"warn","@tanstack/query/stable-query-client":"error"}}]:[]]},"reactConfig"),L={...p.configs["flat/recommended"].rules,...p.configs["flat/style"].rules,"jest/consistent-test-it":["error",{fn:"test",withinDescribe:"it"}],"jest/no-alias-methods":"error","jest/no-commented-out-tests":"error","jest/no-conditional-in-test":"error","jest/no-confusing-set-timeout":"error","jest/no-duplicate-hooks":"error","jest/no-hooks":"off","jest/no-large-snapshots":"off","jest/no-restricted-jest-methods":"off","jest/no-restricted-matchers":"off","jest/no-test-return-statement":"error","jest/no-untyped-mock-factory":"off","jest/prefer-called-with":"error","jest/prefer-comparison-matcher":"error","jest/prefer-each":"error","jest/prefer-equality-matcher":"error","jest/prefer-expect-assertions":"off","jest/prefer-expect-resolves":"error","jest/prefer-hooks-in-order":"error","jest/prefer-hooks-on-top":"error","jest/prefer-lowercase-title":"off","jest/prefer-mock-promise-shorthand":"error","jest/prefer-snapshot-hint":"error","jest/prefer-spy-on":"off","jest/prefer-strict-equal":"error","jest/prefer-todo":"warn","jest/require-hook":"error","jest/require-to-throw-message":"error","jest/require-top-level-describe":"off","jest/unbound-method":"off"},qe=r(()=>[{files:l,name:"jimmy.codes/testing/testing-library",plugins:{"jest-dom":w,"testing-library":q},rules:{...q.configs.react.rules,...w.configs["flat/recommended"].rules}},{files:_,name:"jimmy.codes/testing/testing-library/disabled",rules:{"testing-library/prefer-screen-queries":"off"}}],"testingLibraryConfig"),Oe=r(({framework:e="vitest",utilities:t}={},s=!0)=>{const i=s?C():e==="vitest",f=e==="jest"||s&&T(),u=!!t?.includes("testing-library")||s&&je();return[{files:l,name:"jimmy.codes/testing",...p.configs["flat/recommended"]},...i?[{files:l,name:"jimmy.codes/testing/vitest",...p.configs["flat/recommended"],rules:{...L,"jest/no-deprecated-functions":"off","jest/require-hook":["error",{allowedFunctionCalls:Y}]}}]:[],...f?[{files:l,name:"jimmy.codes/testing/jest",...p.configs["flat/recommended"],rules:L}]:[],{files:_,name:"jimmy.codes/testing/disabled",rules:{"jest/expect-expect":"off","jest/no-deprecated-functions":"off","jest/require-hook":"off"}},...u?qe():[]]},"testingConfig"),we=r(e=>[...a.configs.strictTypeChecked,...a.configs.stylisticTypeChecked.filter(t=>t.name==="typescript-eslint/stylistic-type-checked"),{languageOptions:{parserOptions:{project:e.project,tsconfigRootDir:process.cwd()}},name:"jimmy.codes/typescript",rules:{"@typescript-eslint/consistent-type-exports":["error",{fixMixedExportsWithInlineTypeSpecifier:!1}],"@typescript-eslint/consistent-type-imports":["error",{fixStyle:"separate-type-imports"}],"@typescript-eslint/no-deprecated":"warn","@typescript-eslint/no-misused-promises":["error",{checksVoidReturn:{attributes:!1}}],"@typescript-eslint/no-use-before-define":["error",{allowNamedExports:!1,classes:!1,functions:!1,variables:!0}],"@typescript-eslint/restrict-template-expressions":["error",{allowNumber:!0}],"no-use-before-define":"off"}},{files:[M,j],...a.configs.disableTypeChecked},{files:l,name:"jimmy.codes/typescript/testing",rules:{"@typescript-eslint/no-unsafe-argument":"off","@typescript-eslint/no-unsafe-assignment":"off"}}],"typescriptConfig"),Ee={...O.configs["flat/recommended"].rules,"unicorn/filename-case":"off","unicorn/import-style":"off","unicorn/no-abusive-eslint-disable":"off","unicorn/no-anonymous-default-export":"off","unicorn/no-array-callback-reference":"off","unicorn/no-array-reduce":"off","unicorn/no-null":"off","unicorn/no-process-exit":"off","unicorn/no-useless-undefined":["error",{checkArguments:!1,checkArrowFunctionBody:!1}],"unicorn/prefer-node-protocol":"off","unicorn/prevent-abbreviations":"off"},_e=r(()=>[{...O.configs["flat/recommended"],name:"jimmy.codes/unicorn",rules:Ee}],"unicornConfig"),Ce=r(e=>typeof e=="object"?e:{project:"./tsconfig.json"},"typescriptOptions"),Te=r(e=>typeof e=="object"?e:{framework:"vitest"},"testingOptions"),Re=r(e=>typeof e=="object"?e:{utilities:[]},"reactOptions"),Le=r(({astro:e=!1,autoDetect:t=!0,configs:s=[],ignores:i=[],react:f=!1,testing:u=!1,typescript:b=!1}={},...S)=>{const x=b||t&&de(),P=f||t&&ye(),A=u||t&&ge(),G=e||t&&xe();return[ce(),ue(),le(),_e(),te(),ie({typescript:x}),x?we(Ce(b)):[],P?ke(Re(f),t):[],G?Z():[],A?Oe(Te(u),t):[],me(),ee(),se(i),s,S].flat()},"jimmyDotCodes");module.exports=Le;
package/dist/index.d.cts CHANGED
@@ -4,6 +4,8 @@ import * as eslint_plugin_react_refresh from 'eslint-plugin-react-refresh';
4
4
  import * as eslint_plugin_react_hooks from 'eslint-plugin-react-hooks';
5
5
  import * as eslint_plugin_react from 'eslint-plugin-react';
6
6
  import * as eslint_plugin_n from 'eslint-plugin-n';
7
+ import * as eslint_plugin_import_x_utils_module_visitor_js from 'eslint-plugin-import-x/utils/module-visitor.js';
8
+ import * as eslint_plugin_import_x_types_js from 'eslint-plugin-import-x/types.js';
7
9
  import * as eslint_plugin_jsx_a11y from 'eslint-plugin-jsx-a11y';
8
10
  import * as eslint from 'eslint';
9
11
  import { Linter } from 'eslint';
@@ -10069,15 +10071,414 @@ declare const jimmyDotCodes: ({ astro, autoDetect, configs, ignores, react, test
10069
10071
  };
10070
10072
  };
10071
10073
  } | {
10072
- languageOptions: {
10073
- parserOptions: {
10074
- ecmaVersion: "latest";
10075
- sourceType: "module";
10076
- };
10077
- };
10078
10074
  name: string;
10079
10075
  plugins: {
10080
- "import-x": eslint.ESLint.Plugin;
10076
+ "import-x": {
10077
+ configs: {
10078
+ recommended: {
10079
+ plugins: ["import-x"];
10080
+ rules: {
10081
+ "import-x/no-unresolved": "error";
10082
+ "import-x/named": "error";
10083
+ "import-x/namespace": "error";
10084
+ "import-x/default": "error";
10085
+ "import-x/export": "error";
10086
+ "import-x/no-named-as-default": "warn";
10087
+ "import-x/no-named-as-default-member": "warn";
10088
+ "import-x/no-duplicates": "warn";
10089
+ };
10090
+ parserOptions: {
10091
+ sourceType: "module";
10092
+ ecmaVersion: 2018;
10093
+ };
10094
+ };
10095
+ errors: {
10096
+ plugins: ["import-x"];
10097
+ rules: {
10098
+ "import-x/no-unresolved": 2;
10099
+ "import-x/named": 2;
10100
+ "import-x/namespace": 2;
10101
+ "import-x/default": 2;
10102
+ "import-x/export": 2;
10103
+ };
10104
+ };
10105
+ warnings: {
10106
+ plugins: ["import-x"];
10107
+ rules: {
10108
+ "import-x/no-named-as-default": 1;
10109
+ "import-x/no-named-as-default-member": 1;
10110
+ "import-x/no-rename-default": 1;
10111
+ "import-x/no-duplicates": 1;
10112
+ };
10113
+ };
10114
+ "stage-0": eslint_plugin_import_x_types_js.PluginConfig;
10115
+ react: {
10116
+ settings: {
10117
+ "import-x/extensions": (".js" | ".jsx")[];
10118
+ };
10119
+ languageOptions: {
10120
+ parserOptions: {
10121
+ ecmaFeatures: {
10122
+ jsx: true;
10123
+ };
10124
+ };
10125
+ };
10126
+ };
10127
+ "react-native": {
10128
+ settings: {
10129
+ "import-x/resolver": {
10130
+ node: {
10131
+ extensions: string[];
10132
+ };
10133
+ };
10134
+ };
10135
+ };
10136
+ electron: {
10137
+ settings: {
10138
+ "import-x/core-modules": string[];
10139
+ };
10140
+ };
10141
+ typescript: {
10142
+ settings: {
10143
+ "import-x/extensions": readonly [".ts", ".tsx", ".cts", ".mts", ".js", ".jsx", ".cjs", ".mjs"];
10144
+ "import-x/external-module-folders": string[];
10145
+ "import-x/parsers": {
10146
+ "@typescript-eslint/parser": (".ts" | ".tsx" | ".cts" | ".mts")[];
10147
+ };
10148
+ "import-x/resolver": {
10149
+ typescript: true;
10150
+ };
10151
+ };
10152
+ rules: {
10153
+ "import-x/named": "off";
10154
+ };
10155
+ };
10156
+ };
10157
+ flatConfigs: {
10158
+ recommended: eslint_plugin_import_x_types_js.PluginFlatConfig;
10159
+ errors: eslint_plugin_import_x_types_js.PluginFlatConfig;
10160
+ warnings: eslint_plugin_import_x_types_js.PluginFlatConfig;
10161
+ "stage-0": eslint_plugin_import_x_types_js.PluginFlatConfig;
10162
+ react: {
10163
+ settings: {
10164
+ "import-x/extensions": (".js" | ".mjs" | ".cjs" | ".jsx")[];
10165
+ };
10166
+ languageOptions: {
10167
+ parserOptions: {
10168
+ ecmaFeatures: {
10169
+ jsx: true;
10170
+ };
10171
+ };
10172
+ };
10173
+ };
10174
+ "react-native": {
10175
+ settings: {
10176
+ "import-x/resolver": {
10177
+ node: {
10178
+ extensions: string[];
10179
+ };
10180
+ };
10181
+ };
10182
+ };
10183
+ electron: {
10184
+ settings: {
10185
+ "import-x/core-modules": string[];
10186
+ };
10187
+ };
10188
+ typescript: {
10189
+ settings: {
10190
+ "import-x/extensions": readonly [".ts", ".tsx", ".cts", ".mts", ".js", ".jsx", ".cjs", ".mjs"];
10191
+ "import-x/external-module-folders": string[];
10192
+ "import-x/parsers": {
10193
+ "@typescript-eslint/parser": (".ts" | ".tsx" | ".cts" | ".mts")[];
10194
+ };
10195
+ "import-x/resolver": {
10196
+ typescript: true;
10197
+ };
10198
+ };
10199
+ rules: {
10200
+ "import-x/named": "off";
10201
+ };
10202
+ };
10203
+ };
10204
+ rules: {
10205
+ "no-unresolved": _typescript_eslint_utils_ts_eslint.RuleModule<"unresolved" | "casingMismatch", [((eslint_plugin_import_x_utils_module_visitor_js.ModuleOptions & {
10206
+ caseSensitive?: boolean;
10207
+ caseSensitiveStrict?: boolean;
10208
+ }) | undefined)?], {
10209
+ category?: string;
10210
+ recommended?: true;
10211
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10212
+ named: _typescript_eslint_utils_ts_eslint.RuleModule<"notFound" | "notFoundDeep", [(eslint_plugin_import_x_utils_module_visitor_js.ModuleOptions | undefined)?], {
10213
+ category?: string;
10214
+ recommended?: true;
10215
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10216
+ default: _typescript_eslint_utils_ts_eslint.RuleModule<"noDefaultExport", [], {
10217
+ category?: string;
10218
+ recommended?: true;
10219
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10220
+ namespace: _typescript_eslint_utils_ts_eslint.RuleModule<"noNamesFound" | "computedReference" | "namespaceMember" | "topLevelNames" | "notFoundInNamespace", [{
10221
+ allowComputed?: boolean;
10222
+ }], {
10223
+ category?: string;
10224
+ recommended?: true;
10225
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10226
+ "no-namespace": _typescript_eslint_utils_ts_eslint.RuleModule<"noNamespace", [({
10227
+ ignore?: string[];
10228
+ } | undefined)?], {
10229
+ category?: string;
10230
+ recommended?: true;
10231
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10232
+ export: _typescript_eslint_utils_ts_eslint.RuleModule<"noNamed" | "multiDefault" | "multiNamed", [], {
10233
+ category?: string;
10234
+ recommended?: true;
10235
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10236
+ "no-mutable-exports": _typescript_eslint_utils_ts_eslint.RuleModule<"noMutable", [], {
10237
+ category?: string;
10238
+ recommended?: true;
10239
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10240
+ extensions: _typescript_eslint_utils_ts_eslint.RuleModule<"missing" | "unexpected", (string | {
10241
+ defaultConfig?: string;
10242
+ pattern?: Record<eslint_plugin_import_x_types_js.FileExtension, string>;
10243
+ ignorePackages?: boolean;
10244
+ checkTypeImports?: boolean;
10245
+ })[], {
10246
+ category?: string;
10247
+ recommended?: true;
10248
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10249
+ "no-restricted-paths": _typescript_eslint_utils_ts_eslint.RuleModule<"path" | "mixedGlob" | "glob" | "zone", [({
10250
+ basePath?: string;
10251
+ zones?: Array<{
10252
+ from: eslint_plugin_import_x_types_js.Arrayable<string>;
10253
+ target: eslint_plugin_import_x_types_js.Arrayable<string>;
10254
+ message?: string;
10255
+ except?: string[];
10256
+ }>;
10257
+ } | undefined)?], {
10258
+ category?: string;
10259
+ recommended?: true;
10260
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10261
+ "no-internal-modules": _typescript_eslint_utils_ts_eslint.RuleModule<"noAllowed", [({
10262
+ allow?: string[];
10263
+ forbid?: string[];
10264
+ } | undefined)?], {
10265
+ category?: string;
10266
+ recommended?: true;
10267
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10268
+ "group-exports": _typescript_eslint_utils_ts_eslint.RuleModule<"ExportNamedDeclaration" | "AssignmentExpression", [], {
10269
+ category?: string;
10270
+ recommended?: true;
10271
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10272
+ "no-relative-packages": _typescript_eslint_utils_ts_eslint.RuleModule<"noAllowed", [(eslint_plugin_import_x_utils_module_visitor_js.ModuleOptions | undefined)?], {
10273
+ category?: string;
10274
+ recommended?: true;
10275
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10276
+ "no-relative-parent-imports": _typescript_eslint_utils_ts_eslint.RuleModule<"noAllowed", [(eslint_plugin_import_x_utils_module_visitor_js.ModuleOptions | undefined)?], {
10277
+ category?: string;
10278
+ recommended?: true;
10279
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10280
+ "consistent-type-specifier-style": _typescript_eslint_utils_ts_eslint.RuleModule<"inline" | "topLevel", [(("prefer-inline" | "prefer-top-level") | undefined)?], {
10281
+ category?: string;
10282
+ recommended?: true;
10283
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10284
+ "no-self-import": _typescript_eslint_utils_ts_eslint.RuleModule<"self", [], {
10285
+ category?: string;
10286
+ recommended?: true;
10287
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10288
+ "no-cycle": _typescript_eslint_utils_ts_eslint.RuleModule<"cycle", [(({
10289
+ allowUnsafeDynamicCyclicDependency?: boolean;
10290
+ ignoreExternal?: boolean;
10291
+ maxDepth?: number;
10292
+ } & eslint_plugin_import_x_utils_module_visitor_js.ModuleOptions) | undefined)?], {
10293
+ category?: string;
10294
+ recommended?: true;
10295
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10296
+ "no-named-default": _typescript_eslint_utils_ts_eslint.RuleModule<"default", [], {
10297
+ category?: string;
10298
+ recommended?: true;
10299
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10300
+ "no-named-as-default": _typescript_eslint_utils_ts_eslint.RuleModule<"default", [], {
10301
+ category?: string;
10302
+ recommended?: true;
10303
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10304
+ "no-named-as-default-member": _typescript_eslint_utils_ts_eslint.RuleModule<"member", [], {
10305
+ category?: string;
10306
+ recommended?: true;
10307
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10308
+ "no-anonymous-default-export": _typescript_eslint_utils_ts_eslint.RuleModule<"assign" | "anonymous", [({
10309
+ allowArray?: boolean;
10310
+ allowArrowFunction?: boolean;
10311
+ allowCallExpression?: boolean;
10312
+ allowAnonymousClass?: boolean;
10313
+ allowAnonymousFunction?: boolean;
10314
+ allowLiteral?: boolean;
10315
+ allowObject?: boolean;
10316
+ allowNew?: boolean;
10317
+ } | undefined)?], {
10318
+ category?: string;
10319
+ recommended?: true;
10320
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10321
+ "no-rename-default": _typescript_eslint_utils_ts_eslint.RuleModule<"renameDefault", [((eslint_plugin_import_x_utils_module_visitor_js.ModuleOptions & {
10322
+ preventRenamingBindings?: boolean;
10323
+ }) | undefined)?], {
10324
+ category?: string;
10325
+ recommended?: true;
10326
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10327
+ "no-unused-modules": _typescript_eslint_utils_ts_eslint.RuleModule<"notFound" | "unused", {
10328
+ src?: string[];
10329
+ ignoreExports?: string[];
10330
+ missingExports?: string[];
10331
+ unusedExports?: boolean;
10332
+ ignoreUnusedTypeExports?: boolean;
10333
+ }[], {
10334
+ category?: string;
10335
+ recommended?: true;
10336
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10337
+ "no-commonjs": _typescript_eslint_utils_ts_eslint.RuleModule<"import" | "export", [(({
10338
+ allowPrimitiveModules?: boolean;
10339
+ allowRequire?: boolean;
10340
+ allowConditionalRequire?: boolean;
10341
+ } | "allow-primitive-modules") | undefined)?], {
10342
+ category?: string;
10343
+ recommended?: true;
10344
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10345
+ "no-amd": _typescript_eslint_utils_ts_eslint.RuleModule<"amd", [], {
10346
+ category?: string;
10347
+ recommended?: true;
10348
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10349
+ "no-duplicates": _typescript_eslint_utils_ts_eslint.RuleModule<"duplicate", [({
10350
+ considerQueryString?: boolean;
10351
+ "prefer-inline"?: boolean;
10352
+ } | undefined)?], {
10353
+ category?: string;
10354
+ recommended?: true;
10355
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10356
+ first: _typescript_eslint_utils_ts_eslint.RuleModule<"absolute" | "order", [("absolute-first" | undefined)?], {
10357
+ category?: string;
10358
+ recommended?: true;
10359
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10360
+ "max-dependencies": _typescript_eslint_utils_ts_eslint.RuleModule<"max", [({
10361
+ ignoreTypeImports?: boolean;
10362
+ max?: number;
10363
+ } | undefined)?], {
10364
+ category?: string;
10365
+ recommended?: true;
10366
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10367
+ "no-extraneous-dependencies": _typescript_eslint_utils_ts_eslint.RuleModule<"missing" | "pkgNotFound" | "pkgUnparsable" | "devDep" | "optDep", [({
10368
+ packageDir?: string | string[];
10369
+ devDependencies?: boolean;
10370
+ optionalDependencies?: boolean;
10371
+ peerDependencies?: boolean;
10372
+ bundledDependencies?: boolean;
10373
+ includeInternal?: boolean;
10374
+ includeTypes?: boolean;
10375
+ whitelist?: string[];
10376
+ } | undefined)?], {
10377
+ category?: string;
10378
+ recommended?: true;
10379
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10380
+ "no-absolute-path": _typescript_eslint_utils_ts_eslint.RuleModule<"absolute", [(eslint_plugin_import_x_utils_module_visitor_js.ModuleOptions | undefined)?], {
10381
+ category?: string;
10382
+ recommended?: true;
10383
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10384
+ "no-nodejs-modules": _typescript_eslint_utils_ts_eslint.RuleModule<"builtin", [({
10385
+ allow?: string[];
10386
+ } | undefined)?], {
10387
+ category?: string;
10388
+ recommended?: true;
10389
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10390
+ "no-webpack-loader-syntax": _typescript_eslint_utils_ts_eslint.RuleModule<"unexpected", [], {
10391
+ category?: string;
10392
+ recommended?: true;
10393
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10394
+ order: _typescript_eslint_utils_ts_eslint.RuleModule<"error" | "order" | "noLineWithinGroup" | "noLineBetweenGroups" | "oneLineBetweenGroups", [({
10395
+ "newlines-between"?: "always" | "always-and-inside-groups" | "ignore" | "never";
10396
+ alphabetize?: Partial<eslint_plugin_import_x_types_js.AlphabetizeOptions>;
10397
+ distinctGroup?: boolean;
10398
+ groups?: ReadonlyArray<eslint_plugin_import_x_types_js.Arrayable<eslint_plugin_import_x_types_js.ImportType>>;
10399
+ pathGroupsExcludedImportTypes?: eslint_plugin_import_x_types_js.ImportType[];
10400
+ pathGroups?: eslint_plugin_import_x_types_js.PathGroup[];
10401
+ warnOnUnassignedImports?: boolean;
10402
+ } | undefined)?], {
10403
+ category?: string;
10404
+ recommended?: true;
10405
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10406
+ "newline-after-import": _typescript_eslint_utils_ts_eslint.RuleModule<"newline", [({
10407
+ count?: number;
10408
+ exactCount?: boolean;
10409
+ considerComments?: boolean;
10410
+ } | undefined)?], {
10411
+ category?: string;
10412
+ recommended?: true;
10413
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10414
+ "prefer-default-export": _typescript_eslint_utils_ts_eslint.RuleModule<"any" | "single", [({
10415
+ target?: "single" | "any";
10416
+ } | undefined)?], {
10417
+ category?: string;
10418
+ recommended?: true;
10419
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10420
+ "no-default-export": _typescript_eslint_utils_ts_eslint.RuleModule<"preferNamed" | "noAliasDefault", [], {
10421
+ category?: string;
10422
+ recommended?: true;
10423
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10424
+ "no-named-export": _typescript_eslint_utils_ts_eslint.RuleModule<"noAllowed", [], {
10425
+ category?: string;
10426
+ recommended?: true;
10427
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10428
+ "no-dynamic-require": _typescript_eslint_utils_ts_eslint.RuleModule<"import" | "require", [({
10429
+ esmodule?: boolean;
10430
+ } | undefined)?], {
10431
+ category?: string;
10432
+ recommended?: true;
10433
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10434
+ unambiguous: _typescript_eslint_utils_ts_eslint.RuleModule<"module", [], {
10435
+ category?: string;
10436
+ recommended?: true;
10437
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10438
+ "no-unassigned-import": _typescript_eslint_utils_ts_eslint.RuleModule<"unassigned", [({
10439
+ allow?: string[];
10440
+ } | undefined)?], {
10441
+ category?: string;
10442
+ recommended?: true;
10443
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10444
+ "no-useless-path-segments": _typescript_eslint_utils_ts_eslint.RuleModule<"useless", [((eslint_plugin_import_x_utils_module_visitor_js.ModuleOptions & {
10445
+ noUselessIndex?: boolean;
10446
+ }) | undefined)?], {
10447
+ category?: string;
10448
+ recommended?: true;
10449
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10450
+ "dynamic-import-chunkname": _typescript_eslint_utils_ts_eslint.RuleModule<"leadingComment" | "blockComment" | "paddedSpaces" | "webpackComment" | "chunknameFormat" | "webpackEagerModeNoChunkName" | "webpackRemoveEagerMode" | "webpackRemoveChunkName", [({
10451
+ allowEmpty?: boolean;
10452
+ importFunctions?: readonly string[];
10453
+ webpackChunknameFormat?: string;
10454
+ } | undefined)?], {
10455
+ category?: string;
10456
+ recommended?: true;
10457
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10458
+ "no-import-module-exports": _typescript_eslint_utils_ts_eslint.RuleModule<"notAllowed", [({
10459
+ exceptions?: string[];
10460
+ } | undefined)?], {
10461
+ category?: string;
10462
+ recommended?: true;
10463
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10464
+ "no-empty-named-blocks": _typescript_eslint_utils_ts_eslint.RuleModule<"emptyNamed" | "unused" | "emptyImport", [], {
10465
+ category?: string;
10466
+ recommended?: true;
10467
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10468
+ "exports-last": _typescript_eslint_utils_ts_eslint.RuleModule<"end", [], {
10469
+ category?: string;
10470
+ recommended?: true;
10471
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10472
+ "no-deprecated": _typescript_eslint_utils_ts_eslint.RuleModule<"deprecated", [], {
10473
+ category?: string;
10474
+ recommended?: true;
10475
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10476
+ "imports-first": _typescript_eslint_utils_ts_eslint.RuleModule<"absolute" | "order", [("absolute-first" | undefined)?], {
10477
+ category?: string;
10478
+ recommended?: true;
10479
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10480
+ };
10481
+ };
10081
10482
  n: eslint.ESLint.Plugin & {
10082
10483
  configs: eslint_plugin_n.Configs;
10083
10484
  };
@@ -10105,11 +10506,6 @@ declare const jimmyDotCodes: ({ astro, autoDetect, configs, ignores, react, test
10105
10506
  'import-x/default': "error";
10106
10507
  'import-x/export': "error";
10107
10508
  };
10108
- settings: {
10109
- "import-x/parsers": {
10110
- espree: string[];
10111
- };
10112
- };
10113
10509
  } | {
10114
10510
  linterOptions: {
10115
10511
  reportUnusedDisableDirectives: true;
package/dist/index.d.mts CHANGED
@@ -4,6 +4,8 @@ import * as eslint_plugin_react_refresh from 'eslint-plugin-react-refresh';
4
4
  import * as eslint_plugin_react_hooks from 'eslint-plugin-react-hooks';
5
5
  import * as eslint_plugin_react from 'eslint-plugin-react';
6
6
  import * as eslint_plugin_n from 'eslint-plugin-n';
7
+ import * as eslint_plugin_import_x_utils_module_visitor_js from 'eslint-plugin-import-x/utils/module-visitor.js';
8
+ import * as eslint_plugin_import_x_types_js from 'eslint-plugin-import-x/types.js';
7
9
  import * as eslint_plugin_jsx_a11y from 'eslint-plugin-jsx-a11y';
8
10
  import * as eslint from 'eslint';
9
11
  import { Linter } from 'eslint';
@@ -10069,15 +10071,414 @@ declare const jimmyDotCodes: ({ astro, autoDetect, configs, ignores, react, test
10069
10071
  };
10070
10072
  };
10071
10073
  } | {
10072
- languageOptions: {
10073
- parserOptions: {
10074
- ecmaVersion: "latest";
10075
- sourceType: "module";
10076
- };
10077
- };
10078
10074
  name: string;
10079
10075
  plugins: {
10080
- "import-x": eslint.ESLint.Plugin;
10076
+ "import-x": {
10077
+ configs: {
10078
+ recommended: {
10079
+ plugins: ["import-x"];
10080
+ rules: {
10081
+ "import-x/no-unresolved": "error";
10082
+ "import-x/named": "error";
10083
+ "import-x/namespace": "error";
10084
+ "import-x/default": "error";
10085
+ "import-x/export": "error";
10086
+ "import-x/no-named-as-default": "warn";
10087
+ "import-x/no-named-as-default-member": "warn";
10088
+ "import-x/no-duplicates": "warn";
10089
+ };
10090
+ parserOptions: {
10091
+ sourceType: "module";
10092
+ ecmaVersion: 2018;
10093
+ };
10094
+ };
10095
+ errors: {
10096
+ plugins: ["import-x"];
10097
+ rules: {
10098
+ "import-x/no-unresolved": 2;
10099
+ "import-x/named": 2;
10100
+ "import-x/namespace": 2;
10101
+ "import-x/default": 2;
10102
+ "import-x/export": 2;
10103
+ };
10104
+ };
10105
+ warnings: {
10106
+ plugins: ["import-x"];
10107
+ rules: {
10108
+ "import-x/no-named-as-default": 1;
10109
+ "import-x/no-named-as-default-member": 1;
10110
+ "import-x/no-rename-default": 1;
10111
+ "import-x/no-duplicates": 1;
10112
+ };
10113
+ };
10114
+ "stage-0": eslint_plugin_import_x_types_js.PluginConfig;
10115
+ react: {
10116
+ settings: {
10117
+ "import-x/extensions": (".js" | ".jsx")[];
10118
+ };
10119
+ languageOptions: {
10120
+ parserOptions: {
10121
+ ecmaFeatures: {
10122
+ jsx: true;
10123
+ };
10124
+ };
10125
+ };
10126
+ };
10127
+ "react-native": {
10128
+ settings: {
10129
+ "import-x/resolver": {
10130
+ node: {
10131
+ extensions: string[];
10132
+ };
10133
+ };
10134
+ };
10135
+ };
10136
+ electron: {
10137
+ settings: {
10138
+ "import-x/core-modules": string[];
10139
+ };
10140
+ };
10141
+ typescript: {
10142
+ settings: {
10143
+ "import-x/extensions": readonly [".ts", ".tsx", ".cts", ".mts", ".js", ".jsx", ".cjs", ".mjs"];
10144
+ "import-x/external-module-folders": string[];
10145
+ "import-x/parsers": {
10146
+ "@typescript-eslint/parser": (".ts" | ".tsx" | ".cts" | ".mts")[];
10147
+ };
10148
+ "import-x/resolver": {
10149
+ typescript: true;
10150
+ };
10151
+ };
10152
+ rules: {
10153
+ "import-x/named": "off";
10154
+ };
10155
+ };
10156
+ };
10157
+ flatConfigs: {
10158
+ recommended: eslint_plugin_import_x_types_js.PluginFlatConfig;
10159
+ errors: eslint_plugin_import_x_types_js.PluginFlatConfig;
10160
+ warnings: eslint_plugin_import_x_types_js.PluginFlatConfig;
10161
+ "stage-0": eslint_plugin_import_x_types_js.PluginFlatConfig;
10162
+ react: {
10163
+ settings: {
10164
+ "import-x/extensions": (".js" | ".mjs" | ".cjs" | ".jsx")[];
10165
+ };
10166
+ languageOptions: {
10167
+ parserOptions: {
10168
+ ecmaFeatures: {
10169
+ jsx: true;
10170
+ };
10171
+ };
10172
+ };
10173
+ };
10174
+ "react-native": {
10175
+ settings: {
10176
+ "import-x/resolver": {
10177
+ node: {
10178
+ extensions: string[];
10179
+ };
10180
+ };
10181
+ };
10182
+ };
10183
+ electron: {
10184
+ settings: {
10185
+ "import-x/core-modules": string[];
10186
+ };
10187
+ };
10188
+ typescript: {
10189
+ settings: {
10190
+ "import-x/extensions": readonly [".ts", ".tsx", ".cts", ".mts", ".js", ".jsx", ".cjs", ".mjs"];
10191
+ "import-x/external-module-folders": string[];
10192
+ "import-x/parsers": {
10193
+ "@typescript-eslint/parser": (".ts" | ".tsx" | ".cts" | ".mts")[];
10194
+ };
10195
+ "import-x/resolver": {
10196
+ typescript: true;
10197
+ };
10198
+ };
10199
+ rules: {
10200
+ "import-x/named": "off";
10201
+ };
10202
+ };
10203
+ };
10204
+ rules: {
10205
+ "no-unresolved": _typescript_eslint_utils_ts_eslint.RuleModule<"unresolved" | "casingMismatch", [((eslint_plugin_import_x_utils_module_visitor_js.ModuleOptions & {
10206
+ caseSensitive?: boolean;
10207
+ caseSensitiveStrict?: boolean;
10208
+ }) | undefined)?], {
10209
+ category?: string;
10210
+ recommended?: true;
10211
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10212
+ named: _typescript_eslint_utils_ts_eslint.RuleModule<"notFound" | "notFoundDeep", [(eslint_plugin_import_x_utils_module_visitor_js.ModuleOptions | undefined)?], {
10213
+ category?: string;
10214
+ recommended?: true;
10215
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10216
+ default: _typescript_eslint_utils_ts_eslint.RuleModule<"noDefaultExport", [], {
10217
+ category?: string;
10218
+ recommended?: true;
10219
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10220
+ namespace: _typescript_eslint_utils_ts_eslint.RuleModule<"noNamesFound" | "computedReference" | "namespaceMember" | "topLevelNames" | "notFoundInNamespace", [{
10221
+ allowComputed?: boolean;
10222
+ }], {
10223
+ category?: string;
10224
+ recommended?: true;
10225
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10226
+ "no-namespace": _typescript_eslint_utils_ts_eslint.RuleModule<"noNamespace", [({
10227
+ ignore?: string[];
10228
+ } | undefined)?], {
10229
+ category?: string;
10230
+ recommended?: true;
10231
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10232
+ export: _typescript_eslint_utils_ts_eslint.RuleModule<"noNamed" | "multiDefault" | "multiNamed", [], {
10233
+ category?: string;
10234
+ recommended?: true;
10235
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10236
+ "no-mutable-exports": _typescript_eslint_utils_ts_eslint.RuleModule<"noMutable", [], {
10237
+ category?: string;
10238
+ recommended?: true;
10239
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10240
+ extensions: _typescript_eslint_utils_ts_eslint.RuleModule<"missing" | "unexpected", (string | {
10241
+ defaultConfig?: string;
10242
+ pattern?: Record<eslint_plugin_import_x_types_js.FileExtension, string>;
10243
+ ignorePackages?: boolean;
10244
+ checkTypeImports?: boolean;
10245
+ })[], {
10246
+ category?: string;
10247
+ recommended?: true;
10248
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10249
+ "no-restricted-paths": _typescript_eslint_utils_ts_eslint.RuleModule<"path" | "mixedGlob" | "glob" | "zone", [({
10250
+ basePath?: string;
10251
+ zones?: Array<{
10252
+ from: eslint_plugin_import_x_types_js.Arrayable<string>;
10253
+ target: eslint_plugin_import_x_types_js.Arrayable<string>;
10254
+ message?: string;
10255
+ except?: string[];
10256
+ }>;
10257
+ } | undefined)?], {
10258
+ category?: string;
10259
+ recommended?: true;
10260
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10261
+ "no-internal-modules": _typescript_eslint_utils_ts_eslint.RuleModule<"noAllowed", [({
10262
+ allow?: string[];
10263
+ forbid?: string[];
10264
+ } | undefined)?], {
10265
+ category?: string;
10266
+ recommended?: true;
10267
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10268
+ "group-exports": _typescript_eslint_utils_ts_eslint.RuleModule<"ExportNamedDeclaration" | "AssignmentExpression", [], {
10269
+ category?: string;
10270
+ recommended?: true;
10271
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10272
+ "no-relative-packages": _typescript_eslint_utils_ts_eslint.RuleModule<"noAllowed", [(eslint_plugin_import_x_utils_module_visitor_js.ModuleOptions | undefined)?], {
10273
+ category?: string;
10274
+ recommended?: true;
10275
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10276
+ "no-relative-parent-imports": _typescript_eslint_utils_ts_eslint.RuleModule<"noAllowed", [(eslint_plugin_import_x_utils_module_visitor_js.ModuleOptions | undefined)?], {
10277
+ category?: string;
10278
+ recommended?: true;
10279
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10280
+ "consistent-type-specifier-style": _typescript_eslint_utils_ts_eslint.RuleModule<"inline" | "topLevel", [(("prefer-inline" | "prefer-top-level") | undefined)?], {
10281
+ category?: string;
10282
+ recommended?: true;
10283
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10284
+ "no-self-import": _typescript_eslint_utils_ts_eslint.RuleModule<"self", [], {
10285
+ category?: string;
10286
+ recommended?: true;
10287
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10288
+ "no-cycle": _typescript_eslint_utils_ts_eslint.RuleModule<"cycle", [(({
10289
+ allowUnsafeDynamicCyclicDependency?: boolean;
10290
+ ignoreExternal?: boolean;
10291
+ maxDepth?: number;
10292
+ } & eslint_plugin_import_x_utils_module_visitor_js.ModuleOptions) | undefined)?], {
10293
+ category?: string;
10294
+ recommended?: true;
10295
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10296
+ "no-named-default": _typescript_eslint_utils_ts_eslint.RuleModule<"default", [], {
10297
+ category?: string;
10298
+ recommended?: true;
10299
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10300
+ "no-named-as-default": _typescript_eslint_utils_ts_eslint.RuleModule<"default", [], {
10301
+ category?: string;
10302
+ recommended?: true;
10303
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10304
+ "no-named-as-default-member": _typescript_eslint_utils_ts_eslint.RuleModule<"member", [], {
10305
+ category?: string;
10306
+ recommended?: true;
10307
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10308
+ "no-anonymous-default-export": _typescript_eslint_utils_ts_eslint.RuleModule<"assign" | "anonymous", [({
10309
+ allowArray?: boolean;
10310
+ allowArrowFunction?: boolean;
10311
+ allowCallExpression?: boolean;
10312
+ allowAnonymousClass?: boolean;
10313
+ allowAnonymousFunction?: boolean;
10314
+ allowLiteral?: boolean;
10315
+ allowObject?: boolean;
10316
+ allowNew?: boolean;
10317
+ } | undefined)?], {
10318
+ category?: string;
10319
+ recommended?: true;
10320
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10321
+ "no-rename-default": _typescript_eslint_utils_ts_eslint.RuleModule<"renameDefault", [((eslint_plugin_import_x_utils_module_visitor_js.ModuleOptions & {
10322
+ preventRenamingBindings?: boolean;
10323
+ }) | undefined)?], {
10324
+ category?: string;
10325
+ recommended?: true;
10326
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10327
+ "no-unused-modules": _typescript_eslint_utils_ts_eslint.RuleModule<"notFound" | "unused", {
10328
+ src?: string[];
10329
+ ignoreExports?: string[];
10330
+ missingExports?: string[];
10331
+ unusedExports?: boolean;
10332
+ ignoreUnusedTypeExports?: boolean;
10333
+ }[], {
10334
+ category?: string;
10335
+ recommended?: true;
10336
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10337
+ "no-commonjs": _typescript_eslint_utils_ts_eslint.RuleModule<"import" | "export", [(({
10338
+ allowPrimitiveModules?: boolean;
10339
+ allowRequire?: boolean;
10340
+ allowConditionalRequire?: boolean;
10341
+ } | "allow-primitive-modules") | undefined)?], {
10342
+ category?: string;
10343
+ recommended?: true;
10344
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10345
+ "no-amd": _typescript_eslint_utils_ts_eslint.RuleModule<"amd", [], {
10346
+ category?: string;
10347
+ recommended?: true;
10348
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10349
+ "no-duplicates": _typescript_eslint_utils_ts_eslint.RuleModule<"duplicate", [({
10350
+ considerQueryString?: boolean;
10351
+ "prefer-inline"?: boolean;
10352
+ } | undefined)?], {
10353
+ category?: string;
10354
+ recommended?: true;
10355
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10356
+ first: _typescript_eslint_utils_ts_eslint.RuleModule<"absolute" | "order", [("absolute-first" | undefined)?], {
10357
+ category?: string;
10358
+ recommended?: true;
10359
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10360
+ "max-dependencies": _typescript_eslint_utils_ts_eslint.RuleModule<"max", [({
10361
+ ignoreTypeImports?: boolean;
10362
+ max?: number;
10363
+ } | undefined)?], {
10364
+ category?: string;
10365
+ recommended?: true;
10366
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10367
+ "no-extraneous-dependencies": _typescript_eslint_utils_ts_eslint.RuleModule<"missing" | "pkgNotFound" | "pkgUnparsable" | "devDep" | "optDep", [({
10368
+ packageDir?: string | string[];
10369
+ devDependencies?: boolean;
10370
+ optionalDependencies?: boolean;
10371
+ peerDependencies?: boolean;
10372
+ bundledDependencies?: boolean;
10373
+ includeInternal?: boolean;
10374
+ includeTypes?: boolean;
10375
+ whitelist?: string[];
10376
+ } | undefined)?], {
10377
+ category?: string;
10378
+ recommended?: true;
10379
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10380
+ "no-absolute-path": _typescript_eslint_utils_ts_eslint.RuleModule<"absolute", [(eslint_plugin_import_x_utils_module_visitor_js.ModuleOptions | undefined)?], {
10381
+ category?: string;
10382
+ recommended?: true;
10383
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10384
+ "no-nodejs-modules": _typescript_eslint_utils_ts_eslint.RuleModule<"builtin", [({
10385
+ allow?: string[];
10386
+ } | undefined)?], {
10387
+ category?: string;
10388
+ recommended?: true;
10389
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10390
+ "no-webpack-loader-syntax": _typescript_eslint_utils_ts_eslint.RuleModule<"unexpected", [], {
10391
+ category?: string;
10392
+ recommended?: true;
10393
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10394
+ order: _typescript_eslint_utils_ts_eslint.RuleModule<"error" | "order" | "noLineWithinGroup" | "noLineBetweenGroups" | "oneLineBetweenGroups", [({
10395
+ "newlines-between"?: "always" | "always-and-inside-groups" | "ignore" | "never";
10396
+ alphabetize?: Partial<eslint_plugin_import_x_types_js.AlphabetizeOptions>;
10397
+ distinctGroup?: boolean;
10398
+ groups?: ReadonlyArray<eslint_plugin_import_x_types_js.Arrayable<eslint_plugin_import_x_types_js.ImportType>>;
10399
+ pathGroupsExcludedImportTypes?: eslint_plugin_import_x_types_js.ImportType[];
10400
+ pathGroups?: eslint_plugin_import_x_types_js.PathGroup[];
10401
+ warnOnUnassignedImports?: boolean;
10402
+ } | undefined)?], {
10403
+ category?: string;
10404
+ recommended?: true;
10405
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10406
+ "newline-after-import": _typescript_eslint_utils_ts_eslint.RuleModule<"newline", [({
10407
+ count?: number;
10408
+ exactCount?: boolean;
10409
+ considerComments?: boolean;
10410
+ } | undefined)?], {
10411
+ category?: string;
10412
+ recommended?: true;
10413
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10414
+ "prefer-default-export": _typescript_eslint_utils_ts_eslint.RuleModule<"any" | "single", [({
10415
+ target?: "single" | "any";
10416
+ } | undefined)?], {
10417
+ category?: string;
10418
+ recommended?: true;
10419
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10420
+ "no-default-export": _typescript_eslint_utils_ts_eslint.RuleModule<"preferNamed" | "noAliasDefault", [], {
10421
+ category?: string;
10422
+ recommended?: true;
10423
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10424
+ "no-named-export": _typescript_eslint_utils_ts_eslint.RuleModule<"noAllowed", [], {
10425
+ category?: string;
10426
+ recommended?: true;
10427
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10428
+ "no-dynamic-require": _typescript_eslint_utils_ts_eslint.RuleModule<"import" | "require", [({
10429
+ esmodule?: boolean;
10430
+ } | undefined)?], {
10431
+ category?: string;
10432
+ recommended?: true;
10433
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10434
+ unambiguous: _typescript_eslint_utils_ts_eslint.RuleModule<"module", [], {
10435
+ category?: string;
10436
+ recommended?: true;
10437
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10438
+ "no-unassigned-import": _typescript_eslint_utils_ts_eslint.RuleModule<"unassigned", [({
10439
+ allow?: string[];
10440
+ } | undefined)?], {
10441
+ category?: string;
10442
+ recommended?: true;
10443
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10444
+ "no-useless-path-segments": _typescript_eslint_utils_ts_eslint.RuleModule<"useless", [((eslint_plugin_import_x_utils_module_visitor_js.ModuleOptions & {
10445
+ noUselessIndex?: boolean;
10446
+ }) | undefined)?], {
10447
+ category?: string;
10448
+ recommended?: true;
10449
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10450
+ "dynamic-import-chunkname": _typescript_eslint_utils_ts_eslint.RuleModule<"leadingComment" | "blockComment" | "paddedSpaces" | "webpackComment" | "chunknameFormat" | "webpackEagerModeNoChunkName" | "webpackRemoveEagerMode" | "webpackRemoveChunkName", [({
10451
+ allowEmpty?: boolean;
10452
+ importFunctions?: readonly string[];
10453
+ webpackChunknameFormat?: string;
10454
+ } | undefined)?], {
10455
+ category?: string;
10456
+ recommended?: true;
10457
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10458
+ "no-import-module-exports": _typescript_eslint_utils_ts_eslint.RuleModule<"notAllowed", [({
10459
+ exceptions?: string[];
10460
+ } | undefined)?], {
10461
+ category?: string;
10462
+ recommended?: true;
10463
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10464
+ "no-empty-named-blocks": _typescript_eslint_utils_ts_eslint.RuleModule<"emptyNamed" | "unused" | "emptyImport", [], {
10465
+ category?: string;
10466
+ recommended?: true;
10467
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10468
+ "exports-last": _typescript_eslint_utils_ts_eslint.RuleModule<"end", [], {
10469
+ category?: string;
10470
+ recommended?: true;
10471
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10472
+ "no-deprecated": _typescript_eslint_utils_ts_eslint.RuleModule<"deprecated", [], {
10473
+ category?: string;
10474
+ recommended?: true;
10475
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10476
+ "imports-first": _typescript_eslint_utils_ts_eslint.RuleModule<"absolute" | "order", [("absolute-first" | undefined)?], {
10477
+ category?: string;
10478
+ recommended?: true;
10479
+ }, _typescript_eslint_utils_ts_eslint.RuleListener>;
10480
+ };
10481
+ };
10081
10482
  n: eslint.ESLint.Plugin & {
10082
10483
  configs: eslint_plugin_n.Configs;
10083
10484
  };
@@ -10105,11 +10506,6 @@ declare const jimmyDotCodes: ({ astro, autoDetect, configs, ignores, react, test
10105
10506
  'import-x/default': "error";
10106
10507
  'import-x/export': "error";
10107
10508
  };
10108
- settings: {
10109
- "import-x/parsers": {
10110
- espree: string[];
10111
- };
10112
- };
10113
10509
  } | {
10114
10510
  linterOptions: {
10115
10511
  reportUnusedDisableDirectives: true;
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- var B=Object.defineProperty;var r=(e,t)=>B(e,"name",{value:t,configurable:!0});import*as I from"astro-eslint-parser";import $ from"eslint-plugin-astro";import m from"eslint-plugin-jsx-a11y";import d from"globals";import{parser as N,configs as i}from"typescript-eslint";import b from"@eslint-community/eslint-plugin-eslint-comments/configs";import c from"eslint-plugin-import-x";import h from"eslint-plugin-n";import P from"@eslint/js";import k from"eslint-plugin-perfectionist";import F from"eslint-config-prettier";import J from"@tanstack/eslint-plugin-query";import y from"eslint-plugin-react";import V from"eslint-plugin-react-hooks";import*as X from"eslint-plugin-react-refresh";import{isPackageExists as n}from"local-pkg";import a from"eslint-plugin-jest";import*as v from"eslint-plugin-jest-dom";import O from"eslint-plugin-testing-library";import w from"eslint-plugin-unicorn";const s="?([cm])[jt]s?(x)",U=["**/node_modules","**/dist","**/package-lock.json","**/yarn.lock","**/pnpm-lock.yaml","**/bun.lockb","**/output","**/coverage","**/temp","**/.temp","**/tmp","**/.tmp","**/.history","**/.vitepress/cache","**/.nuxt","**/.next","**/.vercel","**/.changeset","**/.idea","**/.cache","**/.output","**/.vite-inspect","**/.yarn","**/storybook-static","**/.eslint-config-inspector","**/playwright-report","**/.astro","**/.vinxi","**/app.config.timestamp_*.js","**/CHANGELOG*.md","**/*.min.*","**/LICENSE*","**/__snapshots__","**/auto-import?(s).d.ts","**/components.d.ts","**/vite.config.ts.*.mjs","**/*.gen.*","!.storybook"],z="**/*.?([cm])js",g="**/*.?([cm])jsx",C="**/*.?([cm])tsx",p=[`**/__tests__/**/*.${s}`,`**/*.spec.${s}`,`**/*.test.${s}`,`**/*.bench.${s}`,`**/*.benchmark.${s}`],T=[`**/e2e/**/*.spec.${s}`,`**/e2e/**/*.test.${s}`,`**/cypress/**/*.spec.${s}`,`**/cypress/**/*.test.${s}`],H="**/*.cjs",M="**/*.astro",Q=["vi.mock","describe","expect","it"],W=["@testing-library/react"],Y=r(()=>{const e=[M];return[{files:e,languageOptions:{globals:{...d.node,Astro:!1,Fragment:!1},parser:I,parserOptions:{extraFileExtensions:[".astro"],parser:N},sourceType:"module"},name:"jimmy.codes/astro",plugins:{astro:$,"jsx-a11y":m},processor:"astro/client-side-ts",rules:{...m.configs.recommended.rules,"astro/missing-client-only-directive-value":"error","astro/no-conflict-set-directives":"error","astro/no-deprecated-astro-canonicalurl":"error","astro/no-deprecated-astro-fetchcontent":"error","astro/no-deprecated-astro-resolve":"error","astro/no-deprecated-getentrybyslug":"error","astro/no-exports-from-components":"off","astro/no-unused-define-vars-in-style":"error","astro/valid-compile":"error"}},{files:e,languageOptions:{parserOptions:i.disableTypeChecked.languageOptions?.parserOptions},name:"jimmy.codes/astro/disable-type-checked",rules:i.disableTypeChecked.rules},{name:"jimmy.codes/astro/imports",settings:{"import-x/core-modules":["astro:content"]}}]},"astroConfig"),D=r(()=>[{files:[H],languageOptions:{globals:d.commonjs},name:"jimmy.codes/commonjs"}],"commonjsConfig"),K={...b.recommended.rules,"@eslint-community/eslint-comments/no-unused-disable":"off","@eslint-community/eslint-comments/require-description":"error"},Z=r(()=>[{...b.recommended,name:"jimmy.codes/eslint-comments",rules:K}],"eslintCommentsConfig"),ee=r(e=>[{ignores:[...U,...e],name:"jimmy.codes/ignores"}],"ignoresConfig"),re={...c.configs.recommended.rules,"import-x/consistent-type-specifier-style":["error","prefer-top-level"],"import-x/extensions":["error","never",{checkTypedImports:!0,svg:"always"}],"import-x/first":"error","import-x/namespace":"off","import-x/newline-after-import":"error","import-x/no-absolute-path":"error","import-x/no-duplicates":"error","import-x/no-empty-named-blocks":"error","import-x/no-named-as-default":"error","import-x/no-named-as-default-member":"error","import-x/no-self-import":"error","import-x/no-unresolved":["error",{ignore:[String.raw`\.svg$`]}],"import-x/no-useless-path-segments":"error"},te={name:"jimmy.codes/imports/typescript",rules:c.configs.typescript.rules,settings:{...c.configs.typescript.settings,"import-x/resolver":{...c.configs.typescript.settings["import-x/resolver"],typescript:!0}}},oe=r(({typescript:e=!1}={})=>[{languageOptions:{parserOptions:{ecmaVersion:"latest",sourceType:"module"}},name:"jimmy.codes/imports",plugins:{"import-x":c,n:h},rules:re,settings:{"import-x/parsers":{espree:[".js",".cjs",".mjs",".jsx"]}}},...e?[te]:[]],"importsConfig"),se={...P.configs.recommended.rules,"array-callback-return":["error",{allowImplicit:!0}],"arrow-body-style":["error","always"],curly:["error","all"],"no-console":"warn","no-self-compare":"error","no-template-curly-in-string":"error","no-unmodified-loop-condition":"error","no-unreachable-loop":"error","no-use-before-define":["error",{allowNamedExports:!1,classes:!1,functions:!1,variables:!0}],"no-useless-rename":"error","object-shorthand":"error","prefer-arrow-callback":"error"},ne=r(()=>[{linterOptions:{reportUnusedDisableDirectives:!0},name:"jimmy.codes/javascript",rules:se}],"javascriptConfig"),ie={"n/no-process-exit":"off","n/prefer-node-protocol":"error"},ce=r(()=>[{name:"jimmy.codes/node",plugins:{n:h},rules:ie}],"nodeConfig"),ae={...k.configs["recommended-natural"].rules,"perfectionist/sort-imports":["error",{customGroups:{type:{},value:{}},environment:"node",groups:["builtin","type","external","internal-type","internal",["parent-type","sibling-type","index-type"],["parent","sibling","index"],"object","unknown"],internalPattern:["~/**","@/**"],order:"asc",type:"natural"}]},pe=r(()=>[{name:"jimmy.codes/perfectionist",plugins:{perfectionist:k},rules:ae}],"perfectionistConfig"),fe=r(()=>[{name:"jimmy.codes/prettier",...F}],"prettierConfig"),le=r(()=>n("typescript"),"hasTypescript"),me=r(()=>n("react"),"hasReact"),_=r(()=>n("vitest"),"hasVitest"),E=r(()=>n("jest"),"hasJest"),ue=r(()=>_()||E(),"hasTesting"),de=r(()=>W.some(e=>n(e)),"hasTestingLibrary"),ye=r(()=>n("@tanstack/react-query"),"hasReactQuery"),ge=r(()=>n("astro"),"hasAstro"),je=r(e=>e===2?"error":e===1?"warn":"off","toStringSeverity"),q=r((e={})=>Object.fromEntries(Object.entries(e).map(([t,o])=>[t,typeof o=="number"?je(o):o])),"normalizeRuleEntries"),xe={...m.configs.recommended.rules,...q(y.configs.flat?.recommended?.rules),...q(y.configs.flat?.["jsx-runtime"]?.rules),"react/boolean-prop-naming":"off","react/button-has-type":"error","react/checked-requires-onchange-or-readonly":"error","react/default-props-match-prop-types":"error","react/destructuring-assignment":"off","react/forbid-component-props":"off","react/forbid-dom-props":"off","react/forbid-elements":"off","react/forbid-foreign-prop-types":"off","react/forbid-prop-types":"off","react/forward-ref-uses-ref":"error","react/function-component-definition":"off","react/hook-use-state":"error","react/iframe-missing-sandbox":"error","react/jsx-boolean-value":["error","never"],"react/jsx-curly-brace-presence":"error","react/jsx-filename-extension":"off","react/jsx-fragments":["error","syntax"],"react/jsx-handler-names":"off","react/jsx-max-depth":"off","react/jsx-no-bind":"off","react/jsx-no-constructed-context-values":"error","react/jsx-no-leaked-render":"error","react/jsx-no-literals":"off","react/jsx-no-script-url":"error","react/jsx-no-useless-fragment":"error","react/jsx-one-expression-per-line":"off","react/jsx-pascal-case":["error",{allowNamespace:!0}],"react/jsx-props-no-spread-multi":"off","react/jsx-props-no-spreading":"off","react/jsx-sort-default-props":"off","react/jsx-sort-props":"off","react/no-access-state-in-setstate":"error","react/no-adjacent-inline-elements":"off","react/no-array-index-key":"off","react/no-arrow-function-lifecycle":"error","react/no-danger":"off","react/no-did-mount-set-state":"error","react/no-did-update-set-state":"error","react/no-invalid-html-attribute":"error","react/no-multi-comp":"off","react/no-namespace":"error","react/no-object-type-as-default-prop":"error","react/no-redundant-should-component-update":"error","react/no-set-state":"off","react/no-this-in-sfc":"error","react/no-typos":"error","react/no-unstable-nested-components":"error","react/no-unused-class-component-methods":"error","react/no-unused-prop-types":"error","react/no-unused-state":"error","react/no-will-update-set-state":"error","react/prefer-es6-class":"off","react/prefer-exact-props":"off","react/prefer-read-only-props":"off","react/prefer-stateless-function":"off","react/require-default-props":"off","react/require-optimization":"off","react/self-closing-comp":"error","react/sort-comp":"off","react/sort-default-props":"off","react/sort-prop-types":"off","react/state-in-constructor":"off","react/static-property-placement":"off","react/style-prop-object":"error","react/void-dom-elements-no-children":"error","react-hooks/exhaustive-deps":"error","react-hooks/rules-of-hooks":"error","react-refresh/only-export-components":["warn",{allowConstantExport:!0}]},be=r(({utilities:e=[]}={},t=!0)=>{const o=e.includes("@tanstack/query")||t&&ye();return[{files:[g,C],languageOptions:{globals:{...d.browser},parserOptions:{ecmaFeatures:{jsx:!0},jsxPragma:null}},name:"jimmy.codes/react",plugins:{"jsx-a11y":m,react:y,"react-hooks":V,"react-refresh":X},rules:xe,settings:{react:{version:"detect"}}},...o?[{files:[g,C],name:"jimmy.codes/react/query",plugins:{"@tanstack/query":J},rules:{"@tanstack/query/exhaustive-deps":"error","@tanstack/query/no-rest-destructuring":"warn","@tanstack/query/stable-query-client":"error"}}]:[]]},"reactConfig"),R={...a.configs["flat/recommended"].rules,...a.configs["flat/style"].rules,"jest/consistent-test-it":["error",{fn:"test",withinDescribe:"it"}],"jest/no-alias-methods":"error","jest/no-commented-out-tests":"error","jest/no-conditional-in-test":"error","jest/no-confusing-set-timeout":"error","jest/no-duplicate-hooks":"error","jest/no-hooks":"off","jest/no-large-snapshots":"off","jest/no-restricted-jest-methods":"off","jest/no-restricted-matchers":"off","jest/no-test-return-statement":"error","jest/no-untyped-mock-factory":"off","jest/prefer-called-with":"error","jest/prefer-comparison-matcher":"error","jest/prefer-each":"error","jest/prefer-equality-matcher":"error","jest/prefer-expect-assertions":"off","jest/prefer-expect-resolves":"error","jest/prefer-hooks-in-order":"error","jest/prefer-hooks-on-top":"error","jest/prefer-lowercase-title":"off","jest/prefer-mock-promise-shorthand":"error","jest/prefer-snapshot-hint":"error","jest/prefer-spy-on":"off","jest/prefer-strict-equal":"error","jest/prefer-todo":"warn","jest/require-hook":"error","jest/require-to-throw-message":"error","jest/require-top-level-describe":"off","jest/unbound-method":"off"},he=r(()=>[{files:p,name:"jimmy.codes/testing/testing-library",plugins:{"jest-dom":v,"testing-library":O},rules:{...O.configs.react.rules,...v.configs["flat/recommended"].rules}},{files:T,name:"jimmy.codes/testing/testing-library/disabled",rules:{"testing-library/prefer-screen-queries":"off"}}],"testingLibraryConfig"),ke=r(({framework:e="vitest",utilities:t}={},o=!0)=>{const u=o?_():e==="vitest",f=e==="jest"||o&&E(),l=!!t?.includes("testing-library")||o&&de();return[{files:p,name:"jimmy.codes/testing",...a.configs["flat/recommended"]},...u?[{files:p,name:"jimmy.codes/testing/vitest",...a.configs["flat/recommended"],rules:{...R,"jest/no-deprecated-functions":"off","jest/require-hook":["error",{allowedFunctionCalls:Q}]}}]:[],...f?[{files:p,name:"jimmy.codes/testing/jest",...a.configs["flat/recommended"],rules:R}]:[],{files:T,name:"jimmy.codes/testing/disabled",rules:{"jest/expect-expect":"off","jest/no-deprecated-functions":"off","jest/require-hook":"off"}},...l?he():[]]},"testingConfig"),ve=r(e=>[...i.strictTypeChecked,...i.stylisticTypeChecked.filter(t=>t.name==="typescript-eslint/stylistic-type-checked"),{languageOptions:{parserOptions:{project:e.project,tsconfigRootDir:process.cwd()}},name:"jimmy.codes/typescript",rules:{"@typescript-eslint/consistent-type-exports":["error",{fixMixedExportsWithInlineTypeSpecifier:!1}],"@typescript-eslint/consistent-type-imports":["error",{fixStyle:"separate-type-imports"}],"@typescript-eslint/no-deprecated":"warn","@typescript-eslint/no-misused-promises":["error",{checksVoidReturn:{attributes:!1}}],"@typescript-eslint/no-use-before-define":["error",{allowNamedExports:!1,classes:!1,functions:!1,variables:!0}],"@typescript-eslint/restrict-template-expressions":["error",{allowNumber:!0}],"no-use-before-define":"off"}},{files:[z,g],...i.disableTypeChecked},{files:p,name:"jimmy.codes/typescript/testing",rules:{"@typescript-eslint/no-unsafe-argument":"off","@typescript-eslint/no-unsafe-assignment":"off"}}],"typescriptConfig"),Oe={...w.configs["flat/recommended"].rules,"unicorn/filename-case":"off","unicorn/import-style":"off","unicorn/no-abusive-eslint-disable":"off","unicorn/no-anonymous-default-export":"off","unicorn/no-array-callback-reference":"off","unicorn/no-array-reduce":"off","unicorn/no-null":"off","unicorn/no-process-exit":"off","unicorn/no-useless-undefined":["error",{checkArguments:!1,checkArrowFunctionBody:!1}],"unicorn/prefer-node-protocol":"off","unicorn/prevent-abbreviations":"off"},we=r(()=>[{...w.configs["flat/recommended"],name:"jimmy.codes/unicorn",rules:Oe}],"unicornConfig"),Ce=r(e=>typeof e=="object"?e:{project:"./tsconfig.json"},"typescriptOptions"),Te=r(e=>typeof e=="object"?e:{framework:"vitest"},"testingOptions"),_e=r(e=>typeof e=="object"?e:{utilities:[]},"reactOptions"),Ee=r(({astro:e=!1,autoDetect:t=!0,configs:o=[],ignores:u=[],react:f=!1,testing:l=!1,typescript:j=!1}={},...L)=>{const x=j||t&&le(),S=f||t&&me(),G=l||t&&ue(),A=e||t&&ge();return[ne(),pe(),ce(),we(),Z(),oe({typescript:x}),x?ve(Ce(j)):[],S?be(_e(f),t):[],A?Y():[],G?ke(Te(l),t):[],fe(),D(),ee(u),o,L].flat()},"jimmyDotCodes");export{Ee as default};
1
+ var B=Object.defineProperty;var r=(e,t)=>B(e,"name",{value:t,configurable:!0});import*as I from"astro-eslint-parser";import $ from"eslint-plugin-astro";import m from"eslint-plugin-jsx-a11y";import d from"globals";import{parser as N,configs as i}from"typescript-eslint";import x from"@eslint-community/eslint-plugin-eslint-comments/configs";import c from"eslint-plugin-import-x";import h from"eslint-plugin-n";import P from"@eslint/js";import k from"eslint-plugin-perfectionist";import F from"eslint-config-prettier";import J from"@tanstack/eslint-plugin-query";import y from"eslint-plugin-react";import V from"eslint-plugin-react-hooks";import*as X from"eslint-plugin-react-refresh";import{isPackageExists as n}from"local-pkg";import a from"eslint-plugin-jest";import*as v from"eslint-plugin-jest-dom";import w from"eslint-plugin-testing-library";import C from"eslint-plugin-unicorn";const s="?([cm])[jt]s?(x)",U=["**/node_modules","**/dist","**/package-lock.json","**/yarn.lock","**/pnpm-lock.yaml","**/bun.lockb","**/output","**/coverage","**/temp","**/.temp","**/tmp","**/.tmp","**/.history","**/.vitepress/cache","**/.nuxt","**/.next","**/.vercel","**/.changeset","**/.idea","**/.cache","**/.output","**/.vite-inspect","**/.yarn","**/storybook-static","**/.eslint-config-inspector","**/playwright-report","**/.astro","**/.vinxi","**/app.config.timestamp_*.js","**/CHANGELOG*.md","**/*.min.*","**/LICENSE*","**/__snapshots__","**/auto-import?(s).d.ts","**/components.d.ts","**/vite.config.ts.*.mjs","**/*.gen.*","!.storybook"],z="**/*.?([cm])js",g="**/*.?([cm])jsx",O="**/*.?([cm])tsx",p=[`**/__tests__/**/*.${s}`,`**/*.spec.${s}`,`**/*.test.${s}`,`**/*.bench.${s}`,`**/*.benchmark.${s}`],_=[`**/e2e/**/*.spec.${s}`,`**/e2e/**/*.test.${s}`,`**/cypress/**/*.spec.${s}`,`**/cypress/**/*.test.${s}`],H="**/*.cjs",M="**/*.astro",Q=["vi.mock","describe","expect","it"],W=["@testing-library/react"],Y=r(()=>{const e=[M];return[{files:e,languageOptions:{globals:{...d.node,Astro:!1,Fragment:!1},parser:I,parserOptions:{extraFileExtensions:[".astro"],parser:N},sourceType:"module"},name:"jimmy.codes/astro",plugins:{astro:$,"jsx-a11y":m},processor:"astro/client-side-ts",rules:{...m.configs.recommended.rules,"astro/missing-client-only-directive-value":"error","astro/no-conflict-set-directives":"error","astro/no-deprecated-astro-canonicalurl":"error","astro/no-deprecated-astro-fetchcontent":"error","astro/no-deprecated-astro-resolve":"error","astro/no-deprecated-getentrybyslug":"error","astro/no-exports-from-components":"off","astro/no-unused-define-vars-in-style":"error","astro/valid-compile":"error"}},{files:e,languageOptions:{parserOptions:i.disableTypeChecked.languageOptions?.parserOptions},name:"jimmy.codes/astro/disable-type-checked",rules:i.disableTypeChecked.rules},{name:"jimmy.codes/astro/imports",settings:{"import-x/core-modules":["astro:content"]}}]},"astroConfig"),D=r(()=>[{files:[H],languageOptions:{globals:d.commonjs},name:"jimmy.codes/commonjs"}],"commonjsConfig"),K={...x.recommended.rules,"@eslint-community/eslint-comments/no-unused-disable":"off","@eslint-community/eslint-comments/require-description":"error"},Z=r(()=>[{...x.recommended,name:"jimmy.codes/eslint-comments",rules:K}],"eslintCommentsConfig"),ee=r(e=>[{ignores:[...U,...e],name:"jimmy.codes/ignores"}],"ignoresConfig"),re={...c.configs.recommended.rules,"import-x/consistent-type-specifier-style":["error","prefer-top-level"],"import-x/extensions":["error","never",{checkTypedImports:!0,svg:"always"}],"import-x/first":"error","import-x/namespace":"off","import-x/newline-after-import":"error","import-x/no-absolute-path":"error","import-x/no-duplicates":"error","import-x/no-empty-named-blocks":"error","import-x/no-named-as-default":"error","import-x/no-named-as-default-member":"error","import-x/no-self-import":"error","import-x/no-unresolved":["error",{ignore:[String.raw`\.svg$`]}],"import-x/no-useless-path-segments":"error"},te={name:"jimmy.codes/imports/typescript",rules:c.configs.typescript.rules,settings:{...c.configs.typescript.settings,"import-x/resolver":{...c.configs.typescript.settings["import-x/resolver"],typescript:!0}}},oe=r(({typescript:e=!1}={})=>[{name:"jimmy.codes/imports",plugins:{"import-x":c,n:h},rules:re},...e?[te]:[]],"importsConfig"),se={...P.configs.recommended.rules,"array-callback-return":["error",{allowImplicit:!0}],"arrow-body-style":["error","always"],curly:["error","all"],"no-console":"warn","no-self-compare":"error","no-template-curly-in-string":"error","no-unmodified-loop-condition":"error","no-unreachable-loop":"error","no-use-before-define":["error",{allowNamedExports:!1,classes:!1,functions:!1,variables:!0}],"no-useless-rename":"error","object-shorthand":"error","prefer-arrow-callback":"error"},ne=r(()=>[{linterOptions:{reportUnusedDisableDirectives:!0},name:"jimmy.codes/javascript",rules:se}],"javascriptConfig"),ie={"n/no-process-exit":"off","n/prefer-node-protocol":"error"},ce=r(()=>[{name:"jimmy.codes/node",plugins:{n:h},rules:ie}],"nodeConfig"),ae={...k.configs["recommended-natural"].rules,"perfectionist/sort-imports":["error",{customGroups:{type:{},value:{}},environment:"node",groups:["builtin","type","external","internal-type","internal",["parent-type","sibling-type","index-type"],["parent","sibling","index"],"object","unknown"],internalPattern:["~/**","@/**"],order:"asc",type:"natural"}]},pe=r(()=>[{name:"jimmy.codes/perfectionist",plugins:{perfectionist:k},rules:ae}],"perfectionistConfig"),fe=r(()=>[{name:"jimmy.codes/prettier",...F}],"prettierConfig"),le=r(()=>n("typescript"),"hasTypescript"),me=r(()=>n("react"),"hasReact"),E=r(()=>n("vitest"),"hasVitest"),T=r(()=>n("jest"),"hasJest"),ue=r(()=>E()||T(),"hasTesting"),de=r(()=>W.some(e=>n(e)),"hasTestingLibrary"),ye=r(()=>n("@tanstack/react-query"),"hasReactQuery"),ge=r(()=>n("astro"),"hasAstro"),je=r(e=>e===2?"error":e===1?"warn":"off","toStringSeverity"),q=r((e={})=>Object.fromEntries(Object.entries(e).map(([t,o])=>[t,typeof o=="number"?je(o):o])),"normalizeRuleEntries"),be={...m.configs.recommended.rules,...q(y.configs.flat?.recommended?.rules),...q(y.configs.flat?.["jsx-runtime"]?.rules),"react/boolean-prop-naming":"off","react/button-has-type":"error","react/checked-requires-onchange-or-readonly":"error","react/default-props-match-prop-types":"error","react/destructuring-assignment":"off","react/forbid-component-props":"off","react/forbid-dom-props":"off","react/forbid-elements":"off","react/forbid-foreign-prop-types":"off","react/forbid-prop-types":"off","react/forward-ref-uses-ref":"error","react/function-component-definition":"off","react/hook-use-state":"error","react/iframe-missing-sandbox":"error","react/jsx-boolean-value":["error","never"],"react/jsx-curly-brace-presence":"error","react/jsx-filename-extension":"off","react/jsx-fragments":["error","syntax"],"react/jsx-handler-names":"off","react/jsx-max-depth":"off","react/jsx-no-bind":"off","react/jsx-no-constructed-context-values":"error","react/jsx-no-leaked-render":"error","react/jsx-no-literals":"off","react/jsx-no-script-url":"error","react/jsx-no-useless-fragment":"error","react/jsx-one-expression-per-line":"off","react/jsx-pascal-case":["error",{allowNamespace:!0}],"react/jsx-props-no-spread-multi":"off","react/jsx-props-no-spreading":"off","react/jsx-sort-default-props":"off","react/jsx-sort-props":"off","react/no-access-state-in-setstate":"error","react/no-adjacent-inline-elements":"off","react/no-array-index-key":"off","react/no-arrow-function-lifecycle":"error","react/no-danger":"off","react/no-did-mount-set-state":"error","react/no-did-update-set-state":"error","react/no-invalid-html-attribute":"error","react/no-multi-comp":"off","react/no-namespace":"error","react/no-object-type-as-default-prop":"error","react/no-redundant-should-component-update":"error","react/no-set-state":"off","react/no-this-in-sfc":"error","react/no-typos":"error","react/no-unstable-nested-components":"error","react/no-unused-class-component-methods":"error","react/no-unused-prop-types":"error","react/no-unused-state":"error","react/no-will-update-set-state":"error","react/prefer-es6-class":"off","react/prefer-exact-props":"off","react/prefer-read-only-props":"off","react/prefer-stateless-function":"off","react/require-default-props":"off","react/require-optimization":"off","react/self-closing-comp":"error","react/sort-comp":"off","react/sort-default-props":"off","react/sort-prop-types":"off","react/state-in-constructor":"off","react/static-property-placement":"off","react/style-prop-object":"error","react/void-dom-elements-no-children":"error","react-hooks/exhaustive-deps":"error","react-hooks/rules-of-hooks":"error","react-refresh/only-export-components":["warn",{allowConstantExport:!0}]},xe=r(({utilities:e=[]}={},t=!0)=>{const o=e.includes("@tanstack/query")||t&&ye();return[{files:[g,O],languageOptions:{globals:{...d.browser},parserOptions:{ecmaFeatures:{jsx:!0},jsxPragma:null}},name:"jimmy.codes/react",plugins:{"jsx-a11y":m,react:y,"react-hooks":V,"react-refresh":X},rules:be,settings:{react:{version:"detect"}}},...o?[{files:[g,O],name:"jimmy.codes/react/query",plugins:{"@tanstack/query":J},rules:{"@tanstack/query/exhaustive-deps":"error","@tanstack/query/no-rest-destructuring":"warn","@tanstack/query/stable-query-client":"error"}}]:[]]},"reactConfig"),R={...a.configs["flat/recommended"].rules,...a.configs["flat/style"].rules,"jest/consistent-test-it":["error",{fn:"test",withinDescribe:"it"}],"jest/no-alias-methods":"error","jest/no-commented-out-tests":"error","jest/no-conditional-in-test":"error","jest/no-confusing-set-timeout":"error","jest/no-duplicate-hooks":"error","jest/no-hooks":"off","jest/no-large-snapshots":"off","jest/no-restricted-jest-methods":"off","jest/no-restricted-matchers":"off","jest/no-test-return-statement":"error","jest/no-untyped-mock-factory":"off","jest/prefer-called-with":"error","jest/prefer-comparison-matcher":"error","jest/prefer-each":"error","jest/prefer-equality-matcher":"error","jest/prefer-expect-assertions":"off","jest/prefer-expect-resolves":"error","jest/prefer-hooks-in-order":"error","jest/prefer-hooks-on-top":"error","jest/prefer-lowercase-title":"off","jest/prefer-mock-promise-shorthand":"error","jest/prefer-snapshot-hint":"error","jest/prefer-spy-on":"off","jest/prefer-strict-equal":"error","jest/prefer-todo":"warn","jest/require-hook":"error","jest/require-to-throw-message":"error","jest/require-top-level-describe":"off","jest/unbound-method":"off"},he=r(()=>[{files:p,name:"jimmy.codes/testing/testing-library",plugins:{"jest-dom":v,"testing-library":w},rules:{...w.configs.react.rules,...v.configs["flat/recommended"].rules}},{files:_,name:"jimmy.codes/testing/testing-library/disabled",rules:{"testing-library/prefer-screen-queries":"off"}}],"testingLibraryConfig"),ke=r(({framework:e="vitest",utilities:t}={},o=!0)=>{const u=o?E():e==="vitest",f=e==="jest"||o&&T(),l=!!t?.includes("testing-library")||o&&de();return[{files:p,name:"jimmy.codes/testing",...a.configs["flat/recommended"]},...u?[{files:p,name:"jimmy.codes/testing/vitest",...a.configs["flat/recommended"],rules:{...R,"jest/no-deprecated-functions":"off","jest/require-hook":["error",{allowedFunctionCalls:Q}]}}]:[],...f?[{files:p,name:"jimmy.codes/testing/jest",...a.configs["flat/recommended"],rules:R}]:[],{files:_,name:"jimmy.codes/testing/disabled",rules:{"jest/expect-expect":"off","jest/no-deprecated-functions":"off","jest/require-hook":"off"}},...l?he():[]]},"testingConfig"),ve=r(e=>[...i.strictTypeChecked,...i.stylisticTypeChecked.filter(t=>t.name==="typescript-eslint/stylistic-type-checked"),{languageOptions:{parserOptions:{project:e.project,tsconfigRootDir:process.cwd()}},name:"jimmy.codes/typescript",rules:{"@typescript-eslint/consistent-type-exports":["error",{fixMixedExportsWithInlineTypeSpecifier:!1}],"@typescript-eslint/consistent-type-imports":["error",{fixStyle:"separate-type-imports"}],"@typescript-eslint/no-deprecated":"warn","@typescript-eslint/no-misused-promises":["error",{checksVoidReturn:{attributes:!1}}],"@typescript-eslint/no-use-before-define":["error",{allowNamedExports:!1,classes:!1,functions:!1,variables:!0}],"@typescript-eslint/restrict-template-expressions":["error",{allowNumber:!0}],"no-use-before-define":"off"}},{files:[z,g],...i.disableTypeChecked},{files:p,name:"jimmy.codes/typescript/testing",rules:{"@typescript-eslint/no-unsafe-argument":"off","@typescript-eslint/no-unsafe-assignment":"off"}}],"typescriptConfig"),we={...C.configs["flat/recommended"].rules,"unicorn/filename-case":"off","unicorn/import-style":"off","unicorn/no-abusive-eslint-disable":"off","unicorn/no-anonymous-default-export":"off","unicorn/no-array-callback-reference":"off","unicorn/no-array-reduce":"off","unicorn/no-null":"off","unicorn/no-process-exit":"off","unicorn/no-useless-undefined":["error",{checkArguments:!1,checkArrowFunctionBody:!1}],"unicorn/prefer-node-protocol":"off","unicorn/prevent-abbreviations":"off"},Ce=r(()=>[{...C.configs["flat/recommended"],name:"jimmy.codes/unicorn",rules:we}],"unicornConfig"),Oe=r(e=>typeof e=="object"?e:{project:"./tsconfig.json"},"typescriptOptions"),_e=r(e=>typeof e=="object"?e:{framework:"vitest"},"testingOptions"),Ee=r(e=>typeof e=="object"?e:{utilities:[]},"reactOptions"),Te=r(({astro:e=!1,autoDetect:t=!0,configs:o=[],ignores:u=[],react:f=!1,testing:l=!1,typescript:j=!1}={},...L)=>{const b=j||t&&le(),S=f||t&&me(),G=l||t&&ue(),A=e||t&&ge();return[ne(),pe(),ce(),Ce(),Z(),oe({typescript:b}),b?ve(Oe(j)):[],S?xe(Ee(f),t):[],A?Y():[],G?ke(_e(l),t):[],fe(),D(),ee(u),o,L].flat()},"jimmyDotCodes");export{Te as default};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jimmy.codes/eslint-config",
3
- "version": "3.8.1",
3
+ "version": "3.8.2",
4
4
  "description": "another opinionated eslint config",
5
5
  "keywords": [
6
6
  "eslint",