@tarsilla/eslint-config 1.0.6 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/lib/index.cjs +1 -1
  2. package/lib/index.cjs.map +1 -1
  3. package/lib/index.d.ts +7 -5
  4. package/lib/index.mjs +1 -1
  5. package/lib/index.mjs.map +1 -1
  6. package/lib/library/index.cjs +1 -1
  7. package/lib/library/index.cjs.map +1 -1
  8. package/lib/library/index.d.ts +2 -2
  9. package/lib/library/index.mjs +1 -1
  10. package/lib/library/index.mjs.map +1 -1
  11. package/lib/next/index.cjs +1 -1
  12. package/lib/next/index.cjs.map +1 -1
  13. package/lib/next/index.d.ts +2 -2
  14. package/lib/next/index.mjs +1 -1
  15. package/lib/next/index.mjs.map +1 -1
  16. package/lib/react/index.cjs +1 -1
  17. package/lib/react/index.cjs.map +1 -1
  18. package/lib/react/index.d.ts +2 -2
  19. package/lib/react/index.mjs +1 -1
  20. package/lib/react/index.mjs.map +1 -1
  21. package/lib/storybook/index.cjs +2 -0
  22. package/lib/storybook/index.cjs.map +1 -0
  23. package/lib/storybook/index.d.ts +9 -0
  24. package/lib/storybook/index.mjs +2 -0
  25. package/lib/storybook/index.mjs.map +1 -0
  26. package/package.json +43 -24
  27. package/src/commons/all.ts +14 -11
  28. package/src/commons/index.ts +1 -2
  29. package/src/commons/javascript.ts +4 -4
  30. package/src/commons/jest.ts +2 -3
  31. package/src/commons/perfectionist.ts +140 -0
  32. package/src/commons/prettier.ts +6 -7
  33. package/src/commons/react-hooks.ts +3 -4
  34. package/src/commons/unusedImports.ts +10 -7
  35. package/src/index.ts +1 -0
  36. package/src/library/eslintLibraryConfig.ts +6 -19
  37. package/src/next/eslintNextConfig.ts +10 -52
  38. package/src/react/eslintReactConfig.ts +12 -18
  39. package/src/storybook/eslintStorybookConfig.ts +47 -0
  40. package/src/storybook/index.ts +1 -0
  41. package/src/commons/imports.ts +0 -44
  42. package/src/commons/sortImports.ts +0 -17
package/lib/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("globals"),r=require("typescript-eslint"),t=require("@eslint/js"),i=require("eslint-plugin-import"),n=require("eslint-plugin-jest"),s=require("eslint-plugin-prettier/recommended"),o=require("eslint-plugin-react-hooks"),l=require("eslint-plugin-unused-imports"),a=require("path"),p=require("url"),c=require("@eslint/eslintrc"),u=require("eslint-plugin-react"),g="undefined"!=typeof document?document.currentScript:null;const f=r.config([t.configs.recommended,...r.configs.stylistic,...r.configs.stylisticTypeChecked,{languageOptions:{parserOptions:{ecmaVersion:"latest",sourceType:"module",project:!0,tsconfigRootDir:"./"},globals:{...e.builtin,...e.es2021}},rules:{"@typescript-eslint/consistent-type-definitions":["error","type"],"@typescript-eslint/explicit-module-boundary-types":"error","@typescript-eslint/no-explicit-any":"error"}}]),d=r.config([i.flatConfigs.recommended,i.flatConfigs.typescript,{rules:{"import/order":["error",{groups:["builtin","external","internal",["parent","sibling"]],pathGroups:[{pattern:"react",group:"external",position:"before"},{pattern:"@tarsilla/**",group:"internal",position:"before"}],pathGroupsExcludedImportTypes:["react","@tarsilla"],"newlines-between":"always",alphabetize:{order:"asc",caseInsensitive:!0}}]},settings:{"import/resolver":{typescript:!0,node:!0}}}]),m=r.config({files:["**/*.{cjs,mjs,js,jsx}"],extends:[r.configs.disableTypeChecked]}),b=r.config({files:["**/*.test.{js,ts,jsx,tsx}"],...n.configs["flat/recommended"]}),x=r.config([s,{rules:{...s.rules,"prettier/prettier":["error",{semi:!0,trailingComma:"all",singleQuote:!0,jsxSingleQuote:!0,printWidth:120,tabWidth:2},{usePrettierrc:!1,fileInfoOptions:{withNodeModules:!0}}]}}]),y=r.config({files:["**/*.{jsx,tsx}"],plugins:{"react-hooks":o},rules:{...o.configs.recommended.rules,"react/react-in-jsx-scope":"off","react/jsx-uses-react":"off"}}),h=r.config({rules:{"sort-imports":["error",{ignoreCase:!0,ignoreDeclarationSort:!0,ignoreMemberSort:!1}]}}),j=r.config({plugins:{"unused-imports":l},rules:{"@typescript-eslint/no-unused-vars":"off","no-unused-vars":"off","unused-imports/no-unused-imports":"error","unused-imports/no-unused-vars":["error",{vars:"all",varsIgnorePattern:"^_",args:"after-used",argsIgnorePattern:"^_"}]}});const q=p.fileURLToPath("undefined"==typeof document?require("url").pathToFileURL(__filename).href:g&&"SCRIPT"===g.tagName.toUpperCase()&&g.src||new URL("index.cjs",document.baseURI).href),w=a.dirname(q),C=new c.FlatCompat({baseDirectory:w});exports.eslintLibraryConfig=function({ignores:t}){return r.config(...r.config({ignores:t}),...r.config({languageOptions:{globals:{...e.node}}}),...f,...j,...h,...d,...m,...b,...x)},exports.eslintNextConfig=function({ignores:t}){return r.config(...r.config({ignores:t}),...r.config({languageOptions:{globals:{...e.node,...e.browser}}}),...f,...C.config({extends:["next/core-web-vitals","next/typescript"],rules:{"import/order":["error",{groups:["builtin","external","internal",["parent","sibling"]],pathGroups:[{pattern:"react",group:"external",position:"before"},{pattern:"@tarsilla/**",group:"internal",position:"before"}],pathGroupsExcludedImportTypes:["react","@tarsilla"],"newlines-between":"always",alphabetize:{order:"asc",caseInsensitive:!0}}]}}),...y,...j,...h,...m,...b,...x)},exports.eslintReactConfig=function({ignores:t}){return r.config(...r.config({ignores:t}),...r.config({languageOptions:{globals:{...e.browser}}}),...f,...r.config({files:["**/*.{jsx,tsx}"],...u.configs.flat.recommended,...u.configs.flat["jsx-runtime"],settings:{react:{version:"detect"}}}),...y,...j,...h,...d,...m,...b,...x)};
1
+ "use strict";var e=require("eslint/config"),r=require("@eslint/js"),s=require("globals"),t=require("typescript-eslint"),i=require("eslint-plugin-jest"),n=require("eslint-plugin-perfectionist"),o=require("eslint-plugin-prettier/recommended"),a=require("eslint-plugin-react-hooks"),l=require("eslint-plugin-unused-imports"),p=require("@next/eslint-plugin-next"),c=require("eslint-plugin-react-x"),u=require("eslint-plugin-storybook");const g=e.defineConfig([r.configs.recommended,...t.configs.strictTypeChecked,...t.configs.stylisticTypeChecked,{languageOptions:{globals:{...s.builtin,...s.es2026,...s.node},parserOptions:{ecmaVersion:"latest",project:!0,sourceType:"module",tsconfigRootDir:"./"}},rules:{"import/order":"off","no-unused-vars":"off","@typescript-eslint/consistent-type-definitions":["error","type"],"@typescript-eslint/no-unnecessary-type-parameters":"off","@typescript-eslint/no-unused-vars":"off"}}]),f=e.defineConfig({extends:[t.configs.disableTypeChecked],files:["**/*.{cjs,mjs,js,jsx}"]}),d=e.defineConfig({files:["**/*.test.{js,ts,jsx,tsx}"],...i.configs["flat/recommended"]}),m=new Map([["sort-arrays",["error",{ignoreCase:!1,order:"asc",specialCharacters:"trim",useConfigurationIf:{matchesAstSelector:"TSAsExpression > ArrayExpression"}}]],["sort-exports",["error",{ignoreCase:!1,order:"asc",specialCharacters:"trim",type:"alphabetical"}]],["sort-imports",["error",{customGroups:[{elementNamePattern:"@tarsilla(/.*)?$",groupName:"@tarsilla"}],groups:["type-import","value-builtin","value-external","@tarsilla","value-internal",["type-parent","type-sibling","type-index"],["value-parent","value-sibling","value-index"],"ts-equals-import","unknown"],ignoreCase:!1,newlinesBetween:1,order:"asc",specialCharacters:"trim",tsconfig:{rootDir:"."},type:"alphabetical"}]],["sort-named-exports",["error",{ignoreCase:!1,order:"asc",specialCharacters:"trim",type:"alphabetical"}]],["sort-named-imports",["error",{ignoreCase:!1,order:"asc",specialCharacters:"trim",type:"alphabetical"}]],["sort-union-types",["error",{groups:["conditional","function","import","intersection","keyword","literal","named","object","operator","tuple","union","nullish"],ignoreCase:!1,order:"asc",specialCharacters:"trim",type:"alphabetical"}]]]),y=e.defineConfig({plugins:{perfectionistPlugin:n},rules:Object.fromEntries(Object.keys(n.rules??{}).map(e=>[`perfectionist/${e}`,m.get(e)??["error",{ignoreCase:!0,order:"asc",specialCharacters:"trim",type:"alphabetical"}]]))}),C=e.defineConfig([o,{rules:{...o.rules,"prettier/prettier":["error",{jsxSingleQuote:!0,printWidth:120,semi:!0,singleQuote:!0,tabWidth:2,trailingComma:"all"},{fileInfoOptions:{withNodeModules:!0},usePrettierrc:!1}]}}]),b=e.defineConfig({files:["**/*.{jsx,tsx}"],plugins:{"react-hooks":a},rules:{...a.configs.recommended.rules,"react/jsx-uses-react":"off","react/react-in-jsx-scope":"off"}}),x=e.defineConfig({plugins:{"unused-imports":l},rules:{"unused-imports/no-unused-imports":"error","unused-imports/no-unused-vars":["error",{args:"after-used",argsIgnorePattern:"^_",vars:"all",varsIgnorePattern:"^_"}]},settings:{"import/resolver":{node:!0,typescript:!0}}});exports.eslintLibraryConfig=function({ignores:r}){return e.defineConfig(e.globalIgnores(r),...g,...x,...y,...f,...d,...C)},exports.eslintNextConfig=function({ignores:r}){return e.defineConfig(e.globalIgnores(r),{languageOptions:{globals:{...s.browser}}},...g,p.configs["core-web-vitals"],...b,...x,...y,...f,...d,...C)},exports.eslintReactConfig=function({ignores:r}){return e.defineConfig(e.globalIgnores(r),{languageOptions:{globals:{...s.browser}}},...g,{files:["**/*.{jsx,tsx}"],...c.configs["strict-type-checked"],settings:{react:{version:"detect"}}},...b,...x,...y,...f,...d,...C)},exports.eslintStorybookConfig=function({ignores:r}){return e.defineConfig(e.globalIgnores(r),{languageOptions:{globals:{...s.browser}}},...g,{files:["**/*.{jsx,tsx}"],...c.configs["strict-type-checked"],settings:{react:{version:"detect"}}},...b,...x,...y,...f,...d,...C,...u.configs["flat/recommended"])};
2
2
  //# sourceMappingURL=index.cjs.map
