@tarsilla/eslint-config 0.0.60 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("@eslint/js"),r=require("eslint-plugin-import"),s=require("eslint-plugin-jest"),t=require("eslint-plugin-prettier/recommended"),i=require("eslint-plugin-unused-imports"),n=require("globals"),o=require("typescript-eslint"),a=require("eslint-plugin-react"),l=require("eslint-plugin-react-hooks");const p=n;const u=n;exports.eslintLibraryConfig=function({ignores:n}){return o.config(e.configs.recommended,r.flatConfigs.recommended,r.flatConfigs.typescript,...o.configs.recommended,{files:["**/*.{ts,tsx}"],extends:[...o.configs.recommendedTypeChecked],languageOptions:{parserOptions:{ecmaVersion:"latest",sourceType:"module",project:!0,tsconfigRootDir:"./"}},rules:{"@typescript-eslint/explicit-module-boundary-types":"error","@typescript-eslint/no-explicit-any":"error","@typescript-eslint/no-unused-vars":"off"}},{files:["**/*.test.{js,ts,jsx,tsx}"],...s.configs["flat/recommended"],languageOptions:{globals:{...p.jest}}},t,{ignores:n},{plugins:{"unused-imports":i},rules:{"prettier/prettier":["error",{semi:!0,trailingComma:"all",singleQuote:!0,printWidth:120,tabWidth:2},{usePrettierrc:!1,fileInfoOptions:{withNodeModules:!0}}],"no-unused-vars":"off","unused-imports/no-unused-imports":"error","unused-imports/no-unused-vars":["error",{vars:"all",varsIgnorePattern:"^_",args:"after-used",argsIgnorePattern:"^_"}],"sort-imports":["error",{ignoreCase:!0,ignoreDeclarationSort:!0,ignoreMemberSort:!1}],"import/order":["error",{groups:["builtin","external","internal",["parent","sibling"]],"newlines-between":"always",alphabetize:{order:"asc",caseInsensitive:!0}}]},settings:{"import/resolver":{typescript:!0,node:!0}}})},exports.eslintReactConfig=function({ignores:n}){return o.config(e.configs.recommended,r.flatConfigs.recommended,r.flatConfigs.typescript,...o.configs.recommended,{files:["**/*.{ts,tsx}"],extends:[...o.configs.recommendedTypeChecked],languageOptions:{parserOptions:{ecmaVersion:"latest",sourceType:"module",project:!0,tsconfigRootDir:"./"}},rules:{"@typescript-eslint/explicit-module-boundary-types":"error","@typescript-eslint/no-explicit-any":"error","@typescript-eslint/no-unused-vars":"off"}},{files:["**/*.{jsx,tsx}"],...a.configs.flat.recommended,...a.configs.flat["jsx-runtime"],languageOptions:{...a.configs.flat.recommended.languageOptions,globals:{...u.serviceworker,...Object.keys(u.browser).reduce(((e,r)=>(e[r.trim()]=u.browser[r],e)),{})}},plugins:{"react-hooks":l},rules:{...l.configs.recommended.rules,"react/react-in-jsx-scope":"off","react/jsx-uses-react":"off"}},{files:["**/*.test.{js,ts,jsx,tsx}"],...s.configs["flat/recommended"],languageOptions:{globals:{...u.jest}}},t,{ignores:n},{plugins:{"unused-imports":i},rules:{"prettier/prettier":["error",{semi:!0,trailingComma:"all",singleQuote:!0,jsxSingleQuote:!0,printWidth:120,tabWidth:2},{usePrettierrc:!1,fileInfoOptions:{withNodeModules:!0}}],"no-unused-vars":"off","unused-imports/no-unused-imports":"error","unused-imports/no-unused-vars":["error",{vars:"all",varsIgnorePattern:"^_",args:"after-used",argsIgnorePattern:"^_"}],"sort-imports":["error",{ignoreCase:!0,ignoreDeclarationSort:!0,ignoreMemberSort:!1}],"import/order":["error",{groups:["builtin","external","internal",["parent","sibling"]],pathGroups:[{pattern:"react",group:"external",position:"before"}],pathGroupsExcludedImportTypes:["react"],"newlines-between":"always",alphabetize:{order:"asc",caseInsensitive:!0}}]},settings:{"import/resolver":{typescript:!0,node:!0},react:{version:"detect"}}})};
1
+ "use strict";var e=require("@eslint/js"),r=require("eslint-plugin-import"),s=require("eslint-plugin-jest"),t=require("eslint-plugin-prettier/recommended"),n=require("eslint-plugin-unused-imports"),o=require("globals"),i=require("typescript-eslint"),a=require("path"),l=require("url"),p=require("@eslint/eslintrc"),u=require("eslint-plugin-react"),c=require("eslint-plugin-react-hooks"),d="undefined"!=typeof document?document.currentScript:null;const g=o;const f=l.fileURLToPath("undefined"==typeof document?require("url").pathToFileURL(__filename).href:d&&"SCRIPT"===d.tagName.toUpperCase()&&d.src||new URL("index.cjs",document.baseURI).href),m=a.dirname(f),x=new p.FlatCompat({baseDirectory:m}),b=o;const y=o;exports.eslintLibraryConfig=function({ignores:o}){return i.config(e.configs.recommended,r.flatConfigs.recommended,{files:["**/*.{js,mjs}"],extends:[i.configs.base]},{files:["**/*.ts"],extends:[r.flatConfigs.typescript,...i.configs.recommended,...i.configs.recommendedTypeChecked],languageOptions:{parserOptions:{ecmaVersion:"latest",sourceType:"module",project:!0,tsconfigRootDir:"./"}},rules:{"@typescript-eslint/explicit-module-boundary-types":"error","@typescript-eslint/no-explicit-any":"error","@typescript-eslint/no-unused-vars":"off"}},{files:["**/*.test.{js,ts}"],...s.configs["flat/recommended"],languageOptions:{globals:{...g.jest}}},t,{ignores:o},{plugins:{"unused-imports":n},rules:{"prettier/prettier":["error",{semi:!0,trailingComma:"all",singleQuote:!0,printWidth:120,tabWidth:2},{usePrettierrc:!1,fileInfoOptions:{withNodeModules:!0}}],"no-unused-vars":"off","unused-imports/no-unused-imports":"error","unused-imports/no-unused-vars":["error",{vars:"all",varsIgnorePattern:"^_",args:"after-used",argsIgnorePattern:"^_"}],"sort-imports":["error",{ignoreCase:!0,ignoreDeclarationSort:!0,ignoreMemberSort:!1}],"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}}})},exports.eslintNextConfig=function({ignores:r}){return i.config(e.configs.recommended,...x.config({extends:["next/core-web-vitals"],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}}]}}),{files:["**/*.{js,jsx,mjs}"],extends:[i.configs.base]},{files:["**/*.{ts,tsx}"],extends:[...i.configs.recommended,...i.configs.recommendedTypeChecked],languageOptions:{parserOptions:{ecmaVersion:"latest",sourceType:"module",project:!0,tsconfigRootDir:"./"}},rules:{"@typescript-eslint/explicit-module-boundary-types":"error","@typescript-eslint/no-explicit-any":"error","@typescript-eslint/no-unused-vars":"off"}},{files:["**/*.{jsx,tsx}"],...u.configs.flat.recommended,...u.configs.flat["jsx-runtime"],languageOptions:{...u.configs.flat.recommended.languageOptions,globals:{...b.serviceworker,...Object.keys(b.browser).reduce(((e,r)=>(e[r.trim()]=b.browser[r],e)),{})}},plugins:{"react-hooks":c},rules:{...c.configs.recommended.rules,"react/react-in-jsx-scope":"off","react/jsx-uses-react":"off"}},{files:["**/*.test.{js,ts,jsx,tsx}"],...s.configs["flat/recommended"],languageOptions:{globals:{...b.jest}}},t,{ignores:r},{plugins:{"unused-imports":n},rules:{"prettier/prettier":["error",{semi:!0,trailingComma:"all",singleQuote:!0,jsxSingleQuote:!0,printWidth:120,tabWidth:2},{usePrettierrc:!1,fileInfoOptions:{withNodeModules:!0}}],"no-unused-vars":"off","unused-imports/no-unused-imports":"error","unused-imports/no-unused-vars":["error",{vars:"all",varsIgnorePattern:"^_",args:"after-used",argsIgnorePattern:"^_"}],"sort-imports":["error",{ignoreCase:!0,ignoreDeclarationSort:!0,ignoreMemberSort:!1}]}})},exports.eslintReactConfig=function({ignores:o}){return i.config(e.configs.recommended,r.flatConfigs.recommended,{files:["**/*.{js,jsx,mjs}"],extends:[i.configs.base]},{files:["**/*.{ts,tsx}"],extends:[r.flatConfigs.typescript,...i.configs.recommended,...i.configs.recommendedTypeChecked],languageOptions:{parserOptions:{ecmaVersion:"latest",sourceType:"module",project:!0,tsconfigRootDir:"./"}},rules:{"@typescript-eslint/explicit-module-boundary-types":"error","@typescript-eslint/no-explicit-any":"error","@typescript-eslint/no-unused-vars":"off"}},{files:["**/*.{jsx,tsx}"],...u.configs.flat.recommended,...u.configs.flat["jsx-runtime"],languageOptions:{...u.configs.flat.recommended.languageOptions,globals:{...y.serviceworker,...Object.keys(y.browser).reduce(((e,r)=>(e[r.trim()]=y.browser[r],e)),{})}},plugins:{"react-hooks":c},rules:{...c.configs.recommended.rules,"react/react-in-jsx-scope":"off","react/jsx-uses-react":"off"}},{files:["**/*.test.{js,ts,jsx,tsx}"],...s.configs["flat/recommended"],languageOptions:{globals:{...y.jest}}},t,{ignores:o},{plugins:{"unused-imports":n},rules:{"prettier/prettier":["error",{semi:!0,trailingComma:"all",singleQuote:!0,jsxSingleQuote:!0,printWidth:120,tabWidth:2},{usePrettierrc:!1,fileInfoOptions:{withNodeModules:!0}}],"no-unused-vars":"off","unused-imports/no-unused-imports":"error","unused-imports/no-unused-vars":["error",{vars:"all",varsIgnorePattern:"^_",args:"after-used",argsIgnorePattern:"^_"}],"sort-imports":["error",{ignoreCase:!0,ignoreDeclarationSort:!0,ignoreMemberSort:!1}],"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},react:{version:"detect"}}})};
2
2
  //# sourceMappingURL=index.cjs.map
package/lib/index.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/library/eslintLibraryConfig.ts","../src/react/eslintReactConfig.ts"],"sourcesContent":["import js from '@eslint/js';\nimport type { TSESLint } from '@typescript-eslint/utils';\nimport imports from 'eslint-plugin-import';\nimport jest from 'eslint-plugin-jest';\nimport prettierRecommended from 'eslint-plugin-prettier/recommended';\nimport unusedImports from 'eslint-plugin-unused-imports';\nimport globalsImp from 'globals';\nimport { config, configs } from 'typescript-eslint';\n\nimport { EslintOptions } from '../types/index.js';\n\nconst globals = globalsImp as Record<string, Record<string, boolean>>;\n\nfunction eslintLibraryConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray {\n return config(\n js.configs.recommended,\n imports.flatConfigs.recommended,\n imports.flatConfigs.typescript,\n ...configs.recommended,\n {\n files: ['**/*.{ts,tsx}'],\n extends: [...configs.recommendedTypeChecked],\n languageOptions: {\n parserOptions: {\n ecmaVersion: 'latest',\n sourceType: 'module',\n project: true,\n tsconfigRootDir: './',\n },\n },\n rules: {\n '@typescript-eslint/explicit-module-boundary-types': 'error',\n '@typescript-eslint/no-explicit-any': 'error',\n '@typescript-eslint/no-unused-vars': 'off',\n },\n },\n {\n files: ['**/*.test.{js,ts,jsx,tsx}'],\n ...jest.configs['flat/recommended'],\n languageOptions: {\n globals: {\n ...globals.jest,\n //...globals.vitest,\n },\n },\n },\n prettierRecommended,\n {\n ignores,\n },\n {\n plugins: {\n 'unused-imports': unusedImports,\n },\n rules: {\n 'prettier/prettier': [\n 'error',\n {\n semi: true,\n trailingComma: 'all',\n singleQuote: true,\n printWidth: 120,\n tabWidth: 2,\n },\n {\n usePrettierrc: false,\n fileInfoOptions: {\n withNodeModules: true,\n },\n },\n ],\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 'sort-imports': [\n 'error',\n {\n ignoreCase: true,\n ignoreDeclarationSort: true,\n ignoreMemberSort: false,\n },\n ],\n 'import/order': [\n 'error',\n {\n groups: ['builtin', 'external', 'internal', ['parent', 'sibling']],\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}\n\nexport { eslintLibraryConfig };\n","import js from '@eslint/js';\nimport type { TSESLint } from '@typescript-eslint/utils';\nimport imports from 'eslint-plugin-import';\nimport jest from 'eslint-plugin-jest';\nimport prettierRecommended from 'eslint-plugin-prettier/recommended';\nimport reactPlugin from 'eslint-plugin-react';\nimport reactHooks from 'eslint-plugin-react-hooks';\nimport unusedImports from 'eslint-plugin-unused-imports';\nimport globalsImp from 'globals';\nimport { config, configs } from 'typescript-eslint';\n\nimport { EslintOptions } from '../types/index.js';\n\nconst globals = globalsImp as Record<string, Record<string, boolean>>;\n\nfunction eslintReactConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray {\n return config(\n js.configs.recommended,\n imports.flatConfigs.recommended,\n imports.flatConfigs.typescript,\n ...configs.recommended,\n {\n files: ['**/*.{ts,tsx}'],\n extends: [...configs.recommendedTypeChecked],\n languageOptions: {\n parserOptions: {\n ecmaVersion: 'latest',\n sourceType: 'module',\n project: true,\n tsconfigRootDir: './',\n },\n },\n rules: {\n '@typescript-eslint/explicit-module-boundary-types': 'error',\n '@typescript-eslint/no-explicit-any': 'error',\n '@typescript-eslint/no-unused-vars': 'off',\n },\n },\n {\n files: ['**/*.{jsx,tsx}'],\n ...reactPlugin.configs.flat.recommended,\n ...reactPlugin.configs.flat['jsx-runtime'],\n languageOptions: {\n ...reactPlugin.configs.flat.recommended.languageOptions,\n globals: {\n ...globals.serviceworker,\n ...Object.keys(globals.browser).reduce<Record<string, boolean>>((acc, key) => {\n acc[key.trim()] = globals.browser[key];\n return acc;\n }, {}),\n },\n },\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 {\n files: ['**/*.test.{js,ts,jsx,tsx}'],\n ...jest.configs['flat/recommended'],\n languageOptions: {\n globals: {\n ...globals.jest,\n //...globals.vitest,\n },\n },\n },\n prettierRecommended,\n {\n ignores,\n },\n {\n plugins: {\n 'unused-imports': unusedImports,\n },\n 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 '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 'sort-imports': [\n 'error',\n {\n ignoreCase: true,\n ignoreDeclarationSort: true,\n ignoreMemberSort: false,\n },\n ],\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 pathGroupsExcludedImportTypes: ['react'],\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 react: {\n version: 'detect',\n },\n },\n },\n );\n}\n\nexport { eslintReactConfig };\n"],"names":["globals","globalsImp","ignores","config","js","configs","recommended","imports","flatConfigs","typescript","files","extends","recommendedTypeChecked","languageOptions","parserOptions","ecmaVersion","sourceType","project","tsconfigRootDir","rules","jest","prettierRecommended","plugins","unusedImports","semi","trailingComma","singleQuote","printWidth","tabWidth","usePrettierrc","fileInfoOptions","withNodeModules","vars","varsIgnorePattern","args","argsIgnorePattern","ignoreCase","ignoreDeclarationSort","ignoreMemberSort","groups","alphabetize","order","caseInsensitive","settings","node","reactPlugin","flat","serviceworker","Object","keys","browser","reduce","acc","key","trim","reactHooks","jsxSingleQuote","pathGroups","pattern","group","position","pathGroupsExcludedImportTypes","react","version"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../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 imports from 'eslint-plugin-import';\nimport jest from 'eslint-plugin-jest';\nimport prettierRecommended from 'eslint-plugin-prettier/recommended';\nimport unusedImports from 'eslint-plugin-unused-imports';\nimport globalsImp from 'globals';\nimport { config, configs } from 'typescript-eslint';\n\nimport { EslintOptions } from '../types/index.js';\n\nconst globals = globalsImp as Record<string, Record<string, boolean>>;\n\nfunction eslintLibraryConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray {\n return config(\n js.configs.recommended,\n imports.flatConfigs.recommended,\n {\n files: ['**/*.{js,mjs}'],\n extends: [configs.base],\n },\n {\n files: ['**/*.ts'],\n extends: [imports.flatConfigs.typescript, ...configs.recommended, ...configs.recommendedTypeChecked],\n languageOptions: {\n parserOptions: {\n ecmaVersion: 'latest',\n sourceType: 'module',\n project: true,\n tsconfigRootDir: './',\n },\n },\n rules: {\n '@typescript-eslint/explicit-module-boundary-types': 'error',\n '@typescript-eslint/no-explicit-any': 'error',\n '@typescript-eslint/no-unused-vars': 'off',\n },\n },\n {\n files: ['**/*.test.{js,ts}'],\n ...jest.configs['flat/recommended'],\n languageOptions: {\n globals: {\n ...globals.jest,\n },\n },\n },\n prettierRecommended,\n {\n ignores,\n },\n {\n plugins: {\n 'unused-imports': unusedImports,\n },\n rules: {\n 'prettier/prettier': [\n 'error',\n {\n semi: true,\n trailingComma: 'all',\n singleQuote: true,\n printWidth: 120,\n tabWidth: 2,\n },\n {\n usePrettierrc: false,\n fileInfoOptions: {\n withNodeModules: true,\n },\n },\n ],\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 'sort-imports': [\n 'error',\n {\n ignoreCase: true,\n ignoreDeclarationSort: true,\n ignoreMemberSort: false,\n },\n ],\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}\n\nexport { eslintLibraryConfig };\n","import { dirname } from 'path';\nimport { fileURLToPath } from 'url';\n\nimport { FlatCompat } from '@eslint/eslintrc';\nimport js from '@eslint/js';\nimport type { TSESLint } from '@typescript-eslint/utils';\nimport jest from 'eslint-plugin-jest';\nimport prettierRecommended from 'eslint-plugin-prettier/recommended';\nimport reactPlugin from 'eslint-plugin-react';\nimport reactHooks from 'eslint-plugin-react-hooks';\nimport unusedImports from 'eslint-plugin-unused-imports';\nimport globalsImp from 'globals';\nimport { config, configs } from 'typescript-eslint';\n\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\nconst globals = globalsImp as Record<string, Record<string, boolean>>;\n\nfunction eslintNextConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray {\n return config(\n js.configs.recommended,\n ...compat.config({\n extends: ['next/core-web-vitals'],\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 {\n files: ['**/*.{js,jsx,mjs}'],\n extends: [configs.base],\n },\n {\n files: ['**/*.{ts,tsx}'],\n extends: [...configs.recommended, ...configs.recommendedTypeChecked],\n languageOptions: {\n parserOptions: {\n ecmaVersion: 'latest',\n sourceType: 'module',\n project: true,\n tsconfigRootDir: './',\n },\n },\n rules: {\n '@typescript-eslint/explicit-module-boundary-types': 'error',\n '@typescript-eslint/no-explicit-any': 'error',\n '@typescript-eslint/no-unused-vars': 'off',\n },\n },\n {\n files: ['**/*.{jsx,tsx}'],\n ...reactPlugin.configs.flat.recommended,\n ...reactPlugin.configs.flat['jsx-runtime'],\n languageOptions: {\n ...reactPlugin.configs.flat.recommended.languageOptions,\n globals: {\n ...globals.serviceworker,\n ...Object.keys(globals.browser).reduce<Record<string, boolean>>((acc, key) => {\n acc[key.trim()] = globals.browser[key];\n return acc;\n }, {}),\n },\n },\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 {\n files: ['**/*.test.{js,ts,jsx,tsx}'],\n ...jest.configs['flat/recommended'],\n languageOptions: {\n globals: {\n ...globals.jest,\n //...globals.vitest,\n },\n },\n },\n prettierRecommended,\n {\n ignores,\n },\n {\n plugins: {\n 'unused-imports': unusedImports,\n },\n 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 '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 'sort-imports': [\n 'error',\n {\n ignoreCase: true,\n ignoreDeclarationSort: true,\n ignoreMemberSort: false,\n },\n ],\n },\n },\n );\n}\n\nexport { eslintNextConfig };\n","import js from '@eslint/js';\nimport type { TSESLint } from '@typescript-eslint/utils';\nimport imports from 'eslint-plugin-import';\nimport jest from 'eslint-plugin-jest';\nimport prettierRecommended from 'eslint-plugin-prettier/recommended';\nimport reactPlugin from 'eslint-plugin-react';\nimport reactHooks from 'eslint-plugin-react-hooks';\nimport unusedImports from 'eslint-plugin-unused-imports';\nimport globalsImp from 'globals';\nimport { config, configs } from 'typescript-eslint';\n\nimport { EslintOptions } from '../types/index.js';\n\nconst globals = globalsImp as Record<string, Record<string, boolean>>;\n\nfunction eslintReactConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray {\n return config(\n js.configs.recommended,\n imports.flatConfigs.recommended,\n {\n files: ['**/*.{js,jsx,mjs}'],\n extends: [configs.base],\n },\n {\n files: ['**/*.{ts,tsx}'],\n extends: [imports.flatConfigs.typescript, ...configs.recommended, ...configs.recommendedTypeChecked],\n languageOptions: {\n parserOptions: {\n ecmaVersion: 'latest',\n sourceType: 'module',\n project: true,\n tsconfigRootDir: './',\n },\n },\n rules: {\n '@typescript-eslint/explicit-module-boundary-types': 'error',\n '@typescript-eslint/no-explicit-any': 'error',\n '@typescript-eslint/no-unused-vars': 'off',\n },\n },\n {\n files: ['**/*.{jsx,tsx}'],\n ...reactPlugin.configs.flat.recommended,\n ...reactPlugin.configs.flat['jsx-runtime'],\n languageOptions: {\n ...reactPlugin.configs.flat.recommended.languageOptions,\n globals: {\n ...globals.serviceworker,\n ...Object.keys(globals.browser).reduce<Record<string, boolean>>((acc, key) => {\n acc[key.trim()] = globals.browser[key];\n return acc;\n }, {}),\n },\n },\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 {\n files: ['**/*.test.{js,ts,jsx,tsx}'],\n ...jest.configs['flat/recommended'],\n languageOptions: {\n globals: {\n ...globals.jest,\n //...globals.vitest,\n },\n },\n },\n prettierRecommended,\n {\n ignores,\n },\n {\n plugins: {\n 'unused-imports': unusedImports,\n },\n 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 '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 'sort-imports': [\n 'error',\n {\n ignoreCase: true,\n ignoreDeclarationSort: true,\n ignoreMemberSort: false,\n },\n ],\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 react: {\n version: 'detect',\n },\n },\n },\n );\n}\n\nexport { eslintReactConfig };\n"],"names":["globals","globalsImp","__filename","fileURLToPath","__dirname","dirname","compat","FlatCompat","baseDirectory","ignores","config","js","configs","recommended","imports","flatConfigs","files","extends","base","typescript","recommendedTypeChecked","languageOptions","parserOptions","ecmaVersion","sourceType","project","tsconfigRootDir","rules","jest","prettierRecommended","plugins","unusedImports","semi","trailingComma","singleQuote","printWidth","tabWidth","usePrettierrc","fileInfoOptions","withNodeModules","vars","varsIgnorePattern","args","argsIgnorePattern","ignoreCase","ignoreDeclarationSort","ignoreMemberSort","groups","pathGroups","pattern","group","position","pathGroupsExcludedImportTypes","alphabetize","order","caseInsensitive","settings","node","reactPlugin","flat","serviceworker","Object","keys","browser","reduce","acc","key","trim","reactHooks","jsxSingleQuote","react","version"],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -6,6 +6,8 @@ type EslintOptions = {
6
6
 
7
7
  declare function eslintLibraryConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray;
8
8
 
9
+ declare function eslintNextConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray;
10
+
9
11
  declare function eslintReactConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray;
10
12
 
11
- export { type EslintOptions, eslintLibraryConfig, eslintReactConfig };
13
+ export { type EslintOptions, eslintLibraryConfig, eslintNextConfig, eslintReactConfig };
package/lib/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import e from"@eslint/js";import r from"eslint-plugin-import";import t from"eslint-plugin-jest";import s from"eslint-plugin-prettier/recommended";import o from"eslint-plugin-unused-imports";import n from"globals";import{config as i,configs as l}from"typescript-eslint";import p from"eslint-plugin-react";import a from"eslint-plugin-react-hooks";const u=n;function m({ignores:n}){return i(e.configs.recommended,r.flatConfigs.recommended,r.flatConfigs.typescript,...l.recommended,{files:["**/*.{ts,tsx}"],extends:[...l.recommendedTypeChecked],languageOptions:{parserOptions:{ecmaVersion:"latest",sourceType:"module",project:!0,tsconfigRootDir:"./"}},rules:{"@typescript-eslint/explicit-module-boundary-types":"error","@typescript-eslint/no-explicit-any":"error","@typescript-eslint/no-unused-vars":"off"}},{files:["**/*.test.{js,ts,jsx,tsx}"],...t.configs["flat/recommended"],languageOptions:{globals:{...u.jest}}},s,{ignores:n},{plugins:{"unused-imports":o},rules:{"prettier/prettier":["error",{semi:!0,trailingComma:"all",singleQuote:!0,printWidth:120,tabWidth:2},{usePrettierrc:!1,fileInfoOptions:{withNodeModules:!0}}],"no-unused-vars":"off","unused-imports/no-unused-imports":"error","unused-imports/no-unused-vars":["error",{vars:"all",varsIgnorePattern:"^_",args:"after-used",argsIgnorePattern:"^_"}],"sort-imports":["error",{ignoreCase:!0,ignoreDeclarationSort:!0,ignoreMemberSort:!1}],"import/order":["error",{groups:["builtin","external","internal",["parent","sibling"]],"newlines-between":"always",alphabetize:{order:"asc",caseInsensitive:!0}}]},settings:{"import/resolver":{typescript:!0,node:!0}}})}const c=n;function d({ignores:n}){return i(e.configs.recommended,r.flatConfigs.recommended,r.flatConfigs.typescript,...l.recommended,{files:["**/*.{ts,tsx}"],extends:[...l.recommendedTypeChecked],languageOptions:{parserOptions:{ecmaVersion:"latest",sourceType:"module",project:!0,tsconfigRootDir:"./"}},rules:{"@typescript-eslint/explicit-module-boundary-types":"error","@typescript-eslint/no-explicit-any":"error","@typescript-eslint/no-unused-vars":"off"}},{files:["**/*.{jsx,tsx}"],...p.configs.flat.recommended,...p.configs.flat["jsx-runtime"],languageOptions:{...p.configs.flat.recommended.languageOptions,globals:{...c.serviceworker,...Object.keys(c.browser).reduce(((e,r)=>(e[r.trim()]=c.browser[r],e)),{})}},plugins:{"react-hooks":a},rules:{...a.configs.recommended.rules,"react/react-in-jsx-scope":"off","react/jsx-uses-react":"off"}},{files:["**/*.test.{js,ts,jsx,tsx}"],...t.configs["flat/recommended"],languageOptions:{globals:{...c.jest}}},s,{ignores:n},{plugins:{"unused-imports":o},rules:{"prettier/prettier":["error",{semi:!0,trailingComma:"all",singleQuote:!0,jsxSingleQuote:!0,printWidth:120,tabWidth:2},{usePrettierrc:!1,fileInfoOptions:{withNodeModules:!0}}],"no-unused-vars":"off","unused-imports/no-unused-imports":"error","unused-imports/no-unused-vars":["error",{vars:"all",varsIgnorePattern:"^_",args:"after-used",argsIgnorePattern:"^_"}],"sort-imports":["error",{ignoreCase:!0,ignoreDeclarationSort:!0,ignoreMemberSort:!1}],"import/order":["error",{groups:["builtin","external","internal",["parent","sibling"]],pathGroups:[{pattern:"react",group:"external",position:"before"}],pathGroupsExcludedImportTypes:["react"],"newlines-between":"always",alphabetize:{order:"asc",caseInsensitive:!0}}]},settings:{"import/resolver":{typescript:!0,node:!0},react:{version:"detect"}}})}export{m as eslintLibraryConfig,d as eslintReactConfig};
1
+ import e from"@eslint/js";import r from"eslint-plugin-import";import t from"eslint-plugin-jest";import s from"eslint-plugin-prettier/recommended";import o from"eslint-plugin-unused-imports";import n from"globals";import{config as i,configs as a}from"typescript-eslint";import{dirname as l}from"path";import{fileURLToPath as p}from"url";import{FlatCompat as u}from"@eslint/eslintrc";import c from"eslint-plugin-react";import m from"eslint-plugin-react-hooks";const d=n;function g({ignores:n}){return i(e.configs.recommended,r.flatConfigs.recommended,{files:["**/*.{js,mjs}"],extends:[a.base]},{files:["**/*.ts"],extends:[r.flatConfigs.typescript,...a.recommended,...a.recommendedTypeChecked],languageOptions:{parserOptions:{ecmaVersion:"latest",sourceType:"module",project:!0,tsconfigRootDir:"./"}},rules:{"@typescript-eslint/explicit-module-boundary-types":"error","@typescript-eslint/no-explicit-any":"error","@typescript-eslint/no-unused-vars":"off"}},{files:["**/*.test.{js,ts}"],...t.configs["flat/recommended"],languageOptions:{globals:{...d.jest}}},s,{ignores:n},{plugins:{"unused-imports":o},rules:{"prettier/prettier":["error",{semi:!0,trailingComma:"all",singleQuote:!0,printWidth:120,tabWidth:2},{usePrettierrc:!1,fileInfoOptions:{withNodeModules:!0}}],"no-unused-vars":"off","unused-imports/no-unused-imports":"error","unused-imports/no-unused-vars":["error",{vars:"all",varsIgnorePattern:"^_",args:"after-used",argsIgnorePattern:"^_"}],"sort-imports":["error",{ignoreCase:!0,ignoreDeclarationSort:!0,ignoreMemberSort:!1}],"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=new u({baseDirectory:l(p(import.meta.url))}),b=n;function x({ignores:r}){return i(e.configs.recommended,...f.config({extends:["next/core-web-vitals"],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}}]}}),{files:["**/*.{js,jsx,mjs}"],extends:[a.base]},{files:["**/*.{ts,tsx}"],extends:[...a.recommended,...a.recommendedTypeChecked],languageOptions:{parserOptions:{ecmaVersion:"latest",sourceType:"module",project:!0,tsconfigRootDir:"./"}},rules:{"@typescript-eslint/explicit-module-boundary-types":"error","@typescript-eslint/no-explicit-any":"error","@typescript-eslint/no-unused-vars":"off"}},{files:["**/*.{jsx,tsx}"],...c.configs.flat.recommended,...c.configs.flat["jsx-runtime"],languageOptions:{...c.configs.flat.recommended.languageOptions,globals:{...b.serviceworker,...Object.keys(b.browser).reduce(((e,r)=>(e[r.trim()]=b.browser[r],e)),{})}},plugins:{"react-hooks":m},rules:{...m.configs.recommended.rules,"react/react-in-jsx-scope":"off","react/jsx-uses-react":"off"}},{files:["**/*.test.{js,ts,jsx,tsx}"],...t.configs["flat/recommended"],languageOptions:{globals:{...b.jest}}},s,{ignores:r},{plugins:{"unused-imports":o},rules:{"prettier/prettier":["error",{semi:!0,trailingComma:"all",singleQuote:!0,jsxSingleQuote:!0,printWidth:120,tabWidth:2},{usePrettierrc:!1,fileInfoOptions:{withNodeModules:!0}}],"no-unused-vars":"off","unused-imports/no-unused-imports":"error","unused-imports/no-unused-vars":["error",{vars:"all",varsIgnorePattern:"^_",args:"after-used",argsIgnorePattern:"^_"}],"sort-imports":["error",{ignoreCase:!0,ignoreDeclarationSort:!0,ignoreMemberSort:!1}]}})}const y=n;function j({ignores:n}){return i(e.configs.recommended,r.flatConfigs.recommended,{files:["**/*.{js,jsx,mjs}"],extends:[a.base]},{files:["**/*.{ts,tsx}"],extends:[r.flatConfigs.typescript,...a.recommended,...a.recommendedTypeChecked],languageOptions:{parserOptions:{ecmaVersion:"latest",sourceType:"module",project:!0,tsconfigRootDir:"./"}},rules:{"@typescript-eslint/explicit-module-boundary-types":"error","@typescript-eslint/no-explicit-any":"error","@typescript-eslint/no-unused-vars":"off"}},{files:["**/*.{jsx,tsx}"],...c.configs.flat.recommended,...c.configs.flat["jsx-runtime"],languageOptions:{...c.configs.flat.recommended.languageOptions,globals:{...y.serviceworker,...Object.keys(y.browser).reduce(((e,r)=>(e[r.trim()]=y.browser[r],e)),{})}},plugins:{"react-hooks":m},rules:{...m.configs.recommended.rules,"react/react-in-jsx-scope":"off","react/jsx-uses-react":"off"}},{files:["**/*.test.{js,ts,jsx,tsx}"],...t.configs["flat/recommended"],languageOptions:{globals:{...y.jest}}},s,{ignores:n},{plugins:{"unused-imports":o},rules:{"prettier/prettier":["error",{semi:!0,trailingComma:"all",singleQuote:!0,jsxSingleQuote:!0,printWidth:120,tabWidth:2},{usePrettierrc:!1,fileInfoOptions:{withNodeModules:!0}}],"no-unused-vars":"off","unused-imports/no-unused-imports":"error","unused-imports/no-unused-vars":["error",{vars:"all",varsIgnorePattern:"^_",args:"after-used",argsIgnorePattern:"^_"}],"sort-imports":["error",{ignoreCase:!0,ignoreDeclarationSort:!0,ignoreMemberSort:!1}],"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},react:{version:"detect"}}})}export{g as eslintLibraryConfig,x as eslintNextConfig,j as eslintReactConfig};
2
2
  //# sourceMappingURL=index.mjs.map
package/lib/index.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/library/eslintLibraryConfig.ts","../src/react/eslintReactConfig.ts"],"sourcesContent":["import js from '@eslint/js';\nimport type { TSESLint } from '@typescript-eslint/utils';\nimport imports from 'eslint-plugin-import';\nimport jest from 'eslint-plugin-jest';\nimport prettierRecommended from 'eslint-plugin-prettier/recommended';\nimport unusedImports from 'eslint-plugin-unused-imports';\nimport globalsImp from 'globals';\nimport { config, configs } from 'typescript-eslint';\n\nimport { EslintOptions } from '../types/index.js';\n\nconst globals = globalsImp as Record<string, Record<string, boolean>>;\n\nfunction eslintLibraryConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray {\n return config(\n js.configs.recommended,\n imports.flatConfigs.recommended,\n imports.flatConfigs.typescript,\n ...configs.recommended,\n {\n files: ['**/*.{ts,tsx}'],\n extends: [...configs.recommendedTypeChecked],\n languageOptions: {\n parserOptions: {\n ecmaVersion: 'latest',\n sourceType: 'module',\n project: true,\n tsconfigRootDir: './',\n },\n },\n rules: {\n '@typescript-eslint/explicit-module-boundary-types': 'error',\n '@typescript-eslint/no-explicit-any': 'error',\n '@typescript-eslint/no-unused-vars': 'off',\n },\n },\n {\n files: ['**/*.test.{js,ts,jsx,tsx}'],\n ...jest.configs['flat/recommended'],\n languageOptions: {\n globals: {\n ...globals.jest,\n //...globals.vitest,\n },\n },\n },\n prettierRecommended,\n {\n ignores,\n },\n {\n plugins: {\n 'unused-imports': unusedImports,\n },\n rules: {\n 'prettier/prettier': [\n 'error',\n {\n semi: true,\n trailingComma: 'all',\n singleQuote: true,\n printWidth: 120,\n tabWidth: 2,\n },\n {\n usePrettierrc: false,\n fileInfoOptions: {\n withNodeModules: true,\n },\n },\n ],\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 'sort-imports': [\n 'error',\n {\n ignoreCase: true,\n ignoreDeclarationSort: true,\n ignoreMemberSort: false,\n },\n ],\n 'import/order': [\n 'error',\n {\n groups: ['builtin', 'external', 'internal', ['parent', 'sibling']],\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}\n\nexport { eslintLibraryConfig };\n","import js from '@eslint/js';\nimport type { TSESLint } from '@typescript-eslint/utils';\nimport imports from 'eslint-plugin-import';\nimport jest from 'eslint-plugin-jest';\nimport prettierRecommended from 'eslint-plugin-prettier/recommended';\nimport reactPlugin from 'eslint-plugin-react';\nimport reactHooks from 'eslint-plugin-react-hooks';\nimport unusedImports from 'eslint-plugin-unused-imports';\nimport globalsImp from 'globals';\nimport { config, configs } from 'typescript-eslint';\n\nimport { EslintOptions } from '../types/index.js';\n\nconst globals = globalsImp as Record<string, Record<string, boolean>>;\n\nfunction eslintReactConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray {\n return config(\n js.configs.recommended,\n imports.flatConfigs.recommended,\n imports.flatConfigs.typescript,\n ...configs.recommended,\n {\n files: ['**/*.{ts,tsx}'],\n extends: [...configs.recommendedTypeChecked],\n languageOptions: {\n parserOptions: {\n ecmaVersion: 'latest',\n sourceType: 'module',\n project: true,\n tsconfigRootDir: './',\n },\n },\n rules: {\n '@typescript-eslint/explicit-module-boundary-types': 'error',\n '@typescript-eslint/no-explicit-any': 'error',\n '@typescript-eslint/no-unused-vars': 'off',\n },\n },\n {\n files: ['**/*.{jsx,tsx}'],\n ...reactPlugin.configs.flat.recommended,\n ...reactPlugin.configs.flat['jsx-runtime'],\n languageOptions: {\n ...reactPlugin.configs.flat.recommended.languageOptions,\n globals: {\n ...globals.serviceworker,\n ...Object.keys(globals.browser).reduce<Record<string, boolean>>((acc, key) => {\n acc[key.trim()] = globals.browser[key];\n return acc;\n }, {}),\n },\n },\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 {\n files: ['**/*.test.{js,ts,jsx,tsx}'],\n ...jest.configs['flat/recommended'],\n languageOptions: {\n globals: {\n ...globals.jest,\n //...globals.vitest,\n },\n },\n },\n prettierRecommended,\n {\n ignores,\n },\n {\n plugins: {\n 'unused-imports': unusedImports,\n },\n 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 '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 'sort-imports': [\n 'error',\n {\n ignoreCase: true,\n ignoreDeclarationSort: true,\n ignoreMemberSort: false,\n },\n ],\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 pathGroupsExcludedImportTypes: ['react'],\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 react: {\n version: 'detect',\n },\n },\n },\n );\n}\n\nexport { eslintReactConfig };\n"],"names":["globals","globalsImp","eslintLibraryConfig","ignores","config","js","configs","recommended","imports","flatConfigs","typescript","files","extends","recommendedTypeChecked","languageOptions","parserOptions","ecmaVersion","sourceType","project","tsconfigRootDir","rules","jest","prettierRecommended","plugins","unusedImports","semi","trailingComma","singleQuote","printWidth","tabWidth","usePrettierrc","fileInfoOptions","withNodeModules","vars","varsIgnorePattern","args","argsIgnorePattern","ignoreCase","ignoreDeclarationSort","ignoreMemberSort","groups","alphabetize","order","caseInsensitive","settings","node","eslintReactConfig","reactPlugin","flat","serviceworker","Object","keys","browser","reduce","acc","key","trim","reactHooks","jsxSingleQuote","pathGroups","pattern","group","position","pathGroupsExcludedImportTypes","react","version"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../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 imports from 'eslint-plugin-import';\nimport jest from 'eslint-plugin-jest';\nimport prettierRecommended from 'eslint-plugin-prettier/recommended';\nimport unusedImports from 'eslint-plugin-unused-imports';\nimport globalsImp from 'globals';\nimport { config, configs } from 'typescript-eslint';\n\nimport { EslintOptions } from '../types/index.js';\n\nconst globals = globalsImp as Record<string, Record<string, boolean>>;\n\nfunction eslintLibraryConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray {\n return config(\n js.configs.recommended,\n imports.flatConfigs.recommended,\n {\n files: ['**/*.{js,mjs}'],\n extends: [configs.base],\n },\n {\n files: ['**/*.ts'],\n extends: [imports.flatConfigs.typescript, ...configs.recommended, ...configs.recommendedTypeChecked],\n languageOptions: {\n parserOptions: {\n ecmaVersion: 'latest',\n sourceType: 'module',\n project: true,\n tsconfigRootDir: './',\n },\n },\n rules: {\n '@typescript-eslint/explicit-module-boundary-types': 'error',\n '@typescript-eslint/no-explicit-any': 'error',\n '@typescript-eslint/no-unused-vars': 'off',\n },\n },\n {\n files: ['**/*.test.{js,ts}'],\n ...jest.configs['flat/recommended'],\n languageOptions: {\n globals: {\n ...globals.jest,\n },\n },\n },\n prettierRecommended,\n {\n ignores,\n },\n {\n plugins: {\n 'unused-imports': unusedImports,\n },\n rules: {\n 'prettier/prettier': [\n 'error',\n {\n semi: true,\n trailingComma: 'all',\n singleQuote: true,\n printWidth: 120,\n tabWidth: 2,\n },\n {\n usePrettierrc: false,\n fileInfoOptions: {\n withNodeModules: true,\n },\n },\n ],\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 'sort-imports': [\n 'error',\n {\n ignoreCase: true,\n ignoreDeclarationSort: true,\n ignoreMemberSort: false,\n },\n ],\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}\n\nexport { eslintLibraryConfig };\n","import { dirname } from 'path';\nimport { fileURLToPath } from 'url';\n\nimport { FlatCompat } from '@eslint/eslintrc';\nimport js from '@eslint/js';\nimport type { TSESLint } from '@typescript-eslint/utils';\nimport jest from 'eslint-plugin-jest';\nimport prettierRecommended from 'eslint-plugin-prettier/recommended';\nimport reactPlugin from 'eslint-plugin-react';\nimport reactHooks from 'eslint-plugin-react-hooks';\nimport unusedImports from 'eslint-plugin-unused-imports';\nimport globalsImp from 'globals';\nimport { config, configs } from 'typescript-eslint';\n\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\nconst globals = globalsImp as Record<string, Record<string, boolean>>;\n\nfunction eslintNextConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray {\n return config(\n js.configs.recommended,\n ...compat.config({\n extends: ['next/core-web-vitals'],\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 {\n files: ['**/*.{js,jsx,mjs}'],\n extends: [configs.base],\n },\n {\n files: ['**/*.{ts,tsx}'],\n extends: [...configs.recommended, ...configs.recommendedTypeChecked],\n languageOptions: {\n parserOptions: {\n ecmaVersion: 'latest',\n sourceType: 'module',\n project: true,\n tsconfigRootDir: './',\n },\n },\n rules: {\n '@typescript-eslint/explicit-module-boundary-types': 'error',\n '@typescript-eslint/no-explicit-any': 'error',\n '@typescript-eslint/no-unused-vars': 'off',\n },\n },\n {\n files: ['**/*.{jsx,tsx}'],\n ...reactPlugin.configs.flat.recommended,\n ...reactPlugin.configs.flat['jsx-runtime'],\n languageOptions: {\n ...reactPlugin.configs.flat.recommended.languageOptions,\n globals: {\n ...globals.serviceworker,\n ...Object.keys(globals.browser).reduce<Record<string, boolean>>((acc, key) => {\n acc[key.trim()] = globals.browser[key];\n return acc;\n }, {}),\n },\n },\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 {\n files: ['**/*.test.{js,ts,jsx,tsx}'],\n ...jest.configs['flat/recommended'],\n languageOptions: {\n globals: {\n ...globals.jest,\n //...globals.vitest,\n },\n },\n },\n prettierRecommended,\n {\n ignores,\n },\n {\n plugins: {\n 'unused-imports': unusedImports,\n },\n 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 '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 'sort-imports': [\n 'error',\n {\n ignoreCase: true,\n ignoreDeclarationSort: true,\n ignoreMemberSort: false,\n },\n ],\n },\n },\n );\n}\n\nexport { eslintNextConfig };\n","import js from '@eslint/js';\nimport type { TSESLint } from '@typescript-eslint/utils';\nimport imports from 'eslint-plugin-import';\nimport jest from 'eslint-plugin-jest';\nimport prettierRecommended from 'eslint-plugin-prettier/recommended';\nimport reactPlugin from 'eslint-plugin-react';\nimport reactHooks from 'eslint-plugin-react-hooks';\nimport unusedImports from 'eslint-plugin-unused-imports';\nimport globalsImp from 'globals';\nimport { config, configs } from 'typescript-eslint';\n\nimport { EslintOptions } from '../types/index.js';\n\nconst globals = globalsImp as Record<string, Record<string, boolean>>;\n\nfunction eslintReactConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray {\n return config(\n js.configs.recommended,\n imports.flatConfigs.recommended,\n {\n files: ['**/*.{js,jsx,mjs}'],\n extends: [configs.base],\n },\n {\n files: ['**/*.{ts,tsx}'],\n extends: [imports.flatConfigs.typescript, ...configs.recommended, ...configs.recommendedTypeChecked],\n languageOptions: {\n parserOptions: {\n ecmaVersion: 'latest',\n sourceType: 'module',\n project: true,\n tsconfigRootDir: './',\n },\n },\n rules: {\n '@typescript-eslint/explicit-module-boundary-types': 'error',\n '@typescript-eslint/no-explicit-any': 'error',\n '@typescript-eslint/no-unused-vars': 'off',\n },\n },\n {\n files: ['**/*.{jsx,tsx}'],\n ...reactPlugin.configs.flat.recommended,\n ...reactPlugin.configs.flat['jsx-runtime'],\n languageOptions: {\n ...reactPlugin.configs.flat.recommended.languageOptions,\n globals: {\n ...globals.serviceworker,\n ...Object.keys(globals.browser).reduce<Record<string, boolean>>((acc, key) => {\n acc[key.trim()] = globals.browser[key];\n return acc;\n }, {}),\n },\n },\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 {\n files: ['**/*.test.{js,ts,jsx,tsx}'],\n ...jest.configs['flat/recommended'],\n languageOptions: {\n globals: {\n ...globals.jest,\n //...globals.vitest,\n },\n },\n },\n prettierRecommended,\n {\n ignores,\n },\n {\n plugins: {\n 'unused-imports': unusedImports,\n },\n 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 '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 'sort-imports': [\n 'error',\n {\n ignoreCase: true,\n ignoreDeclarationSort: true,\n ignoreMemberSort: false,\n },\n ],\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 react: {\n version: 'detect',\n },\n },\n },\n );\n}\n\nexport { eslintReactConfig };\n"],"names":["globals","globalsImp","eslintLibraryConfig","ignores","config","js","configs","recommended","imports","flatConfigs","files","extends","base","typescript","recommendedTypeChecked","languageOptions","parserOptions","ecmaVersion","sourceType","project","tsconfigRootDir","rules","jest","prettierRecommended","plugins","unusedImports","semi","trailingComma","singleQuote","printWidth","tabWidth","usePrettierrc","fileInfoOptions","withNodeModules","vars","varsIgnorePattern","args","argsIgnorePattern","ignoreCase","ignoreDeclarationSort","ignoreMemberSort","groups","pathGroups","pattern","group","position","pathGroupsExcludedImportTypes","alphabetize","order","caseInsensitive","settings","node","compat","FlatCompat","baseDirectory","dirname","fileURLToPath","url","eslintNextConfig","reactPlugin","flat","serviceworker","Object","keys","browser","reduce","acc","key","trim","reactHooks","jsxSingleQuote","eslintReactConfig","react","version"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("@eslint/js"),r=require("eslint-plugin-import"),s=require("eslint-plugin-jest"),t=require("eslint-plugin-prettier/recommended"),i=require("eslint-plugin-unused-imports"),n=require("globals"),o=require("typescript-eslint");const l=n;exports.eslintLibraryConfig=function({ignores:n}){return o.config(e.configs.recommended,r.flatConfigs.recommended,r.flatConfigs.typescript,...o.configs.recommended,{files:["**/*.{ts,tsx}"],extends:[...o.configs.recommendedTypeChecked],languageOptions:{parserOptions:{ecmaVersion:"latest",sourceType:"module",project:!0,tsconfigRootDir:"./"}},rules:{"@typescript-eslint/explicit-module-boundary-types":"error","@typescript-eslint/no-explicit-any":"error","@typescript-eslint/no-unused-vars":"off"}},{files:["**/*.test.{js,ts,jsx,tsx}"],...s.configs["flat/recommended"],languageOptions:{globals:{...l.jest}}},t,{ignores:n},{plugins:{"unused-imports":i},rules:{"prettier/prettier":["error",{semi:!0,trailingComma:"all",singleQuote:!0,printWidth:120,tabWidth:2},{usePrettierrc:!1,fileInfoOptions:{withNodeModules:!0}}],"no-unused-vars":"off","unused-imports/no-unused-imports":"error","unused-imports/no-unused-vars":["error",{vars:"all",varsIgnorePattern:"^_",args:"after-used",argsIgnorePattern:"^_"}],"sort-imports":["error",{ignoreCase:!0,ignoreDeclarationSort:!0,ignoreMemberSort:!1}],"import/order":["error",{groups:["builtin","external","internal",["parent","sibling"]],"newlines-between":"always",alphabetize:{order:"asc",caseInsensitive:!0}}]},settings:{"import/resolver":{typescript:!0,node:!0}}})};
1
+ "use strict";var e=require("@eslint/js"),r=require("eslint-plugin-import"),t=require("eslint-plugin-jest"),s=require("eslint-plugin-prettier/recommended"),i=require("eslint-plugin-unused-imports"),n=require("globals"),o=require("typescript-eslint");const l=n;exports.eslintLibraryConfig=function({ignores:n}){return o.config(e.configs.recommended,r.flatConfigs.recommended,{files:["**/*.{js,mjs}"],extends:[o.configs.base]},{files:["**/*.ts"],extends:[r.flatConfigs.typescript,...o.configs.recommended,...o.configs.recommendedTypeChecked],languageOptions:{parserOptions:{ecmaVersion:"latest",sourceType:"module",project:!0,tsconfigRootDir:"./"}},rules:{"@typescript-eslint/explicit-module-boundary-types":"error","@typescript-eslint/no-explicit-any":"error","@typescript-eslint/no-unused-vars":"off"}},{files:["**/*.test.{js,ts}"],...t.configs["flat/recommended"],languageOptions:{globals:{...l.jest}}},s,{ignores:n},{plugins:{"unused-imports":i},rules:{"prettier/prettier":["error",{semi:!0,trailingComma:"all",singleQuote:!0,printWidth:120,tabWidth:2},{usePrettierrc:!1,fileInfoOptions:{withNodeModules:!0}}],"no-unused-vars":"off","unused-imports/no-unused-imports":"error","unused-imports/no-unused-vars":["error",{vars:"all",varsIgnorePattern:"^_",args:"after-used",argsIgnorePattern:"^_"}],"sort-imports":["error",{ignoreCase:!0,ignoreDeclarationSort:!0,ignoreMemberSort:!1}],"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}}})};
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../src/library/eslintLibraryConfig.ts"],"sourcesContent":["import js from '@eslint/js';\nimport type { TSESLint } from '@typescript-eslint/utils';\nimport imports from 'eslint-plugin-import';\nimport jest from 'eslint-plugin-jest';\nimport prettierRecommended from 'eslint-plugin-prettier/recommended';\nimport unusedImports from 'eslint-plugin-unused-imports';\nimport globalsImp from 'globals';\nimport { config, configs } from 'typescript-eslint';\n\nimport { EslintOptions } from '../types/index.js';\n\nconst globals = globalsImp as Record<string, Record<string, boolean>>;\n\nfunction eslintLibraryConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray {\n return config(\n js.configs.recommended,\n imports.flatConfigs.recommended,\n imports.flatConfigs.typescript,\n ...configs.recommended,\n {\n files: ['**/*.{ts,tsx}'],\n extends: [...configs.recommendedTypeChecked],\n languageOptions: {\n parserOptions: {\n ecmaVersion: 'latest',\n sourceType: 'module',\n project: true,\n tsconfigRootDir: './',\n },\n },\n rules: {\n '@typescript-eslint/explicit-module-boundary-types': 'error',\n '@typescript-eslint/no-explicit-any': 'error',\n '@typescript-eslint/no-unused-vars': 'off',\n },\n },\n {\n files: ['**/*.test.{js,ts,jsx,tsx}'],\n ...jest.configs['flat/recommended'],\n languageOptions: {\n globals: {\n ...globals.jest,\n //...globals.vitest,\n },\n },\n },\n prettierRecommended,\n {\n ignores,\n },\n {\n plugins: {\n 'unused-imports': unusedImports,\n },\n rules: {\n 'prettier/prettier': [\n 'error',\n {\n semi: true,\n trailingComma: 'all',\n singleQuote: true,\n printWidth: 120,\n tabWidth: 2,\n },\n {\n usePrettierrc: false,\n fileInfoOptions: {\n withNodeModules: true,\n },\n },\n ],\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 'sort-imports': [\n 'error',\n {\n ignoreCase: true,\n ignoreDeclarationSort: true,\n ignoreMemberSort: false,\n },\n ],\n 'import/order': [\n 'error',\n {\n groups: ['builtin', 'external', 'internal', ['parent', 'sibling']],\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}\n\nexport { eslintLibraryConfig };\n"],"names":["globals","globalsImp","ignores","config","js","configs","recommended","imports","flatConfigs","typescript","files","extends","recommendedTypeChecked","languageOptions","parserOptions","ecmaVersion","sourceType","project","tsconfigRootDir","rules","jest","prettierRecommended","plugins","unusedImports","semi","trailingComma","singleQuote","printWidth","tabWidth","usePrettierrc","fileInfoOptions","withNodeModules","vars","varsIgnorePattern","args","argsIgnorePattern","ignoreCase","ignoreDeclarationSort","ignoreMemberSort","groups","alphabetize","order","caseInsensitive","settings","node"],"mappings":"yPAWA,MAAMA,EAAUC,8BAEhB,UAA6BC,QAAEA,IAC7B,OAAOC,SACLC,EAAGC,QAAQC,YACXC,EAAQC,YAAYF,YACpBC,EAAQC,YAAYC,cACjBJ,EAAAA,QAAQC,YACX,CACEI,MAAO,CAAC,iBACRC,QAAS,IAAIN,UAAQO,wBACrBC,gBAAiB,CACfC,cAAe,CACbC,YAAa,SACbC,WAAY,SACZC,SAAS,EACTC,gBAAiB,OAGrBC,MAAO,CACL,oDAAqD,QACrD,qCAAsC,QACtC,oCAAqC,QAGzC,CACET,MAAO,CAAC,gCACLU,EAAKf,QAAQ,oBAChBQ,gBAAiB,CACfb,QAAS,IACJA,EAAQoB,QAKjBC,EACA,CACEnB,WAEF,CACEoB,QAAS,CACP,iBAAkBC,GAEpBJ,MAAO,CACL,oBAAqB,CACnB,QACA,CACEK,MAAM,EACNC,cAAe,MACfC,aAAa,EACbC,WAAY,IACZC,SAAU,GAEZ,CACEC,eAAe,EACfC,gBAAiB,CACfC,iBAAiB,KAIvB,iBAAkB,MAClB,mCAAoC,QACpC,gCAAiC,CAC/B,QACA,CACEC,KAAM,MACNC,kBAAmB,KACnBC,KAAM,aACNC,kBAAmB,OAGvB,eAAgB,CACd,QACA,CACEC,YAAY,EACZC,uBAAuB,EACvBC,kBAAkB,IAGtB,eAAgB,CACd,QACA,CACEC,OAAQ,CAAC,UAAW,WAAY,WAAY,CAAC,SAAU,YACvD,mBAAoB,SACpBC,YAAa,CACXC,MAAO,MACPC,iBAAiB,MAKzBC,SAAU,CACR,kBAAmB,CACjBlC,YAAY,EACZmC,MAAM,KAKhB"}
1
+ {"version":3,"file":"index.cjs","sources":["../../src/library/eslintLibraryConfig.ts"],"sourcesContent":["import js from '@eslint/js';\nimport type { TSESLint } from '@typescript-eslint/utils';\nimport imports from 'eslint-plugin-import';\nimport jest from 'eslint-plugin-jest';\nimport prettierRecommended from 'eslint-plugin-prettier/recommended';\nimport unusedImports from 'eslint-plugin-unused-imports';\nimport globalsImp from 'globals';\nimport { config, configs } from 'typescript-eslint';\n\nimport { EslintOptions } from '../types/index.js';\n\nconst globals = globalsImp as Record<string, Record<string, boolean>>;\n\nfunction eslintLibraryConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray {\n return config(\n js.configs.recommended,\n imports.flatConfigs.recommended,\n {\n files: ['**/*.{js,mjs}'],\n extends: [configs.base],\n },\n {\n files: ['**/*.ts'],\n extends: [imports.flatConfigs.typescript, ...configs.recommended, ...configs.recommendedTypeChecked],\n languageOptions: {\n parserOptions: {\n ecmaVersion: 'latest',\n sourceType: 'module',\n project: true,\n tsconfigRootDir: './',\n },\n },\n rules: {\n '@typescript-eslint/explicit-module-boundary-types': 'error',\n '@typescript-eslint/no-explicit-any': 'error',\n '@typescript-eslint/no-unused-vars': 'off',\n },\n },\n {\n files: ['**/*.test.{js,ts}'],\n ...jest.configs['flat/recommended'],\n languageOptions: {\n globals: {\n ...globals.jest,\n },\n },\n },\n prettierRecommended,\n {\n ignores,\n },\n {\n plugins: {\n 'unused-imports': unusedImports,\n },\n rules: {\n 'prettier/prettier': [\n 'error',\n {\n semi: true,\n trailingComma: 'all',\n singleQuote: true,\n printWidth: 120,\n tabWidth: 2,\n },\n {\n usePrettierrc: false,\n fileInfoOptions: {\n withNodeModules: true,\n },\n },\n ],\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 'sort-imports': [\n 'error',\n {\n ignoreCase: true,\n ignoreDeclarationSort: true,\n ignoreMemberSort: false,\n },\n ],\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}\n\nexport { eslintLibraryConfig };\n"],"names":["globals","globalsImp","ignores","config","js","configs","recommended","imports","flatConfigs","files","extends","base","typescript","recommendedTypeChecked","languageOptions","parserOptions","ecmaVersion","sourceType","project","tsconfigRootDir","rules","jest","prettierRecommended","plugins","unusedImports","semi","trailingComma","singleQuote","printWidth","tabWidth","usePrettierrc","fileInfoOptions","withNodeModules","vars","varsIgnorePattern","args","argsIgnorePattern","ignoreCase","ignoreDeclarationSort","ignoreMemberSort","groups","pathGroups","pattern","group","position","pathGroupsExcludedImportTypes","alphabetize","order","caseInsensitive","settings","node"],"mappings":"yPAWA,MAAMA,EAAUC,8BAEhB,UAA6BC,QAAEA,IAC7B,OAAOC,EAAAA,OACLC,EAAGC,QAAQC,YACXC,EAAQC,YAAYF,YACpB,CACEG,MAAO,CAAC,iBACRC,QAAS,CAACL,UAAQM,OAEpB,CACEF,MAAO,CAAC,WACRC,QAAS,CAACH,EAAQC,YAAYI,cAAeP,EAAAA,QAAQC,eAAgBD,UAAQQ,wBAC7EC,gBAAiB,CACfC,cAAe,CACbC,YAAa,SACbC,WAAY,SACZC,SAAS,EACTC,gBAAiB,OAGrBC,MAAO,CACL,oDAAqD,QACrD,qCAAsC,QACtC,oCAAqC,QAGzC,CACEX,MAAO,CAAC,wBACLY,EAAKhB,QAAQ,oBAChBS,gBAAiB,CACfd,QAAS,IACJA,EAAQqB,QAIjBC,EACA,CACEpB,WAEF,CACEqB,QAAS,CACP,iBAAkBC,GAEpBJ,MAAO,CACL,oBAAqB,CACnB,QACA,CACEK,MAAM,EACNC,cAAe,MACfC,aAAa,EACbC,WAAY,IACZC,SAAU,GAEZ,CACEC,eAAe,EACfC,gBAAiB,CACfC,iBAAiB,KAIvB,iBAAkB,MAClB,mCAAoC,QACpC,gCAAiC,CAC/B,QACA,CACEC,KAAM,MACNC,kBAAmB,KACnBC,KAAM,aACNC,kBAAmB,OAGvB,eAAgB,CACd,QACA,CACEC,YAAY,EACZC,uBAAuB,EACvBC,kBAAkB,IAGtB,eAAgB,CACd,QACA,CACEC,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,CACjBrC,YAAY,EACZsC,MAAM,KAKhB"}
@@ -1,2 +1,2 @@
1
- import e from"@eslint/js";import r from"eslint-plugin-import";import t from"eslint-plugin-jest";import s from"eslint-plugin-prettier/recommended";import o from"eslint-plugin-unused-imports";import i from"globals";import{config as n,configs as p}from"typescript-eslint";const l=i;function m({ignores:i}){return n(e.configs.recommended,r.flatConfigs.recommended,r.flatConfigs.typescript,...p.recommended,{files:["**/*.{ts,tsx}"],extends:[...p.recommendedTypeChecked],languageOptions:{parserOptions:{ecmaVersion:"latest",sourceType:"module",project:!0,tsconfigRootDir:"./"}},rules:{"@typescript-eslint/explicit-module-boundary-types":"error","@typescript-eslint/no-explicit-any":"error","@typescript-eslint/no-unused-vars":"off"}},{files:["**/*.test.{js,ts,jsx,tsx}"],...t.configs["flat/recommended"],languageOptions:{globals:{...l.jest}}},s,{ignores:i},{plugins:{"unused-imports":o},rules:{"prettier/prettier":["error",{semi:!0,trailingComma:"all",singleQuote:!0,printWidth:120,tabWidth:2},{usePrettierrc:!1,fileInfoOptions:{withNodeModules:!0}}],"no-unused-vars":"off","unused-imports/no-unused-imports":"error","unused-imports/no-unused-vars":["error",{vars:"all",varsIgnorePattern:"^_",args:"after-used",argsIgnorePattern:"^_"}],"sort-imports":["error",{ignoreCase:!0,ignoreDeclarationSort:!0,ignoreMemberSort:!1}],"import/order":["error",{groups:["builtin","external","internal",["parent","sibling"]],"newlines-between":"always",alphabetize:{order:"asc",caseInsensitive:!0}}]},settings:{"import/resolver":{typescript:!0,node:!0}}})}export{m as eslintLibraryConfig};
1
+ import e from"@eslint/js";import r from"eslint-plugin-import";import t from"eslint-plugin-jest";import s from"eslint-plugin-prettier/recommended";import o from"eslint-plugin-unused-imports";import i from"globals";import{config as n,configs as p}from"typescript-eslint";const l=i;function a({ignores:i}){return n(e.configs.recommended,r.flatConfigs.recommended,{files:["**/*.{js,mjs}"],extends:[p.base]},{files:["**/*.ts"],extends:[r.flatConfigs.typescript,...p.recommended,...p.recommendedTypeChecked],languageOptions:{parserOptions:{ecmaVersion:"latest",sourceType:"module",project:!0,tsconfigRootDir:"./"}},rules:{"@typescript-eslint/explicit-module-boundary-types":"error","@typescript-eslint/no-explicit-any":"error","@typescript-eslint/no-unused-vars":"off"}},{files:["**/*.test.{js,ts}"],...t.configs["flat/recommended"],languageOptions:{globals:{...l.jest}}},s,{ignores:i},{plugins:{"unused-imports":o},rules:{"prettier/prettier":["error",{semi:!0,trailingComma:"all",singleQuote:!0,printWidth:120,tabWidth:2},{usePrettierrc:!1,fileInfoOptions:{withNodeModules:!0}}],"no-unused-vars":"off","unused-imports/no-unused-imports":"error","unused-imports/no-unused-vars":["error",{vars:"all",varsIgnorePattern:"^_",args:"after-used",argsIgnorePattern:"^_"}],"sort-imports":["error",{ignoreCase:!0,ignoreDeclarationSort:!0,ignoreMemberSort:!1}],"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}}})}export{a as eslintLibraryConfig};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/library/eslintLibraryConfig.ts"],"sourcesContent":["import js from '@eslint/js';\nimport type { TSESLint } from '@typescript-eslint/utils';\nimport imports from 'eslint-plugin-import';\nimport jest from 'eslint-plugin-jest';\nimport prettierRecommended from 'eslint-plugin-prettier/recommended';\nimport unusedImports from 'eslint-plugin-unused-imports';\nimport globalsImp from 'globals';\nimport { config, configs } from 'typescript-eslint';\n\nimport { EslintOptions } from '../types/index.js';\n\nconst globals = globalsImp as Record<string, Record<string, boolean>>;\n\nfunction eslintLibraryConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray {\n return config(\n js.configs.recommended,\n imports.flatConfigs.recommended,\n imports.flatConfigs.typescript,\n ...configs.recommended,\n {\n files: ['**/*.{ts,tsx}'],\n extends: [...configs.recommendedTypeChecked],\n languageOptions: {\n parserOptions: {\n ecmaVersion: 'latest',\n sourceType: 'module',\n project: true,\n tsconfigRootDir: './',\n },\n },\n rules: {\n '@typescript-eslint/explicit-module-boundary-types': 'error',\n '@typescript-eslint/no-explicit-any': 'error',\n '@typescript-eslint/no-unused-vars': 'off',\n },\n },\n {\n files: ['**/*.test.{js,ts,jsx,tsx}'],\n ...jest.configs['flat/recommended'],\n languageOptions: {\n globals: {\n ...globals.jest,\n //...globals.vitest,\n },\n },\n },\n prettierRecommended,\n {\n ignores,\n },\n {\n plugins: {\n 'unused-imports': unusedImports,\n },\n rules: {\n 'prettier/prettier': [\n 'error',\n {\n semi: true,\n trailingComma: 'all',\n singleQuote: true,\n printWidth: 120,\n tabWidth: 2,\n },\n {\n usePrettierrc: false,\n fileInfoOptions: {\n withNodeModules: true,\n },\n },\n ],\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 'sort-imports': [\n 'error',\n {\n ignoreCase: true,\n ignoreDeclarationSort: true,\n ignoreMemberSort: false,\n },\n ],\n 'import/order': [\n 'error',\n {\n groups: ['builtin', 'external', 'internal', ['parent', 'sibling']],\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}\n\nexport { eslintLibraryConfig };\n"],"names":["globals","globalsImp","eslintLibraryConfig","ignores","config","js","configs","recommended","imports","flatConfigs","typescript","files","extends","recommendedTypeChecked","languageOptions","parserOptions","ecmaVersion","sourceType","project","tsconfigRootDir","rules","jest","prettierRecommended","plugins","unusedImports","semi","trailingComma","singleQuote","printWidth","tabWidth","usePrettierrc","fileInfoOptions","withNodeModules","vars","varsIgnorePattern","args","argsIgnorePattern","ignoreCase","ignoreDeclarationSort","ignoreMemberSort","groups","alphabetize","order","caseInsensitive","settings","node"],"mappings":"6QAWA,MAAMA,EAAUC,EAEhB,SAASC,GAAoBC,QAAEA,IAC7B,OAAOC,EACLC,EAAGC,QAAQC,YACXC,EAAQC,YAAYF,YACpBC,EAAQC,YAAYC,cACjBJ,EAAQC,YACX,CACEI,MAAO,CAAC,iBACRC,QAAS,IAAIN,EAAQO,wBACrBC,gBAAiB,CACfC,cAAe,CACbC,YAAa,SACbC,WAAY,SACZC,SAAS,EACTC,gBAAiB,OAGrBC,MAAO,CACL,oDAAqD,QACrD,qCAAsC,QACtC,oCAAqC,QAGzC,CACET,MAAO,CAAC,gCACLU,EAAKf,QAAQ,oBAChBQ,gBAAiB,CACfd,QAAS,IACJA,EAAQqB,QAKjBC,EACA,CACEnB,WAEF,CACEoB,QAAS,CACP,iBAAkBC,GAEpBJ,MAAO,CACL,oBAAqB,CACnB,QACA,CACEK,MAAM,EACNC,cAAe,MACfC,aAAa,EACbC,WAAY,IACZC,SAAU,GAEZ,CACEC,eAAe,EACfC,gBAAiB,CACfC,iBAAiB,KAIvB,iBAAkB,MAClB,mCAAoC,QACpC,gCAAiC,CAC/B,QACA,CACEC,KAAM,MACNC,kBAAmB,KACnBC,KAAM,aACNC,kBAAmB,OAGvB,eAAgB,CACd,QACA,CACEC,YAAY,EACZC,uBAAuB,EACvBC,kBAAkB,IAGtB,eAAgB,CACd,QACA,CACEC,OAAQ,CAAC,UAAW,WAAY,WAAY,CAAC,SAAU,YACvD,mBAAoB,SACpBC,YAAa,CACXC,MAAO,MACPC,iBAAiB,MAKzBC,SAAU,CACR,kBAAmB,CACjBlC,YAAY,EACZmC,MAAM,KAKhB"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/library/eslintLibraryConfig.ts"],"sourcesContent":["import js from '@eslint/js';\nimport type { TSESLint } from '@typescript-eslint/utils';\nimport imports from 'eslint-plugin-import';\nimport jest from 'eslint-plugin-jest';\nimport prettierRecommended from 'eslint-plugin-prettier/recommended';\nimport unusedImports from 'eslint-plugin-unused-imports';\nimport globalsImp from 'globals';\nimport { config, configs } from 'typescript-eslint';\n\nimport { EslintOptions } from '../types/index.js';\n\nconst globals = globalsImp as Record<string, Record<string, boolean>>;\n\nfunction eslintLibraryConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray {\n return config(\n js.configs.recommended,\n imports.flatConfigs.recommended,\n {\n files: ['**/*.{js,mjs}'],\n extends: [configs.base],\n },\n {\n files: ['**/*.ts'],\n extends: [imports.flatConfigs.typescript, ...configs.recommended, ...configs.recommendedTypeChecked],\n languageOptions: {\n parserOptions: {\n ecmaVersion: 'latest',\n sourceType: 'module',\n project: true,\n tsconfigRootDir: './',\n },\n },\n rules: {\n '@typescript-eslint/explicit-module-boundary-types': 'error',\n '@typescript-eslint/no-explicit-any': 'error',\n '@typescript-eslint/no-unused-vars': 'off',\n },\n },\n {\n files: ['**/*.test.{js,ts}'],\n ...jest.configs['flat/recommended'],\n languageOptions: {\n globals: {\n ...globals.jest,\n },\n },\n },\n prettierRecommended,\n {\n ignores,\n },\n {\n plugins: {\n 'unused-imports': unusedImports,\n },\n rules: {\n 'prettier/prettier': [\n 'error',\n {\n semi: true,\n trailingComma: 'all',\n singleQuote: true,\n printWidth: 120,\n tabWidth: 2,\n },\n {\n usePrettierrc: false,\n fileInfoOptions: {\n withNodeModules: true,\n },\n },\n ],\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 'sort-imports': [\n 'error',\n {\n ignoreCase: true,\n ignoreDeclarationSort: true,\n ignoreMemberSort: false,\n },\n ],\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}\n\nexport { eslintLibraryConfig };\n"],"names":["globals","globalsImp","eslintLibraryConfig","ignores","config","js","configs","recommended","imports","flatConfigs","files","extends","base","typescript","recommendedTypeChecked","languageOptions","parserOptions","ecmaVersion","sourceType","project","tsconfigRootDir","rules","jest","prettierRecommended","plugins","unusedImports","semi","trailingComma","singleQuote","printWidth","tabWidth","usePrettierrc","fileInfoOptions","withNodeModules","vars","varsIgnorePattern","args","argsIgnorePattern","ignoreCase","ignoreDeclarationSort","ignoreMemberSort","groups","pathGroups","pattern","group","position","pathGroupsExcludedImportTypes","alphabetize","order","caseInsensitive","settings","node"],"mappings":"6QAWA,MAAMA,EAAUC,EAEhB,SAASC,GAAoBC,QAAEA,IAC7B,OAAOC,EACLC,EAAGC,QAAQC,YACXC,EAAQC,YAAYF,YACpB,CACEG,MAAO,CAAC,iBACRC,QAAS,CAACL,EAAQM,OAEpB,CACEF,MAAO,CAAC,WACRC,QAAS,CAACH,EAAQC,YAAYI,cAAeP,EAAQC,eAAgBD,EAAQQ,wBAC7EC,gBAAiB,CACfC,cAAe,CACbC,YAAa,SACbC,WAAY,SACZC,SAAS,EACTC,gBAAiB,OAGrBC,MAAO,CACL,oDAAqD,QACrD,qCAAsC,QACtC,oCAAqC,QAGzC,CACEX,MAAO,CAAC,wBACLY,EAAKhB,QAAQ,oBAChBS,gBAAiB,CACff,QAAS,IACJA,EAAQsB,QAIjBC,EACA,CACEpB,WAEF,CACEqB,QAAS,CACP,iBAAkBC,GAEpBJ,MAAO,CACL,oBAAqB,CACnB,QACA,CACEK,MAAM,EACNC,cAAe,MACfC,aAAa,EACbC,WAAY,IACZC,SAAU,GAEZ,CACEC,eAAe,EACfC,gBAAiB,CACfC,iBAAiB,KAIvB,iBAAkB,MAClB,mCAAoC,QACpC,gCAAiC,CAC/B,QACA,CACEC,KAAM,MACNC,kBAAmB,KACnBC,KAAM,aACNC,kBAAmB,OAGvB,eAAgB,CACd,QACA,CACEC,YAAY,EACZC,uBAAuB,EACvBC,kBAAkB,IAGtB,eAAgB,CACd,QACA,CACEC,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,CACjBrC,YAAY,EACZsC,MAAM,KAKhB"}
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("path"),r=require("url"),t=require("@eslint/eslintrc"),s=require("@eslint/js"),n=require("eslint-plugin-jest"),i=require("eslint-plugin-prettier/recommended"),o=require("eslint-plugin-react"),a=require("eslint-plugin-react-hooks"),l=require("eslint-plugin-unused-imports"),u=require("globals"),p=require("typescript-eslint"),c="undefined"!=typeof document?document.currentScript:null;const d=r.fileURLToPath("undefined"==typeof document?require("url").pathToFileURL(__filename).href:c&&"SCRIPT"===c.tagName.toUpperCase()&&c.src||new URL("index.cjs",document.baseURI).href),g=e.dirname(d),f=new t.FlatCompat({baseDirectory:g}),m=u;exports.eslintNextConfig=function({ignores:e}){return p.config(s.configs.recommended,...f.config({extends:["next/core-web-vitals"],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}}]}}),{files:["**/*.{js,jsx,mjs}"],extends:[p.configs.base]},{files:["**/*.{ts,tsx}"],extends:[...p.configs.recommended,...p.configs.recommendedTypeChecked],languageOptions:{parserOptions:{ecmaVersion:"latest",sourceType:"module",project:!0,tsconfigRootDir:"./"}},rules:{"@typescript-eslint/explicit-module-boundary-types":"error","@typescript-eslint/no-explicit-any":"error","@typescript-eslint/no-unused-vars":"off"}},{files:["**/*.{jsx,tsx}"],...o.configs.flat.recommended,...o.configs.flat["jsx-runtime"],languageOptions:{...o.configs.flat.recommended.languageOptions,globals:{...m.serviceworker,...Object.keys(m.browser).reduce(((e,r)=>(e[r.trim()]=m.browser[r],e)),{})}},plugins:{"react-hooks":a},rules:{...a.configs.recommended.rules,"react/react-in-jsx-scope":"off","react/jsx-uses-react":"off"}},{files:["**/*.test.{js,ts,jsx,tsx}"],...n.configs["flat/recommended"],languageOptions:{globals:{...m.jest}}},i,{ignores:e},{plugins:{"unused-imports":l},rules:{"prettier/prettier":["error",{semi:!0,trailingComma:"all",singleQuote:!0,jsxSingleQuote:!0,printWidth:120,tabWidth:2},{usePrettierrc:!1,fileInfoOptions:{withNodeModules:!0}}],"no-unused-vars":"off","unused-imports/no-unused-imports":"error","unused-imports/no-unused-vars":["error",{vars:"all",varsIgnorePattern:"^_",args:"after-used",argsIgnorePattern:"^_"}],"sort-imports":["error",{ignoreCase:!0,ignoreDeclarationSort:!0,ignoreMemberSort:!1}]}})};
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../src/next/eslintNextConfig.ts"],"sourcesContent":["import { dirname } from 'path';\nimport { fileURLToPath } from 'url';\n\nimport { FlatCompat } from '@eslint/eslintrc';\nimport js from '@eslint/js';\nimport type { TSESLint } from '@typescript-eslint/utils';\nimport jest from 'eslint-plugin-jest';\nimport prettierRecommended from 'eslint-plugin-prettier/recommended';\nimport reactPlugin from 'eslint-plugin-react';\nimport reactHooks from 'eslint-plugin-react-hooks';\nimport unusedImports from 'eslint-plugin-unused-imports';\nimport globalsImp from 'globals';\nimport { config, configs } from 'typescript-eslint';\n\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\nconst globals = globalsImp as Record<string, Record<string, boolean>>;\n\nfunction eslintNextConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray {\n return config(\n js.configs.recommended,\n ...compat.config({\n extends: ['next/core-web-vitals'],\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 {\n files: ['**/*.{js,jsx,mjs}'],\n extends: [configs.base],\n },\n {\n files: ['**/*.{ts,tsx}'],\n extends: [...configs.recommended, ...configs.recommendedTypeChecked],\n languageOptions: {\n parserOptions: {\n ecmaVersion: 'latest',\n sourceType: 'module',\n project: true,\n tsconfigRootDir: './',\n },\n },\n rules: {\n '@typescript-eslint/explicit-module-boundary-types': 'error',\n '@typescript-eslint/no-explicit-any': 'error',\n '@typescript-eslint/no-unused-vars': 'off',\n },\n },\n {\n files: ['**/*.{jsx,tsx}'],\n ...reactPlugin.configs.flat.recommended,\n ...reactPlugin.configs.flat['jsx-runtime'],\n languageOptions: {\n ...reactPlugin.configs.flat.recommended.languageOptions,\n globals: {\n ...globals.serviceworker,\n ...Object.keys(globals.browser).reduce<Record<string, boolean>>((acc, key) => {\n acc[key.trim()] = globals.browser[key];\n return acc;\n }, {}),\n },\n },\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 {\n files: ['**/*.test.{js,ts,jsx,tsx}'],\n ...jest.configs['flat/recommended'],\n languageOptions: {\n globals: {\n ...globals.jest,\n //...globals.vitest,\n },\n },\n },\n prettierRecommended,\n {\n ignores,\n },\n {\n plugins: {\n 'unused-imports': unusedImports,\n },\n 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 '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 'sort-imports': [\n 'error',\n {\n ignoreCase: true,\n ignoreDeclarationSort: true,\n ignoreMemberSort: false,\n },\n ],\n },\n },\n );\n}\n\nexport { eslintNextConfig };\n"],"names":["__filename","fileURLToPath","__dirname","dirname","compat","FlatCompat","baseDirectory","globals","globalsImp","ignores","config","js","configs","recommended","extends","rules","groups","pathGroups","pattern","group","position","pathGroupsExcludedImportTypes","alphabetize","order","caseInsensitive","files","base","recommendedTypeChecked","languageOptions","parserOptions","ecmaVersion","sourceType","project","tsconfigRootDir","reactPlugin","flat","serviceworker","Object","keys","browser","reduce","acc","key","trim","plugins","reactHooks","jest","prettierRecommended","unusedImports","semi","trailingComma","singleQuote","jsxSingleQuote","printWidth","tabWidth","usePrettierrc","fileInfoOptions","withNodeModules","vars","varsIgnorePattern","args","argsIgnorePattern","ignoreCase","ignoreDeclarationSort","ignoreMemberSort"],"mappings":"2ZAgBA,MAAMA,EAAaC,EAAcA,mLAC3BC,EAAYC,EAAQH,QAAAA,GAEpBI,EAAS,IAAIC,EAAAA,WAAW,CAC5BC,cAAeJ,IAGXK,EAAUC,2BAEhB,UAA0BC,QAAEA,IAC1B,OAAOC,EAAAA,OACLC,EAAGC,QAAQC,eACRT,EAAOM,OAAO,CACfI,QAAS,CAAC,wBACVC,MAAO,CACL,eAAgB,CACd,QACA,CACEC,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,QAM3B,CACEC,MAAO,CAAC,qBACRX,QAAS,CAACF,UAAQc,OAEpB,CACED,MAAO,CAAC,iBACRX,QAAS,IAAIF,EAAAA,QAAQC,eAAgBD,UAAQe,wBAC7CC,gBAAiB,CACfC,cAAe,CACbC,YAAa,SACbC,WAAY,SACZC,SAAS,EACTC,gBAAiB,OAGrBlB,MAAO,CACL,oDAAqD,QACrD,qCAAsC,QACtC,oCAAqC,QAGzC,CACEU,MAAO,CAAC,qBACLS,EAAYtB,QAAQuB,KAAKtB,eACzBqB,EAAYtB,QAAQuB,KAAK,eAC5BP,gBAAiB,IACZM,EAAYtB,QAAQuB,KAAKtB,YAAYe,gBACxCrB,QAAS,IACJA,EAAQ6B,iBACRC,OAAOC,KAAK/B,EAAQgC,SAASC,QAAgC,CAACC,EAAKC,KACpED,EAAIC,EAAIC,QAAUpC,EAAQgC,QAAQG,GAC3BD,IACN,CAAG,KAGVG,QAAS,CACP,cAAeC,GAEjB9B,MAAO,IACF8B,EAAWjC,QAAQC,YAAYE,MAClC,2BAA4B,MAC5B,uBAAwB,QAG5B,CACEU,MAAO,CAAC,gCACLqB,EAAKlC,QAAQ,oBAChBgB,gBAAiB,CACfrB,QAAS,IACJA,EAAQuC,QAKjBC,EACA,CACEtC,WAEF,CACEmC,QAAS,CACP,iBAAkBI,GAEpBjC,MAAO,CACL,oBAAqB,CACnB,QACA,CACEkC,MAAM,EACNC,cAAe,MACfC,aAAa,EACbC,gBAAgB,EAChBC,WAAY,IACZC,SAAU,GAEZ,CACEC,eAAe,EACfC,gBAAiB,CACfC,iBAAiB,KAIvB,iBAAkB,MAClB,mCAAoC,QACpC,gCAAiC,CAC/B,QACA,CACEC,KAAM,MACNC,kBAAmB,KACnBC,KAAM,aACNC,kBAAmB,OAGvB,eAAgB,CACd,QACA,CACEC,YAAY,EACZC,uBAAuB,EACvBC,kBAAkB,MAM9B"}
@@ -0,0 +1,9 @@
1
+ import { TSESLint } from '@typescript-eslint/utils';
2
+
3
+ type EslintOptions = {
4
+ ignores: string[];
5
+ };
6
+
7
+ declare function eslintNextConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray;
8
+
9
+ export { eslintNextConfig };
@@ -0,0 +1,2 @@
1
+ import{dirname as e}from"path";import{fileURLToPath as r}from"url";import{FlatCompat as t}from"@eslint/eslintrc";import s from"@eslint/js";import o from"eslint-plugin-jest";import i from"eslint-plugin-prettier/recommended";import n from"eslint-plugin-react";import l from"eslint-plugin-react-hooks";import a from"eslint-plugin-unused-imports";import p from"globals";import{config as m,configs as u}from"typescript-eslint";const c=new t({baseDirectory:e(r(import.meta.url))}),g=p;function d({ignores:e}){return m(s.configs.recommended,...c.config({extends:["next/core-web-vitals"],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}}]}}),{files:["**/*.{js,jsx,mjs}"],extends:[u.base]},{files:["**/*.{ts,tsx}"],extends:[...u.recommended,...u.recommendedTypeChecked],languageOptions:{parserOptions:{ecmaVersion:"latest",sourceType:"module",project:!0,tsconfigRootDir:"./"}},rules:{"@typescript-eslint/explicit-module-boundary-types":"error","@typescript-eslint/no-explicit-any":"error","@typescript-eslint/no-unused-vars":"off"}},{files:["**/*.{jsx,tsx}"],...n.configs.flat.recommended,...n.configs.flat["jsx-runtime"],languageOptions:{...n.configs.flat.recommended.languageOptions,globals:{...g.serviceworker,...Object.keys(g.browser).reduce(((e,r)=>(e[r.trim()]=g.browser[r],e)),{})}},plugins:{"react-hooks":l},rules:{...l.configs.recommended.rules,"react/react-in-jsx-scope":"off","react/jsx-uses-react":"off"}},{files:["**/*.test.{js,ts,jsx,tsx}"],...o.configs["flat/recommended"],languageOptions:{globals:{...g.jest}}},i,{ignores:e},{plugins:{"unused-imports":a},rules:{"prettier/prettier":["error",{semi:!0,trailingComma:"all",singleQuote:!0,jsxSingleQuote:!0,printWidth:120,tabWidth:2},{usePrettierrc:!1,fileInfoOptions:{withNodeModules:!0}}],"no-unused-vars":"off","unused-imports/no-unused-imports":"error","unused-imports/no-unused-vars":["error",{vars:"all",varsIgnorePattern:"^_",args:"after-used",argsIgnorePattern:"^_"}],"sort-imports":["error",{ignoreCase:!0,ignoreDeclarationSort:!0,ignoreMemberSort:!1}]}})}export{d as eslintNextConfig};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../src/next/eslintNextConfig.ts"],"sourcesContent":["import { dirname } from 'path';\nimport { fileURLToPath } from 'url';\n\nimport { FlatCompat } from '@eslint/eslintrc';\nimport js from '@eslint/js';\nimport type { TSESLint } from '@typescript-eslint/utils';\nimport jest from 'eslint-plugin-jest';\nimport prettierRecommended from 'eslint-plugin-prettier/recommended';\nimport reactPlugin from 'eslint-plugin-react';\nimport reactHooks from 'eslint-plugin-react-hooks';\nimport unusedImports from 'eslint-plugin-unused-imports';\nimport globalsImp from 'globals';\nimport { config, configs } from 'typescript-eslint';\n\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\nconst globals = globalsImp as Record<string, Record<string, boolean>>;\n\nfunction eslintNextConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray {\n return config(\n js.configs.recommended,\n ...compat.config({\n extends: ['next/core-web-vitals'],\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 {\n files: ['**/*.{js,jsx,mjs}'],\n extends: [configs.base],\n },\n {\n files: ['**/*.{ts,tsx}'],\n extends: [...configs.recommended, ...configs.recommendedTypeChecked],\n languageOptions: {\n parserOptions: {\n ecmaVersion: 'latest',\n sourceType: 'module',\n project: true,\n tsconfigRootDir: './',\n },\n },\n rules: {\n '@typescript-eslint/explicit-module-boundary-types': 'error',\n '@typescript-eslint/no-explicit-any': 'error',\n '@typescript-eslint/no-unused-vars': 'off',\n },\n },\n {\n files: ['**/*.{jsx,tsx}'],\n ...reactPlugin.configs.flat.recommended,\n ...reactPlugin.configs.flat['jsx-runtime'],\n languageOptions: {\n ...reactPlugin.configs.flat.recommended.languageOptions,\n globals: {\n ...globals.serviceworker,\n ...Object.keys(globals.browser).reduce<Record<string, boolean>>((acc, key) => {\n acc[key.trim()] = globals.browser[key];\n return acc;\n }, {}),\n },\n },\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 {\n files: ['**/*.test.{js,ts,jsx,tsx}'],\n ...jest.configs['flat/recommended'],\n languageOptions: {\n globals: {\n ...globals.jest,\n //...globals.vitest,\n },\n },\n },\n prettierRecommended,\n {\n ignores,\n },\n {\n plugins: {\n 'unused-imports': unusedImports,\n },\n 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 '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 'sort-imports': [\n 'error',\n {\n ignoreCase: true,\n ignoreDeclarationSort: true,\n ignoreMemberSort: false,\n },\n ],\n },\n },\n );\n}\n\nexport { eslintNextConfig };\n"],"names":["compat","FlatCompat","baseDirectory","dirname","fileURLToPath","url","globals","globalsImp","eslintNextConfig","ignores","config","js","configs","recommended","extends","rules","groups","pathGroups","pattern","group","position","pathGroupsExcludedImportTypes","alphabetize","order","caseInsensitive","files","base","recommendedTypeChecked","languageOptions","parserOptions","ecmaVersion","sourceType","project","tsconfigRootDir","reactPlugin","flat","serviceworker","Object","keys","browser","reduce","acc","key","trim","plugins","reactHooks","jest","prettierRecommended","unusedImports","semi","trailingComma","singleQuote","jsxSingleQuote","printWidth","tabWidth","usePrettierrc","fileInfoOptions","withNodeModules","vars","varsIgnorePattern","args","argsIgnorePattern","ignoreCase","ignoreDeclarationSort","ignoreMemberSort"],"mappings":"saAgBA,MAGMA,EAAS,IAAIC,EAAW,CAC5BC,cAHgBC,EADCC,cAA0BC,QAOvCC,EAAUC,EAEhB,SAASC,GAAiBC,QAAEA,IAC1B,OAAOC,EACLC,EAAGC,QAAQC,eACRb,EAAOU,OAAO,CACfI,QAAS,CAAC,wBACVC,MAAO,CACL,eAAgB,CACd,QACA,CACEC,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,QAM3B,CACEC,MAAO,CAAC,qBACRX,QAAS,CAACF,EAAQc,OAEpB,CACED,MAAO,CAAC,iBACRX,QAAS,IAAIF,EAAQC,eAAgBD,EAAQe,wBAC7CC,gBAAiB,CACfC,cAAe,CACbC,YAAa,SACbC,WAAY,SACZC,SAAS,EACTC,gBAAiB,OAGrBlB,MAAO,CACL,oDAAqD,QACrD,qCAAsC,QACtC,oCAAqC,QAGzC,CACEU,MAAO,CAAC,qBACLS,EAAYtB,QAAQuB,KAAKtB,eACzBqB,EAAYtB,QAAQuB,KAAK,eAC5BP,gBAAiB,IACZM,EAAYtB,QAAQuB,KAAKtB,YAAYe,gBACxCtB,QAAS,IACJA,EAAQ8B,iBACRC,OAAOC,KAAKhC,EAAQiC,SAASC,QAAgC,CAACC,EAAKC,KACpED,EAAIC,EAAIC,QAAUrC,EAAQiC,QAAQG,GAC3BD,IACN,CAAG,KAGVG,QAAS,CACP,cAAeC,GAEjB9B,MAAO,IACF8B,EAAWjC,QAAQC,YAAYE,MAClC,2BAA4B,MAC5B,uBAAwB,QAG5B,CACEU,MAAO,CAAC,gCACLqB,EAAKlC,QAAQ,oBAChBgB,gBAAiB,CACftB,QAAS,IACJA,EAAQwC,QAKjBC,EACA,CACEtC,WAEF,CACEmC,QAAS,CACP,iBAAkBI,GAEpBjC,MAAO,CACL,oBAAqB,CACnB,QACA,CACEkC,MAAM,EACNC,cAAe,MACfC,aAAa,EACbC,gBAAgB,EAChBC,WAAY,IACZC,SAAU,GAEZ,CACEC,eAAe,EACfC,gBAAiB,CACfC,iBAAiB,KAIvB,iBAAkB,MAClB,mCAAoC,QACpC,gCAAiC,CAC/B,QACA,CACEC,KAAM,MACNC,kBAAmB,KACnBC,KAAM,aACNC,kBAAmB,OAGvB,eAAgB,CACd,QACA,CACEC,YAAY,EACZC,uBAAuB,EACvBC,kBAAkB,MAM9B"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("@eslint/js"),r=require("eslint-plugin-import"),s=require("eslint-plugin-jest"),t=require("eslint-plugin-prettier/recommended"),i=require("eslint-plugin-react"),n=require("eslint-plugin-react-hooks"),o=require("eslint-plugin-unused-imports"),l=require("globals"),a=require("typescript-eslint");const u=l;exports.eslintReactConfig=function({ignores:l}){return a.config(e.configs.recommended,r.flatConfigs.recommended,r.flatConfigs.typescript,...a.configs.recommended,{files:["**/*.{ts,tsx}"],extends:[...a.configs.recommendedTypeChecked],languageOptions:{parserOptions:{ecmaVersion:"latest",sourceType:"module",project:!0,tsconfigRootDir:"./"}},rules:{"@typescript-eslint/explicit-module-boundary-types":"error","@typescript-eslint/no-explicit-any":"error","@typescript-eslint/no-unused-vars":"off"}},{files:["**/*.{jsx,tsx}"],...i.configs.flat.recommended,...i.configs.flat["jsx-runtime"],languageOptions:{...i.configs.flat.recommended.languageOptions,globals:{...u.serviceworker,...Object.keys(u.browser).reduce(((e,r)=>(e[r.trim()]=u.browser[r],e)),{})}},plugins:{"react-hooks":n},rules:{...n.configs.recommended.rules,"react/react-in-jsx-scope":"off","react/jsx-uses-react":"off"}},{files:["**/*.test.{js,ts,jsx,tsx}"],...s.configs["flat/recommended"],languageOptions:{globals:{...u.jest}}},t,{ignores:l},{plugins:{"unused-imports":o},rules:{"prettier/prettier":["error",{semi:!0,trailingComma:"all",singleQuote:!0,jsxSingleQuote:!0,printWidth:120,tabWidth:2},{usePrettierrc:!1,fileInfoOptions:{withNodeModules:!0}}],"no-unused-vars":"off","unused-imports/no-unused-imports":"error","unused-imports/no-unused-vars":["error",{vars:"all",varsIgnorePattern:"^_",args:"after-used",argsIgnorePattern:"^_"}],"sort-imports":["error",{ignoreCase:!0,ignoreDeclarationSort:!0,ignoreMemberSort:!1}],"import/order":["error",{groups:["builtin","external","internal",["parent","sibling"]],pathGroups:[{pattern:"react",group:"external",position:"before"}],pathGroupsExcludedImportTypes:["react"],"newlines-between":"always",alphabetize:{order:"asc",caseInsensitive:!0}}]},settings:{"import/resolver":{typescript:!0,node:!0},react:{version:"detect"}}})};
1
+ "use strict";var e=require("@eslint/js"),r=require("eslint-plugin-import"),s=require("eslint-plugin-jest"),t=require("eslint-plugin-prettier/recommended"),i=require("eslint-plugin-react"),n=require("eslint-plugin-react-hooks"),o=require("eslint-plugin-unused-imports"),l=require("globals"),a=require("typescript-eslint");const p=l;exports.eslintReactConfig=function({ignores:l}){return a.config(e.configs.recommended,r.flatConfigs.recommended,{files:["**/*.{js,jsx,mjs}"],extends:[a.configs.base]},{files:["**/*.{ts,tsx}"],extends:[r.flatConfigs.typescript,...a.configs.recommended,...a.configs.recommendedTypeChecked],languageOptions:{parserOptions:{ecmaVersion:"latest",sourceType:"module",project:!0,tsconfigRootDir:"./"}},rules:{"@typescript-eslint/explicit-module-boundary-types":"error","@typescript-eslint/no-explicit-any":"error","@typescript-eslint/no-unused-vars":"off"}},{files:["**/*.{jsx,tsx}"],...i.configs.flat.recommended,...i.configs.flat["jsx-runtime"],languageOptions:{...i.configs.flat.recommended.languageOptions,globals:{...p.serviceworker,...Object.keys(p.browser).reduce(((e,r)=>(e[r.trim()]=p.browser[r],e)),{})}},plugins:{"react-hooks":n},rules:{...n.configs.recommended.rules,"react/react-in-jsx-scope":"off","react/jsx-uses-react":"off"}},{files:["**/*.test.{js,ts,jsx,tsx}"],...s.configs["flat/recommended"],languageOptions:{globals:{...p.jest}}},t,{ignores:l},{plugins:{"unused-imports":o},rules:{"prettier/prettier":["error",{semi:!0,trailingComma:"all",singleQuote:!0,jsxSingleQuote:!0,printWidth:120,tabWidth:2},{usePrettierrc:!1,fileInfoOptions:{withNodeModules:!0}}],"no-unused-vars":"off","unused-imports/no-unused-imports":"error","unused-imports/no-unused-vars":["error",{vars:"all",varsIgnorePattern:"^_",args:"after-used",argsIgnorePattern:"^_"}],"sort-imports":["error",{ignoreCase:!0,ignoreDeclarationSort:!0,ignoreMemberSort:!1}],"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},react:{version:"detect"}}})};
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../src/react/eslintReactConfig.ts"],"sourcesContent":["import js from '@eslint/js';\nimport type { TSESLint } from '@typescript-eslint/utils';\nimport imports from 'eslint-plugin-import';\nimport jest from 'eslint-plugin-jest';\nimport prettierRecommended from 'eslint-plugin-prettier/recommended';\nimport reactPlugin from 'eslint-plugin-react';\nimport reactHooks from 'eslint-plugin-react-hooks';\nimport unusedImports from 'eslint-plugin-unused-imports';\nimport globalsImp from 'globals';\nimport { config, configs } from 'typescript-eslint';\n\nimport { EslintOptions } from '../types/index.js';\n\nconst globals = globalsImp as Record<string, Record<string, boolean>>;\n\nfunction eslintReactConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray {\n return config(\n js.configs.recommended,\n imports.flatConfigs.recommended,\n imports.flatConfigs.typescript,\n ...configs.recommended,\n {\n files: ['**/*.{ts,tsx}'],\n extends: [...configs.recommendedTypeChecked],\n languageOptions: {\n parserOptions: {\n ecmaVersion: 'latest',\n sourceType: 'module',\n project: true,\n tsconfigRootDir: './',\n },\n },\n rules: {\n '@typescript-eslint/explicit-module-boundary-types': 'error',\n '@typescript-eslint/no-explicit-any': 'error',\n '@typescript-eslint/no-unused-vars': 'off',\n },\n },\n {\n files: ['**/*.{jsx,tsx}'],\n ...reactPlugin.configs.flat.recommended,\n ...reactPlugin.configs.flat['jsx-runtime'],\n languageOptions: {\n ...reactPlugin.configs.flat.recommended.languageOptions,\n globals: {\n ...globals.serviceworker,\n ...Object.keys(globals.browser).reduce<Record<string, boolean>>((acc, key) => {\n acc[key.trim()] = globals.browser[key];\n return acc;\n }, {}),\n },\n },\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 {\n files: ['**/*.test.{js,ts,jsx,tsx}'],\n ...jest.configs['flat/recommended'],\n languageOptions: {\n globals: {\n ...globals.jest,\n //...globals.vitest,\n },\n },\n },\n prettierRecommended,\n {\n ignores,\n },\n {\n plugins: {\n 'unused-imports': unusedImports,\n },\n 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 '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 'sort-imports': [\n 'error',\n {\n ignoreCase: true,\n ignoreDeclarationSort: true,\n ignoreMemberSort: false,\n },\n ],\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 pathGroupsExcludedImportTypes: ['react'],\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 react: {\n version: 'detect',\n },\n },\n },\n );\n}\n\nexport { eslintReactConfig };\n"],"names":["globals","globalsImp","ignores","config","js","configs","recommended","imports","flatConfigs","typescript","files","extends","recommendedTypeChecked","languageOptions","parserOptions","ecmaVersion","sourceType","project","tsconfigRootDir","rules","reactPlugin","flat","serviceworker","Object","keys","browser","reduce","acc","key","trim","plugins","reactHooks","jest","prettierRecommended","unusedImports","semi","trailingComma","singleQuote","jsxSingleQuote","printWidth","tabWidth","usePrettierrc","fileInfoOptions","withNodeModules","vars","varsIgnorePattern","args","argsIgnorePattern","ignoreCase","ignoreDeclarationSort","ignoreMemberSort","groups","pathGroups","pattern","group","position","pathGroupsExcludedImportTypes","alphabetize","order","caseInsensitive","settings","node","react","version"],"mappings":"iUAaA,MAAMA,EAAUC,4BAEhB,UAA2BC,QAAEA,IAC3B,OAAOC,SACLC,EAAGC,QAAQC,YACXC,EAAQC,YAAYF,YACpBC,EAAQC,YAAYC,cACjBJ,EAAAA,QAAQC,YACX,CACEI,MAAO,CAAC,iBACRC,QAAS,IAAIN,UAAQO,wBACrBC,gBAAiB,CACfC,cAAe,CACbC,YAAa,SACbC,WAAY,SACZC,SAAS,EACTC,gBAAiB,OAGrBC,MAAO,CACL,oDAAqD,QACrD,qCAAsC,QACtC,oCAAqC,QAGzC,CACET,MAAO,CAAC,qBACLU,EAAYf,QAAQgB,KAAKf,eACzBc,EAAYf,QAAQgB,KAAK,eAC5BR,gBAAiB,IACZO,EAAYf,QAAQgB,KAAKf,YAAYO,gBACxCb,QAAS,IACJA,EAAQsB,iBACRC,OAAOC,KAAKxB,EAAQyB,SAASC,QAAgC,CAACC,EAAKC,KACpED,EAAIC,EAAIC,QAAU7B,EAAQyB,QAAQG,GAC3BD,IACN,CAAG,KAGVG,QAAS,CACP,cAAeC,GAEjBZ,MAAO,IACFY,EAAW1B,QAAQC,YAAYa,MAClC,2BAA4B,MAC5B,uBAAwB,QAG5B,CACET,MAAO,CAAC,gCACLsB,EAAK3B,QAAQ,oBAChBQ,gBAAiB,CACfb,QAAS,IACJA,EAAQgC,QAKjBC,EACA,CACE/B,WAEF,CACE4B,QAAS,CACP,iBAAkBI,GAEpBf,MAAO,CACL,oBAAqB,CACnB,QACA,CACEgB,MAAM,EACNC,cAAe,MACfC,aAAa,EACbC,gBAAgB,EAChBC,WAAY,IACZC,SAAU,GAEZ,CACEC,eAAe,EACfC,gBAAiB,CACfC,iBAAiB,KAIvB,iBAAkB,MAClB,mCAAoC,QACpC,gCAAiC,CAC/B,QACA,CACEC,KAAM,MACNC,kBAAmB,KACnBC,KAAM,aACNC,kBAAmB,OAGvB,eAAgB,CACd,QACA,CACEC,YAAY,EACZC,uBAAuB,EACvBC,kBAAkB,IAGtB,eAAgB,CACd,QACA,CACEC,OAAQ,CAAC,UAAW,WAAY,WAAY,CAAC,SAAU,YACvDC,WAAY,CACV,CACEC,QAAS,QACTC,MAAO,WACPC,SAAU,WAGdC,8BAA+B,CAAC,SAChC,mBAAoB,SACpBC,YAAa,CACXC,MAAO,MACPC,iBAAiB,MAKzBC,SAAU,CACR,kBAAmB,CACjBnD,YAAY,EACZoD,MAAM,GAERC,MAAO,CACLC,QAAS,YAKnB"}
1
+ {"version":3,"file":"index.cjs","sources":["../../src/react/eslintReactConfig.ts"],"sourcesContent":["import js from '@eslint/js';\nimport type { TSESLint } from '@typescript-eslint/utils';\nimport imports from 'eslint-plugin-import';\nimport jest from 'eslint-plugin-jest';\nimport prettierRecommended from 'eslint-plugin-prettier/recommended';\nimport reactPlugin from 'eslint-plugin-react';\nimport reactHooks from 'eslint-plugin-react-hooks';\nimport unusedImports from 'eslint-plugin-unused-imports';\nimport globalsImp from 'globals';\nimport { config, configs } from 'typescript-eslint';\n\nimport { EslintOptions } from '../types/index.js';\n\nconst globals = globalsImp as Record<string, Record<string, boolean>>;\n\nfunction eslintReactConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray {\n return config(\n js.configs.recommended,\n imports.flatConfigs.recommended,\n {\n files: ['**/*.{js,jsx,mjs}'],\n extends: [configs.base],\n },\n {\n files: ['**/*.{ts,tsx}'],\n extends: [imports.flatConfigs.typescript, ...configs.recommended, ...configs.recommendedTypeChecked],\n languageOptions: {\n parserOptions: {\n ecmaVersion: 'latest',\n sourceType: 'module',\n project: true,\n tsconfigRootDir: './',\n },\n },\n rules: {\n '@typescript-eslint/explicit-module-boundary-types': 'error',\n '@typescript-eslint/no-explicit-any': 'error',\n '@typescript-eslint/no-unused-vars': 'off',\n },\n },\n {\n files: ['**/*.{jsx,tsx}'],\n ...reactPlugin.configs.flat.recommended,\n ...reactPlugin.configs.flat['jsx-runtime'],\n languageOptions: {\n ...reactPlugin.configs.flat.recommended.languageOptions,\n globals: {\n ...globals.serviceworker,\n ...Object.keys(globals.browser).reduce<Record<string, boolean>>((acc, key) => {\n acc[key.trim()] = globals.browser[key];\n return acc;\n }, {}),\n },\n },\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 {\n files: ['**/*.test.{js,ts,jsx,tsx}'],\n ...jest.configs['flat/recommended'],\n languageOptions: {\n globals: {\n ...globals.jest,\n //...globals.vitest,\n },\n },\n },\n prettierRecommended,\n {\n ignores,\n },\n {\n plugins: {\n 'unused-imports': unusedImports,\n },\n 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 '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 'sort-imports': [\n 'error',\n {\n ignoreCase: true,\n ignoreDeclarationSort: true,\n ignoreMemberSort: false,\n },\n ],\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 react: {\n version: 'detect',\n },\n },\n },\n );\n}\n\nexport { eslintReactConfig };\n"],"names":["globals","globalsImp","ignores","config","js","configs","recommended","imports","flatConfigs","files","extends","base","typescript","recommendedTypeChecked","languageOptions","parserOptions","ecmaVersion","sourceType","project","tsconfigRootDir","rules","reactPlugin","flat","serviceworker","Object","keys","browser","reduce","acc","key","trim","plugins","reactHooks","jest","prettierRecommended","unusedImports","semi","trailingComma","singleQuote","jsxSingleQuote","printWidth","tabWidth","usePrettierrc","fileInfoOptions","withNodeModules","vars","varsIgnorePattern","args","argsIgnorePattern","ignoreCase","ignoreDeclarationSort","ignoreMemberSort","groups","pathGroups","pattern","group","position","pathGroupsExcludedImportTypes","alphabetize","order","caseInsensitive","settings","node","react","version"],"mappings":"iUAaA,MAAMA,EAAUC,4BAEhB,UAA2BC,QAAEA,IAC3B,OAAOC,EAAAA,OACLC,EAAGC,QAAQC,YACXC,EAAQC,YAAYF,YACpB,CACEG,MAAO,CAAC,qBACRC,QAAS,CAACL,UAAQM,OAEpB,CACEF,MAAO,CAAC,iBACRC,QAAS,CAACH,EAAQC,YAAYI,cAAeP,EAAAA,QAAQC,eAAgBD,UAAQQ,wBAC7EC,gBAAiB,CACfC,cAAe,CACbC,YAAa,SACbC,WAAY,SACZC,SAAS,EACTC,gBAAiB,OAGrBC,MAAO,CACL,oDAAqD,QACrD,qCAAsC,QACtC,oCAAqC,QAGzC,CACEX,MAAO,CAAC,qBACLY,EAAYhB,QAAQiB,KAAKhB,eACzBe,EAAYhB,QAAQiB,KAAK,eAC5BR,gBAAiB,IACZO,EAAYhB,QAAQiB,KAAKhB,YAAYQ,gBACxCd,QAAS,IACJA,EAAQuB,iBACRC,OAAOC,KAAKzB,EAAQ0B,SAASC,QAAgC,CAACC,EAAKC,KACpED,EAAIC,EAAIC,QAAU9B,EAAQ0B,QAAQG,GAC3BD,IACN,CAAG,KAGVG,QAAS,CACP,cAAeC,GAEjBZ,MAAO,IACFY,EAAW3B,QAAQC,YAAYc,MAClC,2BAA4B,MAC5B,uBAAwB,QAG5B,CACEX,MAAO,CAAC,gCACLwB,EAAK5B,QAAQ,oBAChBS,gBAAiB,CACfd,QAAS,IACJA,EAAQiC,QAKjBC,EACA,CACEhC,WAEF,CACE6B,QAAS,CACP,iBAAkBI,GAEpBf,MAAO,CACL,oBAAqB,CACnB,QACA,CACEgB,MAAM,EACNC,cAAe,MACfC,aAAa,EACbC,gBAAgB,EAChBC,WAAY,IACZC,SAAU,GAEZ,CACEC,eAAe,EACfC,gBAAiB,CACfC,iBAAiB,KAIvB,iBAAkB,MAClB,mCAAoC,QACpC,gCAAiC,CAC/B,QACA,CACEC,KAAM,MACNC,kBAAmB,KACnBC,KAAM,aACNC,kBAAmB,OAGvB,eAAgB,CACd,QACA,CACEC,YAAY,EACZC,uBAAuB,EACvBC,kBAAkB,IAGtB,eAAgB,CACd,QACA,CACEC,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,CACjBjD,YAAY,EACZkD,MAAM,GAERC,MAAO,CACLC,QAAS,YAKnB"}
@@ -1,2 +1,2 @@
1
- import e from"@eslint/js";import r from"eslint-plugin-import";import t from"eslint-plugin-jest";import s from"eslint-plugin-prettier/recommended";import o from"eslint-plugin-react";import i from"eslint-plugin-react-hooks";import n from"eslint-plugin-unused-imports";import p from"globals";import{config as l,configs as a}from"typescript-eslint";const m=p;function u({ignores:p}){return l(e.configs.recommended,r.flatConfigs.recommended,r.flatConfigs.typescript,...a.recommended,{files:["**/*.{ts,tsx}"],extends:[...a.recommendedTypeChecked],languageOptions:{parserOptions:{ecmaVersion:"latest",sourceType:"module",project:!0,tsconfigRootDir:"./"}},rules:{"@typescript-eslint/explicit-module-boundary-types":"error","@typescript-eslint/no-explicit-any":"error","@typescript-eslint/no-unused-vars":"off"}},{files:["**/*.{jsx,tsx}"],...o.configs.flat.recommended,...o.configs.flat["jsx-runtime"],languageOptions:{...o.configs.flat.recommended.languageOptions,globals:{...m.serviceworker,...Object.keys(m.browser).reduce(((e,r)=>(e[r.trim()]=m.browser[r],e)),{})}},plugins:{"react-hooks":i},rules:{...i.configs.recommended.rules,"react/react-in-jsx-scope":"off","react/jsx-uses-react":"off"}},{files:["**/*.test.{js,ts,jsx,tsx}"],...t.configs["flat/recommended"],languageOptions:{globals:{...m.jest}}},s,{ignores:p},{plugins:{"unused-imports":n},rules:{"prettier/prettier":["error",{semi:!0,trailingComma:"all",singleQuote:!0,jsxSingleQuote:!0,printWidth:120,tabWidth:2},{usePrettierrc:!1,fileInfoOptions:{withNodeModules:!0}}],"no-unused-vars":"off","unused-imports/no-unused-imports":"error","unused-imports/no-unused-vars":["error",{vars:"all",varsIgnorePattern:"^_",args:"after-used",argsIgnorePattern:"^_"}],"sort-imports":["error",{ignoreCase:!0,ignoreDeclarationSort:!0,ignoreMemberSort:!1}],"import/order":["error",{groups:["builtin","external","internal",["parent","sibling"]],pathGroups:[{pattern:"react",group:"external",position:"before"}],pathGroupsExcludedImportTypes:["react"],"newlines-between":"always",alphabetize:{order:"asc",caseInsensitive:!0}}]},settings:{"import/resolver":{typescript:!0,node:!0},react:{version:"detect"}}})}export{u as eslintReactConfig};
1
+ import e from"@eslint/js";import r from"eslint-plugin-import";import t from"eslint-plugin-jest";import s from"eslint-plugin-prettier/recommended";import o from"eslint-plugin-react";import i from"eslint-plugin-react-hooks";import n from"eslint-plugin-unused-imports";import l from"globals";import{config as p,configs as a}from"typescript-eslint";const m=l;function u({ignores:l}){return p(e.configs.recommended,r.flatConfigs.recommended,{files:["**/*.{js,jsx,mjs}"],extends:[a.base]},{files:["**/*.{ts,tsx}"],extends:[r.flatConfigs.typescript,...a.recommended,...a.recommendedTypeChecked],languageOptions:{parserOptions:{ecmaVersion:"latest",sourceType:"module",project:!0,tsconfigRootDir:"./"}},rules:{"@typescript-eslint/explicit-module-boundary-types":"error","@typescript-eslint/no-explicit-any":"error","@typescript-eslint/no-unused-vars":"off"}},{files:["**/*.{jsx,tsx}"],...o.configs.flat.recommended,...o.configs.flat["jsx-runtime"],languageOptions:{...o.configs.flat.recommended.languageOptions,globals:{...m.serviceworker,...Object.keys(m.browser).reduce(((e,r)=>(e[r.trim()]=m.browser[r],e)),{})}},plugins:{"react-hooks":i},rules:{...i.configs.recommended.rules,"react/react-in-jsx-scope":"off","react/jsx-uses-react":"off"}},{files:["**/*.test.{js,ts,jsx,tsx}"],...t.configs["flat/recommended"],languageOptions:{globals:{...m.jest}}},s,{ignores:l},{plugins:{"unused-imports":n},rules:{"prettier/prettier":["error",{semi:!0,trailingComma:"all",singleQuote:!0,jsxSingleQuote:!0,printWidth:120,tabWidth:2},{usePrettierrc:!1,fileInfoOptions:{withNodeModules:!0}}],"no-unused-vars":"off","unused-imports/no-unused-imports":"error","unused-imports/no-unused-vars":["error",{vars:"all",varsIgnorePattern:"^_",args:"after-used",argsIgnorePattern:"^_"}],"sort-imports":["error",{ignoreCase:!0,ignoreDeclarationSort:!0,ignoreMemberSort:!1}],"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},react:{version:"detect"}}})}export{u as eslintReactConfig};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/react/eslintReactConfig.ts"],"sourcesContent":["import js from '@eslint/js';\nimport type { TSESLint } from '@typescript-eslint/utils';\nimport imports from 'eslint-plugin-import';\nimport jest from 'eslint-plugin-jest';\nimport prettierRecommended from 'eslint-plugin-prettier/recommended';\nimport reactPlugin from 'eslint-plugin-react';\nimport reactHooks from 'eslint-plugin-react-hooks';\nimport unusedImports from 'eslint-plugin-unused-imports';\nimport globalsImp from 'globals';\nimport { config, configs } from 'typescript-eslint';\n\nimport { EslintOptions } from '../types/index.js';\n\nconst globals = globalsImp as Record<string, Record<string, boolean>>;\n\nfunction eslintReactConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray {\n return config(\n js.configs.recommended,\n imports.flatConfigs.recommended,\n imports.flatConfigs.typescript,\n ...configs.recommended,\n {\n files: ['**/*.{ts,tsx}'],\n extends: [...configs.recommendedTypeChecked],\n languageOptions: {\n parserOptions: {\n ecmaVersion: 'latest',\n sourceType: 'module',\n project: true,\n tsconfigRootDir: './',\n },\n },\n rules: {\n '@typescript-eslint/explicit-module-boundary-types': 'error',\n '@typescript-eslint/no-explicit-any': 'error',\n '@typescript-eslint/no-unused-vars': 'off',\n },\n },\n {\n files: ['**/*.{jsx,tsx}'],\n ...reactPlugin.configs.flat.recommended,\n ...reactPlugin.configs.flat['jsx-runtime'],\n languageOptions: {\n ...reactPlugin.configs.flat.recommended.languageOptions,\n globals: {\n ...globals.serviceworker,\n ...Object.keys(globals.browser).reduce<Record<string, boolean>>((acc, key) => {\n acc[key.trim()] = globals.browser[key];\n return acc;\n }, {}),\n },\n },\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 {\n files: ['**/*.test.{js,ts,jsx,tsx}'],\n ...jest.configs['flat/recommended'],\n languageOptions: {\n globals: {\n ...globals.jest,\n //...globals.vitest,\n },\n },\n },\n prettierRecommended,\n {\n ignores,\n },\n {\n plugins: {\n 'unused-imports': unusedImports,\n },\n 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 '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 'sort-imports': [\n 'error',\n {\n ignoreCase: true,\n ignoreDeclarationSort: true,\n ignoreMemberSort: false,\n },\n ],\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 pathGroupsExcludedImportTypes: ['react'],\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 react: {\n version: 'detect',\n },\n },\n },\n );\n}\n\nexport { eslintReactConfig };\n"],"names":["globals","globalsImp","eslintReactConfig","ignores","config","js","configs","recommended","imports","flatConfigs","typescript","files","extends","recommendedTypeChecked","languageOptions","parserOptions","ecmaVersion","sourceType","project","tsconfigRootDir","rules","reactPlugin","flat","serviceworker","Object","keys","browser","reduce","acc","key","trim","plugins","reactHooks","jest","prettierRecommended","unusedImports","semi","trailingComma","singleQuote","jsxSingleQuote","printWidth","tabWidth","usePrettierrc","fileInfoOptions","withNodeModules","vars","varsIgnorePattern","args","argsIgnorePattern","ignoreCase","ignoreDeclarationSort","ignoreMemberSort","groups","pathGroups","pattern","group","position","pathGroupsExcludedImportTypes","alphabetize","order","caseInsensitive","settings","node","react","version"],"mappings":"yVAaA,MAAMA,EAAUC,EAEhB,SAASC,GAAkBC,QAAEA,IAC3B,OAAOC,EACLC,EAAGC,QAAQC,YACXC,EAAQC,YAAYF,YACpBC,EAAQC,YAAYC,cACjBJ,EAAQC,YACX,CACEI,MAAO,CAAC,iBACRC,QAAS,IAAIN,EAAQO,wBACrBC,gBAAiB,CACfC,cAAe,CACbC,YAAa,SACbC,WAAY,SACZC,SAAS,EACTC,gBAAiB,OAGrBC,MAAO,CACL,oDAAqD,QACrD,qCAAsC,QACtC,oCAAqC,QAGzC,CACET,MAAO,CAAC,qBACLU,EAAYf,QAAQgB,KAAKf,eACzBc,EAAYf,QAAQgB,KAAK,eAC5BR,gBAAiB,IACZO,EAAYf,QAAQgB,KAAKf,YAAYO,gBACxCd,QAAS,IACJA,EAAQuB,iBACRC,OAAOC,KAAKzB,EAAQ0B,SAASC,QAAgC,CAACC,EAAKC,KACpED,EAAIC,EAAIC,QAAU9B,EAAQ0B,QAAQG,GAC3BD,IACN,CAAG,KAGVG,QAAS,CACP,cAAeC,GAEjBZ,MAAO,IACFY,EAAW1B,QAAQC,YAAYa,MAClC,2BAA4B,MAC5B,uBAAwB,QAG5B,CACET,MAAO,CAAC,gCACLsB,EAAK3B,QAAQ,oBAChBQ,gBAAiB,CACfd,QAAS,IACJA,EAAQiC,QAKjBC,EACA,CACE/B,WAEF,CACE4B,QAAS,CACP,iBAAkBI,GAEpBf,MAAO,CACL,oBAAqB,CACnB,QACA,CACEgB,MAAM,EACNC,cAAe,MACfC,aAAa,EACbC,gBAAgB,EAChBC,WAAY,IACZC,SAAU,GAEZ,CACEC,eAAe,EACfC,gBAAiB,CACfC,iBAAiB,KAIvB,iBAAkB,MAClB,mCAAoC,QACpC,gCAAiC,CAC/B,QACA,CACEC,KAAM,MACNC,kBAAmB,KACnBC,KAAM,aACNC,kBAAmB,OAGvB,eAAgB,CACd,QACA,CACEC,YAAY,EACZC,uBAAuB,EACvBC,kBAAkB,IAGtB,eAAgB,CACd,QACA,CACEC,OAAQ,CAAC,UAAW,WAAY,WAAY,CAAC,SAAU,YACvDC,WAAY,CACV,CACEC,QAAS,QACTC,MAAO,WACPC,SAAU,WAGdC,8BAA+B,CAAC,SAChC,mBAAoB,SACpBC,YAAa,CACXC,MAAO,MACPC,iBAAiB,MAKzBC,SAAU,CACR,kBAAmB,CACjBnD,YAAY,EACZoD,MAAM,GAERC,MAAO,CACLC,QAAS,YAKnB"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/react/eslintReactConfig.ts"],"sourcesContent":["import js from '@eslint/js';\nimport type { TSESLint } from '@typescript-eslint/utils';\nimport imports from 'eslint-plugin-import';\nimport jest from 'eslint-plugin-jest';\nimport prettierRecommended from 'eslint-plugin-prettier/recommended';\nimport reactPlugin from 'eslint-plugin-react';\nimport reactHooks from 'eslint-plugin-react-hooks';\nimport unusedImports from 'eslint-plugin-unused-imports';\nimport globalsImp from 'globals';\nimport { config, configs } from 'typescript-eslint';\n\nimport { EslintOptions } from '../types/index.js';\n\nconst globals = globalsImp as Record<string, Record<string, boolean>>;\n\nfunction eslintReactConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray {\n return config(\n js.configs.recommended,\n imports.flatConfigs.recommended,\n {\n files: ['**/*.{js,jsx,mjs}'],\n extends: [configs.base],\n },\n {\n files: ['**/*.{ts,tsx}'],\n extends: [imports.flatConfigs.typescript, ...configs.recommended, ...configs.recommendedTypeChecked],\n languageOptions: {\n parserOptions: {\n ecmaVersion: 'latest',\n sourceType: 'module',\n project: true,\n tsconfigRootDir: './',\n },\n },\n rules: {\n '@typescript-eslint/explicit-module-boundary-types': 'error',\n '@typescript-eslint/no-explicit-any': 'error',\n '@typescript-eslint/no-unused-vars': 'off',\n },\n },\n {\n files: ['**/*.{jsx,tsx}'],\n ...reactPlugin.configs.flat.recommended,\n ...reactPlugin.configs.flat['jsx-runtime'],\n languageOptions: {\n ...reactPlugin.configs.flat.recommended.languageOptions,\n globals: {\n ...globals.serviceworker,\n ...Object.keys(globals.browser).reduce<Record<string, boolean>>((acc, key) => {\n acc[key.trim()] = globals.browser[key];\n return acc;\n }, {}),\n },\n },\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 {\n files: ['**/*.test.{js,ts,jsx,tsx}'],\n ...jest.configs['flat/recommended'],\n languageOptions: {\n globals: {\n ...globals.jest,\n //...globals.vitest,\n },\n },\n },\n prettierRecommended,\n {\n ignores,\n },\n {\n plugins: {\n 'unused-imports': unusedImports,\n },\n 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 '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 'sort-imports': [\n 'error',\n {\n ignoreCase: true,\n ignoreDeclarationSort: true,\n ignoreMemberSort: false,\n },\n ],\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 react: {\n version: 'detect',\n },\n },\n },\n );\n}\n\nexport { eslintReactConfig };\n"],"names":["globals","globalsImp","eslintReactConfig","ignores","config","js","configs","recommended","imports","flatConfigs","files","extends","base","typescript","recommendedTypeChecked","languageOptions","parserOptions","ecmaVersion","sourceType","project","tsconfigRootDir","rules","reactPlugin","flat","serviceworker","Object","keys","browser","reduce","acc","key","trim","plugins","reactHooks","jest","prettierRecommended","unusedImports","semi","trailingComma","singleQuote","jsxSingleQuote","printWidth","tabWidth","usePrettierrc","fileInfoOptions","withNodeModules","vars","varsIgnorePattern","args","argsIgnorePattern","ignoreCase","ignoreDeclarationSort","ignoreMemberSort","groups","pathGroups","pattern","group","position","pathGroupsExcludedImportTypes","alphabetize","order","caseInsensitive","settings","node","react","version"],"mappings":"yVAaA,MAAMA,EAAUC,EAEhB,SAASC,GAAkBC,QAAEA,IAC3B,OAAOC,EACLC,EAAGC,QAAQC,YACXC,EAAQC,YAAYF,YACpB,CACEG,MAAO,CAAC,qBACRC,QAAS,CAACL,EAAQM,OAEpB,CACEF,MAAO,CAAC,iBACRC,QAAS,CAACH,EAAQC,YAAYI,cAAeP,EAAQC,eAAgBD,EAAQQ,wBAC7EC,gBAAiB,CACfC,cAAe,CACbC,YAAa,SACbC,WAAY,SACZC,SAAS,EACTC,gBAAiB,OAGrBC,MAAO,CACL,oDAAqD,QACrD,qCAAsC,QACtC,oCAAqC,QAGzC,CACEX,MAAO,CAAC,qBACLY,EAAYhB,QAAQiB,KAAKhB,eACzBe,EAAYhB,QAAQiB,KAAK,eAC5BR,gBAAiB,IACZO,EAAYhB,QAAQiB,KAAKhB,YAAYQ,gBACxCf,QAAS,IACJA,EAAQwB,iBACRC,OAAOC,KAAK1B,EAAQ2B,SAASC,QAAgC,CAACC,EAAKC,KACpED,EAAIC,EAAIC,QAAU/B,EAAQ2B,QAAQG,GAC3BD,IACN,CAAG,KAGVG,QAAS,CACP,cAAeC,GAEjBZ,MAAO,IACFY,EAAW3B,QAAQC,YAAYc,MAClC,2BAA4B,MAC5B,uBAAwB,QAG5B,CACEX,MAAO,CAAC,gCACLwB,EAAK5B,QAAQ,oBAChBS,gBAAiB,CACff,QAAS,IACJA,EAAQkC,QAKjBC,EACA,CACEhC,WAEF,CACE6B,QAAS,CACP,iBAAkBI,GAEpBf,MAAO,CACL,oBAAqB,CACnB,QACA,CACEgB,MAAM,EACNC,cAAe,MACfC,aAAa,EACbC,gBAAgB,EAChBC,WAAY,IACZC,SAAU,GAEZ,CACEC,eAAe,EACfC,gBAAiB,CACfC,iBAAiB,KAIvB,iBAAkB,MAClB,mCAAoC,QACpC,gCAAiC,CAC/B,QACA,CACEC,KAAM,MACNC,kBAAmB,KACnBC,KAAM,aACNC,kBAAmB,OAGvB,eAAgB,CACd,QACA,CACEC,YAAY,EACZC,uBAAuB,EACvBC,kBAAkB,IAGtB,eAAgB,CACd,QACA,CACEC,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,CACjBjD,YAAY,EACZkD,MAAM,GAERC,MAAO,CACLC,QAAS,YAKnB"}
package/package.json CHANGED
@@ -1,6 +1,9 @@
1
1
  {
2
2
  "name": "@tarsilla/eslint-config",
3
- "version": "0.0.60",
3
+ "version": "0.1.1",
4
+ "publishConfig": {
5
+ "access": "public"
6
+ },
4
7
  "engines": {
5
8
  "node": ">=22"
6
9
  },
@@ -17,6 +20,12 @@
17
20
  "import": "./lib/library/index.mjs",
18
21
  "default": "./lib/library/index.mjs"
19
22
  },
23
+ "./next": {
24
+ "types": "./lib/next/index.d.ts",
25
+ "require": "./lib/next/index.cjs",
26
+ "import": "./lib/next/index.mjs",
27
+ "default": "./lib/next/index.mjs"
28
+ },
20
29
  "./react": {
21
30
  "types": "./lib/react/index.d.ts",
22
31
  "require": "./lib/react/index.cjs",
@@ -48,23 +57,25 @@
48
57
  "eslint": "^9"
49
58
  },
50
59
  "dependencies": {
60
+ "@eslint/eslintrc": "^3.3.0",
51
61
  "@eslint/js": "^9.21.0",
52
- "@types/node": "^22.13.5",
53
- "eslint-config-prettier": "^10.0.1",
62
+ "@types/node": "^22.13.9",
63
+ "eslint-config-next": "^15.2.1",
64
+ "eslint-config-prettier": "^10.0.2",
54
65
  "eslint-import-resolver-typescript": "^3.8.3",
55
66
  "eslint-plugin-import": "^2.31.0",
56
67
  "eslint-plugin-jest": "^28.11.0",
57
68
  "eslint-plugin-prettier": "^5.2.3",
58
69
  "eslint-plugin-react": "^7.37.4",
59
- "eslint-plugin-react-hooks": "^5.1.0",
70
+ "eslint-plugin-react-hooks": "^5.2.0",
60
71
  "eslint-plugin-unused-imports": "^4.1.4",
61
- "prettier": "^3.5.2",
62
- "typescript-eslint": "^8.25.0"
72
+ "prettier": "^3.5.3",
73
+ "typescript-eslint": "^8.26.0"
63
74
  },
64
75
  "devDependencies": {
65
76
  "@commitlint/cli": "^19.7.1",
66
77
  "@commitlint/config-conventional": "^19.7.1",
67
- "@rollup/plugin-commonjs": "^28.0.2",
78
+ "@rollup/plugin-commonjs": "^28.0.3",
68
79
  "@rollup/plugin-node-resolve": "^16.0.0",
69
80
  "@rollup/plugin-swc": "^0.4.0",
70
81
  "@rollup/plugin-terser": "^0.4.4",
@@ -75,11 +86,11 @@
75
86
  "@semantic-release/release-notes-generator": "^14.0.3",
76
87
  "cz-conventional-changelog": "^3.3.0",
77
88
  "husky": "^9.1.7",
78
- "rollup": "^4.34.8",
89
+ "rollup": "^4.34.9",
79
90
  "rollup-plugin-dts": "^6.1.1",
80
91
  "rollup-plugin-peer-deps-external": "^2.2.4",
81
92
  "semantic-release": "^24.2.3",
82
- "typescript": "^5.7.3"
93
+ "typescript": "^5.8.2"
83
94
  },
84
95
  "overrides": {
85
96
  "@swc/core": {
package/src/index.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from './library/index.js';
2
+ export * from './next/index.js';
2
3
  export * from './react/index.js';
3
4
  export * from './types/index.js';
@@ -15,11 +15,13 @@ function eslintLibraryConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.Co
15
15
  return config(
16
16
  js.configs.recommended,
17
17
  imports.flatConfigs.recommended,
18
- imports.flatConfigs.typescript,
19
- ...configs.recommended,
20
18
  {
21
- files: ['**/*.{ts,tsx}'],
22
- extends: [...configs.recommendedTypeChecked],
19
+ files: ['**/*.{js,mjs}'],
20
+ extends: [configs.base],
21
+ },
22
+ {
23
+ files: ['**/*.ts'],
24
+ extends: [imports.flatConfigs.typescript, ...configs.recommended, ...configs.recommendedTypeChecked],
23
25
  languageOptions: {
24
26
  parserOptions: {
25
27
  ecmaVersion: 'latest',
@@ -35,12 +37,11 @@ function eslintLibraryConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.Co
35
37
  },
36
38
  },
37
39
  {
38
- files: ['**/*.test.{js,ts,jsx,tsx}'],
40
+ files: ['**/*.test.{js,ts}'],
39
41
  ...jest.configs['flat/recommended'],
40
42
  languageOptions: {
41
43
  globals: {
42
44
  ...globals.jest,
43
- //...globals.vitest,
44
45
  },
45
46
  },
46
47
  },
@@ -92,6 +93,19 @@ function eslintLibraryConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.Co
92
93
  'error',
93
94
  {
94
95
  groups: ['builtin', 'external', 'internal', ['parent', 'sibling']],
96
+ pathGroups: [
97
+ {
98
+ pattern: 'react',
99
+ group: 'external',
100
+ position: 'before',
101
+ },
102
+ {
103
+ pattern: '@tarsilla/**',
104
+ group: 'internal',
105
+ position: 'before',
106
+ },
107
+ ],
108
+ pathGroupsExcludedImportTypes: ['react', '@tarsilla'],
95
109
  'newlines-between': 'always',
96
110
  alphabetize: {
97
111
  order: 'asc',
@@ -0,0 +1,162 @@
1
+ import { dirname } from 'path';
2
+ import { fileURLToPath } from 'url';
3
+
4
+ import { FlatCompat } from '@eslint/eslintrc';
5
+ import js from '@eslint/js';
6
+ import type { TSESLint } from '@typescript-eslint/utils';
7
+ import jest from 'eslint-plugin-jest';
8
+ import prettierRecommended from 'eslint-plugin-prettier/recommended';
9
+ import reactPlugin from 'eslint-plugin-react';
10
+ import reactHooks from 'eslint-plugin-react-hooks';
11
+ import unusedImports from 'eslint-plugin-unused-imports';
12
+ import globalsImp from 'globals';
13
+ import { config, configs } from 'typescript-eslint';
14
+
15
+ import { EslintOptions } from '../types/index.js';
16
+
17
+ const __filename = fileURLToPath(import.meta.url);
18
+ const __dirname = dirname(__filename);
19
+
20
+ const compat = new FlatCompat({
21
+ baseDirectory: __dirname,
22
+ });
23
+
24
+ const globals = globalsImp as Record<string, Record<string, boolean>>;
25
+
26
+ function eslintNextConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.ConfigArray {
27
+ return config(
28
+ js.configs.recommended,
29
+ ...compat.config({
30
+ extends: ['next/core-web-vitals'],
31
+ rules: {
32
+ 'import/order': [
33
+ 'error',
34
+ {
35
+ groups: ['builtin', 'external', 'internal', ['parent', 'sibling']],
36
+ pathGroups: [
37
+ {
38
+ pattern: 'react',
39
+ group: 'external',
40
+ position: 'before',
41
+ },
42
+ {
43
+ pattern: '@tarsilla/**',
44
+ group: 'internal',
45
+ position: 'before',
46
+ },
47
+ ],
48
+ pathGroupsExcludedImportTypes: ['react', '@tarsilla'],
49
+ 'newlines-between': 'always',
50
+ alphabetize: {
51
+ order: 'asc',
52
+ caseInsensitive: true,
53
+ },
54
+ },
55
+ ],
56
+ },
57
+ }),
58
+ {
59
+ files: ['**/*.{js,jsx,mjs}'],
60
+ extends: [configs.base],
61
+ },
62
+ {
63
+ files: ['**/*.{ts,tsx}'],
64
+ extends: [...configs.recommended, ...configs.recommendedTypeChecked],
65
+ languageOptions: {
66
+ parserOptions: {
67
+ ecmaVersion: 'latest',
68
+ sourceType: 'module',
69
+ project: true,
70
+ tsconfigRootDir: './',
71
+ },
72
+ },
73
+ rules: {
74
+ '@typescript-eslint/explicit-module-boundary-types': 'error',
75
+ '@typescript-eslint/no-explicit-any': 'error',
76
+ '@typescript-eslint/no-unused-vars': 'off',
77
+ },
78
+ },
79
+ {
80
+ files: ['**/*.{jsx,tsx}'],
81
+ ...reactPlugin.configs.flat.recommended,
82
+ ...reactPlugin.configs.flat['jsx-runtime'],
83
+ languageOptions: {
84
+ ...reactPlugin.configs.flat.recommended.languageOptions,
85
+ globals: {
86
+ ...globals.serviceworker,
87
+ ...Object.keys(globals.browser).reduce<Record<string, boolean>>((acc, key) => {
88
+ acc[key.trim()] = globals.browser[key];
89
+ return acc;
90
+ }, {}),
91
+ },
92
+ },
93
+ plugins: {
94
+ 'react-hooks': reactHooks,
95
+ },
96
+ rules: {
97
+ ...reactHooks.configs.recommended.rules,
98
+ 'react/react-in-jsx-scope': 'off',
99
+ 'react/jsx-uses-react': 'off',
100
+ },
101
+ },
102
+ {
103
+ files: ['**/*.test.{js,ts,jsx,tsx}'],
104
+ ...jest.configs['flat/recommended'],
105
+ languageOptions: {
106
+ globals: {
107
+ ...globals.jest,
108
+ //...globals.vitest,
109
+ },
110
+ },
111
+ },
112
+ prettierRecommended,
113
+ {
114
+ ignores,
115
+ },
116
+ {
117
+ plugins: {
118
+ 'unused-imports': unusedImports,
119
+ },
120
+ rules: {
121
+ 'prettier/prettier': [
122
+ 'error',
123
+ {
124
+ semi: true,
125
+ trailingComma: 'all',
126
+ singleQuote: true,
127
+ jsxSingleQuote: true,
128
+ printWidth: 120,
129
+ tabWidth: 2,
130
+ },
131
+ {
132
+ usePrettierrc: false,
133
+ fileInfoOptions: {
134
+ withNodeModules: true,
135
+ },
136
+ },
137
+ ],
138
+ 'no-unused-vars': 'off',
139
+ 'unused-imports/no-unused-imports': 'error',
140
+ 'unused-imports/no-unused-vars': [
141
+ 'error',
142
+ {
143
+ vars: 'all',
144
+ varsIgnorePattern: '^_',
145
+ args: 'after-used',
146
+ argsIgnorePattern: '^_',
147
+ },
148
+ ],
149
+ 'sort-imports': [
150
+ 'error',
151
+ {
152
+ ignoreCase: true,
153
+ ignoreDeclarationSort: true,
154
+ ignoreMemberSort: false,
155
+ },
156
+ ],
157
+ },
158
+ },
159
+ );
160
+ }
161
+
162
+ export { eslintNextConfig };
@@ -0,0 +1 @@
1
+ export * from './eslintNextConfig.js';
@@ -17,11 +17,13 @@ function eslintReactConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.Conf
17
17
  return config(
18
18
  js.configs.recommended,
19
19
  imports.flatConfigs.recommended,
20
- imports.flatConfigs.typescript,
21
- ...configs.recommended,
20
+ {
21
+ files: ['**/*.{js,jsx,mjs}'],
22
+ extends: [configs.base],
23
+ },
22
24
  {
23
25
  files: ['**/*.{ts,tsx}'],
24
- extends: [...configs.recommendedTypeChecked],
26
+ extends: [imports.flatConfigs.typescript, ...configs.recommended, ...configs.recommendedTypeChecked],
25
27
  languageOptions: {
26
28
  parserOptions: {
27
29
  ecmaVersion: 'latest',
@@ -124,8 +126,13 @@ function eslintReactConfig({ ignores }: EslintOptions): TSESLint.FlatConfig.Conf
124
126
  group: 'external',
125
127
  position: 'before',
126
128
  },
129
+ {
130
+ pattern: '@tarsilla/**',
131
+ group: 'internal',
132
+ position: 'before',
133
+ },
127
134
  ],
128
- pathGroupsExcludedImportTypes: ['react'],
135
+ pathGroupsExcludedImportTypes: ['react', '@tarsilla'],
129
136
  'newlines-between': 'always',
130
137
  alphabetize: {
131
138
  order: 'asc',