package/lib/index.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/commons/all.ts","../src/commons/imports.ts","../src/commons/javascript.ts","../src/commons/jest.ts","../src/commons/prettier.ts","../src/commons/react-hooks.ts","../src/commons/sortImports.ts","../src/commons/unusedImports.ts","../src/next/eslintNextConfig.ts","../src/library/eslintLibraryConfig.ts","../src/react/eslintReactConfig.ts"],"sourcesContent":["import js from '@eslint/js';\nimport type { TSESLint } from '@typescript-eslint/utils';\nimport globals from 'globals';\nimport { config, configs } from 'typescript-eslint';\n\nconst allConfig: TSESLint.FlatConfig.ConfigArray = config([\n js.configs.recommended,\n ...configs.stylistic,\n ...configs.stylisticTypeChecked,\n {\n languageOptions: {\n parserOptions: {\n ecmaVersion: 'latest',\n sourceType: 'module',\n project: true,\n tsconfigRootDir: './',\n },\n globals: {\n ...globals.builtin,\n ...globals.es2021,\n },\n },\n rules: {\n '@typescript-eslint/consistent-type-definitions': ['error', 'type'],\n '@typescript-eslint/explicit-module-boundary-types': 'error',\n '@typescript-eslint/no-explicit-any': 'error',\n },\n },\n]);\n\nexport { allConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport imports from 'eslint-plugin-import';\nimport { config } from 'typescript-eslint';\n\nconst importsConfig: TSESLint.FlatConfig.ConfigArray = config([\n imports.flatConfigs.recommended,\n imports.flatConfigs.typescript,\n {\n rules: {\n 'import/order': [\n 'error',\n {\n groups: ['builtin', 'external', 'internal', ['parent', 'sibling']],\n pathGroups: [\n {\n pattern: 'react',\n group: 'external',\n position: 'before',\n },\n {\n pattern: '@tarsilla/**',\n group: 'internal',\n position: 'before',\n },\n ],\n pathGroupsExcludedImportTypes: ['react', '@tarsilla'],\n 'newlines-between': 'always',\n alphabetize: {\n order: 'asc',\n caseInsensitive: true,\n },\n },\n ],\n },\n settings: {\n 'import/resolver': {\n typescript: true,\n node: true,\n },\n },\n },\n]);\n\nexport { importsConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport { config, configs } from 'typescript-eslint';\n\nconst javascriptConfig: TSESLint.FlatConfig.ConfigArray = config({\n files: ['**/*.{cjs,mjs,js,jsx}'],\n extends: [configs.disableTypeChecked],\n});\n\nexport { javascriptConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport jest from 'eslint-plugin-jest';\nimport { config } from 'typescript-eslint';\n\nconst jestConfig: TSESLint.FlatConfig.ConfigArray = config({\n files: ['**/*.test.{js,ts,jsx,tsx}'],\n ...jest.configs['flat/recommended'],\n});\n\nexport { jestConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport prettierRecommended from 'eslint-plugin-prettier/recommended';\nimport { config } from 'typescript-eslint';\n\nconst prettierConfig: TSESLint.FlatConfig.ConfigArray = config([\n prettierRecommended,\n {\n rules: {\n ...prettierRecommended.rules,\n 'prettier/prettier': [\n 'error',\n {\n semi: true,\n trailingComma: 'all',\n singleQuote: true,\n jsxSingleQuote: true,\n printWidth: 120,\n tabWidth: 2,\n },\n {\n usePrettierrc: false,\n fileInfoOptions: {\n withNodeModules: true,\n },\n },\n ],\n },\n },\n]);\n\nexport { prettierConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport reactHooks from 'eslint-plugin-react-hooks';\nimport { config } from 'typescript-eslint';\n\nconst reactHooksConfig: TSESLint.FlatConfig.ConfigArray = config({\n files: ['**/*.{jsx,tsx}'],\n plugins: {\n 'react-hooks': reactHooks,\n },\n rules: {\n ...reactHooks.configs.recommended.rules,\n 'react/react-in-jsx-scope': 'off',\n 'react/jsx-uses-react': 'off',\n },\n});\n\nexport { reactHooksConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport { config } from 'typescript-eslint';\n\nconst sortImportsConfig: TSESLint.FlatConfig.ConfigArray = config({\n rules: {\n 'sort-imports': [\n 'error',\n {\n ignoreCase: true,\n ignoreDeclarationSort: true,\n ignoreMemberSort: false,\n },\n ],\n },\n});\n\nexport { sortImportsConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport unusedImports from 'eslint-plugin-unused-imports';\nimport { config } from 'typescript-eslint';\n\nconst unusedImportsConfig: TSESLint.FlatConfig.ConfigArray = config({\n plugins: {\n 'unused-imports': unusedImports,\n },\n rules: {\n '@typescript-eslint/no-unused-vars': 'off',\n 'no-unused-vars': 'off',\n 'unused-imports/no-unused-imports': 'error',\n 'unused-imports/no-unused-vars': [\n 'error',\n {\n vars: 'all',\n varsIgnorePattern: '^_',\n args: 'after-used',\n argsIgnorePattern: '^_',\n },\n ],\n },\n});\n\nexport { unusedImportsConfig };\n","import { dirname } from 'path';\nimport { fileURLToPath } from 'url';\n\nimport { FlatCompat } from '@eslint/eslintrc';\nimport type { TSESLint } from '@typescript-eslint/utils';\nimport globals from 'globals';\nimport { config } from 'typescript-eslint';\n\nimport {\n allConfig,\n javascriptConfig,\n jestConfig,\n prettierConfig,\n reactHooksConfig,\n sortImportsConfig,\n unusedImportsConfig,\n} from '../commons/index.js';\nimport { EslintOptions } from '../types/index.js';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\n\nconst compat = new FlatCompat({\n baseDirectory: __dirname,\n});\n\nfunction eslintNextConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray {\n return config(\n ...config({\n ignores,\n }),\n ...config({\n languageOptions: {\n globals: {\n ...globals.node,\n ...globals.browser,\n },\n },\n }),\n ...allConfig,\n ...compat.config({\n extends: ['next/core-web-vitals', 'next/typescript'],\n rules: {\n 'import/order': [\n 'error',\n {\n groups: ['builtin', 'external', 'internal', ['parent', 'sibling']],\n pathGroups: [\n {\n pattern: 'react',\n group: 'external',\n position: 'before',\n },\n {\n pattern: '@tarsilla/**',\n group: 'internal',\n position: 'before',\n },\n ],\n pathGroupsExcludedImportTypes: ['react', '@tarsilla'],\n 'newlines-between': 'always',\n alphabetize: {\n order: 'asc',\n caseInsensitive: true,\n },\n },\n ],\n },\n }),\n ...reactHooksConfig,\n ...unusedImportsConfig,\n ...sortImportsConfig,\n ...javascriptConfig,\n ...jestConfig,\n ...prettierConfig,\n );\n}\n\nexport { eslintNextConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport globals from 'globals';\nimport { config } from 'typescript-eslint';\n\nimport {\n allConfig,\n importsConfig,\n javascriptConfig,\n jestConfig,\n prettierConfig,\n sortImportsConfig,\n unusedImportsConfig,\n} from '../commons/index.js';\nimport { EslintOptions } from '../types/index.js';\n\nfunction eslintLibraryConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray {\n return config(\n ...config({\n ignores,\n }),\n ...config({\n languageOptions: {\n globals: {\n ...globals.node,\n },\n },\n }),\n ...allConfig,\n ...unusedImportsConfig,\n ...sortImportsConfig,\n ...importsConfig,\n ...javascriptConfig,\n ...jestConfig,\n ...prettierConfig,\n );\n}\n\nexport { eslintLibraryConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport reactPlugin from 'eslint-plugin-react';\nimport globals from 'globals';\nimport { config } from 'typescript-eslint';\n\nimport {\n allConfig,\n importsConfig,\n javascriptConfig,\n jestConfig,\n prettierConfig,\n reactHooksConfig,\n sortImportsConfig,\n unusedImportsConfig,\n} from '../commons/index.js';\nimport { EslintOptions } from '../types/index.js';\n\nfunction eslintReactConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray {\n return config(\n ...config({\n ignores,\n }),\n ...config({\n languageOptions: {\n globals: {\n ...globals.browser,\n },\n },\n }),\n ...allConfig,\n ...config({\n files: ['**/*.{jsx,tsx}'],\n ...reactPlugin.configs.flat.recommended,\n ...reactPlugin.configs.flat['jsx-runtime'],\n settings: {\n react: {\n version: 'detect',\n },\n },\n }),\n ...reactHooksConfig,\n ...unusedImportsConfig,\n ...sortImportsConfig,\n ...importsConfig,\n ...javascriptConfig,\n ...jestConfig,\n ...prettierConfig,\n );\n}\n\nexport { eslintReactConfig };\n"],"names":["allConfig","config","js","configs","recommended","stylistic","stylisticTypeChecked","languageOptions","parserOptions","ecmaVersion","sourceType","project","tsconfigRootDir","globals","builtin","es2021","rules","importsConfig","imports","flatConfigs","typescript","groups","pathGroups","pattern","group","position","pathGroupsExcludedImportTypes","alphabetize","order","caseInsensitive","settings","node","javascriptConfig","files","extends","disableTypeChecked","jestConfig","jest","prettierConfig","prettierRecommended","semi","trailingComma","singleQuote","jsxSingleQuote","printWidth","tabWidth","usePrettierrc","fileInfoOptions","withNodeModules","reactHooksConfig","plugins","reactHooks","sortImportsConfig","ignoreCase","ignoreDeclarationSort","ignoreMemberSort","unusedImportsConfig","unusedImports","vars","varsIgnorePattern","args","argsIgnorePattern","__filename","fileURLToPath","__dirname","dirname","compat","FlatCompat","baseDirectory","ignores","browser","reactPlugin","flat","react","version"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../src/commons/all.ts","../src/commons/javascript.ts","../src/commons/jest.ts","../src/commons/perfectionist.ts","../src/commons/prettier.ts","../src/commons/react-hooks.ts","../src/commons/unusedImports.ts","../src/library/eslintLibraryConfig.ts","../src/next/eslintNextConfig.ts","../src/react/eslintReactConfig.ts","../src/storybook/eslintStorybookConfig.ts"],"sourcesContent":["import { defineConfig } from 'eslint/config';\nimport js from '@eslint/js';\nimport globals from 'globals';\nimport { configs } from 'typescript-eslint';\n\nconst allConfig = defineConfig([\n js.configs.recommended,\n ...configs.strictTypeChecked,\n ...configs.stylisticTypeChecked,\n {\n languageOptions: {\n globals: {\n ...globals.builtin,\n ...globals.es2026,\n ...globals.node,\n },\n parserOptions: {\n ecmaVersion: 'latest',\n project: true,\n sourceType: 'module',\n tsconfigRootDir: './',\n },\n },\n rules: {\n 'import/order': 'off',\n 'no-unused-vars': 'off',\n '@typescript-eslint/consistent-type-definitions': ['error', 'type'],\n '@typescript-eslint/no-unnecessary-type-parameters': 'off',\n '@typescript-eslint/no-unused-vars': 'off',\n },\n },\n]);\n\nexport { allConfig };\n","import { defineConfig } from 'eslint/config';\nimport { configs } from 'typescript-eslint';\n\nconst javascriptConfig = defineConfig({\n extends: [configs.disableTypeChecked],\n files: ['**/*.{cjs,mjs,js,jsx}'],\n});\n\nexport { javascriptConfig };\n","import jest from 'eslint-plugin-jest';\nimport { defineConfig } from 'eslint/config';\n\nconst jestConfig = defineConfig({\n files: ['**/*.test.{js,ts,jsx,tsx}'],\n ...jest.configs['flat/recommended'],\n});\n\nexport { jestConfig };\n","import perfectionistPlugin from 'eslint-plugin-perfectionist';\nimport { defineConfig } from 'eslint/config';\nimport { RuleConfig } from '@eslint/core';\n\nconst perfectionistOverrides = new Map<string, RuleConfig>([\n [\n 'sort-arrays',\n [\n 'error',\n {\n ignoreCase: false,\n order: 'asc',\n specialCharacters: 'trim',\n useConfigurationIf: {\n matchesAstSelector: 'TSAsExpression > ArrayExpression',\n },\n },\n ],\n ],\n [\n 'sort-exports',\n [\n 'error',\n {\n ignoreCase: false,\n order: 'asc',\n specialCharacters: 'trim',\n type: 'alphabetical',\n },\n ],\n ],\n [\n 'sort-imports',\n [\n 'error',\n {\n customGroups: [\n {\n elementNamePattern: '@tarsilla(/.*)?$',\n groupName: '@tarsilla',\n },\n ],\n groups: [\n 'type-import',\n 'value-builtin',\n 'value-external',\n '@tarsilla',\n 'value-internal',\n ['type-parent', 'type-sibling', 'type-index'],\n ['value-parent', 'value-sibling', 'value-index'],\n 'ts-equals-import',\n 'unknown',\n ],\n ignoreCase: false,\n newlinesBetween: 1,\n order: 'asc',\n specialCharacters: 'trim',\n tsconfig: {\n rootDir: '.',\n },\n type: 'alphabetical',\n },\n ],\n ],\n [\n 'sort-named-exports',\n [\n 'error',\n {\n ignoreCase: false,\n order: 'asc',\n specialCharacters: 'trim',\n type: 'alphabetical',\n },\n ],\n ],\n [\n 'sort-named-imports',\n [\n 'error',\n {\n ignoreCase: false,\n order: 'asc',\n specialCharacters: 'trim',\n type: 'alphabetical',\n },\n ],\n ],\n [\n 'sort-union-types',\n [\n 'error',\n {\n groups: [\n 'conditional',\n 'function',\n 'import',\n 'intersection',\n 'keyword',\n 'literal',\n 'named',\n 'object',\n 'operator',\n 'tuple',\n 'union',\n 'nullish',\n ],\n ignoreCase: false,\n order: 'asc',\n specialCharacters: 'trim',\n type: 'alphabetical',\n },\n ],\n ],\n]);\n\nconst perfectionist = defineConfig({\n plugins: {\n perfectionistPlugin,\n },\n rules: Object.fromEntries(\n Object.keys(perfectionistPlugin.rules ?? {}).map((rule) => {\n const override = perfectionistOverrides.get(rule);\n return [\n `perfectionist/${rule}`,\n override ?? [\n 'error',\n {\n ignoreCase: true,\n order: 'asc',\n specialCharacters: 'trim',\n type: 'alphabetical',\n },\n ],\n ];\n }),\n ),\n});\n\nexport { perfectionist };\n","import prettierRecommended from 'eslint-plugin-prettier/recommended';\nimport { defineConfig } from 'eslint/config';\n\nconst prettierConfig = defineConfig([\n prettierRecommended,\n {\n rules: {\n ...prettierRecommended.rules,\n 'prettier/prettier': [\n 'error',\n {\n jsxSingleQuote: true,\n printWidth: 120,\n semi: true,\n singleQuote: true,\n tabWidth: 2,\n trailingComma: 'all',\n },\n {\n fileInfoOptions: {\n withNodeModules: true,\n },\n usePrettierrc: false,\n },\n ],\n },\n },\n]);\n\nexport { prettierConfig };\n","import reactHooks from 'eslint-plugin-react-hooks';\nimport { defineConfig } from 'eslint/config';\n\nconst reactHooksConfig = defineConfig({\n files: ['**/*.{jsx,tsx}'],\n plugins: {\n 'react-hooks': reactHooks,\n },\n rules: {\n ...reactHooks.configs.recommended.rules,\n 'react/jsx-uses-react': 'off',\n 'react/react-in-jsx-scope': 'off',\n },\n});\n\nexport { reactHooksConfig };\n","import unusedImports from 'eslint-plugin-unused-imports';\nimport { defineConfig } from 'eslint/config';\n\nconst unusedImportsConfig = defineConfig({\n plugins: {\n 'unused-imports': unusedImports,\n },\n rules: {\n 'unused-imports/no-unused-imports': 'error',\n 'unused-imports/no-unused-vars': [\n 'error',\n {\n args: 'after-used',\n argsIgnorePattern: '^_',\n vars: 'all',\n varsIgnorePattern: '^_',\n },\n ],\n },\n settings: {\n 'import/resolver': {\n node: true,\n typescript: true,\n },\n },\n});\n\nexport { unusedImportsConfig };\n","import { defineConfig, globalIgnores } from 'eslint/config';\n\nimport {\n allConfig,\n javascriptConfig,\n jestConfig,\n perfectionist,\n prettierConfig,\n unusedImportsConfig,\n} from '../commons/index.js';\nimport { EslintOptions } from '../types/index.js';\n\nfunction eslintLibraryConfig({ ignores }: EslintOptions) {\n return defineConfig(\n globalIgnores(ignores),\n ...allConfig,\n ...unusedImportsConfig,\n ...perfectionist,\n ...javascriptConfig,\n ...jestConfig,\n ...prettierConfig,\n );\n}\n\nexport { eslintLibraryConfig };\n","import { defineConfig, globalIgnores } from 'eslint/config';\nimport globals from 'globals';\nimport nextPlugin from '@next/eslint-plugin-next';\n\nimport {\n allConfig,\n javascriptConfig,\n jestConfig,\n perfectionist,\n prettierConfig,\n reactHooksConfig,\n unusedImportsConfig,\n} from '../commons/index.js';\nimport { EslintOptions } from '../types/index.js';\n\nfunction eslintNextConfig({ ignores }: EslintOptions) {\n return defineConfig(\n globalIgnores(ignores),\n {\n languageOptions: {\n globals: {\n ...globals.browser,\n },\n },\n },\n ...allConfig,\n nextPlugin.configs['core-web-vitals'],\n ...reactHooksConfig,\n ...unusedImportsConfig,\n ...perfectionist,\n ...javascriptConfig,\n ...jestConfig,\n ...prettierConfig,\n );\n}\n\nexport { eslintNextConfig };\n","import reactPlugin from 'eslint-plugin-react-x';\nimport { defineConfig, globalIgnores } from 'eslint/config';\nimport globals from 'globals';\n\nimport {\n allConfig,\n javascriptConfig,\n jestConfig,\n perfectionist,\n prettierConfig,\n reactHooksConfig,\n unusedImportsConfig,\n} from '../commons/index.js';\nimport { EslintOptions } from '../types/index.js';\n\nfunction eslintReactConfig({ ignores }: EslintOptions) {\n return defineConfig(\n globalIgnores(ignores),\n {\n languageOptions: {\n globals: {\n ...globals.browser,\n },\n },\n },\n ...allConfig,\n {\n files: ['**/*.{jsx,tsx}'],\n ...reactPlugin.configs['strict-type-checked'],\n settings: {\n react: {\n version: 'detect',\n },\n },\n },\n ...reactHooksConfig,\n ...unusedImportsConfig,\n ...perfectionist,\n ...javascriptConfig,\n ...jestConfig,\n ...prettierConfig,\n );\n}\n\nexport { eslintReactConfig };\n","import reactPlugin from 'eslint-plugin-react-x';\nimport storybookPlugin from 'eslint-plugin-storybook';\nimport { defineConfig, globalIgnores } from 'eslint/config';\nimport globals from 'globals';\n\nimport {\n allConfig,\n javascriptConfig,\n jestConfig,\n perfectionist,\n prettierConfig,\n reactHooksConfig,\n unusedImportsConfig,\n} from '../commons/index.js';\nimport { EslintOptions } from '../types/index.js';\n\nfunction eslintStorybookConfig({ ignores }: EslintOptions) {\n return defineConfig(\n globalIgnores(ignores),\n {\n languageOptions: {\n globals: {\n ...globals.browser,\n },\n },\n },\n ...allConfig,\n {\n files: ['**/*.{jsx,tsx}'],\n ...reactPlugin.configs['strict-type-checked'],\n settings: {\n react: {\n version: 'detect',\n },\n },\n },\n ...reactHooksConfig,\n ...unusedImportsConfig,\n ...perfectionist,\n ...javascriptConfig,\n ...jestConfig,\n ...prettierConfig,\n ...storybookPlugin.configs['flat/recommended'],\n );\n}\n\nexport { eslintStorybookConfig };\n"],"names":["allConfig","defineConfig","js","configs","recommended","strictTypeChecked","stylisticTypeChecked","languageOptions","globals","builtin","es2026","node","parserOptions","ecmaVersion","project","sourceType","tsconfigRootDir","rules","javascriptConfig","extends","disableTypeChecked","files","jestConfig","jest","perfectionistOverrides","Map","ignoreCase","order","specialCharacters","useConfigurationIf","matchesAstSelector","type","customGroups","elementNamePattern","groupName","groups","newlinesBetween","tsconfig","rootDir","perfectionist","plugins","perfectionistPlugin","Object","fromEntries","keys","map","rule","get","prettierConfig","prettierRecommended","jsxSingleQuote","printWidth","semi","singleQuote","tabWidth","trailingComma","fileInfoOptions","withNodeModules","usePrettierrc","reactHooksConfig","reactHooks","unusedImportsConfig","unusedImports","args","argsIgnorePattern","vars","varsIgnorePattern","settings","typescript","ignores","globalIgnores","browser","nextPlugin","reactPlugin","react","version","storybookPlugin"],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -1,14 +1,16 @@
1
- import { TSESLint } from '@typescript-eslint/utils';
1
+ import * as eslint_config from 'eslint/config';
2
2
 
3
3
  type EslintOptions = {
4
4
  ignores: string[];
5
5
  };
6
6
 
7
- declare function eslintLibraryConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray;
7
+ declare function eslintLibraryConfig({ ignores }: EslintOptions): eslint_config.Config[];
8
8
 
9
- declare function eslintNextConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray;
9
+ declare function eslintNextConfig({ ignores }: EslintOptions): eslint_config.Config[];
10
10
 
11
- declare function eslintReactConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray;
11
+ declare function eslintReactConfig({ ignores }: EslintOptions): eslint_config.Config[];
12
12
 
13
- export { eslintLibraryConfig, eslintNextConfig, eslintReactConfig };
13
+ declare function eslintStorybookConfig({ ignores }: EslintOptions): eslint_config.Config[];
14
+
15
+ export { eslintLibraryConfig, eslintNextConfig, eslintReactConfig, eslintStorybookConfig };
14
16
  export type { EslintOptions };
package/lib/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import e from"globals";import{config as r,configs as t}from"typescript-eslint";import s from"@eslint/js";import o from"eslint-plugin-import";import i from"eslint-plugin-jest";import n from"eslint-plugin-prettier/recommended";import l from"eslint-plugin-react-hooks";import p from"eslint-plugin-unused-imports";import{dirname as a}from"path";import{fileURLToPath as u}from"url";import{FlatCompat as c}from"@eslint/eslintrc";import m from"eslint-plugin-react";const g=r([s.configs.recommended,...t.stylistic,...t.stylisticTypeChecked,{languageOptions:{parserOptions:{ecmaVersion:"latest",sourceType:"module",project:!0,tsconfigRootDir:"./"},globals:{...e.builtin,...e.es2021}},rules:{"@typescript-eslint/consistent-type-definitions":["error","type"],"@typescript-eslint/explicit-module-boundary-types":"error","@typescript-eslint/no-explicit-any":"error"}}]),f=r([o.flatConfigs.recommended,o.flatConfigs.typescript,{rules:{"import/order":["error",{groups:["builtin","external","internal",["parent","sibling"]],pathGroups:[{pattern:"react",group:"external",position:"before"},{pattern:"@tarsilla/**",group:"internal",position:"before"}],pathGroupsExcludedImportTypes:["react","@tarsilla"],"newlines-between":"always",alphabetize:{order:"asc",caseInsensitive:!0}}]},settings:{"import/resolver":{typescript:!0,node:!0}}}]),d=r({files:["**/*.{cjs,mjs,js,jsx}"],extends:[t.disableTypeChecked]}),b=r({files:["**/*.test.{js,ts,jsx,tsx}"],...i.configs["flat/recommended"]}),x=r([n,{rules:{...n.rules,"prettier/prettier":["error",{semi:!0,trailingComma:"all",singleQuote:!0,jsxSingleQuote:!0,printWidth:120,tabWidth:2},{usePrettierrc:!1,fileInfoOptions:{withNodeModules:!0}}]}}]),y=r({files:["**/*.{jsx,tsx}"],plugins:{"react-hooks":l},rules:{...l.configs.recommended.rules,"react/react-in-jsx-scope":"off","react/jsx-uses-react":"off"}}),j=r({rules:{"sort-imports":["error",{ignoreCase:!0,ignoreDeclarationSort:!0,ignoreMemberSort:!1}]}}),h=r({plugins:{"unused-imports":p},rules:{"@typescript-eslint/no-unused-vars":"off","no-unused-vars":"off","unused-imports/no-unused-imports":"error","unused-imports/no-unused-vars":["error",{vars:"all",varsIgnorePattern:"^_",args:"after-used",argsIgnorePattern:"^_"}]}});function w({ignores:t}){return r(...r({ignores:t}),...r({languageOptions:{globals:{...e.node}}}),...g,...h,...j,...f,...d,...b,...x)}const v=new c({baseDirectory:a(u(import.meta.url))});function I({ignores:t}){return r(...r({ignores:t}),...r({languageOptions:{globals:{...e.node,...e.browser}}}),...g,...v.config({extends:["next/core-web-vitals","next/typescript"],rules:{"import/order":["error",{groups:["builtin","external","internal",["parent","sibling"]],pathGroups:[{pattern:"react",group:"external",position:"before"},{pattern:"@tarsilla/**",group:"internal",position:"before"}],pathGroupsExcludedImportTypes:["react","@tarsilla"],"newlines-between":"always",alphabetize:{order:"asc",caseInsensitive:!0}}]}}),...y,...h,...j,...d,...b,...x)}function C({ignores:t}){return r(...r({ignores:t}),...r({languageOptions:{globals:{...e.browser}}}),...g,...r({files:["**/*.{jsx,tsx}"],...m.configs.flat.recommended,...m.configs.flat["jsx-runtime"],settings:{react:{version:"detect"}}}),...y,...h,...j,...f,...d,...b,...x)}export{w as eslintLibraryConfig,I as eslintNextConfig,C as eslintReactConfig};
1
+ import{defineConfig as e,globalIgnores as r}from"eslint/config";import t from"@eslint/js";import s from"globals";import{configs as i}from"typescript-eslint";import o from"eslint-plugin-jest";import n from"eslint-plugin-perfectionist";import a from"eslint-plugin-prettier/recommended";import l from"eslint-plugin-react-hooks";import p from"eslint-plugin-unused-imports";import c from"@next/eslint-plugin-next";import u from"eslint-plugin-react-x";import m from"eslint-plugin-storybook";const g=e([t.configs.recommended,...i.strictTypeChecked,...i.stylisticTypeChecked,{languageOptions:{globals:{...s.builtin,...s.es2026,...s.node},parserOptions:{ecmaVersion:"latest",project:!0,sourceType:"module",tsconfigRootDir:"./"}},rules:{"import/order":"off","no-unused-vars":"off","@typescript-eslint/consistent-type-definitions":["error","type"],"@typescript-eslint/no-unnecessary-type-parameters":"off","@typescript-eslint/no-unused-vars":"off"}}]),f=e({extends:[i.disableTypeChecked],files:["**/*.{cjs,mjs,js,jsx}"]}),d=e({files:["**/*.test.{js,ts,jsx,tsx}"],...o.configs["flat/recommended"]}),y=new Map([["sort-arrays",["error",{ignoreCase:!1,order:"asc",specialCharacters:"trim",useConfigurationIf:{matchesAstSelector:"TSAsExpression > ArrayExpression"}}]],["sort-exports",["error",{ignoreCase:!1,order:"asc",specialCharacters:"trim",type:"alphabetical"}]],["sort-imports",["error",{customGroups:[{elementNamePattern:"@tarsilla(/.*)?$",groupName:"@tarsilla"}],groups:["type-import","value-builtin","value-external","@tarsilla","value-internal",["type-parent","type-sibling","type-index"],["value-parent","value-sibling","value-index"],"ts-equals-import","unknown"],ignoreCase:!1,newlinesBetween:1,order:"asc",specialCharacters:"trim",tsconfig:{rootDir:"."},type:"alphabetical"}]],["sort-named-exports",["error",{ignoreCase:!1,order:"asc",specialCharacters:"trim",type:"alphabetical"}]],["sort-named-imports",["error",{ignoreCase:!1,order:"asc",specialCharacters:"trim",type:"alphabetical"}]],["sort-union-types",["error",{groups:["conditional","function","import","intersection","keyword","literal","named","object","operator","tuple","union","nullish"],ignoreCase:!1,order:"asc",specialCharacters:"trim",type:"alphabetical"}]]]),b=e({plugins:{perfectionistPlugin:n},rules:Object.fromEntries(Object.keys(n.rules??{}).map(e=>[`perfectionist/${e}`,y.get(e)??["error",{ignoreCase:!0,order:"asc",specialCharacters:"trim",type:"alphabetical"}]]))}),h=e([a,{rules:{...a.rules,"prettier/prettier":["error",{jsxSingleQuote:!0,printWidth:120,semi:!0,singleQuote:!0,tabWidth:2,trailingComma:"all"},{fileInfoOptions:{withNodeModules:!0},usePrettierrc:!1}]}}]),x=e({files:["**/*.{jsx,tsx}"],plugins:{"react-hooks":l},rules:{...l.configs.recommended.rules,"react/jsx-uses-react":"off","react/react-in-jsx-scope":"off"}}),C=e({plugins:{"unused-imports":p},rules:{"unused-imports/no-unused-imports":"error","unused-imports/no-unused-vars":["error",{args:"after-used",argsIgnorePattern:"^_",vars:"all",varsIgnorePattern:"^_"}]},settings:{"import/resolver":{node:!0,typescript:!0}}});function j({ignores:t}){return e(r(t),...g,...C,...b,...f,...d,...h)}function v({ignores:t}){return e(r(t),{languageOptions:{globals:{...s.browser}}},...g,c.configs["core-web-vitals"],...x,...C,...b,...f,...d,...h)}function k({ignores:t}){return e(r(t),{languageOptions:{globals:{...s.browser}}},...g,{files:["**/*.{jsx,tsx}"],...u.configs["strict-type-checked"],settings:{react:{version:"detect"}}},...x,...C,...b,...f,...d,...h)}function w({ignores:t}){return e(r(t),{languageOptions:{globals:{...s.browser}}},...g,{files:["**/*.{jsx,tsx}"],...u.configs["strict-type-checked"],settings:{react:{version:"detect"}}},...x,...C,...b,...f,...d,...h,...m.configs["flat/recommended"])}export{j as eslintLibraryConfig,v as eslintNextConfig,k as eslintReactConfig,w as eslintStorybookConfig};
2
2
  //# sourceMappingURL=index.mjs.map
package/lib/index.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/commons/all.ts","../src/commons/imports.ts","../src/commons/javascript.ts","../src/commons/jest.ts","../src/commons/prettier.ts","../src/commons/react-hooks.ts","../src/commons/sortImports.ts","../src/commons/unusedImports.ts","../src/library/eslintLibraryConfig.ts","../src/next/eslintNextConfig.ts","../src/react/eslintReactConfig.ts"],"sourcesContent":["import js from '@eslint/js';\nimport type { TSESLint } from '@typescript-eslint/utils';\nimport globals from 'globals';\nimport { config, configs } from 'typescript-eslint';\n\nconst allConfig: TSESLint.FlatConfig.ConfigArray = config([\n js.configs.recommended,\n ...configs.stylistic,\n ...configs.stylisticTypeChecked,\n {\n languageOptions: {\n parserOptions: {\n ecmaVersion: 'latest',\n sourceType: 'module',\n project: true,\n tsconfigRootDir: './',\n },\n globals: {\n ...globals.builtin,\n ...globals.es2021,\n },\n },\n rules: {\n '@typescript-eslint/consistent-type-definitions': ['error', 'type'],\n '@typescript-eslint/explicit-module-boundary-types': 'error',\n '@typescript-eslint/no-explicit-any': 'error',\n },\n },\n]);\n\nexport { allConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport imports from 'eslint-plugin-import';\nimport { config } from 'typescript-eslint';\n\nconst importsConfig: TSESLint.FlatConfig.ConfigArray = config([\n imports.flatConfigs.recommended,\n imports.flatConfigs.typescript,\n {\n rules: {\n 'import/order': [\n 'error',\n {\n groups: ['builtin', 'external', 'internal', ['parent', 'sibling']],\n pathGroups: [\n {\n pattern: 'react',\n group: 'external',\n position: 'before',\n },\n {\n pattern: '@tarsilla/**',\n group: 'internal',\n position: 'before',\n },\n ],\n pathGroupsExcludedImportTypes: ['react', '@tarsilla'],\n 'newlines-between': 'always',\n alphabetize: {\n order: 'asc',\n caseInsensitive: true,\n },\n },\n ],\n },\n settings: {\n 'import/resolver': {\n typescript: true,\n node: true,\n },\n },\n },\n]);\n\nexport { importsConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport { config, configs } from 'typescript-eslint';\n\nconst javascriptConfig: TSESLint.FlatConfig.ConfigArray = config({\n files: ['**/*.{cjs,mjs,js,jsx}'],\n extends: [configs.disableTypeChecked],\n});\n\nexport { javascriptConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport jest from 'eslint-plugin-jest';\nimport { config } from 'typescript-eslint';\n\nconst jestConfig: TSESLint.FlatConfig.ConfigArray = config({\n files: ['**/*.test.{js,ts,jsx,tsx}'],\n ...jest.configs['flat/recommended'],\n});\n\nexport { jestConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport prettierRecommended from 'eslint-plugin-prettier/recommended';\nimport { config } from 'typescript-eslint';\n\nconst prettierConfig: TSESLint.FlatConfig.ConfigArray = config([\n prettierRecommended,\n {\n rules: {\n ...prettierRecommended.rules,\n 'prettier/prettier': [\n 'error',\n {\n semi: true,\n trailingComma: 'all',\n singleQuote: true,\n jsxSingleQuote: true,\n printWidth: 120,\n tabWidth: 2,\n },\n {\n usePrettierrc: false,\n fileInfoOptions: {\n withNodeModules: true,\n },\n },\n ],\n },\n },\n]);\n\nexport { prettierConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport reactHooks from 'eslint-plugin-react-hooks';\nimport { config } from 'typescript-eslint';\n\nconst reactHooksConfig: TSESLint.FlatConfig.ConfigArray = config({\n files: ['**/*.{jsx,tsx}'],\n plugins: {\n 'react-hooks': reactHooks,\n },\n rules: {\n ...reactHooks.configs.recommended.rules,\n 'react/react-in-jsx-scope': 'off',\n 'react/jsx-uses-react': 'off',\n },\n});\n\nexport { reactHooksConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport { config } from 'typescript-eslint';\n\nconst sortImportsConfig: TSESLint.FlatConfig.ConfigArray = config({\n rules: {\n 'sort-imports': [\n 'error',\n {\n ignoreCase: true,\n ignoreDeclarationSort: true,\n ignoreMemberSort: false,\n },\n ],\n },\n});\n\nexport { sortImportsConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport unusedImports from 'eslint-plugin-unused-imports';\nimport { config } from 'typescript-eslint';\n\nconst unusedImportsConfig: TSESLint.FlatConfig.ConfigArray = config({\n plugins: {\n 'unused-imports': unusedImports,\n },\n rules: {\n '@typescript-eslint/no-unused-vars': 'off',\n 'no-unused-vars': 'off',\n 'unused-imports/no-unused-imports': 'error',\n 'unused-imports/no-unused-vars': [\n 'error',\n {\n vars: 'all',\n varsIgnorePattern: '^_',\n args: 'after-used',\n argsIgnorePattern: '^_',\n },\n ],\n },\n});\n\nexport { unusedImportsConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport globals from 'globals';\nimport { config } from 'typescript-eslint';\n\nimport {\n allConfig,\n importsConfig,\n javascriptConfig,\n jestConfig,\n prettierConfig,\n sortImportsConfig,\n unusedImportsConfig,\n} from '../commons/index.js';\nimport { EslintOptions } from '../types/index.js';\n\nfunction eslintLibraryConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray {\n return config(\n ...config({\n ignores,\n }),\n ...config({\n languageOptions: {\n globals: {\n ...globals.node,\n },\n },\n }),\n ...allConfig,\n ...unusedImportsConfig,\n ...sortImportsConfig,\n ...importsConfig,\n ...javascriptConfig,\n ...jestConfig,\n ...prettierConfig,\n );\n}\n\nexport { eslintLibraryConfig };\n","import { dirname } from 'path';\nimport { fileURLToPath } from 'url';\n\nimport { FlatCompat } from '@eslint/eslintrc';\nimport type { TSESLint } from '@typescript-eslint/utils';\nimport globals from 'globals';\nimport { config } from 'typescript-eslint';\n\nimport {\n allConfig,\n javascriptConfig,\n jestConfig,\n prettierConfig,\n reactHooksConfig,\n sortImportsConfig,\n unusedImportsConfig,\n} from '../commons/index.js';\nimport { EslintOptions } from '../types/index.js';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\n\nconst compat = new FlatCompat({\n baseDirectory: __dirname,\n});\n\nfunction eslintNextConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray {\n return config(\n ...config({\n ignores,\n }),\n ...config({\n languageOptions: {\n globals: {\n ...globals.node,\n ...globals.browser,\n },\n },\n }),\n ...allConfig,\n ...compat.config({\n extends: ['next/core-web-vitals', 'next/typescript'],\n rules: {\n 'import/order': [\n 'error',\n {\n groups: ['builtin', 'external', 'internal', ['parent', 'sibling']],\n pathGroups: [\n {\n pattern: 'react',\n group: 'external',\n position: 'before',\n },\n {\n pattern: '@tarsilla/**',\n group: 'internal',\n position: 'before',\n },\n ],\n pathGroupsExcludedImportTypes: ['react', '@tarsilla'],\n 'newlines-between': 'always',\n alphabetize: {\n order: 'asc',\n caseInsensitive: true,\n },\n },\n ],\n },\n }),\n ...reactHooksConfig,\n ...unusedImportsConfig,\n ...sortImportsConfig,\n ...javascriptConfig,\n ...jestConfig,\n ...prettierConfig,\n );\n}\n\nexport { eslintNextConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport reactPlugin from 'eslint-plugin-react';\nimport globals from 'globals';\nimport { config } from 'typescript-eslint';\n\nimport {\n allConfig,\n importsConfig,\n javascriptConfig,\n jestConfig,\n prettierConfig,\n reactHooksConfig,\n sortImportsConfig,\n unusedImportsConfig,\n} from '../commons/index.js';\nimport { EslintOptions } from '../types/index.js';\n\nfunction eslintReactConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray {\n return config(\n ...config({\n ignores,\n }),\n ...config({\n languageOptions: {\n globals: {\n ...globals.browser,\n },\n },\n }),\n ...allConfig,\n ...config({\n files: ['**/*.{jsx,tsx}'],\n ...reactPlugin.configs.flat.recommended,\n ...reactPlugin.configs.flat['jsx-runtime'],\n settings: {\n react: {\n version: 'detect',\n },\n },\n }),\n ...reactHooksConfig,\n ...unusedImportsConfig,\n ...sortImportsConfig,\n ...importsConfig,\n ...javascriptConfig,\n ...jestConfig,\n ...prettierConfig,\n );\n}\n\nexport { eslintReactConfig };\n"],"names":["allConfig","config","js","configs","recommended","stylistic","stylisticTypeChecked","languageOptions","parserOptions","ecmaVersion","sourceType","project","tsconfigRootDir","globals","builtin","es2021","rules","importsConfig","imports","flatConfigs","typescript","groups","pathGroups","pattern","group","position","pathGroupsExcludedImportTypes","alphabetize","order","caseInsensitive","settings","node","javascriptConfig","files","extends","disableTypeChecked","jestConfig","jest","prettierConfig","prettierRecommended","semi","trailingComma","singleQuote","jsxSingleQuote","printWidth","tabWidth","usePrettierrc","fileInfoOptions","withNodeModules","reactHooksConfig","plugins","reactHooks","sortImportsConfig","ignoreCase","ignoreDeclarationSort","ignoreMemberSort","unusedImportsConfig","unusedImports","vars","varsIgnorePattern","args","argsIgnorePattern","eslintLibraryConfig","ignores","compat","FlatCompat","baseDirectory","dirname","fileURLToPath","url","eslintNextConfig","browser","eslintReactConfig","reactPlugin","flat","react","version"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../src/commons/all.ts","../src/commons/javascript.ts","../src/commons/jest.ts","../src/commons/perfectionist.ts","../src/commons/prettier.ts","../src/commons/react-hooks.ts","../src/commons/unusedImports.ts","../src/library/eslintLibraryConfig.ts","../src/next/eslintNextConfig.ts","../src/react/eslintReactConfig.ts","../src/storybook/eslintStorybookConfig.ts"],"sourcesContent":["import { defineConfig } from 'eslint/config';\nimport js from '@eslint/js';\nimport globals from 'globals';\nimport { configs } from 'typescript-eslint';\n\nconst allConfig = defineConfig([\n js.configs.recommended,\n ...configs.strictTypeChecked,\n ...configs.stylisticTypeChecked,\n {\n languageOptions: {\n globals: {\n ...globals.builtin,\n ...globals.es2026,\n ...globals.node,\n },\n parserOptions: {\n ecmaVersion: 'latest',\n project: true,\n sourceType: 'module',\n tsconfigRootDir: './',\n },\n },\n rules: {\n 'import/order': 'off',\n 'no-unused-vars': 'off',\n '@typescript-eslint/consistent-type-definitions': ['error', 'type'],\n '@typescript-eslint/no-unnecessary-type-parameters': 'off',\n '@typescript-eslint/no-unused-vars': 'off',\n },\n },\n]);\n\nexport { allConfig };\n","import { defineConfig } from 'eslint/config';\nimport { configs } from 'typescript-eslint';\n\nconst javascriptConfig = defineConfig({\n extends: [configs.disableTypeChecked],\n files: ['**/*.{cjs,mjs,js,jsx}'],\n});\n\nexport { javascriptConfig };\n","import jest from 'eslint-plugin-jest';\nimport { defineConfig } from 'eslint/config';\n\nconst jestConfig = defineConfig({\n files: ['**/*.test.{js,ts,jsx,tsx}'],\n ...jest.configs['flat/recommended'],\n});\n\nexport { jestConfig };\n","import perfectionistPlugin from 'eslint-plugin-perfectionist';\nimport { defineConfig } from 'eslint/config';\nimport { RuleConfig } from '@eslint/core';\n\nconst perfectionistOverrides = new Map<string, RuleConfig>([\n [\n 'sort-arrays',\n [\n 'error',\n {\n ignoreCase: false,\n order: 'asc',\n specialCharacters: 'trim',\n useConfigurationIf: {\n matchesAstSelector: 'TSAsExpression > ArrayExpression',\n },\n },\n ],\n ],\n [\n 'sort-exports',\n [\n 'error',\n {\n ignoreCase: false,\n order: 'asc',\n specialCharacters: 'trim',\n type: 'alphabetical',\n },\n ],\n ],\n [\n 'sort-imports',\n [\n 'error',\n {\n customGroups: [\n {\n elementNamePattern: '@tarsilla(/.*)?$',\n groupName: '@tarsilla',\n },\n ],\n groups: [\n 'type-import',\n 'value-builtin',\n 'value-external',\n '@tarsilla',\n 'value-internal',\n ['type-parent', 'type-sibling', 'type-index'],\n ['value-parent', 'value-sibling', 'value-index'],\n 'ts-equals-import',\n 'unknown',\n ],\n ignoreCase: false,\n newlinesBetween: 1,\n order: 'asc',\n specialCharacters: 'trim',\n tsconfig: {\n rootDir: '.',\n },\n type: 'alphabetical',\n },\n ],\n ],\n [\n 'sort-named-exports',\n [\n 'error',\n {\n ignoreCase: false,\n order: 'asc',\n specialCharacters: 'trim',\n type: 'alphabetical',\n },\n ],\n ],\n [\n 'sort-named-imports',\n [\n 'error',\n {\n ignoreCase: false,\n order: 'asc',\n specialCharacters: 'trim',\n type: 'alphabetical',\n },\n ],\n ],\n [\n 'sort-union-types',\n [\n 'error',\n {\n groups: [\n 'conditional',\n 'function',\n 'import',\n 'intersection',\n 'keyword',\n 'literal',\n 'named',\n 'object',\n 'operator',\n 'tuple',\n 'union',\n 'nullish',\n ],\n ignoreCase: false,\n order: 'asc',\n specialCharacters: 'trim',\n type: 'alphabetical',\n },\n ],\n ],\n]);\n\nconst perfectionist = defineConfig({\n plugins: {\n perfectionistPlugin,\n },\n rules: Object.fromEntries(\n Object.keys(perfectionistPlugin.rules ?? {}).map((rule) => {\n const override = perfectionistOverrides.get(rule);\n return [\n `perfectionist/${rule}`,\n override ?? [\n 'error',\n {\n ignoreCase: true,\n order: 'asc',\n specialCharacters: 'trim',\n type: 'alphabetical',\n },\n ],\n ];\n }),\n ),\n});\n\nexport { perfectionist };\n","import prettierRecommended from 'eslint-plugin-prettier/recommended';\nimport { defineConfig } from 'eslint/config';\n\nconst prettierConfig = defineConfig([\n prettierRecommended,\n {\n rules: {\n ...prettierRecommended.rules,\n 'prettier/prettier': [\n 'error',\n {\n jsxSingleQuote: true,\n printWidth: 120,\n semi: true,\n singleQuote: true,\n tabWidth: 2,\n trailingComma: 'all',\n },\n {\n fileInfoOptions: {\n withNodeModules: true,\n },\n usePrettierrc: false,\n },\n ],\n },\n },\n]);\n\nexport { prettierConfig };\n","import reactHooks from 'eslint-plugin-react-hooks';\nimport { defineConfig } from 'eslint/config';\n\nconst reactHooksConfig = defineConfig({\n files: ['**/*.{jsx,tsx}'],\n plugins: {\n 'react-hooks': reactHooks,\n },\n rules: {\n ...reactHooks.configs.recommended.rules,\n 'react/jsx-uses-react': 'off',\n 'react/react-in-jsx-scope': 'off',\n },\n});\n\nexport { reactHooksConfig };\n","import unusedImports from 'eslint-plugin-unused-imports';\nimport { defineConfig } from 'eslint/config';\n\nconst unusedImportsConfig = defineConfig({\n plugins: {\n 'unused-imports': unusedImports,\n },\n rules: {\n 'unused-imports/no-unused-imports': 'error',\n 'unused-imports/no-unused-vars': [\n 'error',\n {\n args: 'after-used',\n argsIgnorePattern: '^_',\n vars: 'all',\n varsIgnorePattern: '^_',\n },\n ],\n },\n settings: {\n 'import/resolver': {\n node: true,\n typescript: true,\n },\n },\n});\n\nexport { unusedImportsConfig };\n","import { defineConfig, globalIgnores } from 'eslint/config';\n\nimport {\n allConfig,\n javascriptConfig,\n jestConfig,\n perfectionist,\n prettierConfig,\n unusedImportsConfig,\n} from '../commons/index.js';\nimport { EslintOptions } from '../types/index.js';\n\nfunction eslintLibraryConfig({ ignores }: EslintOptions) {\n return defineConfig(\n globalIgnores(ignores),\n ...allConfig,\n ...unusedImportsConfig,\n ...perfectionist,\n ...javascriptConfig,\n ...jestConfig,\n ...prettierConfig,\n );\n}\n\nexport { eslintLibraryConfig };\n","import { defineConfig, globalIgnores } from 'eslint/config';\nimport globals from 'globals';\nimport nextPlugin from '@next/eslint-plugin-next';\n\nimport {\n allConfig,\n javascriptConfig,\n jestConfig,\n perfectionist,\n prettierConfig,\n reactHooksConfig,\n unusedImportsConfig,\n} from '../commons/index.js';\nimport { EslintOptions } from '../types/index.js';\n\nfunction eslintNextConfig({ ignores }: EslintOptions) {\n return defineConfig(\n globalIgnores(ignores),\n {\n languageOptions: {\n globals: {\n ...globals.browser,\n },\n },\n },\n ...allConfig,\n nextPlugin.configs['core-web-vitals'],\n ...reactHooksConfig,\n ...unusedImportsConfig,\n ...perfectionist,\n ...javascriptConfig,\n ...jestConfig,\n ...prettierConfig,\n );\n}\n\nexport { eslintNextConfig };\n","import reactPlugin from 'eslint-plugin-react-x';\nimport { defineConfig, globalIgnores } from 'eslint/config';\nimport globals from 'globals';\n\nimport {\n allConfig,\n javascriptConfig,\n jestConfig,\n perfectionist,\n prettierConfig,\n reactHooksConfig,\n unusedImportsConfig,\n} from '../commons/index.js';\nimport { EslintOptions } from '../types/index.js';\n\nfunction eslintReactConfig({ ignores }: EslintOptions) {\n return defineConfig(\n globalIgnores(ignores),\n {\n languageOptions: {\n globals: {\n ...globals.browser,\n },\n },\n },\n ...allConfig,\n {\n files: ['**/*.{jsx,tsx}'],\n ...reactPlugin.configs['strict-type-checked'],\n settings: {\n react: {\n version: 'detect',\n },\n },\n },\n ...reactHooksConfig,\n ...unusedImportsConfig,\n ...perfectionist,\n ...javascriptConfig,\n ...jestConfig,\n ...prettierConfig,\n );\n}\n\nexport { eslintReactConfig };\n","import reactPlugin from 'eslint-plugin-react-x';\nimport storybookPlugin from 'eslint-plugin-storybook';\nimport { defineConfig, globalIgnores } from 'eslint/config';\nimport globals from 'globals';\n\nimport {\n allConfig,\n javascriptConfig,\n jestConfig,\n perfectionist,\n prettierConfig,\n reactHooksConfig,\n unusedImportsConfig,\n} from '../commons/index.js';\nimport { EslintOptions } from '../types/index.js';\n\nfunction eslintStorybookConfig({ ignores }: EslintOptions) {\n return defineConfig(\n globalIgnores(ignores),\n {\n languageOptions: {\n globals: {\n ...globals.browser,\n },\n },\n },\n ...allConfig,\n {\n files: ['**/*.{jsx,tsx}'],\n ...reactPlugin.configs['strict-type-checked'],\n settings: {\n react: {\n version: 'detect',\n },\n },\n },\n ...reactHooksConfig,\n ...unusedImportsConfig,\n ...perfectionist,\n ...javascriptConfig,\n ...jestConfig,\n ...prettierConfig,\n ...storybookPlugin.configs['flat/recommended'],\n );\n}\n\nexport { eslintStorybookConfig };\n"],"names":["allConfig","defineConfig","js","configs","recommended","strictTypeChecked","stylisticTypeChecked","languageOptions","globals","builtin","es2026","node","parserOptions","ecmaVersion","project","sourceType","tsconfigRootDir","rules","javascriptConfig","extends","disableTypeChecked","files","jestConfig","jest","perfectionistOverrides","Map","ignoreCase","order","specialCharacters","useConfigurationIf","matchesAstSelector","type","customGroups","elementNamePattern","groupName","groups","newlinesBetween","tsconfig","rootDir","perfectionist","plugins","perfectionistPlugin","Object","fromEntries","keys","map","rule","get","prettierConfig","prettierRecommended","jsxSingleQuote","printWidth","semi","singleQuote","tabWidth","trailingComma","fileInfoOptions","withNodeModules","usePrettierrc","reactHooksConfig","reactHooks","unusedImportsConfig","unusedImports","args","argsIgnorePattern","vars","varsIgnorePattern","settings","typescript","eslintLibraryConfig","ignores","globalIgnores","eslintNextConfig","browser","nextPlugin","eslintReactConfig","reactPlugin","react","version","eslintStorybookConfig","storybookPlugin"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("globals"),r=require("typescript-eslint"),s=require("@eslint/js"),i=require("eslint-plugin-import"),t=require("eslint-plugin-jest"),n=require("eslint-plugin-prettier/recommended"),o=require("eslint-plugin-react-hooks"),l=require("eslint-plugin-unused-imports");const p=r.config([s.configs.recommended,...r.configs.stylistic,...r.configs.stylisticTypeChecked,{languageOptions:{parserOptions:{ecmaVersion:"latest",sourceType:"module",project:!0,tsconfigRootDir:"./"},globals:{...e.builtin,...e.es2021}},rules:{"@typescript-eslint/consistent-type-definitions":["error","type"],"@typescript-eslint/explicit-module-boundary-types":"error","@typescript-eslint/no-explicit-any":"error"}}]),a=r.config([i.flatConfigs.recommended,i.flatConfigs.typescript,{rules:{"import/order":["error",{groups:["builtin","external","internal",["parent","sibling"]],pathGroups:[{pattern:"react",group:"external",position:"before"},{pattern:"@tarsilla/**",group:"internal",position:"before"}],pathGroupsExcludedImportTypes:["react","@tarsilla"],"newlines-between":"always",alphabetize:{order:"asc",caseInsensitive:!0}}]},settings:{"import/resolver":{typescript:!0,node:!0}}}]),u=r.config({files:["**/*.{cjs,mjs,js,jsx}"],extends:[r.configs.disableTypeChecked]}),c=r.config({files:["**/*.test.{js,ts,jsx,tsx}"],...t.configs["flat/recommended"]}),g=r.config([n,{rules:{...n.rules,"prettier/prettier":["error",{semi:!0,trailingComma:"all",singleQuote:!0,jsxSingleQuote:!0,printWidth:120,tabWidth:2},{usePrettierrc:!1,fileInfoOptions:{withNodeModules:!0}}]}}]);r.config({files:["**/*.{jsx,tsx}"],plugins:{"react-hooks":o},rules:{...o.configs.recommended.rules,"react/react-in-jsx-scope":"off","react/jsx-uses-react":"off"}});const f=r.config({rules:{"sort-imports":["error",{ignoreCase:!0,ignoreDeclarationSort:!0,ignoreMemberSort:!1}]}}),d=r.config({plugins:{"unused-imports":l},rules:{"@typescript-eslint/no-unused-vars":"off","no-unused-vars":"off","unused-imports/no-unused-imports":"error","unused-imports/no-unused-vars":["error",{vars:"all",varsIgnorePattern:"^_",args:"after-used",argsIgnorePattern:"^_"}]}});exports.eslintLibraryConfig=function({ignores:s}){return r.config(...r.config({ignores:s}),...r.config({languageOptions:{globals:{...e.node}}}),...p,...d,...f,...a,...u,...c,...g)};
1
+ "use strict";var e=require("eslint/config"),r=require("@eslint/js"),s=require("globals"),t=require("typescript-eslint"),i=require("eslint-plugin-jest"),n=require("eslint-plugin-perfectionist"),o=require("eslint-plugin-prettier/recommended"),a=require("eslint-plugin-react-hooks"),l=require("eslint-plugin-unused-imports");const p=e.defineConfig([r.configs.recommended,...t.configs.strictTypeChecked,...t.configs.stylisticTypeChecked,{languageOptions:{globals:{...s.builtin,...s.es2026,...s.node},parserOptions:{ecmaVersion:"latest",project:!0,sourceType:"module",tsconfigRootDir:"./"}},rules:{"import/order":"off","no-unused-vars":"off","@typescript-eslint/consistent-type-definitions":["error","type"],"@typescript-eslint/no-unnecessary-type-parameters":"off","@typescript-eslint/no-unused-vars":"off"}}]),c=e.defineConfig({extends:[t.configs.disableTypeChecked],files:["**/*.{cjs,mjs,js,jsx}"]}),u=e.defineConfig({files:["**/*.test.{js,ts,jsx,tsx}"],...i.configs["flat/recommended"]}),g=new Map([["sort-arrays",["error",{ignoreCase:!1,order:"asc",specialCharacters:"trim",useConfigurationIf:{matchesAstSelector:"TSAsExpression > ArrayExpression"}}]],["sort-exports",["error",{ignoreCase:!1,order:"asc",specialCharacters:"trim",type:"alphabetical"}]],["sort-imports",["error",{customGroups:[{elementNamePattern:"@tarsilla(/.*)?$",groupName:"@tarsilla"}],groups:["type-import","value-builtin","value-external","@tarsilla","value-internal",["type-parent","type-sibling","type-index"],["value-parent","value-sibling","value-index"],"ts-equals-import","unknown"],ignoreCase:!1,newlinesBetween:1,order:"asc",specialCharacters:"trim",tsconfig:{rootDir:"."},type:"alphabetical"}]],["sort-named-exports",["error",{ignoreCase:!1,order:"asc",specialCharacters:"trim",type:"alphabetical"}]],["sort-named-imports",["error",{ignoreCase:!1,order:"asc",specialCharacters:"trim",type:"alphabetical"}]],["sort-union-types",["error",{groups:["conditional","function","import","intersection","keyword","literal","named","object","operator","tuple","union","nullish"],ignoreCase:!1,order:"asc",specialCharacters:"trim",type:"alphabetical"}]]]),f=e.defineConfig({plugins:{perfectionistPlugin:n},rules:Object.fromEntries(Object.keys(n.rules??{}).map(e=>[`perfectionist/${e}`,g.get(e)??["error",{ignoreCase:!0,order:"asc",specialCharacters:"trim",type:"alphabetical"}]]))}),d=e.defineConfig([o,{rules:{...o.rules,"prettier/prettier":["error",{jsxSingleQuote:!0,printWidth:120,semi:!0,singleQuote:!0,tabWidth:2,trailingComma:"all"},{fileInfoOptions:{withNodeModules:!0},usePrettierrc:!1}]}}]);e.defineConfig({files:["**/*.{jsx,tsx}"],plugins:{"react-hooks":a},rules:{...a.configs.recommended.rules,"react/jsx-uses-react":"off","react/react-in-jsx-scope":"off"}});const m=e.defineConfig({plugins:{"unused-imports":l},rules:{"unused-imports/no-unused-imports":"error","unused-imports/no-unused-vars":["error",{args:"after-used",argsIgnorePattern:"^_",vars:"all",varsIgnorePattern:"^_"}]},settings:{"import/resolver":{node:!0,typescript:!0}}});exports.eslintLibraryConfig=function({ignores:r}){return e.defineConfig(e.globalIgnores(r),...p,...m,...f,...c,...u,...d)};
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../src/commons/all.ts","../../src/commons/imports.ts","../../src/commons/javascript.ts","../../src/commons/jest.ts","../../src/commons/prettier.ts","../../src/commons/react-hooks.ts","../../src/commons/sortImports.ts","../../src/commons/unusedImports.ts","../../src/library/eslintLibraryConfig.ts"],"sourcesContent":["import js from '@eslint/js';\nimport type { TSESLint } from '@typescript-eslint/utils';\nimport globals from 'globals';\nimport { config, configs } from 'typescript-eslint';\n\nconst allConfig: TSESLint.FlatConfig.ConfigArray = config([\n js.configs.recommended,\n ...configs.stylistic,\n ...configs.stylisticTypeChecked,\n {\n languageOptions: {\n parserOptions: {\n ecmaVersion: 'latest',\n sourceType: 'module',\n project: true,\n tsconfigRootDir: './',\n },\n globals: {\n ...globals.builtin,\n ...globals.es2021,\n },\n },\n rules: {\n '@typescript-eslint/consistent-type-definitions': ['error', 'type'],\n '@typescript-eslint/explicit-module-boundary-types': 'error',\n '@typescript-eslint/no-explicit-any': 'error',\n },\n },\n]);\n\nexport { allConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport imports from 'eslint-plugin-import';\nimport { config } from 'typescript-eslint';\n\nconst importsConfig: TSESLint.FlatConfig.ConfigArray = config([\n imports.flatConfigs.recommended,\n imports.flatConfigs.typescript,\n {\n rules: {\n 'import/order': [\n 'error',\n {\n groups: ['builtin', 'external', 'internal', ['parent', 'sibling']],\n pathGroups: [\n {\n pattern: 'react',\n group: 'external',\n position: 'before',\n },\n {\n pattern: '@tarsilla/**',\n group: 'internal',\n position: 'before',\n },\n ],\n pathGroupsExcludedImportTypes: ['react', '@tarsilla'],\n 'newlines-between': 'always',\n alphabetize: {\n order: 'asc',\n caseInsensitive: true,\n },\n },\n ],\n },\n settings: {\n 'import/resolver': {\n typescript: true,\n node: true,\n },\n },\n },\n]);\n\nexport { importsConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport { config, configs } from 'typescript-eslint';\n\nconst javascriptConfig: TSESLint.FlatConfig.ConfigArray = config({\n files: ['**/*.{cjs,mjs,js,jsx}'],\n extends: [configs.disableTypeChecked],\n});\n\nexport { javascriptConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport jest from 'eslint-plugin-jest';\nimport { config } from 'typescript-eslint';\n\nconst jestConfig: TSESLint.FlatConfig.ConfigArray = config({\n files: ['**/*.test.{js,ts,jsx,tsx}'],\n ...jest.configs['flat/recommended'],\n});\n\nexport { jestConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport prettierRecommended from 'eslint-plugin-prettier/recommended';\nimport { config } from 'typescript-eslint';\n\nconst prettierConfig: TSESLint.FlatConfig.ConfigArray = config([\n prettierRecommended,\n {\n rules: {\n ...prettierRecommended.rules,\n 'prettier/prettier': [\n 'error',\n {\n semi: true,\n trailingComma: 'all',\n singleQuote: true,\n jsxSingleQuote: true,\n printWidth: 120,\n tabWidth: 2,\n },\n {\n usePrettierrc: false,\n fileInfoOptions: {\n withNodeModules: true,\n },\n },\n ],\n },\n },\n]);\n\nexport { prettierConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport reactHooks from 'eslint-plugin-react-hooks';\nimport { config } from 'typescript-eslint';\n\nconst reactHooksConfig: TSESLint.FlatConfig.ConfigArray = config({\n files: ['**/*.{jsx,tsx}'],\n plugins: {\n 'react-hooks': reactHooks,\n },\n rules: {\n ...reactHooks.configs.recommended.rules,\n 'react/react-in-jsx-scope': 'off',\n 'react/jsx-uses-react': 'off',\n },\n});\n\nexport { reactHooksConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport { config } from 'typescript-eslint';\n\nconst sortImportsConfig: TSESLint.FlatConfig.ConfigArray = config({\n rules: {\n 'sort-imports': [\n 'error',\n {\n ignoreCase: true,\n ignoreDeclarationSort: true,\n ignoreMemberSort: false,\n },\n ],\n },\n});\n\nexport { sortImportsConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport unusedImports from 'eslint-plugin-unused-imports';\nimport { config } from 'typescript-eslint';\n\nconst unusedImportsConfig: TSESLint.FlatConfig.ConfigArray = config({\n plugins: {\n 'unused-imports': unusedImports,\n },\n rules: {\n '@typescript-eslint/no-unused-vars': 'off',\n 'no-unused-vars': 'off',\n 'unused-imports/no-unused-imports': 'error',\n 'unused-imports/no-unused-vars': [\n 'error',\n {\n vars: 'all',\n varsIgnorePattern: '^_',\n args: 'after-used',\n argsIgnorePattern: '^_',\n },\n ],\n },\n});\n\nexport { unusedImportsConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport globals from 'globals';\nimport { config } from 'typescript-eslint';\n\nimport {\n allConfig,\n importsConfig,\n javascriptConfig,\n jestConfig,\n prettierConfig,\n sortImportsConfig,\n unusedImportsConfig,\n} from '../commons/index.js';\nimport { EslintOptions } from '../types/index.js';\n\nfunction eslintLibraryConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray {\n return config(\n ...config({\n ignores,\n }),\n ...config({\n languageOptions: {\n globals: {\n ...globals.node,\n },\n },\n }),\n ...allConfig,\n ...unusedImportsConfig,\n ...sortImportsConfig,\n ...importsConfig,\n ...javascriptConfig,\n ...jestConfig,\n ...prettierConfig,\n );\n}\n\nexport { eslintLibraryConfig };\n"],"names":["allConfig","config","js","configs","recommended","stylistic","stylisticTypeChecked","languageOptions","parserOptions","ecmaVersion","sourceType","project","tsconfigRootDir","globals","builtin","es2021","rules","importsConfig","imports","flatConfigs","typescript","groups","pathGroups","pattern","group","position","pathGroupsExcludedImportTypes","alphabetize","order","caseInsensitive","settings","node","javascriptConfig","files","extends","disableTypeChecked","jestConfig","jest","prettierConfig","prettierRecommended","semi","trailingComma","singleQuote","jsxSingleQuote","printWidth","tabWidth","usePrettierrc","fileInfoOptions","withNodeModules","plugins","reactHooks","sortImportsConfig","ignoreCase","ignoreDeclarationSort","ignoreMemberSort","unusedImportsConfig","unusedImports","vars","varsIgnorePattern","args","argsIgnorePattern","ignores"],"mappings":"gSAKA,MAAMA,EAA6CC,EAAAA,OAAO,CACxDC,EAAGC,QAAQC,eACRD,EAAAA,QAAQE,aACRF,EAAAA,QAAQG,qBACX,CACEC,gBAAiB,CACfC,cAAe,CACbC,YAAa,SACbC,WAAY,SACZC,SAAS,EACTC,gBAAiB,MAEnBC,QAAS,IACJA,EAAQC,WACRD,EAAQE,SAGfC,MAAO,CACL,iDAAkD,CAAC,QAAS,QAC5D,oDAAqD,QACrD,qCAAsC,YCrBtCC,EAAiDhB,EAAAA,OAAO,CAC5DiB,EAAQC,YAAYf,YACpBc,EAAQC,YAAYC,WACpB,CACEJ,MAAO,CACL,eAAgB,CACd,QACA,CACEK,OAAQ,CAAC,UAAW,WAAY,WAAY,CAAC,SAAU,YACvDC,WAAY,CACV,CACEC,QAAS,QACTC,MAAO,WACPC,SAAU,UAEZ,CACEF,QAAS,eACTC,MAAO,WACPC,SAAU,WAGdC,8BAA+B,CAAC,QAAS,aACzC,mBAAoB,SACpBC,YAAa,CACXC,MAAO,MACPC,iBAAiB,MAKzBC,SAAU,CACR,kBAAmB,CACjBV,YAAY,EACZW,MAAM,OClCRC,EAAoD/B,EAAAA,OAAO,CAC/DgC,MAAO,CAAC,yBACRC,QAAS,CAAC/B,UAAQgC,sBCDdC,EAA8CnC,EAAAA,OAAO,CACzDgC,MAAO,CAAC,gCACLI,EAAKlC,QAAQ,sBCFZmC,EAAkDrC,EAAAA,OAAO,CAC7DsC,EACA,CACEvB,MAAO,IACFuB,EAAoBvB,MACvB,oBAAqB,CACnB,QACA,CACEwB,MAAM,EACNC,cAAe,MACfC,aAAa,EACbC,gBAAgB,EAChBC,WAAY,IACZC,SAAU,GAEZ,CACEC,eAAe,EACfC,gBAAiB,CACfC,iBAAiB,SClB6B/C,EAAAA,OAAO,CAC/DgC,MAAO,CAAC,kBACRgB,QAAS,CACP,cAAeC,GAEjBlC,MAAO,IACFkC,EAAW/C,QAAQC,YAAYY,MAClC,2BAA4B,MAC5B,uBAAwB,SCT5B,MAAMmC,EAAqDlD,EAAAA,OAAO,CAChEe,MAAO,CACL,eAAgB,CACd,QACA,CACEoC,YAAY,EACZC,uBAAuB,EACvBC,kBAAkB,OCNpBC,EAAuDtD,EAAAA,OAAO,CAClEgD,QAAS,CACP,iBAAkBO,GAEpBxC,MAAO,CACL,oCAAqC,MACrC,iBAAkB,MAClB,mCAAoC,QACpC,gCAAiC,CAC/B,QACA,CACEyC,KAAM,MACNC,kBAAmB,KACnBC,KAAM,aACNC,kBAAmB,sCCH3B,UAA6BC,QAAEA,IAC7B,OAAO5D,EAAAA,UACFA,SAAO,CACR4D,eAEC5D,EAAAA,OAAO,CACRM,gBAAiB,CACfM,QAAS,IACJA,EAAQkB,YAId/B,KACAuD,KACAJ,KACAlC,KACAe,KACAI,KACAE,EAEP"}
1
+ {"version":3,"file":"index.cjs","sources":["../../src/commons/all.ts","../../src/commons/javascript.ts","../../src/commons/jest.ts","../../src/commons/perfectionist.ts","../../src/commons/prettier.ts","../../src/commons/react-hooks.ts","../../src/commons/unusedImports.ts","../../src/library/eslintLibraryConfig.ts"],"sourcesContent":["import { defineConfig } from 'eslint/config';\nimport js from '@eslint/js';\nimport globals from 'globals';\nimport { configs } from 'typescript-eslint';\n\nconst allConfig = defineConfig([\n js.configs.recommended,\n ...configs.strictTypeChecked,\n ...configs.stylisticTypeChecked,\n {\n languageOptions: {\n globals: {\n ...globals.builtin,\n ...globals.es2026,\n ...globals.node,\n },\n parserOptions: {\n ecmaVersion: 'latest',\n project: true,\n sourceType: 'module',\n tsconfigRootDir: './',\n },\n },\n rules: {\n 'import/order': 'off',\n 'no-unused-vars': 'off',\n '@typescript-eslint/consistent-type-definitions': ['error', 'type'],\n '@typescript-eslint/no-unnecessary-type-parameters': 'off',\n '@typescript-eslint/no-unused-vars': 'off',\n },\n },\n]);\n\nexport { allConfig };\n","import { defineConfig } from 'eslint/config';\nimport { configs } from 'typescript-eslint';\n\nconst javascriptConfig = defineConfig({\n extends: [configs.disableTypeChecked],\n files: ['**/*.{cjs,mjs,js,jsx}'],\n});\n\nexport { javascriptConfig };\n","import jest from 'eslint-plugin-jest';\nimport { defineConfig } from 'eslint/config';\n\nconst jestConfig = defineConfig({\n files: ['**/*.test.{js,ts,jsx,tsx}'],\n ...jest.configs['flat/recommended'],\n});\n\nexport { jestConfig };\n","import perfectionistPlugin from 'eslint-plugin-perfectionist';\nimport { defineConfig } from 'eslint/config';\nimport { RuleConfig } from '@eslint/core';\n\nconst perfectionistOverrides = new Map<string, RuleConfig>([\n [\n 'sort-arrays',\n [\n 'error',\n {\n ignoreCase: false,\n order: 'asc',\n specialCharacters: 'trim',\n useConfigurationIf: {\n matchesAstSelector: 'TSAsExpression > ArrayExpression',\n },\n },\n ],\n ],\n [\n 'sort-exports',\n [\n 'error',\n {\n ignoreCase: false,\n order: 'asc',\n specialCharacters: 'trim',\n type: 'alphabetical',\n },\n ],\n ],\n [\n 'sort-imports',\n [\n 'error',\n {\n customGroups: [\n {\n elementNamePattern: '@tarsilla(/.*)?$',\n groupName: '@tarsilla',\n },\n ],\n groups: [\n 'type-import',\n 'value-builtin',\n 'value-external',\n '@tarsilla',\n 'value-internal',\n ['type-parent', 'type-sibling', 'type-index'],\n ['value-parent', 'value-sibling', 'value-index'],\n 'ts-equals-import',\n 'unknown',\n ],\n ignoreCase: false,\n newlinesBetween: 1,\n order: 'asc',\n specialCharacters: 'trim',\n tsconfig: {\n rootDir: '.',\n },\n type: 'alphabetical',\n },\n ],\n ],\n [\n 'sort-named-exports',\n [\n 'error',\n {\n ignoreCase: false,\n order: 'asc',\n specialCharacters: 'trim',\n type: 'alphabetical',\n },\n ],\n ],\n [\n 'sort-named-imports',\n [\n 'error',\n {\n ignoreCase: false,\n order: 'asc',\n specialCharacters: 'trim',\n type: 'alphabetical',\n },\n ],\n ],\n [\n 'sort-union-types',\n [\n 'error',\n {\n groups: [\n 'conditional',\n 'function',\n 'import',\n 'intersection',\n 'keyword',\n 'literal',\n 'named',\n 'object',\n 'operator',\n 'tuple',\n 'union',\n 'nullish',\n ],\n ignoreCase: false,\n order: 'asc',\n specialCharacters: 'trim',\n type: 'alphabetical',\n },\n ],\n ],\n]);\n\nconst perfectionist = defineConfig({\n plugins: {\n perfectionistPlugin,\n },\n rules: Object.fromEntries(\n Object.keys(perfectionistPlugin.rules ?? {}).map((rule) => {\n const override = perfectionistOverrides.get(rule);\n return [\n `perfectionist/${rule}`,\n override ?? [\n 'error',\n {\n ignoreCase: true,\n order: 'asc',\n specialCharacters: 'trim',\n type: 'alphabetical',\n },\n ],\n ];\n }),\n ),\n});\n\nexport { perfectionist };\n","import prettierRecommended from 'eslint-plugin-prettier/recommended';\nimport { defineConfig } from 'eslint/config';\n\nconst prettierConfig = defineConfig([\n prettierRecommended,\n {\n rules: {\n ...prettierRecommended.rules,\n 'prettier/prettier': [\n 'error',\n {\n jsxSingleQuote: true,\n printWidth: 120,\n semi: true,\n singleQuote: true,\n tabWidth: 2,\n trailingComma: 'all',\n },\n {\n fileInfoOptions: {\n withNodeModules: true,\n },\n usePrettierrc: false,\n },\n ],\n },\n },\n]);\n\nexport { prettierConfig };\n","import reactHooks from 'eslint-plugin-react-hooks';\nimport { defineConfig } from 'eslint/config';\n\nconst reactHooksConfig = defineConfig({\n files: ['**/*.{jsx,tsx}'],\n plugins: {\n 'react-hooks': reactHooks,\n },\n rules: {\n ...reactHooks.configs.recommended.rules,\n 'react/jsx-uses-react': 'off',\n 'react/react-in-jsx-scope': 'off',\n },\n});\n\nexport { reactHooksConfig };\n","import unusedImports from 'eslint-plugin-unused-imports';\nimport { defineConfig } from 'eslint/config';\n\nconst unusedImportsConfig = defineConfig({\n plugins: {\n 'unused-imports': unusedImports,\n },\n rules: {\n 'unused-imports/no-unused-imports': 'error',\n 'unused-imports/no-unused-vars': [\n 'error',\n {\n args: 'after-used',\n argsIgnorePattern: '^_',\n vars: 'all',\n varsIgnorePattern: '^_',\n },\n ],\n },\n settings: {\n 'import/resolver': {\n node: true,\n typescript: true,\n },\n },\n});\n\nexport { unusedImportsConfig };\n","import { defineConfig, globalIgnores } from 'eslint/config';\n\nimport {\n allConfig,\n javascriptConfig,\n jestConfig,\n perfectionist,\n prettierConfig,\n unusedImportsConfig,\n} from '../commons/index.js';\nimport { EslintOptions } from '../types/index.js';\n\nfunction eslintLibraryConfig({ ignores }: EslintOptions) {\n return defineConfig(\n globalIgnores(ignores),\n ...allConfig,\n ...unusedImportsConfig,\n ...perfectionist,\n ...javascriptConfig,\n ...jestConfig,\n ...prettierConfig,\n );\n}\n\nexport { eslintLibraryConfig };\n"],"names":["allConfig","defineConfig","js","configs","recommended","strictTypeChecked","stylisticTypeChecked","languageOptions","globals","builtin","es2026","node","parserOptions","ecmaVersion","project","sourceType","tsconfigRootDir","rules","javascriptConfig","extends","disableTypeChecked","files","jestConfig","jest","perfectionistOverrides","Map","ignoreCase","order","specialCharacters","useConfigurationIf","matchesAstSelector","type","customGroups","elementNamePattern","groupName","groups","newlinesBetween","tsconfig","rootDir","perfectionist","plugins","perfectionistPlugin","Object","fromEntries","keys","map","rule","get","prettierConfig","prettierRecommended","jsxSingleQuote","printWidth","semi","singleQuote","tabWidth","trailingComma","fileInfoOptions","withNodeModules","usePrettierrc","reactHooks","unusedImportsConfig","unusedImports","args","argsIgnorePattern","vars","varsIgnorePattern","settings","typescript","ignores","globalIgnores"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { TSESLint } from '@typescript-eslint/utils';
1
+ import * as eslint_config from 'eslint/config';
2
2
 
3
3
  type EslintOptions = {
4
4
  ignores: string[];
5
5
  };
6
6
 
7
- declare function eslintLibraryConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray;
7
+ declare function eslintLibraryConfig({ ignores }: EslintOptions): eslint_config.Config[];
8
8
 
9
9
  export { eslintLibraryConfig };
@@ -1,2 +1,2 @@
1
- import e from"globals";import{config as r,configs as t}from"typescript-eslint";import s from"@eslint/js";import o from"eslint-plugin-import";import i from"eslint-plugin-jest";import n from"eslint-plugin-prettier/recommended";import l from"eslint-plugin-react-hooks";import p from"eslint-plugin-unused-imports";const a=r([s.configs.recommended,...t.stylistic,...t.stylisticTypeChecked,{languageOptions:{parserOptions:{ecmaVersion:"latest",sourceType:"module",project:!0,tsconfigRootDir:"./"},globals:{...e.builtin,...e.es2021}},rules:{"@typescript-eslint/consistent-type-definitions":["error","type"],"@typescript-eslint/explicit-module-boundary-types":"error","@typescript-eslint/no-explicit-any":"error"}}]),u=r([o.flatConfigs.recommended,o.flatConfigs.typescript,{rules:{"import/order":["error",{groups:["builtin","external","internal",["parent","sibling"]],pathGroups:[{pattern:"react",group:"external",position:"before"},{pattern:"@tarsilla/**",group:"internal",position:"before"}],pathGroupsExcludedImportTypes:["react","@tarsilla"],"newlines-between":"always",alphabetize:{order:"asc",caseInsensitive:!0}}]},settings:{"import/resolver":{typescript:!0,node:!0}}}]),c=r({files:["**/*.{cjs,mjs,js,jsx}"],extends:[t.disableTypeChecked]}),m=r({files:["**/*.test.{js,ts,jsx,tsx}"],...i.configs["flat/recommended"]}),d=r([n,{rules:{...n.rules,"prettier/prettier":["error",{semi:!0,trailingComma:"all",singleQuote:!0,jsxSingleQuote:!0,printWidth:120,tabWidth:2},{usePrettierrc:!1,fileInfoOptions:{withNodeModules:!0}}]}}]);r({files:["**/*.{jsx,tsx}"],plugins:{"react-hooks":l},rules:{...l.configs.recommended.rules,"react/react-in-jsx-scope":"off","react/jsx-uses-react":"off"}});const g=r({rules:{"sort-imports":["error",{ignoreCase:!0,ignoreDeclarationSort:!0,ignoreMemberSort:!1}]}}),f=r({plugins:{"unused-imports":p},rules:{"@typescript-eslint/no-unused-vars":"off","no-unused-vars":"off","unused-imports/no-unused-imports":"error","unused-imports/no-unused-vars":["error",{vars:"all",varsIgnorePattern:"^_",args:"after-used",argsIgnorePattern:"^_"}]}});function y({ignores:t}){return r(...r({ignores:t}),...r({languageOptions:{globals:{...e.node}}}),...a,...f,...g,...u,...c,...m,...d)}export{y as eslintLibraryConfig};
1
+ import{defineConfig as e,globalIgnores as r}from"eslint/config";import t from"@eslint/js";import s from"globals";import{configs as i}from"typescript-eslint";import o from"eslint-plugin-jest";import n from"eslint-plugin-perfectionist";import a from"eslint-plugin-prettier/recommended";import p from"eslint-plugin-react-hooks";import l from"eslint-plugin-unused-imports";const c=e([t.configs.recommended,...i.strictTypeChecked,...i.stylisticTypeChecked,{languageOptions:{globals:{...s.builtin,...s.es2026,...s.node},parserOptions:{ecmaVersion:"latest",project:!0,sourceType:"module",tsconfigRootDir:"./"}},rules:{"import/order":"off","no-unused-vars":"off","@typescript-eslint/consistent-type-definitions":["error","type"],"@typescript-eslint/no-unnecessary-type-parameters":"off","@typescript-eslint/no-unused-vars":"off"}}]),u=e({extends:[i.disableTypeChecked],files:["**/*.{cjs,mjs,js,jsx}"]}),m=e({files:["**/*.test.{js,ts,jsx,tsx}"],...o.configs["flat/recommended"]}),d=new Map([["sort-arrays",["error",{ignoreCase:!1,order:"asc",specialCharacters:"trim",useConfigurationIf:{matchesAstSelector:"TSAsExpression > ArrayExpression"}}]],["sort-exports",["error",{ignoreCase:!1,order:"asc",specialCharacters:"trim",type:"alphabetical"}]],["sort-imports",["error",{customGroups:[{elementNamePattern:"@tarsilla(/.*)?$",groupName:"@tarsilla"}],groups:["type-import","value-builtin","value-external","@tarsilla","value-internal",["type-parent","type-sibling","type-index"],["value-parent","value-sibling","value-index"],"ts-equals-import","unknown"],ignoreCase:!1,newlinesBetween:1,order:"asc",specialCharacters:"trim",tsconfig:{rootDir:"."},type:"alphabetical"}]],["sort-named-exports",["error",{ignoreCase:!1,order:"asc",specialCharacters:"trim",type:"alphabetical"}]],["sort-named-imports",["error",{ignoreCase:!1,order:"asc",specialCharacters:"trim",type:"alphabetical"}]],["sort-union-types",["error",{groups:["conditional","function","import","intersection","keyword","literal","named","object","operator","tuple","union","nullish"],ignoreCase:!1,order:"asc",specialCharacters:"trim",type:"alphabetical"}]]]),f=e({plugins:{perfectionistPlugin:n},rules:Object.fromEntries(Object.keys(n.rules??{}).map(e=>[`perfectionist/${e}`,d.get(e)??["error",{ignoreCase:!0,order:"asc",specialCharacters:"trim",type:"alphabetical"}]]))}),g=e([a,{rules:{...a.rules,"prettier/prettier":["error",{jsxSingleQuote:!0,printWidth:120,semi:!0,singleQuote:!0,tabWidth:2,trailingComma:"all"},{fileInfoOptions:{withNodeModules:!0},usePrettierrc:!1}]}}]);e({files:["**/*.{jsx,tsx}"],plugins:{"react-hooks":p},rules:{...p.configs.recommended.rules,"react/jsx-uses-react":"off","react/react-in-jsx-scope":"off"}});const y=e({plugins:{"unused-imports":l},rules:{"unused-imports/no-unused-imports":"error","unused-imports/no-unused-vars":["error",{args:"after-used",argsIgnorePattern:"^_",vars:"all",varsIgnorePattern:"^_"}]},settings:{"import/resolver":{node:!0,typescript:!0}}});function h({ignores:t}){return e(r(t),...c,...y,...f,...u,...m,...g)}export{h as eslintLibraryConfig};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/commons/all.ts","../../src/commons/imports.ts","../../src/commons/javascript.ts","../../src/commons/jest.ts","../../src/commons/prettier.ts","../../src/commons/react-hooks.ts","../../src/commons/sortImports.ts","../../src/commons/unusedImports.ts","../../src/library/eslintLibraryConfig.ts"],"sourcesContent":["import js from '@eslint/js';\nimport type { TSESLint } from '@typescript-eslint/utils';\nimport globals from 'globals';\nimport { config, configs } from 'typescript-eslint';\n\nconst allConfig: TSESLint.FlatConfig.ConfigArray = config([\n js.configs.recommended,\n ...configs.stylistic,\n ...configs.stylisticTypeChecked,\n {\n languageOptions: {\n parserOptions: {\n ecmaVersion: 'latest',\n sourceType: 'module',\n project: true,\n tsconfigRootDir: './',\n },\n globals: {\n ...globals.builtin,\n ...globals.es2021,\n },\n },\n rules: {\n '@typescript-eslint/consistent-type-definitions': ['error', 'type'],\n '@typescript-eslint/explicit-module-boundary-types': 'error',\n '@typescript-eslint/no-explicit-any': 'error',\n },\n },\n]);\n\nexport { allConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport imports from 'eslint-plugin-import';\nimport { config } from 'typescript-eslint';\n\nconst importsConfig: TSESLint.FlatConfig.ConfigArray = config([\n imports.flatConfigs.recommended,\n imports.flatConfigs.typescript,\n {\n rules: {\n 'import/order': [\n 'error',\n {\n groups: ['builtin', 'external', 'internal', ['parent', 'sibling']],\n pathGroups: [\n {\n pattern: 'react',\n group: 'external',\n position: 'before',\n },\n {\n pattern: '@tarsilla/**',\n group: 'internal',\n position: 'before',\n },\n ],\n pathGroupsExcludedImportTypes: ['react', '@tarsilla'],\n 'newlines-between': 'always',\n alphabetize: {\n order: 'asc',\n caseInsensitive: true,\n },\n },\n ],\n },\n settings: {\n 'import/resolver': {\n typescript: true,\n node: true,\n },\n },\n },\n]);\n\nexport { importsConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport { config, configs } from 'typescript-eslint';\n\nconst javascriptConfig: TSESLint.FlatConfig.ConfigArray = config({\n files: ['**/*.{cjs,mjs,js,jsx}'],\n extends: [configs.disableTypeChecked],\n});\n\nexport { javascriptConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport jest from 'eslint-plugin-jest';\nimport { config } from 'typescript-eslint';\n\nconst jestConfig: TSESLint.FlatConfig.ConfigArray = config({\n files: ['**/*.test.{js,ts,jsx,tsx}'],\n ...jest.configs['flat/recommended'],\n});\n\nexport { jestConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport prettierRecommended from 'eslint-plugin-prettier/recommended';\nimport { config } from 'typescript-eslint';\n\nconst prettierConfig: TSESLint.FlatConfig.ConfigArray = config([\n prettierRecommended,\n {\n rules: {\n ...prettierRecommended.rules,\n 'prettier/prettier': [\n 'error',\n {\n semi: true,\n trailingComma: 'all',\n singleQuote: true,\n jsxSingleQuote: true,\n printWidth: 120,\n tabWidth: 2,\n },\n {\n usePrettierrc: false,\n fileInfoOptions: {\n withNodeModules: true,\n },\n },\n ],\n },\n },\n]);\n\nexport { prettierConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport reactHooks from 'eslint-plugin-react-hooks';\nimport { config } from 'typescript-eslint';\n\nconst reactHooksConfig: TSESLint.FlatConfig.ConfigArray = config({\n files: ['**/*.{jsx,tsx}'],\n plugins: {\n 'react-hooks': reactHooks,\n },\n rules: {\n ...reactHooks.configs.recommended.rules,\n 'react/react-in-jsx-scope': 'off',\n 'react/jsx-uses-react': 'off',\n },\n});\n\nexport { reactHooksConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport { config } from 'typescript-eslint';\n\nconst sortImportsConfig: TSESLint.FlatConfig.ConfigArray = config({\n rules: {\n 'sort-imports': [\n 'error',\n {\n ignoreCase: true,\n ignoreDeclarationSort: true,\n ignoreMemberSort: false,\n },\n ],\n },\n});\n\nexport { sortImportsConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport unusedImports from 'eslint-plugin-unused-imports';\nimport { config } from 'typescript-eslint';\n\nconst unusedImportsConfig: TSESLint.FlatConfig.ConfigArray = config({\n plugins: {\n 'unused-imports': unusedImports,\n },\n rules: {\n '@typescript-eslint/no-unused-vars': 'off',\n 'no-unused-vars': 'off',\n 'unused-imports/no-unused-imports': 'error',\n 'unused-imports/no-unused-vars': [\n 'error',\n {\n vars: 'all',\n varsIgnorePattern: '^_',\n args: 'after-used',\n argsIgnorePattern: '^_',\n },\n ],\n },\n});\n\nexport { unusedImportsConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport globals from 'globals';\nimport { config } from 'typescript-eslint';\n\nimport {\n allConfig,\n importsConfig,\n javascriptConfig,\n jestConfig,\n prettierConfig,\n sortImportsConfig,\n unusedImportsConfig,\n} from '../commons/index.js';\nimport { EslintOptions } from '../types/index.js';\n\nfunction eslintLibraryConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray {\n return config(\n ...config({\n ignores,\n }),\n ...config({\n languageOptions: {\n globals: {\n ...globals.node,\n },\n },\n }),\n ...allConfig,\n ...unusedImportsConfig,\n ...sortImportsConfig,\n ...importsConfig,\n ...javascriptConfig,\n ...jestConfig,\n ...prettierConfig,\n );\n}\n\nexport { eslintLibraryConfig };\n"],"names":["allConfig","config","js","configs","recommended","stylistic","stylisticTypeChecked","languageOptions","parserOptions","ecmaVersion","sourceType","project","tsconfigRootDir","globals","builtin","es2021","rules","importsConfig","imports","flatConfigs","typescript","groups","pathGroups","pattern","group","position","pathGroupsExcludedImportTypes","alphabetize","order","caseInsensitive","settings","node","javascriptConfig","files","extends","disableTypeChecked","jestConfig","jest","prettierConfig","prettierRecommended","semi","trailingComma","singleQuote","jsxSingleQuote","printWidth","tabWidth","usePrettierrc","fileInfoOptions","withNodeModules","plugins","reactHooks","sortImportsConfig","ignoreCase","ignoreDeclarationSort","ignoreMemberSort","unusedImportsConfig","unusedImports","vars","varsIgnorePattern","args","argsIgnorePattern","eslintLibraryConfig","ignores"],"mappings":"sTAKA,MAAMA,EAA6CC,EAAO,CACxDC,EAAGC,QAAQC,eACRD,EAAQE,aACRF,EAAQG,qBACX,CACEC,gBAAiB,CACfC,cAAe,CACbC,YAAa,SACbC,WAAY,SACZC,SAAS,EACTC,gBAAiB,MAEnBC,QAAS,IACJA,EAAQC,WACRD,EAAQE,SAGfC,MAAO,CACL,iDAAkD,CAAC,QAAS,QAC5D,oDAAqD,QACrD,qCAAsC,YCrBtCC,EAAiDhB,EAAO,CAC5DiB,EAAQC,YAAYf,YACpBc,EAAQC,YAAYC,WACpB,CACEJ,MAAO,CACL,eAAgB,CACd,QACA,CACEK,OAAQ,CAAC,UAAW,WAAY,WAAY,CAAC,SAAU,YACvDC,WAAY,CACV,CACEC,QAAS,QACTC,MAAO,WACPC,SAAU,UAEZ,CACEF,QAAS,eACTC,MAAO,WACPC,SAAU,WAGdC,8BAA+B,CAAC,QAAS,aACzC,mBAAoB,SACpBC,YAAa,CACXC,MAAO,MACPC,iBAAiB,MAKzBC,SAAU,CACR,kBAAmB,CACjBV,YAAY,EACZW,MAAM,OClCRC,EAAoD/B,EAAO,CAC/DgC,MAAO,CAAC,yBACRC,QAAS,CAAC/B,EAAQgC,sBCDdC,EAA8CnC,EAAO,CACzDgC,MAAO,CAAC,gCACLI,EAAKlC,QAAQ,sBCFZmC,EAAkDrC,EAAO,CAC7DsC,EACA,CACEvB,MAAO,IACFuB,EAAoBvB,MACvB,oBAAqB,CACnB,QACA,CACEwB,MAAM,EACNC,cAAe,MACfC,aAAa,EACbC,gBAAgB,EAChBC,WAAY,IACZC,SAAU,GAEZ,CACEC,eAAe,EACfC,gBAAiB,CACfC,iBAAiB,SClB6B/C,EAAO,CAC/DgC,MAAO,CAAC,kBACRgB,QAAS,CACP,cAAeC,GAEjBlC,MAAO,IACFkC,EAAW/C,QAAQC,YAAYY,MAClC,2BAA4B,MAC5B,uBAAwB,SCT5B,MAAMmC,EAAqDlD,EAAO,CAChEe,MAAO,CACL,eAAgB,CACd,QACA,CACEoC,YAAY,EACZC,uBAAuB,EACvBC,kBAAkB,OCNpBC,EAAuDtD,EAAO,CAClEgD,QAAS,CACP,iBAAkBO,GAEpBxC,MAAO,CACL,oCAAqC,MACrC,iBAAkB,MAClB,mCAAoC,QACpC,gCAAiC,CAC/B,QACA,CACEyC,KAAM,MACNC,kBAAmB,KACnBC,KAAM,aACNC,kBAAmB,UCH3B,SAASC,GAAoBC,QAAEA,IAC7B,OAAO7D,KACFA,EAAO,CACR6D,eAEC7D,EAAO,CACRM,gBAAiB,CACfM,QAAS,IACJA,EAAQkB,YAId/B,KACAuD,KACAJ,KACAlC,KACAe,KACAI,KACAE,EAEP"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/commons/all.ts","../../src/commons/javascript.ts","../../src/commons/jest.ts","../../src/commons/perfectionist.ts","../../src/commons/prettier.ts","../../src/commons/react-hooks.ts","../../src/commons/unusedImports.ts","../../src/library/eslintLibraryConfig.ts"],"sourcesContent":["import { defineConfig } from 'eslint/config';\nimport js from '@eslint/js';\nimport globals from 'globals';\nimport { configs } from 'typescript-eslint';\n\nconst allConfig = defineConfig([\n js.configs.recommended,\n ...configs.strictTypeChecked,\n ...configs.stylisticTypeChecked,\n {\n languageOptions: {\n globals: {\n ...globals.builtin,\n ...globals.es2026,\n ...globals.node,\n },\n parserOptions: {\n ecmaVersion: 'latest',\n project: true,\n sourceType: 'module',\n tsconfigRootDir: './',\n },\n },\n rules: {\n 'import/order': 'off',\n 'no-unused-vars': 'off',\n '@typescript-eslint/consistent-type-definitions': ['error', 'type'],\n '@typescript-eslint/no-unnecessary-type-parameters': 'off',\n '@typescript-eslint/no-unused-vars': 'off',\n },\n },\n]);\n\nexport { allConfig };\n","import { defineConfig } from 'eslint/config';\nimport { configs } from 'typescript-eslint';\n\nconst javascriptConfig = defineConfig({\n extends: [configs.disableTypeChecked],\n files: ['**/*.{cjs,mjs,js,jsx}'],\n});\n\nexport { javascriptConfig };\n","import jest from 'eslint-plugin-jest';\nimport { defineConfig } from 'eslint/config';\n\nconst jestConfig = defineConfig({\n files: ['**/*.test.{js,ts,jsx,tsx}'],\n ...jest.configs['flat/recommended'],\n});\n\nexport { jestConfig };\n","import perfectionistPlugin from 'eslint-plugin-perfectionist';\nimport { defineConfig } from 'eslint/config';\nimport { RuleConfig } from '@eslint/core';\n\nconst perfectionistOverrides = new Map<string, RuleConfig>([\n [\n 'sort-arrays',\n [\n 'error',\n {\n ignoreCase: false,\n order: 'asc',\n specialCharacters: 'trim',\n useConfigurationIf: {\n matchesAstSelector: 'TSAsExpression > ArrayExpression',\n },\n },\n ],\n ],\n [\n 'sort-exports',\n [\n 'error',\n {\n ignoreCase: false,\n order: 'asc',\n specialCharacters: 'trim',\n type: 'alphabetical',\n },\n ],\n ],\n [\n 'sort-imports',\n [\n 'error',\n {\n customGroups: [\n {\n elementNamePattern: '@tarsilla(/.*)?$',\n groupName: '@tarsilla',\n },\n ],\n groups: [\n 'type-import',\n 'value-builtin',\n 'value-external',\n '@tarsilla',\n 'value-internal',\n ['type-parent', 'type-sibling', 'type-index'],\n ['value-parent', 'value-sibling', 'value-index'],\n 'ts-equals-import',\n 'unknown',\n ],\n ignoreCase: false,\n newlinesBetween: 1,\n order: 'asc',\n specialCharacters: 'trim',\n tsconfig: {\n rootDir: '.',\n },\n type: 'alphabetical',\n },\n ],\n ],\n [\n 'sort-named-exports',\n [\n 'error',\n {\n ignoreCase: false,\n order: 'asc',\n specialCharacters: 'trim',\n type: 'alphabetical',\n },\n ],\n ],\n [\n 'sort-named-imports',\n [\n 'error',\n {\n ignoreCase: false,\n order: 'asc',\n specialCharacters: 'trim',\n type: 'alphabetical',\n },\n ],\n ],\n [\n 'sort-union-types',\n [\n 'error',\n {\n groups: [\n 'conditional',\n 'function',\n 'import',\n 'intersection',\n 'keyword',\n 'literal',\n 'named',\n 'object',\n 'operator',\n 'tuple',\n 'union',\n 'nullish',\n ],\n ignoreCase: false,\n order: 'asc',\n specialCharacters: 'trim',\n type: 'alphabetical',\n },\n ],\n ],\n]);\n\nconst perfectionist = defineConfig({\n plugins: {\n perfectionistPlugin,\n },\n rules: Object.fromEntries(\n Object.keys(perfectionistPlugin.rules ?? {}).map((rule) => {\n const override = perfectionistOverrides.get(rule);\n return [\n `perfectionist/${rule}`,\n override ?? [\n 'error',\n {\n ignoreCase: true,\n order: 'asc',\n specialCharacters: 'trim',\n type: 'alphabetical',\n },\n ],\n ];\n }),\n ),\n});\n\nexport { perfectionist };\n","import prettierRecommended from 'eslint-plugin-prettier/recommended';\nimport { defineConfig } from 'eslint/config';\n\nconst prettierConfig = defineConfig([\n prettierRecommended,\n {\n rules: {\n ...prettierRecommended.rules,\n 'prettier/prettier': [\n 'error',\n {\n jsxSingleQuote: true,\n printWidth: 120,\n semi: true,\n singleQuote: true,\n tabWidth: 2,\n trailingComma: 'all',\n },\n {\n fileInfoOptions: {\n withNodeModules: true,\n },\n usePrettierrc: false,\n },\n ],\n },\n },\n]);\n\nexport { prettierConfig };\n","import reactHooks from 'eslint-plugin-react-hooks';\nimport { defineConfig } from 'eslint/config';\n\nconst reactHooksConfig = defineConfig({\n files: ['**/*.{jsx,tsx}'],\n plugins: {\n 'react-hooks': reactHooks,\n },\n rules: {\n ...reactHooks.configs.recommended.rules,\n 'react/jsx-uses-react': 'off',\n 'react/react-in-jsx-scope': 'off',\n },\n});\n\nexport { reactHooksConfig };\n","import unusedImports from 'eslint-plugin-unused-imports';\nimport { defineConfig } from 'eslint/config';\n\nconst unusedImportsConfig = defineConfig({\n plugins: {\n 'unused-imports': unusedImports,\n },\n rules: {\n 'unused-imports/no-unused-imports': 'error',\n 'unused-imports/no-unused-vars': [\n 'error',\n {\n args: 'after-used',\n argsIgnorePattern: '^_',\n vars: 'all',\n varsIgnorePattern: '^_',\n },\n ],\n },\n settings: {\n 'import/resolver': {\n node: true,\n typescript: true,\n },\n },\n});\n\nexport { unusedImportsConfig };\n","import { defineConfig, globalIgnores } from 'eslint/config';\n\nimport {\n allConfig,\n javascriptConfig,\n jestConfig,\n perfectionist,\n prettierConfig,\n unusedImportsConfig,\n} from '../commons/index.js';\nimport { EslintOptions } from '../types/index.js';\n\nfunction eslintLibraryConfig({ ignores }: EslintOptions) {\n return defineConfig(\n globalIgnores(ignores),\n ...allConfig,\n ...unusedImportsConfig,\n ...perfectionist,\n ...javascriptConfig,\n ...jestConfig,\n ...prettierConfig,\n );\n}\n\nexport { eslintLibraryConfig };\n"],"names":["allConfig","defineConfig","js","configs","recommended","strictTypeChecked","stylisticTypeChecked","languageOptions","globals","builtin","es2026","node","parserOptions","ecmaVersion","project","sourceType","tsconfigRootDir","rules","javascriptConfig","extends","disableTypeChecked","files","jestConfig","jest","perfectionistOverrides","Map","ignoreCase","order","specialCharacters","useConfigurationIf","matchesAstSelector","type","customGroups","elementNamePattern","groupName","groups","newlinesBetween","tsconfig","rootDir","perfectionist","plugins","perfectionistPlugin","Object","fromEntries","keys","map","rule","get","prettierConfig","prettierRecommended","jsxSingleQuote","printWidth","semi","singleQuote","tabWidth","trailingComma","fileInfoOptions","withNodeModules","usePrettierrc","reactHooks","unusedImportsConfig","unusedImports","args","argsIgnorePattern","vars","varsIgnorePattern","settings","typescript","eslintLibraryConfig","ignores","globalIgnores"],"mappings":"iXAKA,MAAMA,EAAYC,EAAa,CAC7BC,EAAGC,QAAQC,eACRD,EAAQE,qBACRF,EAAQG,qBACX,CACEC,gBAAiB,CACfC,QAAS,IACJA,EAAQC,WACRD,EAAQE,UACRF,EAAQG,MAEbC,cAAe,CACbC,YAAa,SACbC,SAAS,EACTC,WAAY,SACZC,gBAAiB,OAGrBC,MAAO,CACL,eAAgB,MAChB,iBAAkB,MAClB,iDAAkD,CAAC,QAAS,QAC5D,oDAAqD,MACrD,oCAAqC,UCzBrCC,EAAmBjB,EAAa,CACpCkB,QAAS,CAAChB,EAAQiB,oBAClBC,MAAO,CAAC,2BCFJC,EAAarB,EAAa,CAC9BoB,MAAO,CAAC,gCACLE,EAAKpB,QAAQ,sBCDZqB,EAAyB,IAAIC,IAAwB,CACzD,CACE,cACA,CACE,QACA,CACEC,YAAY,EACZC,MAAO,MACPC,kBAAmB,OACnBC,mBAAoB,CAClBC,mBAAoB,uCAK5B,CACE,eACA,CACE,QACA,CACEJ,YAAY,EACZC,MAAO,MACPC,kBAAmB,OACnBG,KAAM,kBAIZ,CACE,eACA,CACE,QACA,CACEC,aAAc,CACZ,CACEC,mBAAoB,mBACpBC,UAAW,cAGfC,OAAQ,CACN,cACA,gBACA,iBACA,YACA,iBACA,CAAC,cAAe,eAAgB,cAChC,CAAC,eAAgB,gBAAiB,eAClC,mBACA,WAEFT,YAAY,EACZU,gBAAiB,EACjBT,MAAO,MACPC,kBAAmB,OACnBS,SAAU,CACRC,QAAS,KAEXP,KAAM,kBAIZ,CACE,qBACA,CACE,QACA,CACEL,YAAY,EACZC,MAAO,MACPC,kBAAmB,OACnBG,KAAM,kBAIZ,CACE,qBACA,CACE,QACA,CACEL,YAAY,EACZC,MAAO,MACPC,kBAAmB,OACnBG,KAAM,kBAIZ,CACE,mBACA,CACE,QACA,CACEI,OAAQ,CACN,cACA,WACA,SACA,eACA,UACA,UACA,QACA,SACA,WACA,QACA,QACA,WAEFT,YAAY,EACZC,MAAO,MACPC,kBAAmB,OACnBG,KAAM,oBAMRQ,EAAgBtC,EAAa,CACjCuC,QAAS,CACPC,uBAEFxB,MAAOyB,OAAOC,YACZD,OAAOE,KAAKH,EAAoBxB,OAAS,CAAA,GAAI4B,IAAKC,GAEzC,CACL,iBAAiBA,IAFFtB,EAAuBuB,IAAID,IAG9B,CACV,QACA,CACEpB,YAAY,EACZC,MAAO,MACPC,kBAAmB,OACnBG,KAAM,sBChIZiB,EAAiB/C,EAAa,CAClCgD,EACA,CACEhC,MAAO,IACFgC,EAAoBhC,MACvB,oBAAqB,CACnB,QACA,CACEiC,gBAAgB,EAChBC,WAAY,IACZC,MAAM,EACNC,aAAa,EACbC,SAAU,EACVC,cAAe,OAEjB,CACEC,gBAAiB,CACfC,iBAAiB,GAEnBC,eAAe,QCnBAzD,EAAa,CACpCoB,MAAO,CAAC,kBACRmB,QAAS,CACP,cAAemB,GAEjB1C,MAAO,IACF0C,EAAWxD,QAAQC,YAAYa,MAClC,uBAAwB,MACxB,2BAA4B,SCRhC,MAAM2C,EAAsB3D,EAAa,CACvCuC,QAAS,CACP,iBAAkBqB,GAEpB5C,MAAO,CACL,mCAAoC,QACpC,gCAAiC,CAC/B,QACA,CACE6C,KAAM,aACNC,kBAAmB,KACnBC,KAAM,MACNC,kBAAmB,QAIzBC,SAAU,CACR,kBAAmB,CACjBvD,MAAM,EACNwD,YAAY,MCVlB,SAASC,GAAoBC,QAAEA,IAC7B,OAAOpE,EACLqE,EAAcD,MACXrE,KACA4D,KACArB,KACArB,KACAI,KACA0B,EAEP"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("path"),r=require("url"),t=require("@eslint/eslintrc"),s=require("globals"),i=require("typescript-eslint"),n=require("@eslint/js"),o=require("eslint-plugin-import"),l=require("eslint-plugin-jest"),a=require("eslint-plugin-prettier/recommended"),p=require("eslint-plugin-react-hooks"),u=require("eslint-plugin-unused-imports"),c="undefined"!=typeof document?document.currentScript:null;const g=i.config([n.configs.recommended,...i.configs.stylistic,...i.configs.stylisticTypeChecked,{languageOptions:{parserOptions:{ecmaVersion:"latest",sourceType:"module",project:!0,tsconfigRootDir:"./"},globals:{...s.builtin,...s.es2021}},rules:{"@typescript-eslint/consistent-type-definitions":["error","type"],"@typescript-eslint/explicit-module-boundary-types":"error","@typescript-eslint/no-explicit-any":"error"}}]);i.config([o.flatConfigs.recommended,o.flatConfigs.typescript,{rules:{"import/order":["error",{groups:["builtin","external","internal",["parent","sibling"]],pathGroups:[{pattern:"react",group:"external",position:"before"},{pattern:"@tarsilla/**",group:"internal",position:"before"}],pathGroupsExcludedImportTypes:["react","@tarsilla"],"newlines-between":"always",alphabetize:{order:"asc",caseInsensitive:!0}}]},settings:{"import/resolver":{typescript:!0,node:!0}}}]);const f=i.config({files:["**/*.{cjs,mjs,js,jsx}"],extends:[i.configs.disableTypeChecked]}),d=i.config({files:["**/*.test.{js,ts,jsx,tsx}"],...l.configs["flat/recommended"]}),m=i.config([a,{rules:{...a.rules,"prettier/prettier":["error",{semi:!0,trailingComma:"all",singleQuote:!0,jsxSingleQuote:!0,printWidth:120,tabWidth:2},{usePrettierrc:!1,fileInfoOptions:{withNodeModules:!0}}]}}]),y=i.config({files:["**/*.{jsx,tsx}"],plugins:{"react-hooks":p},rules:{...p.configs.recommended.rules,"react/react-in-jsx-scope":"off","react/jsx-uses-react":"off"}}),b=i.config({rules:{"sort-imports":["error",{ignoreCase:!0,ignoreDeclarationSort:!0,ignoreMemberSort:!1}]}}),x=i.config({plugins:{"unused-imports":u},rules:{"@typescript-eslint/no-unused-vars":"off","no-unused-vars":"off","unused-imports/no-unused-imports":"error","unused-imports/no-unused-vars":["error",{vars:"all",varsIgnorePattern:"^_",args:"after-used",argsIgnorePattern:"^_"}]}}),h=r.fileURLToPath("undefined"==typeof document?require("url").pathToFileURL(__filename).href:c&&"SCRIPT"===c.tagName.toUpperCase()&&c.src||new URL("index.cjs",document.baseURI).href),j=e.dirname(h),q=new t.FlatCompat({baseDirectory:j});exports.eslintNextConfig=function({ignores:e}){return i.config(...i.config({ignores:e}),...i.config({languageOptions:{globals:{...s.node,...s.browser}}}),...g,...q.config({extends:["next/core-web-vitals","next/typescript"],rules:{"import/order":["error",{groups:["builtin","external","internal",["parent","sibling"]],pathGroups:[{pattern:"react",group:"external",position:"before"},{pattern:"@tarsilla/**",group:"internal",position:"before"}],pathGroupsExcludedImportTypes:["react","@tarsilla"],"newlines-between":"always",alphabetize:{order:"asc",caseInsensitive:!0}}]}}),...y,...x,...b,...f,...d,...m)};
1
+ "use strict";var e=require("eslint/config"),r=require("globals"),s=require("@next/eslint-plugin-next"),t=require("@eslint/js"),i=require("typescript-eslint"),n=require("eslint-plugin-jest"),o=require("eslint-plugin-perfectionist"),a=require("eslint-plugin-prettier/recommended"),l=require("eslint-plugin-react-hooks"),p=require("eslint-plugin-unused-imports");const c=e.defineConfig([t.configs.recommended,...i.configs.strictTypeChecked,...i.configs.stylisticTypeChecked,{languageOptions:{globals:{...r.builtin,...r.es2026,...r.node},parserOptions:{ecmaVersion:"latest",project:!0,sourceType:"module",tsconfigRootDir:"./"}},rules:{"import/order":"off","no-unused-vars":"off","@typescript-eslint/consistent-type-definitions":["error","type"],"@typescript-eslint/no-unnecessary-type-parameters":"off","@typescript-eslint/no-unused-vars":"off"}}]),u=e.defineConfig({extends:[i.configs.disableTypeChecked],files:["**/*.{cjs,mjs,js,jsx}"]}),g=e.defineConfig({files:["**/*.test.{js,ts,jsx,tsx}"],...n.configs["flat/recommended"]}),f=new Map([["sort-arrays",["error",{ignoreCase:!1,order:"asc",specialCharacters:"trim",useConfigurationIf:{matchesAstSelector:"TSAsExpression > ArrayExpression"}}]],["sort-exports",["error",{ignoreCase:!1,order:"asc",specialCharacters:"trim",type:"alphabetical"}]],["sort-imports",["error",{customGroups:[{elementNamePattern:"@tarsilla(/.*)?$",groupName:"@tarsilla"}],groups:["type-import","value-builtin","value-external","@tarsilla","value-internal",["type-parent","type-sibling","type-index"],["value-parent","value-sibling","value-index"],"ts-equals-import","unknown"],ignoreCase:!1,newlinesBetween:1,order:"asc",specialCharacters:"trim",tsconfig:{rootDir:"."},type:"alphabetical"}]],["sort-named-exports",["error",{ignoreCase:!1,order:"asc",specialCharacters:"trim",type:"alphabetical"}]],["sort-named-imports",["error",{ignoreCase:!1,order:"asc",specialCharacters:"trim",type:"alphabetical"}]],["sort-union-types",["error",{groups:["conditional","function","import","intersection","keyword","literal","named","object","operator","tuple","union","nullish"],ignoreCase:!1,order:"asc",specialCharacters:"trim",type:"alphabetical"}]]]),d=e.defineConfig({plugins:{perfectionistPlugin:o},rules:Object.fromEntries(Object.keys(o.rules??{}).map(e=>[`perfectionist/${e}`,f.get(e)??["error",{ignoreCase:!0,order:"asc",specialCharacters:"trim",type:"alphabetical"}]]))}),m=e.defineConfig([a,{rules:{...a.rules,"prettier/prettier":["error",{jsxSingleQuote:!0,printWidth:120,semi:!0,singleQuote:!0,tabWidth:2,trailingComma:"all"},{fileInfoOptions:{withNodeModules:!0},usePrettierrc:!1}]}}]),y=e.defineConfig({files:["**/*.{jsx,tsx}"],plugins:{"react-hooks":l},rules:{...l.configs.recommended.rules,"react/jsx-uses-react":"off","react/react-in-jsx-scope":"off"}}),C=e.defineConfig({plugins:{"unused-imports":p},rules:{"unused-imports/no-unused-imports":"error","unused-imports/no-unused-vars":["error",{args:"after-used",argsIgnorePattern:"^_",vars:"all",varsIgnorePattern:"^_"}]},settings:{"import/resolver":{node:!0,typescript:!0}}});exports.eslintNextConfig=function({ignores:t}){return e.defineConfig(e.globalIgnores(t),{languageOptions:{globals:{...r.browser}}},...c,s.configs["core-web-vitals"],...y,...C,...d,...u,...g,...m)};
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../src/commons/all.ts","../../src/commons/imports.ts","../../src/commons/javascript.ts","../../src/commons/jest.ts","../../src/commons/prettier.ts","../../src/commons/react-hooks.ts","../../src/commons/sortImports.ts","../../src/commons/unusedImports.ts","../../src/next/eslintNextConfig.ts"],"sourcesContent":["import js from '@eslint/js';\nimport type { TSESLint } from '@typescript-eslint/utils';\nimport globals from 'globals';\nimport { config, configs } from 'typescript-eslint';\n\nconst allConfig: TSESLint.FlatConfig.ConfigArray = config([\n js.configs.recommended,\n ...configs.stylistic,\n ...configs.stylisticTypeChecked,\n {\n languageOptions: {\n parserOptions: {\n ecmaVersion: 'latest',\n sourceType: 'module',\n project: true,\n tsconfigRootDir: './',\n },\n globals: {\n ...globals.builtin,\n ...globals.es2021,\n },\n },\n rules: {\n '@typescript-eslint/consistent-type-definitions': ['error', 'type'],\n '@typescript-eslint/explicit-module-boundary-types': 'error',\n '@typescript-eslint/no-explicit-any': 'error',\n },\n },\n]);\n\nexport { allConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport imports from 'eslint-plugin-import';\nimport { config } from 'typescript-eslint';\n\nconst importsConfig: TSESLint.FlatConfig.ConfigArray = config([\n imports.flatConfigs.recommended,\n imports.flatConfigs.typescript,\n {\n rules: {\n 'import/order': [\n 'error',\n {\n groups: ['builtin', 'external', 'internal', ['parent', 'sibling']],\n pathGroups: [\n {\n pattern: 'react',\n group: 'external',\n position: 'before',\n },\n {\n pattern: '@tarsilla/**',\n group: 'internal',\n position: 'before',\n },\n ],\n pathGroupsExcludedImportTypes: ['react', '@tarsilla'],\n 'newlines-between': 'always',\n alphabetize: {\n order: 'asc',\n caseInsensitive: true,\n },\n },\n ],\n },\n settings: {\n 'import/resolver': {\n typescript: true,\n node: true,\n },\n },\n },\n]);\n\nexport { importsConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport { config, configs } from 'typescript-eslint';\n\nconst javascriptConfig: TSESLint.FlatConfig.ConfigArray = config({\n files: ['**/*.{cjs,mjs,js,jsx}'],\n extends: [configs.disableTypeChecked],\n});\n\nexport { javascriptConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport jest from 'eslint-plugin-jest';\nimport { config } from 'typescript-eslint';\n\nconst jestConfig: TSESLint.FlatConfig.ConfigArray = config({\n files: ['**/*.test.{js,ts,jsx,tsx}'],\n ...jest.configs['flat/recommended'],\n});\n\nexport { jestConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport prettierRecommended from 'eslint-plugin-prettier/recommended';\nimport { config } from 'typescript-eslint';\n\nconst prettierConfig: TSESLint.FlatConfig.ConfigArray = config([\n prettierRecommended,\n {\n rules: {\n ...prettierRecommended.rules,\n 'prettier/prettier': [\n 'error',\n {\n semi: true,\n trailingComma: 'all',\n singleQuote: true,\n jsxSingleQuote: true,\n printWidth: 120,\n tabWidth: 2,\n },\n {\n usePrettierrc: false,\n fileInfoOptions: {\n withNodeModules: true,\n },\n },\n ],\n },\n },\n]);\n\nexport { prettierConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport reactHooks from 'eslint-plugin-react-hooks';\nimport { config } from 'typescript-eslint';\n\nconst reactHooksConfig: TSESLint.FlatConfig.ConfigArray = config({\n files: ['**/*.{jsx,tsx}'],\n plugins: {\n 'react-hooks': reactHooks,\n },\n rules: {\n ...reactHooks.configs.recommended.rules,\n 'react/react-in-jsx-scope': 'off',\n 'react/jsx-uses-react': 'off',\n },\n});\n\nexport { reactHooksConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport { config } from 'typescript-eslint';\n\nconst sortImportsConfig: TSESLint.FlatConfig.ConfigArray = config({\n rules: {\n 'sort-imports': [\n 'error',\n {\n ignoreCase: true,\n ignoreDeclarationSort: true,\n ignoreMemberSort: false,\n },\n ],\n },\n});\n\nexport { sortImportsConfig };\n","import type { TSESLint } from '@typescript-eslint/utils';\nimport unusedImports from 'eslint-plugin-unused-imports';\nimport { config } from 'typescript-eslint';\n\nconst unusedImportsConfig: TSESLint.FlatConfig.ConfigArray = config({\n plugins: {\n 'unused-imports': unusedImports,\n },\n rules: {\n '@typescript-eslint/no-unused-vars': 'off',\n 'no-unused-vars': 'off',\n 'unused-imports/no-unused-imports': 'error',\n 'unused-imports/no-unused-vars': [\n 'error',\n {\n vars: 'all',\n varsIgnorePattern: '^_',\n args: 'after-used',\n argsIgnorePattern: '^_',\n },\n ],\n },\n});\n\nexport { unusedImportsConfig };\n","import { dirname } from 'path';\nimport { fileURLToPath } from 'url';\n\nimport { FlatCompat } from '@eslint/eslintrc';\nimport type { TSESLint } from '@typescript-eslint/utils';\nimport globals from 'globals';\nimport { config } from 'typescript-eslint';\n\nimport {\n allConfig,\n javascriptConfig,\n jestConfig,\n prettierConfig,\n reactHooksConfig,\n sortImportsConfig,\n unusedImportsConfig,\n} from '../commons/index.js';\nimport { EslintOptions } from '../types/index.js';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\n\nconst compat = new FlatCompat({\n baseDirectory: __dirname,\n});\n\nfunction eslintNextConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray {\n return config(\n ...config({\n ignores,\n }),\n ...config({\n languageOptions: {\n globals: {\n ...globals.node,\n ...globals.browser,\n },\n },\n }),\n ...allConfig,\n ...compat.config({\n extends: ['next/core-web-vitals', 'next/typescript'],\n rules: {\n 'import/order': [\n 'error',\n {\n groups: ['builtin', 'external', 'internal', ['parent', 'sibling']],\n pathGroups: [\n {\n pattern: 'react',\n group: 'external',\n position: 'before',\n },\n {\n pattern: '@tarsilla/**',\n group: 'internal',\n position: 'before',\n },\n ],\n pathGroupsExcludedImportTypes: ['react', '@tarsilla'],\n 'newlines-between': 'always',\n alphabetize: {\n order: 'asc',\n caseInsensitive: true,\n },\n },\n ],\n },\n }),\n ...reactHooksConfig,\n ...unusedImportsConfig,\n ...sortImportsConfig,\n ...javascriptConfig,\n ...jestConfig,\n ...prettierConfig,\n );\n}\n\nexport { eslintNextConfig };\n"],"names":["allConfig","config","js","configs","recommended","stylistic","stylisticTypeChecked","languageOptions","parserOptions","ecmaVersion","sourceType","project","tsconfigRootDir","globals","builtin","es2021","rules","imports","flatConfigs","typescript","groups","pathGroups","pattern","group","position","pathGroupsExcludedImportTypes","alphabetize","order","caseInsensitive","settings","node","javascriptConfig","files","extends","disableTypeChecked","jestConfig","jest","prettierConfig","prettierRecommended","semi","trailingComma","singleQuote","jsxSingleQuote","printWidth","tabWidth","usePrettierrc","fileInfoOptions","withNodeModules","reactHooksConfig","plugins","reactHooks","sortImportsConfig","ignoreCase","ignoreDeclarationSort","ignoreMemberSort","unusedImportsConfig","unusedImports","vars","varsIgnorePattern","args","argsIgnorePattern","__filename","fileURLToPath","__dirname","dirname","compat","FlatCompat","baseDirectory","ignores","browser"],"mappings":"4ZAKA,MAAMA,EAA6CC,EAAAA,OAAO,CACxDC,EAAGC,QAAQC,eACRD,EAAAA,QAAQE,aACRF,EAAAA,QAAQG,qBACX,CACEC,gBAAiB,CACfC,cAAe,CACbC,YAAa,SACbC,WAAY,SACZC,SAAS,EACTC,gBAAiB,MAEnBC,QAAS,IACJA,EAAQC,WACRD,EAAQE,SAGfC,MAAO,CACL,iDAAkD,CAAC,QAAS,QAC5D,oDAAqD,QACrD,qCAAsC,YCrBWf,EAAAA,OAAO,CAC5DgB,EAAQC,YAAYd,YACpBa,EAAQC,YAAYC,WACpB,CACEH,MAAO,CACL,eAAgB,CACd,QACA,CACEI,OAAQ,CAAC,UAAW,WAAY,WAAY,CAAC,SAAU,YACvDC,WAAY,CACV,CACEC,QAAS,QACTC,MAAO,WACPC,SAAU,UAEZ,CACEF,QAAS,eACTC,MAAO,WACPC,SAAU,WAGdC,8BAA+B,CAAC,QAAS,aACzC,mBAAoB,SACpBC,YAAa,CACXC,MAAO,MACPC,iBAAiB,MAKzBC,SAAU,CACR,kBAAmB,CACjBV,YAAY,EACZW,MAAM,OClCd,MAAMC,EAAoD9B,EAAAA,OAAO,CAC/D+B,MAAO,CAAC,yBACRC,QAAS,CAAC9B,UAAQ+B,sBCDdC,EAA8ClC,EAAAA,OAAO,CACzD+B,MAAO,CAAC,gCACLI,EAAKjC,QAAQ,sBCFZkC,EAAkDpC,EAAAA,OAAO,CAC7DqC,EACA,CACEtB,MAAO,IACFsB,EAAoBtB,MACvB,oBAAqB,CACnB,QACA,CACEuB,MAAM,EACNC,cAAe,MACfC,aAAa,EACbC,gBAAgB,EAChBC,WAAY,IACZC,SAAU,GAEZ,CACEC,eAAe,EACfC,gBAAiB,CACfC,iBAAiB,SClBvBC,EAAoD/C,EAAAA,OAAO,CAC/D+B,MAAO,CAAC,kBACRiB,QAAS,CACP,cAAeC,GAEjBlC,MAAO,IACFkC,EAAW/C,QAAQC,YAAYY,MAClC,2BAA4B,MAC5B,uBAAwB,SCTtBmC,EAAqDlD,EAAAA,OAAO,CAChEe,MAAO,CACL,eAAgB,CACd,QACA,CACEoC,YAAY,EACZC,uBAAuB,EACvBC,kBAAkB,OCNpBC,EAAuDtD,EAAAA,OAAO,CAClEgD,QAAS,CACP,iBAAkBO,GAEpBxC,MAAO,CACL,oCAAqC,MACrC,iBAAkB,MAClB,mCAAoC,QACpC,gCAAiC,CAC/B,QACA,CACEyC,KAAM,MACNC,kBAAmB,KACnBC,KAAM,aACNC,kBAAmB,UCCrBC,EAAaC,EAAcA,mLAC3BC,EAAYC,EAAQH,QAAAA,GAEpBI,EAAS,IAAIC,EAAAA,WAAW,CAC5BC,cAAeJ,6BAGjB,UAA0BK,QAAEA,IAC1B,OAAOnE,EAAAA,UACFA,SAAO,CACRmE,eAECnE,EAAAA,OAAO,CACRM,gBAAiB,CACfM,QAAS,IACJA,EAAQiB,QACRjB,EAAQwD,eAIdrE,KACAiE,EAAOhE,OAAO,CACfgC,QAAS,CAAC,uBAAwB,mBAClCjB,MAAO,CACL,eAAgB,CACd,QACA,CACEI,OAAQ,CAAC,UAAW,WAAY,WAAY,CAAC,SAAU,YACvDC,WAAY,CACV,CACEC,QAAS,QACTC,MAAO,WACPC,SAAU,UAEZ,CACEF,QAAS,eACTC,MAAO,WACPC,SAAU,WAGdC,8BAA+B,CAAC,QAAS,aACzC,mBAAoB,SACpBC,YAAa,CACXC,MAAO,MACPC,iBAAiB,WAMxBoB,KACAO,KACAJ,KACApB,KACAI,KACAE,EAEP"}
1
+ {"version":3,"file":"index.cjs","sources":["../../src/commons/all.ts","../../src/commons/javascript.ts","../../src/commons/jest.ts","../../src/commons/perfectionist.ts","../../src/commons/prettier.ts","../../src/commons/react-hooks.ts","../../src/commons/unusedImports.ts","../../src/next/eslintNextConfig.ts"],"sourcesContent":["import { defineConfig } from 'eslint/config';\nimport js from '@eslint/js';\nimport globals from 'globals';\nimport { configs } from 'typescript-eslint';\n\nconst allConfig = defineConfig([\n js.configs.recommended,\n ...configs.strictTypeChecked,\n ...configs.stylisticTypeChecked,\n {\n languageOptions: {\n globals: {\n ...globals.builtin,\n ...globals.es2026,\n ...globals.node,\n },\n parserOptions: {\n ecmaVersion: 'latest',\n project: true,\n sourceType: 'module',\n tsconfigRootDir: './',\n },\n },\n rules: {\n 'import/order': 'off',\n 'no-unused-vars': 'off',\n '@typescript-eslint/consistent-type-definitions': ['error', 'type'],\n '@typescript-eslint/no-unnecessary-type-parameters': 'off',\n '@typescript-eslint/no-unused-vars': 'off',\n },\n },\n]);\n\nexport { allConfig };\n","import { defineConfig } from 'eslint/config';\nimport { configs } from 'typescript-eslint';\n\nconst javascriptConfig = defineConfig({\n extends: [configs.disableTypeChecked],\n files: ['**/*.{cjs,mjs,js,jsx}'],\n});\n\nexport { javascriptConfig };\n","import jest from 'eslint-plugin-jest';\nimport { defineConfig } from 'eslint/config';\n\nconst jestConfig = defineConfig({\n files: ['**/*.test.{js,ts,jsx,tsx}'],\n ...jest.configs['flat/recommended'],\n});\n\nexport { jestConfig };\n","import perfectionistPlugin from 'eslint-plugin-perfectionist';\nimport { defineConfig } from 'eslint/config';\nimport { RuleConfig } from '@eslint/core';\n\nconst perfectionistOverrides = new Map<string, RuleConfig>([\n [\n 'sort-arrays',\n [\n 'error',\n {\n ignoreCase: false,\n order: 'asc',\n specialCharacters: 'trim',\n useConfigurationIf: {\n matchesAstSelector: 'TSAsExpression > ArrayExpression',\n },\n },\n ],\n ],\n [\n 'sort-exports',\n [\n 'error',\n {\n ignoreCase: false,\n order: 'asc',\n specialCharacters: 'trim',\n type: 'alphabetical',\n },\n ],\n ],\n [\n 'sort-imports',\n [\n 'error',\n {\n customGroups: [\n {\n elementNamePattern: '@tarsilla(/.*)?$',\n groupName: '@tarsilla',\n },\n ],\n groups: [\n 'type-import',\n 'value-builtin',\n 'value-external',\n '@tarsilla',\n 'value-internal',\n ['type-parent', 'type-sibling', 'type-index'],\n ['value-parent', 'value-sibling', 'value-index'],\n 'ts-equals-import',\n 'unknown',\n ],\n ignoreCase: false,\n newlinesBetween: 1,\n order: 'asc',\n specialCharacters: 'trim',\n tsconfig: {\n rootDir: '.',\n },\n type: 'alphabetical',\n },\n ],\n ],\n [\n 'sort-named-exports',\n [\n 'error',\n {\n ignoreCase: false,\n order: 'asc',\n specialCharacters: 'trim',\n type: 'alphabetical',\n },\n ],\n ],\n [\n 'sort-named-imports',\n [\n 'error',\n {\n ignoreCase: false,\n order: 'asc',\n specialCharacters: 'trim',\n type: 'alphabetical',\n },\n ],\n ],\n [\n 'sort-union-types',\n [\n 'error',\n {\n groups: [\n 'conditional',\n 'function',\n 'import',\n 'intersection',\n 'keyword',\n 'literal',\n 'named',\n 'object',\n 'operator',\n 'tuple',\n 'union',\n 'nullish',\n ],\n ignoreCase: false,\n order: 'asc',\n specialCharacters: 'trim',\n type: 'alphabetical',\n },\n ],\n ],\n]);\n\nconst perfectionist = defineConfig({\n plugins: {\n perfectionistPlugin,\n },\n rules: Object.fromEntries(\n Object.keys(perfectionistPlugin.rules ?? {}).map((rule) => {\n const override = perfectionistOverrides.get(rule);\n return [\n `perfectionist/${rule}`,\n override ?? [\n 'error',\n {\n ignoreCase: true,\n order: 'asc',\n specialCharacters: 'trim',\n type: 'alphabetical',\n },\n ],\n ];\n }),\n ),\n});\n\nexport { perfectionist };\n","import prettierRecommended from 'eslint-plugin-prettier/recommended';\nimport { defineConfig } from 'eslint/config';\n\nconst prettierConfig = defineConfig([\n prettierRecommended,\n {\n rules: {\n ...prettierRecommended.rules,\n 'prettier/prettier': [\n 'error',\n {\n jsxSingleQuote: true,\n printWidth: 120,\n semi: true,\n singleQuote: true,\n tabWidth: 2,\n trailingComma: 'all',\n },\n {\n fileInfoOptions: {\n withNodeModules: true,\n },\n usePrettierrc: false,\n },\n ],\n },\n },\n]);\n\nexport { prettierConfig };\n","import reactHooks from 'eslint-plugin-react-hooks';\nimport { defineConfig } from 'eslint/config';\n\nconst reactHooksConfig = defineConfig({\n files: ['**/*.{jsx,tsx}'],\n plugins: {\n 'react-hooks': reactHooks,\n },\n rules: {\n ...reactHooks.configs.recommended.rules,\n 'react/jsx-uses-react': 'off',\n 'react/react-in-jsx-scope': 'off',\n },\n});\n\nexport { reactHooksConfig };\n","import unusedImports from 'eslint-plugin-unused-imports';\nimport { defineConfig } from 'eslint/config';\n\nconst unusedImportsConfig = defineConfig({\n plugins: {\n 'unused-imports': unusedImports,\n },\n rules: {\n 'unused-imports/no-unused-imports': 'error',\n 'unused-imports/no-unused-vars': [\n 'error',\n {\n args: 'after-used',\n argsIgnorePattern: '^_',\n vars: 'all',\n varsIgnorePattern: '^_',\n },\n ],\n },\n settings: {\n 'import/resolver': {\n node: true,\n typescript: true,\n },\n },\n});\n\nexport { unusedImportsConfig };\n","import { defineConfig, globalIgnores } from 'eslint/config';\nimport globals from 'globals';\nimport nextPlugin from '@next/eslint-plugin-next';\n\nimport {\n allConfig,\n javascriptConfig,\n jestConfig,\n perfectionist,\n prettierConfig,\n reactHooksConfig,\n unusedImportsConfig,\n} from '../commons/index.js';\nimport { EslintOptions } from '../types/index.js';\n\nfunction eslintNextConfig({ ignores }: EslintOptions) {\n return defineConfig(\n globalIgnores(ignores),\n {\n languageOptions: {\n globals: {\n ...globals.browser,\n },\n },\n },\n ...allConfig,\n nextPlugin.configs['core-web-vitals'],\n ...reactHooksConfig,\n ...unusedImportsConfig,\n ...perfectionist,\n ...javascriptConfig,\n ...jestConfig,\n ...prettierConfig,\n );\n}\n\nexport { eslintNextConfig };\n"],"names":["allConfig","defineConfig","js","configs","recommended","strictTypeChecked","stylisticTypeChecked","languageOptions","globals","builtin","es2026","node","parserOptions","ecmaVersion","project","sourceType","tsconfigRootDir","rules","javascriptConfig","extends","disableTypeChecked","files","jestConfig","jest","perfectionistOverrides","Map","ignoreCase","order","specialCharacters","useConfigurationIf","matchesAstSelector","type","customGroups","elementNamePattern","groupName","groups","newlinesBetween","tsconfig","rootDir","perfectionist","plugins","perfectionistPlugin","Object","fromEntries","keys","map","rule","get","prettierConfig","prettierRecommended","jsxSingleQuote","printWidth","semi","singleQuote","tabWidth","trailingComma","fileInfoOptions","withNodeModules","usePrettierrc","reactHooksConfig","reactHooks","unusedImportsConfig","unusedImports","args","argsIgnorePattern","vars","varsIgnorePattern","settings","typescript","ignores","globalIgnores","browser","nextPlugin"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { TSESLint } from '@typescript-eslint/utils';
1
+ import * as eslint_config from 'eslint/config';
2
2
 
3
3
  type EslintOptions = {
4
4
  ignores: string[];
5
5
  };
6
6
 
7
- declare function eslintNextConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray;
7
+ declare function eslintNextConfig({ ignores }: EslintOptions): eslint_config.Config[];
8
8
 
9
9
  export { eslintNextConfig };