@2digits/eslint-config 2.14.7 → 2.14.9

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/configs/antfu.ts","../src/constants.ts","../src/configs/comments.ts","../src/utils.ts","../src/configs/drizzle.ts","../src/configs/graphql.ts","../src/globs.ts","../src/configs/ignores.ts","../src/configs/javascript.ts","../src/configs/jsdoc.ts","../src/configs/jsonc.ts","../src/configs/next.ts","../src/configs/node.ts","../src/configs/prettier.ts","../src/configs/react.ts","../src/configs/regexp.ts","../src/configs/sonar.ts","../src/configs/storybook.ts","../src/configs/tailwind.ts","../src/configs/tanstack.ts","../src/configs/turbo.ts","../src/configs/typescript.ts","../src/configs/unicorn.ts","../src/factory.ts"],"names":["antfu","pluginAntfu","PluginNameMap","recommended","renamePluginsInRules","configs","comments","pluginComments","interopDefault","m","resolved","drizzle","options","overrides","drizzleObjectName","fixupPluginRules","graphql","files","gql","gqlSchema","loadConfig","g","flatRecommended","rules","rule","ruleName","GLOB_SRC","GLOB_TS","GLOB_TSX","GLOB_STORIES","GLOB_JSON","GLOB_JSON5","GLOB_JSONC","GLOB_EXCLUDE","ignores","gitIgnore","composer","javascript","globals","eslint","jsdoc","jsonc","config","SHARED_OPTIONS","collectRules","parser","plugin","next","parserOptions","node","default","prettier","react","tsconfigRootDir","reactCompiler","pluginReact","pluginReactHooks","pluginReactCompiler","plugins","regexp","pluginRegexp","sonar","storybook","storybookDirectory","languageOptions","tailwind","tailwindcss","tailwindFunctions","findUp","tanstack","turbo","typescript","twoDigits","strictConfig","renamePluginsInConfigs","unicorn","enabled","defaults","enable","rest","userConfig","FlatConfigComposer","isPackageExists","typescriptOptions"],"mappings":"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EA,CACE,IAAM,CAAA,4BAAA,CACN,GAAGsC,CACH,CAAA,KAAA,CAAO,CAAC,iBAAiB,CAAA,CACzB,MAAO,CACL,yBAAA,CAA2B,CACzB,OACA,CAAA,CACE,MAAO,CAAE,IAAA,CAAM,KAAM,CAAA,CACrB,YAAa,SACf,CACF,EACA,iBAAmB,CAAA,CACjB,QACA,CACE,KAAA,CAAO,CACL,SAAA,CACA,YACA,MACA,CAAA,aAAA,CACA,UACA,SACA,CAAA,aAAA,CACA,UACA,UACA,CAAA,YAAA,CACA,MACA,CAAA,YAAA,CACA,OACA,MACA,CAAA,QAAA,CACA,QACA,eACA,CAAA,KAAA,CACA,QACA,SACA,CAAA,MAAA,CACA,QACA,UACA,CAAA,aAAA,CACA,mBACA,aACA,CAAA,SAAA,CACA,WACA,QACA,CAAA,SAAA,CACA,aACA,cACA,CAAA,iBAAA,CACA,kBACA,CAAA,sBAAA,CACA,uBACA,gBACA,CAAA,SAAA,CACA,OACA,WACA,CAAA,aAAA,CACA,QACA,kBACA,CAAA,aAAA,CACA,cACA,CAAA,UACF,EACA,WAAa,CAAA,IACf,EACA,CACE,KAAA,CAAO,CAAE,IAAM,CAAA,KAAM,CACrB,CAAA,WAAA,CAAa,wDACf,CACA,CAAA,CACE,MAAO,CAAC,OAAA,CAAS,SAAU,QAAU,CAAA,SAAA,CAAW,SAAS,CACzD,CAAA,WAAA,CAAa,aACf,CACF,CACF,CACF,CAEA,CAAA,CACE,KAAM,6BACN,CAAA,GAAGA,CACH,CAAA,KAAA,CAAO,CACL,kBACA,CAAA,oBAAA,CACA,qBACA,kBACA,CAAA,oBAAA,CACA,oBACF,CACA,CAAA,KAAA,CAAO,CACL,iBAAA,CAAmB,CACjB,OACA,CAAA,CACE,MAAO,CACL,SAAA,CACA,UACA,iBACA,CAAA,YAAA,CACA,OACA,CAAA,SAAA,CACA,SACF,CACA,CAAA,WAAA,CAAa,IACf,CACA,CAAA,CACE,MAAO,CAEL,aAAA,CACA,YACA,iBACA,CAAA,yCAAA,CACA,2BACA,8BAEA,CAAA,QAAA,CACA,MACA,KACA,CAAA,wBAAA,CACA,wB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","file":"index.cjs","sourcesContent":["import pluginAntfu from 'eslint-plugin-antfu';\n\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function antfu(): TypedFlatConfigItem[] {\n return [\n {\n name: '2digits:antfu',\n plugins: {\n antfu: pluginAntfu,\n },\n rules: {\n 'antfu/if-newline': 'error',\n 'antfu/top-level-function': 'error',\n },\n },\n ];\n}\n","export const PluginNameMap = {\n '@next/next': 'next',\n '@eslint-react/naming-convention': 'react-naming-convention',\n '@eslint-react/hooks-extra': 'react-hooks-extra',\n '@eslint-react/dom': 'react-dom',\n '@eslint-react/web-api': 'react-web-api',\n '@eslint-react': 'react-extra',\n 'react-hooks': 'react-hooks',\n 'react-compiler': 'react-compiler',\n react: 'react',\n '@typescript-eslint': 'ts',\n node: 'node',\n '@eslint-community/eslint-comments': 'comments',\n storybook: 'storybook',\n turbo: 'turbo',\n jsdoc: 'jsdoc',\n unicorn: 'unicorn',\n tailwindcss: 'tailwindcss',\n '@tanstack/query': 'tanstack',\n '@2digits': '@2digits',\n '@graphql-eslint': 'gql',\n sonarjs: 'sonar',\n drizzle: 'drizzle',\n} as const;\n","import pluginComments from '@eslint-community/eslint-plugin-eslint-comments';\nimport configs from '@eslint-community/eslint-plugin-eslint-comments/configs';\nimport { renamePluginsInRules } from 'eslint-flat-config-utils';\n\nimport { PluginNameMap } from '../constants';\nimport type { TypedFlatConfigItem } from '../types';\n\nconst recommended = renamePluginsInRules(configs.recommended.rules as never, PluginNameMap);\n\nexport function comments(): TypedFlatConfigItem[] {\n return [\n {\n name: '2digits:comments',\n plugins: {\n comments: pluginComments,\n },\n rules: {\n ...recommended,\n\n 'comments/no-unused-disable': 'error',\n 'comments/disable-enable-pair': ['error', { allowWholeFile: true }],\n },\n },\n ];\n}\n","import type { Awaitable } from 'eslint-flat-config-utils';\n\nexport async function interopDefault<T>(\n m: Awaitable<T>,\n): Promise<T extends { default: infer U } ? U : T> {\n const resolved = await m;\n\n return ((resolved as Record<string, unknown>).default || resolved) as never;\n}\n","import { fixupPluginRules } from '@eslint/compat';\n\nimport type { OptionsWithDrizzle, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function drizzle(options: OptionsWithDrizzle = {}): Promise<TypedFlatConfigItem[]> {\n const { overrides = {}, drizzleObjectName = ['drizzle', 'db'] } = options;\n\n const drizzle = await interopDefault(import('eslint-plugin-drizzle'));\n\n return [\n {\n name: '2digits:drizzle',\n plugins: {\n drizzle: fixupPluginRules(drizzle as never),\n },\n rules: {\n 'drizzle/enforce-update-with-where': ['error', { drizzleObjectName }],\n 'drizzle/enforce-delete-with-where': ['error', { drizzleObjectName }],\n\n ...overrides,\n },\n },\n ];\n}\n","import { renamePluginsInRules } from 'eslint-flat-config-utils';\nimport { loadConfig } from 'graphql-config';\n\nimport { PluginNameMap } from '../constants';\nimport type { OptionsWithFiles, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function graphql(options: OptionsWithFiles = {}): Promise<TypedFlatConfigItem[]> {\n const { overrides = {}, files = ['**/*.graphql', '**/*.gql'] } = options;\n\n const [gql, gqlSchema] = await Promise.all([\n interopDefault(import('@graphql-eslint/eslint-plugin')),\n loadConfig({ throwOnEmpty: false, throwOnMissing: false }).then((g) => g?.getDefault().schema),\n ]);\n\n const flatRecommended = gql.configs['flat/operations-recommended'].rules;\n\n let rules = {} as typeof flatRecommended;\n\n if (gqlSchema) {\n rules = flatRecommended;\n } else {\n for (const rule of Object.keys(flatRecommended) as Array<keyof typeof rules>) {\n const ruleName = rule.replace('@graphql-eslint/', '') as keyof typeof gql.rules;\n if (\n ruleName in gql.rules &&\n (gql.rules[ruleName].meta.docs?.requiresSchema ||\n gql.rules[ruleName].meta.docs?.requiresSiblings)\n ) {\n continue;\n }\n rules[rule] = flatRecommended[rule] as never;\n }\n }\n\n const recommended = renamePluginsInRules(rules, PluginNameMap);\n\n return [\n {\n name: '2digits:graphql',\n plugins: {\n gql,\n },\n languageOptions: {\n parser: gql.parser,\n },\n files,\n rules: {\n ...recommended,\n\n 'gql/naming-convention': ['error', { allowLeadingUnderscore: true } as never],\n\n ...overrides,\n },\n },\n ];\n}\n","export const GLOB_SRC = '**/*.?([cm])[jt]s?(x)';\n\nexport const GLOB_TS = '**/*.?([cm])ts';\nexport const GLOB_TSX = '**/*.?([cm])tsx';\n\nexport const GLOB_STORIES = '**/*.stories.tsx';\n\nexport const GLOB_JSON = '**/*.json';\nexport const GLOB_JSON5 = '**/*.json5';\nexport const GLOB_JSONC = '**/*.jsonc';\n\nexport const GLOB_EXCLUDE = [\n '**/node_modules',\n '**/dist',\n '**/package-lock.json',\n '**/yarn.lock',\n '**/pnpm-lock.yaml',\n '**/bun.lockb',\n\n '**/output',\n '**/coverage',\n '**/temp',\n '**/.temp',\n '**/tmp',\n '**/.tmp',\n '**/.history',\n '**/.vitepress/cache',\n '**/.nuxt',\n '**/.next',\n '**/.vercel',\n '**/.changeset',\n '**/.idea',\n '**/.cache',\n '**/.output',\n '**/.vite-inspect',\n '**/.yarn',\n\n '**/CHANGELOG*.md',\n '**/*.min.*',\n '**/LICENSE*',\n '**/__snapshots__',\n '**/auto-import?(s).d.ts',\n '**/components.d.ts',\n] as const;\n","import { composer } from 'eslint-flat-config-utils';\n\nimport { GLOB_EXCLUDE } from '../globs';\nimport type { OptionsWithIgnores, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function ignores(options: OptionsWithIgnores = {}): Promise<TypedFlatConfigItem[]> {\n const { gitIgnore, ignores = [] } = options;\n\n return composer(\n {\n ignores: [GLOB_EXCLUDE, ignores].flat(),\n name: '2digits:ignores',\n },\n interopDefault(import('eslint-config-flat-gitignore')).then((m) =>\n m({ strict: false, ...gitIgnore, name: '2digits:gitignore' }),\n ),\n );\n}\n","import eslint from '@eslint/js';\nimport globals from 'globals';\n\nimport type { OptionsOverrides, TypedFlatConfigItem } from '../types';\n\nexport function javascript(options: OptionsOverrides = {}): TypedFlatConfigItem[] {\n const { overrides = {} } = options;\n\n return [\n {\n name: '2digits:javascript',\n languageOptions: {\n ecmaVersion: 2022,\n globals: {\n ...globals.browser,\n ...globals.es2021,\n ...globals.node,\n document: 'readonly',\n navigator: 'readonly',\n window: 'readonly',\n },\n parserOptions: {\n ecmaFeatures: {\n jsx: true,\n },\n ecmaVersion: 2022,\n sourceType: 'module',\n },\n sourceType: 'module',\n },\n linterOptions: {\n reportUnusedDisableDirectives: true,\n },\n rules: {\n ...eslint.configs.recommended.rules,\n\n 'accessor-pairs': ['error', { enforceForClassMembers: true, setWithoutGet: true }],\n 'array-callback-return': 'error',\n 'block-scoped-var': 'error',\n 'constructor-super': 'error',\n 'default-case-last': 'error',\n 'dot-notation': ['error', { allowKeywords: true }],\n eqeqeq: ['error', 'smart'],\n 'new-cap': ['error', { capIsNew: false, newIsCap: true, properties: true }],\n 'no-alert': 'error',\n 'no-array-constructor': 'error',\n 'no-async-promise-executor': 'error',\n 'no-caller': 'error',\n 'no-case-declarations': 'error',\n 'no-class-assign': 'error',\n 'no-compare-neg-zero': 'error',\n 'no-cond-assign': ['error', 'always'],\n 'no-const-assign': 'error',\n 'no-control-regex': 'error',\n 'no-debugger': 'error',\n 'no-delete-var': 'error',\n 'no-dupe-args': 'error',\n 'no-dupe-class-members': 'error',\n 'no-dupe-keys': 'error',\n 'no-duplicate-case': 'error',\n 'no-empty': ['error', { allowEmptyCatch: true }],\n 'no-empty-character-class': 'error',\n 'no-empty-pattern': 'error',\n 'no-eval': 'error',\n 'no-ex-assign': 'error',\n 'no-extend-native': 'error',\n 'no-extra-bind': 'error',\n 'no-extra-boolean-cast': 'error',\n 'no-fallthrough': 'error',\n 'no-func-assign': 'error',\n 'no-global-assign': 'error',\n 'no-implied-eval': 'error',\n 'no-import-assign': 'error',\n 'no-invalid-regexp': 'error',\n 'no-irregular-whitespace': 'error',\n 'no-iterator': 'error',\n 'no-labels': ['error', { allowLoop: false, allowSwitch: false }],\n 'no-lone-blocks': 'error',\n 'no-loss-of-precision': 'error',\n 'no-misleading-character-class': 'error',\n 'no-multi-str': 'error',\n 'no-new': 'error',\n 'no-new-func': 'error',\n 'no-new-native-nonconstructor': 'error',\n 'no-new-wrappers': 'error',\n 'no-obj-calls': 'error',\n 'no-octal': 'error',\n 'no-octal-escape': 'error',\n 'no-proto': 'error',\n 'no-prototype-builtins': 'error',\n 'no-redeclare': ['error', { builtinGlobals: false }],\n 'no-regex-spaces': 'error',\n 'no-restricted-globals': [\n 'error',\n { message: 'Use `globalThis` instead.', name: 'global' },\n { message: 'Use `globalThis` instead.', name: 'self' },\n ],\n 'no-restricted-properties': [\n 'error',\n {\n message: 'Use `Object.getPrototypeOf` or `Object.setPrototypeOf` instead.',\n property: '__proto__',\n },\n {\n message: 'Use `Object.defineProperty` instead.',\n property: '__defineGetter__',\n },\n {\n message: 'Use `Object.defineProperty` instead.',\n property: '__defineSetter__',\n },\n {\n message: 'Use `Object.getOwnPropertyDescriptor` instead.',\n property: '__lookupGetter__',\n },\n {\n message: 'Use `Object.getOwnPropertyDescriptor` instead.',\n property: '__lookupSetter__',\n },\n ],\n 'no-restricted-syntax': [\n 'error',\n 'DebuggerStatement',\n 'LabeledStatement',\n 'WithStatement',\n 'TSEnumDeclaration',\n 'TSExportAssignment',\n ],\n 'no-self-assign': ['error', { props: true }],\n 'no-self-compare': 'error',\n 'no-sequences': 'error',\n 'no-shadow-restricted-names': 'error',\n 'no-sparse-arrays': 'error',\n 'no-template-curly-in-string': 'error',\n 'no-this-before-super': 'error',\n 'no-throw-literal': 'error',\n 'no-undef': 'error',\n 'no-undef-init': 'error',\n 'no-unexpected-multiline': 'error',\n 'no-unmodified-loop-condition': 'error',\n 'no-unneeded-ternary': ['error', { defaultAssignment: false }],\n 'no-unreachable': 'error',\n 'no-unreachable-loop': 'error',\n 'no-unsafe-finally': 'error',\n 'no-unsafe-negation': 'error',\n 'no-unused-expressions': [\n 'error',\n {\n allowShortCircuit: true,\n allowTaggedTemplates: true,\n allowTernary: true,\n },\n ],\n 'no-unused-vars': [\n 'error',\n {\n args: 'none',\n caughtErrors: 'none',\n ignoreRestSiblings: true,\n vars: 'all',\n },\n ],\n 'no-useless-backreference': 'error',\n 'no-useless-call': 'error',\n 'no-useless-catch': 'error',\n 'no-useless-computed-key': 'error',\n 'no-useless-constructor': 'error',\n 'no-useless-rename': 'error',\n 'no-var': 'error',\n 'no-with': 'error',\n 'object-shorthand': [\n 'error',\n 'always',\n {\n avoidQuotes: true,\n ignoreConstructors: false,\n },\n ],\n 'one-var': ['error', { initialized: 'never' }],\n 'prefer-arrow-callback': [\n 'error',\n {\n allowNamedFunctions: true,\n allowUnboundThis: true,\n },\n ],\n 'prefer-const': [\n 'error',\n {\n destructuring: 'all',\n ignoreReadBeforeAssign: true,\n },\n ],\n 'prefer-exponentiation-operator': 'error',\n 'prefer-promise-reject-errors': 'error',\n 'prefer-regex-literals': ['error', { disallowRedundantWrapping: true }],\n 'prefer-rest-params': 'error',\n 'prefer-spread': 'error',\n 'prefer-template': 'error',\n 'symbol-description': 'error',\n 'unicode-bom': ['error', 'never'],\n 'use-isnan': ['error', { enforceForIndexOf: true, enforceForSwitchCase: true }],\n 'valid-typeof': ['error', { requireStringLiterals: true }],\n 'vars-on-top': 'error',\n yoda: ['error', 'never'],\n\n ...overrides,\n },\n },\n ];\n}\n","import type { TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function jsdoc(): Promise<TypedFlatConfigItem[]> {\n return [\n {\n name: '2digits:jsdoc',\n plugins: {\n jsdoc: await interopDefault(import('eslint-plugin-jsdoc')),\n },\n rules: {\n 'jsdoc/check-access': 'error',\n 'jsdoc/check-param-names': 'error',\n 'jsdoc/check-property-names': 'error',\n 'jsdoc/check-types': 'error',\n 'jsdoc/empty-tags': 'error',\n 'jsdoc/implements-on-classes': 'error',\n 'jsdoc/no-defaults': 'error',\n 'jsdoc/no-multi-asterisks': 'error',\n 'jsdoc/require-param-name': 'error',\n 'jsdoc/require-property': 'error',\n 'jsdoc/require-property-description': 'error',\n 'jsdoc/require-property-name': 'error',\n 'jsdoc/require-returns-check': 'error',\n 'jsdoc/require-returns-description': 'error',\n 'jsdoc/require-yields-check': 'error',\n },\n },\n ];\n}\n","import plugin, { configs } from 'eslint-plugin-jsonc';\nimport parser from 'jsonc-eslint-parser';\n\nimport { GLOB_JSON, GLOB_JSON5, GLOB_JSONC } from '../globs';\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function jsonc(): TypedFlatConfigItem[] {\n return [\n ...configs['flat/base'].map((config) => ({ ...config, name: '2digits:jsonc/base' })),\n\n {\n name: '2digits:jsonc/json',\n files: [GLOB_JSON],\n ...SHARED_OPTIONS,\n rules: {\n ...collectRules(configs['flat/recommended-with-json']),\n },\n },\n {\n name: '2digits:jsonc/jsonc',\n files: [GLOB_JSONC],\n ...SHARED_OPTIONS,\n rules: {\n ...collectRules(configs['flat/recommended-with-jsonc']),\n },\n },\n {\n name: '2digits:jsonc/json5',\n files: [GLOB_JSON5],\n ...SHARED_OPTIONS,\n rules: {\n ...collectRules(configs['flat/recommended-with-json5']),\n },\n },\n\n {\n name: '2digits:jsonc/package.json',\n ...SHARED_OPTIONS,\n files: ['**/package.json'],\n rules: {\n 'jsonc/sort-array-values': [\n 'error',\n {\n order: { type: 'asc' },\n pathPattern: '^files$',\n },\n ],\n 'jsonc/sort-keys': [\n 'error',\n {\n order: [\n '$schema',\n 'publisher',\n 'name',\n 'displayName',\n 'version',\n 'private',\n 'description',\n 'funding',\n 'homepage',\n 'repository',\n 'bugs',\n 'categories',\n 'type',\n 'main',\n 'module',\n 'types',\n 'typesVersions',\n 'bin',\n 'files',\n 'exports',\n 'icon',\n 'unpkg',\n 'jsdelivr',\n 'sideEffects',\n 'activationEvents',\n 'contributes',\n 'scripts',\n 'keywords',\n 'author',\n 'license',\n 'workspaces',\n 'dependencies',\n 'devDependencies',\n 'peerDependencies',\n 'peerDependenciesMeta',\n 'optionalDependencies',\n 'packageManager',\n 'engines',\n 'pnpm',\n 'overrides',\n 'resolutions',\n 'husky',\n 'simple-git-hooks',\n 'lint-staged',\n 'eslintConfig',\n 'prettier',\n ],\n pathPattern: '^$',\n },\n {\n order: { type: 'asc' },\n pathPattern: '^(?:dev|peer|optional|bundled)?[Dd]ependencies(Meta)?$',\n },\n {\n order: ['types', 'import', 'module', 'require', 'default'],\n pathPattern: '^exports.*$',\n },\n ],\n },\n },\n\n {\n name: '2digits:jsonc/tsconfig.json',\n ...SHARED_OPTIONS,\n files: [\n '**/tsconfig.json',\n '**/tsconfig.*.json',\n '**/tsconfig-*.json',\n '**/jsconfig.json',\n '**/jsconfig.*.json',\n '**/jsconfig-*.json',\n ],\n rules: {\n 'jsonc/sort-keys': [\n 'error',\n {\n order: [\n '$schema',\n 'extends',\n 'compilerOptions',\n 'references',\n 'files',\n 'include',\n 'exclude',\n ],\n pathPattern: '^$',\n },\n {\n order: [\n /* Projects */\n 'incremental',\n 'composite',\n 'tsBuildInfoFile',\n 'disableSourceOfProjectReferenceRedirect',\n 'disableSolutionSearching',\n 'disableReferencedProjectLoad',\n /* Language and Environment */\n 'target',\n 'lib',\n 'jsx',\n 'experimentalDecorators',\n 'emitDecoratorMetadata',\n 'jsxFactory',\n 'jsxFragmentFactory',\n 'jsxImportSource',\n 'reactNamespace',\n 'noLib',\n 'useDefineForClassFields',\n 'moduleDetection',\n /* Modules */\n 'module',\n 'rootDir',\n 'moduleResolution',\n 'baseUrl',\n 'paths',\n 'rootDirs',\n 'typeRoots',\n 'types',\n 'allowUmdGlobalAccess',\n 'moduleSuffixes',\n 'allowImportingTsExtensions',\n 'resolvePackageJsonExports',\n 'resolvePackageJsonImports',\n 'customConditions',\n 'resolveJsonModule',\n 'allowArbitraryExtensions',\n 'noResolve',\n /* JavaScript Support */\n 'allowJs',\n 'checkJs',\n 'maxNodeModuleJsDepth',\n /* Emit */\n 'declaration',\n 'declarationMap',\n 'emitDeclarationOnly',\n 'sourceMap',\n 'inlineSourceMap',\n 'outFile',\n 'outDir',\n 'removeComments',\n 'noEmit',\n 'importHelpers',\n 'importsNotUsedAsValues',\n 'downlevelIteration',\n 'sourceRoot',\n 'mapRoot',\n 'inlineSources',\n 'emitBOM',\n 'newLine',\n 'stripInternal',\n 'noEmitHelpers',\n 'noEmitOnError',\n 'preserveConstEnums',\n 'declarationDir',\n 'preserveValueImports',\n /* Interop Constraints */\n 'isolatedModules',\n 'verbatimModuleSyntax',\n 'allowSyntheticDefaultImports',\n 'esModuleInterop',\n 'preserveSymlinks',\n 'forceConsistentCasingInFileNames',\n /* Type Checking */\n 'strict',\n 'strictBindCallApply',\n 'strictFunctionTypes',\n 'strictNullChecks',\n 'strictPropertyInitialization',\n 'allowUnreachableCode',\n 'allowUnusedLabels',\n 'alwaysStrict',\n 'exactOptionalPropertyTypes',\n 'noFallthroughCasesInSwitch',\n 'noImplicitAny',\n 'noImplicitOverride',\n 'noImplicitReturns',\n 'noImplicitThis',\n 'noPropertyAccessFromIndexSignature',\n 'noUncheckedIndexedAccess',\n 'noUnusedLocals',\n 'noUnusedParameters',\n 'useUnknownInCatchVariables',\n /* Completeness */\n 'skipDefaultLibCheck',\n 'skipLibCheck',\n ],\n pathPattern: '^compilerOptions$',\n },\n ],\n },\n },\n\n ...configs['flat/prettier'].map((config) => ({ ...config, name: '2digits:jsonc/prettier' })),\n ];\n}\n\nconst SHARED_OPTIONS = {\n languageOptions: {\n parser,\n },\n plugins: {\n jsonc: plugin,\n },\n} satisfies Pick<TypedFlatConfigItem, 'plugins' | 'languageOptions'>;\n\ntype FlatConfigName = Extract<keyof typeof configs, `flat/${string}`>;\n\nfunction collectRules(config: (typeof configs)[FlatConfigName]) {\n return Object.fromEntries(config.flatMap(({ rules }) => Object.entries(rules ?? {})));\n}\n","import { fixupPluginRules } from '@eslint/compat';\nimport { renamePluginsInRules } from 'eslint-flat-config-utils';\n\nimport { PluginNameMap } from '../constants';\nimport { GLOB_TS, GLOB_TSX } from '../globs';\nimport type { OptionsTypeScriptWithTypes, OptionsWithFiles, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function next(\n options: OptionsWithFiles & OptionsTypeScriptWithTypes = {},\n): Promise<TypedFlatConfigItem[]> {\n const { files = [GLOB_TS, GLOB_TSX], overrides = {}, parserOptions } = options;\n\n const [next, parser] = await Promise.all([\n interopDefault(import('@next/eslint-plugin-next')),\n interopDefault(import('@typescript-eslint/parser')),\n ]);\n\n const recommended = renamePluginsInRules(\n {\n ...next.configs.recommended.rules,\n ...next.configs['core-web-vitals'].rules,\n },\n PluginNameMap,\n );\n\n return [\n {\n name: '2digits:next/setup',\n plugins: {\n next: fixupPluginRules(next as never),\n },\n },\n {\n name: '2digits:next/rules',\n files,\n languageOptions: {\n parser,\n parserOptions: {\n ecmaFeatures: {\n jsx: true,\n },\n projectService: true,\n ...parserOptions,\n },\n sourceType: 'module',\n },\n rules: {\n ...recommended,\n\n 'next/no-html-link-for-pages': 'off',\n\n ...overrides,\n },\n },\n ];\n}\n","import { pluginNode } from '../plugins';\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function node(): TypedFlatConfigItem[] {\n return [\n {\n name: '2digits:node',\n settings: {\n node: {\n version: '>= 22.0.0',\n },\n },\n plugins: {\n node: pluginNode,\n },\n rules: {\n 'node/handle-callback-err': ['error', '^(err|error)$'],\n 'node/no-deprecated-api': 'error',\n 'node/no-exports-assign': 'error',\n 'node/no-new-require': 'error',\n 'node/no-path-concat': 'error',\n 'node/no-unsupported-features/node-builtins': ['error', { allowExperimental: true }],\n 'node/prefer-global/buffer': 'error',\n 'node/prefer-global/process': 'error',\n 'node/prefer-global/text-encoder': 'error',\n 'node/prefer-global/url': 'error',\n 'node/prefer-global/console': 'error',\n 'node/prefer-global/url-search-params': 'error',\n 'node/prefer-global/text-decoder': 'error',\n 'node/process-exit-as-throw': 'error',\n },\n },\n ];\n}\n","import type { TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function prettier(): Promise<TypedFlatConfigItem[]> {\n const [prettier, react] = await Promise.all([\n interopDefault(import('eslint-config-prettier')),\n interopDefault(import('eslint-plugin-react')),\n ]);\n\n return [\n {\n name: '2digits:prettier',\n plugins: {\n react,\n },\n rules: {\n ...prettier.rules,\n\n 'tailwindcss/classnames-order': 'off',\n 'react/jsx-newline': ['error', { prevent: false }],\n },\n },\n ];\n}\n","import { fixupPluginRules } from '@eslint/compat';\nimport { renamePluginsInRules } from 'eslint-flat-config-utils';\n\nimport { PluginNameMap } from '../constants';\nimport { GLOB_TS, GLOB_TSX } from '../globs';\nimport type { OptionsTypeScriptWithTypes, OptionsWithReact, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function react(\n options: OptionsWithReact & OptionsTypeScriptWithTypes = {},\n): Promise<TypedFlatConfigItem[]> {\n const {\n files = [GLOB_TS, GLOB_TSX],\n overrides = {},\n parserOptions,\n tsconfigRootDir,\n reactCompiler = true,\n } = options;\n\n const [pluginReact, pluginReactHooks, react, parser, pluginReactCompiler] = await Promise.all([\n interopDefault(import('@eslint-react/eslint-plugin')),\n interopDefault(import('eslint-plugin-react-hooks')),\n interopDefault(import('eslint-plugin-react')),\n interopDefault(import('@typescript-eslint/parser')),\n reactCompiler ? interopDefault(import('eslint-plugin-react-compiler')) : undefined,\n ]);\n\n const plugins = pluginReact.configs.all.plugins;\n\n const recommended = renamePluginsInRules(\n {\n ...react.configs.recommended.rules,\n ...react.configs['jsx-runtime'].rules,\n ...pluginReactHooks.configs.recommended.rules,\n ...pluginReact.configs['recommended-type-checked'].rules,\n },\n PluginNameMap,\n );\n\n return [\n {\n name: '2digits:react/setup',\n plugins: {\n react,\n 'react-dom': plugins['@eslint-react/dom'],\n 'react-web-api': plugins['@eslint-react/web-api'],\n 'react-extra': plugins['@eslint-react'],\n 'react-hooks': fixupPluginRules(pluginReactHooks as never),\n 'react-hooks-extra': plugins['@eslint-react/hooks-extra'],\n 'react-naming-convention': plugins['@eslint-react/naming-convention'],\n ...(reactCompiler ? { 'react-compiler': pluginReactCompiler } : {}),\n },\n settings: {\n react: {\n version: 'detect',\n },\n },\n },\n {\n name: '2digits:react/rules',\n files,\n languageOptions: {\n parser,\n parserOptions: {\n ecmaFeatures: {\n jsx: true,\n },\n tsconfigRootDir,\n projectService: true,\n ...parserOptions,\n },\n sourceType: 'module',\n },\n rules: {\n ...recommended,\n\n ...(reactCompiler ? { 'react-compiler/react-compiler': 'error' } : {}),\n\n 'react-hooks-extra/no-unnecessary-use-callback': 'error',\n 'react-hooks-extra/prefer-use-state-lazy-initialization': 'error',\n 'react-hooks-extra/no-redundant-custom-hook': 'error',\n 'react-hooks-extra/no-unnecessary-use-memo': 'error',\n\n 'react-extra/prefer-read-only-props': 'off',\n 'react-extra/prefer-shorthand-boolean': 'error',\n 'react-extra/prefer-shorthand-fragment': 'error',\n 'react-extra/prefer-react-namespace-import': 'error',\n\n 'react-naming-convention/use-state': 'error',\n\n 'react/jsx-curly-newline': 'off',\n 'react/jsx-newline': ['error', { prevent: false }],\n 'react/prop-types': 'off',\n\n ...overrides,\n },\n },\n ];\n}\n","import pluginRegexp from 'eslint-plugin-regexp';\n\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function regexp(): TypedFlatConfigItem[] {\n return [\n {\n name: '2digits:regexp',\n plugins: {\n regexp: pluginRegexp,\n },\n rules: {\n ...pluginRegexp.configs['flat/recommended'].rules,\n },\n },\n ];\n}\n","import { pluginSonar } from '../plugins';\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function sonar(): TypedFlatConfigItem[] {\n return [\n {\n name: '2digits:sonar',\n plugins: {\n sonar: pluginSonar,\n },\n rules: {\n 'sonar/code-eval': 'error',\n 'sonar/cognitive-complexity': 'error',\n 'sonar/comma-or-logical-or-case': 'error',\n 'sonar/concise-regex': 'error',\n 'sonar/confidential-information-logging': 'error',\n 'sonar/constructor-for-side-effects': 'error',\n 'sonar/content-length': 'error',\n 'sonar/content-security-policy': 'error',\n 'sonar/cookie-no-httponly': 'error',\n 'sonar/cors': 'error',\n 'sonar/csrf': 'error',\n 'sonar/max-switch-cases': 'error',\n 'sonar/no-all-duplicated-branches': 'error',\n 'sonar/no-collapsible-if': 'error',\n 'sonar/no-collection-size-mischeck': 'error',\n 'sonar/no-duplicate-string': ['error', { threshold: 5 }],\n 'sonar/no-duplicated-branches': 'error',\n 'sonar/no-element-overwrite': 'error',\n 'sonar/no-empty-collection': 'error',\n 'sonar/no-extra-arguments': 'error',\n 'sonar/no-for-in-iterable': 'error',\n 'sonar/no-gratuitous-expressions': 'error',\n 'sonar/no-identical-conditions': 'error',\n 'sonar/no-identical-expressions': 'error',\n 'sonar/no-identical-functions': 'error',\n 'sonar/no-ignored-return': 'error',\n 'sonar/no-inverted-boolean-check': 'error',\n 'sonar/no-nested-switch': 'error',\n 'sonar/no-nested-template-literals': 'error',\n 'sonar/no-one-iteration-loop': 'error',\n 'sonar/no-redundant-boolean': 'error',\n 'sonar/no-same-line-conditional': 'error',\n 'sonar/no-small-switch': 'error',\n 'sonar/no-unused-collection': 'error',\n 'sonar/no-use-of-empty-return-value': 'error',\n 'sonar/no-useless-catch': 'error',\n 'sonar/non-existent-operator': 'error',\n 'sonar/prefer-immediate-return': 'error',\n 'sonar/prefer-object-literal': 'error',\n 'sonar/prefer-single-boolean-return': 'error',\n 'sonar/prefer-while': 'error',\n\n 'sonar/elseif-without-else': 'off',\n 'sonar/no-redundant-jump': 'off',\n },\n },\n ];\n}\n","import { fixupPluginRules } from '@eslint/compat';\nimport type { FlatConfig } from '@typescript-eslint/utils/ts-eslint';\n\nimport { GLOB_STORIES } from '../globs';\nimport type {\n OptionsTypeScriptWithTypes,\n OptionsWithStorybook,\n TypedFlatConfigItem,\n} from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function storybook(\n options: OptionsWithStorybook & OptionsTypeScriptWithTypes = {},\n): Promise<TypedFlatConfigItem[]> {\n const {\n files = [GLOB_STORIES],\n overrides = {},\n parserOptions,\n storybookDirectory = '.storybook',\n } = options;\n\n const [storybook, parser] = await Promise.all([\n interopDefault(import('eslint-plugin-storybook')),\n interopDefault(import('@typescript-eslint/parser')),\n ]);\n\n const languageOptions = {\n parser,\n parserOptions: {\n ecmaFeatures: {\n jsx: true,\n },\n projectService: true,\n ...parserOptions,\n },\n sourceType: 'module',\n } satisfies FlatConfig.LanguageOptions;\n\n return [\n {\n name: '2digits:storybook/setup',\n plugins: {\n storybook: fixupPluginRules(storybook as never),\n },\n },\n {\n name: '2digits:storybook/rules',\n files,\n languageOptions,\n rules: {\n 'storybook/await-interactions': 'error',\n 'storybook/context-in-play-function': 'error',\n 'storybook/csf-component': 'error',\n 'storybook/default-exports': 'error',\n 'storybook/hierarchy-separator': 'error',\n 'storybook/meta-inline-properties': 'error',\n 'storybook/no-redundant-story-name': 'error',\n 'storybook/no-stories-of': 'error',\n 'storybook/no-title-property-in-meta': 'error',\n 'storybook/no-uninstalled-addons': 'error',\n 'storybook/prefer-pascal-case': 'error',\n 'storybook/story-exports': 'error',\n 'storybook/use-storybook-expect': 'error',\n 'storybook/use-storybook-testing-library': 'error',\n\n ...overrides,\n },\n },\n {\n name: '2digits:storybook/disables',\n files,\n rules: {\n 'react-hooks/rules-of-hooks': 'off',\n 'react/display-name': 'off',\n 'sonar/no-duplicate-string': 'off',\n },\n },\n {\n name: '2digits:storybook/config',\n files: [`${storybookDirectory}/main.@(js|cjs|mjs|ts)`],\n languageOptions,\n rules: {\n 'storybook/no-uninstalled-addons': 'error',\n },\n },\n ];\n}\n","import { findUp } from 'find-up';\n\nimport type { OptionsOverrides, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function tailwind(options: OptionsOverrides = {}): Promise<TypedFlatConfigItem[]> {\n const { overrides = {} } = options;\n\n const [tailwindcss, { tailwindFunctions }, config] = await Promise.all([\n interopDefault(import('eslint-plugin-tailwindcss')),\n interopDefault(import('@2digits/constants')),\n findUp(['tailwind.config.ts', 'tailwind.config.js']),\n ]);\n\n return [\n {\n name: '2digits:tailwind',\n plugins: {\n tailwindcss,\n },\n settings: {\n tailwindcss: {\n callees: tailwindFunctions,\n config,\n },\n },\n rules: {\n ...tailwindcss.configs.recommended.rules,\n\n ...overrides,\n },\n },\n ];\n}\n","import { renamePluginsInRules } from 'eslint-flat-config-utils';\n\nimport { PluginNameMap } from '../constants';\nimport type { OptionsOverrides, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function tanstack(options: OptionsOverrides = {}): Promise<TypedFlatConfigItem[]> {\n const { overrides = {} } = options;\n\n const tanstack = await interopDefault(import('@tanstack/eslint-plugin-query'));\n\n const recommended = renamePluginsInRules(\n tanstack.configs['flat/recommended'].at(0)?.rules ?? {},\n PluginNameMap,\n );\n\n return [\n {\n name: '2digits:tanstack',\n plugins: { tanstack },\n rules: {\n ...recommended,\n\n ...overrides,\n },\n },\n ];\n}\n","import type { OptionsOverrides, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function turbo(options: OptionsOverrides = {}): Promise<TypedFlatConfigItem[]> {\n const { overrides = {} } = options;\n\n const turbo = await interopDefault(import('eslint-plugin-turbo'));\n\n return [\n {\n name: '2digits:turbo',\n plugins: {\n turbo,\n },\n rules: {\n 'turbo/no-undeclared-env-vars': 'error',\n\n ...overrides,\n },\n },\n ];\n}\n","import { renamePluginsInConfigs } from 'eslint-flat-config-utils';\n\nimport { PluginNameMap } from '../constants';\nimport { GLOB_SRC } from '../globs';\nimport type { OptionsTypeScriptWithTypes, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function typescript(\n options: OptionsTypeScriptWithTypes = {},\n): Promise<TypedFlatConfigItem[]> {\n const { overrides = {}, parserOptions = {} } = options;\n\n const [{ plugin, configs, parser }, twoDigits] = await Promise.all([\n interopDefault(import('typescript-eslint')),\n interopDefault(import('@2digits/eslint-plugin')),\n ]);\n\n const strictConfig = renamePluginsInConfigs(configs.strictTypeChecked as never, PluginNameMap);\n\n const rules = Object.fromEntries(\n strictConfig.flatMap(({ rules }) => Object.entries(rules ?? {})),\n );\n\n return [\n {\n name: '2digits:typescript/setup',\n plugins: {\n ts: plugin,\n '@2digits': twoDigits,\n },\n },\n {\n name: '2digits:typescript/rules',\n files: [GLOB_SRC],\n languageOptions: {\n parser,\n parserOptions: {\n tsconfigRootDir: process.cwd(),\n projectService: true,\n warnOnUnsupportedTypeScriptVersion: false,\n ...parserOptions,\n },\n sourceType: 'module',\n },\n rules: {\n ...rules,\n 'ts/restrict-template-expressions': ['error', { allowNumber: true }],\n 'ts/ban-ts-comment': ['error', { 'ts-ignore': 'allow-with-description' }],\n 'ts/consistent-type-exports': ['error'],\n 'ts/consistent-type-imports': [\n 'error',\n {\n prefer: 'type-imports',\n disallowTypeAnnotations: false,\n fixStyle: 'inline-type-imports',\n },\n ],\n 'ts/no-empty-object-type': [\n 'error',\n { allowInterfaces: 'with-single-extends', allowObjectTypes: 'never' },\n ],\n 'ts/no-explicit-any': ['error'],\n 'ts/no-import-type-side-effects': ['error'],\n 'ts/no-misused-promises': 'off',\n 'ts/no-confusing-void-expression': 'off',\n 'ts/no-unused-vars': [\n 'error',\n {\n ignoreRestSiblings: true,\n argsIgnorePattern: '^_',\n varsIgnorePattern: '^_',\n },\n ],\n 'ts/unbound-method': 'off',\n\n ...(twoDigits.configs.recommended.rules as object),\n\n ...overrides,\n },\n },\n {\n files: ['**/*.d.ts'],\n name: '2digits:typescript/disables/dts',\n rules: {\n 'unicorn/no-abusive-eslint-disable': 'off',\n 'no-duplicate-imports': 'off',\n 'no-restricted-syntax': 'off',\n 'ts/no-unused-vars': 'off',\n },\n },\n {\n files: ['**/*.{test,spec}.ts?(x)'],\n name: '2digits:typescript/disables/test',\n rules: {\n 'no-unused-expressions': 'off',\n },\n },\n {\n files: ['**/*.js', '**/*.cjs', '**/*.cts'],\n name: '2digits:typescript/disables/cjs',\n rules: {\n 'ts/no-require-imports': 'off',\n 'ts/no-var-requires': 'off',\n },\n },\n ];\n}\n","import { pluginUnicorn } from '../plugins';\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function unicorn(): TypedFlatConfigItem[] {\n return [\n {\n name: '2digits:unicorn',\n plugins: {\n unicorn: pluginUnicorn,\n },\n rules: {\n ...pluginUnicorn.configs['flat/recommended'].rules,\n\n 'unicorn/filename-case': ['off'],\n 'unicorn/prefer-module': ['off'],\n 'unicorn/prevent-abbreviations': ['off'],\n 'unicorn/prefer-ternary': ['error', 'only-single-line'],\n 'unicorn/no-useless-undefined': [\n 'error',\n {\n checkArguments: false,\n checkArrowFunctionBody: false,\n },\n ],\n 'unicorn/prefer-top-level-await': ['off'],\n },\n },\n ];\n}\n","import { FlatConfigComposer } from 'eslint-flat-config-utils';\nimport { isPackageExists } from 'local-pkg';\n\nimport {\n antfu,\n comments,\n graphql,\n ignores,\n javascript,\n jsdoc,\n jsonc,\n next,\n node,\n prettier,\n react,\n regexp,\n sonar,\n storybook,\n tailwind,\n tanstack,\n turbo,\n typescript,\n unicorn,\n} from './configs';\nimport { drizzle } from './configs/drizzle';\nimport { PluginNameMap } from './constants';\nimport type {\n ConfigNames,\n OptionsOverrides,\n OptionsTypeScriptWithTypes,\n OptionsWithDrizzle,\n OptionsWithFiles,\n OptionsWithIgnores,\n OptionsWithReact,\n OptionsWithStorybook,\n TypedFlatConfigItem,\n} from './types';\n\ntype SharedOptions<T = unknown> = T & {\n enable?: boolean;\n};\n\ninterface ESLint2DigitsOptions {\n ignores?: OptionsWithIgnores;\n turbo?: SharedOptions<OptionsOverrides> | boolean;\n js?: OptionsOverrides;\n ts?: SharedOptions<OptionsTypeScriptWithTypes> | boolean;\n graphql?: SharedOptions<OptionsWithFiles> | boolean;\n react?: SharedOptions<OptionsWithReact> | boolean;\n next?: SharedOptions<OptionsWithFiles> | boolean;\n tailwind?: SharedOptions<OptionsOverrides> | boolean;\n storybook?: SharedOptions<OptionsWithStorybook> | boolean;\n tanstack?: SharedOptions<OptionsOverrides> | boolean;\n drizzle?: SharedOptions<OptionsWithDrizzle> | boolean;\n}\n\nfunction enabled<T extends SharedOptions>(\n options: T | boolean | undefined,\n defaults?: boolean,\n): options is T {\n if (typeof options === 'boolean') {\n return options;\n }\n\n return options?.enable ?? defaults ?? false;\n}\n\nfunction config<T>(options: SharedOptions<T> | undefined | boolean): T {\n if (typeof options === 'boolean' || options === undefined) {\n return {} as T;\n }\n\n const { enable, ...rest } = options;\n return rest as T;\n}\n\nexport function twoDigits(\n options: ESLint2DigitsOptions = {},\n ...userConfig: TypedFlatConfigItem[]\n): Promise<TypedFlatConfigItem[]> {\n let composer = new FlatConfigComposer<TypedFlatConfigItem, ConfigNames>(\n ignores(options.ignores),\n javascript(options.js),\n node(),\n comments(),\n jsdoc(),\n unicorn(),\n sonar(),\n regexp(),\n antfu(),\n jsonc(),\n );\n\n if (enabled(options.turbo, isPackageExists('turbo'))) {\n composer = composer.append(turbo(config(options.turbo)));\n }\n\n const { overrides, ...typescriptOptions } = config(options.ts);\n\n if (enabled(options.ts, isPackageExists('typescript'))) {\n composer = composer.append(typescript(config(options.ts)));\n }\n\n if (enabled(options.react, isPackageExists('react'))) {\n composer = composer.append(\n react({\n ...config(options.react),\n ...typescriptOptions,\n }),\n );\n }\n\n if (enabled(options.next, isPackageExists('next'))) {\n composer = composer.append(\n next({\n ...config(options.next),\n ...typescriptOptions,\n }),\n );\n }\n\n if (enabled(options.storybook, isPackageExists('storybook'))) {\n composer = composer.append(\n storybook({\n ...config(options.storybook),\n ...typescriptOptions,\n }),\n );\n }\n\n if (enabled(options.tailwind, isPackageExists('tailwindcss'))) {\n composer = composer.append(tailwind(config(options.tailwind)));\n }\n\n if (\n enabled(\n options.tanstack,\n isPackageExists('react-query') ||\n isPackageExists('@tanstack/react-query') ||\n isPackageExists('@tanstack/react-query-devtools'),\n )\n ) {\n composer = composer.append(tanstack(config(options.tanstack)));\n }\n\n if (enabled(options.drizzle, isPackageExists('drizzle-kit') || isPackageExists('drizzle-orm'))) {\n composer = composer.append(drizzle(config(options.drizzle)));\n }\n\n if (enabled(options.graphql, isPackageExists('graphql'))) {\n composer = composer.append(graphql(config(options.graphql)));\n }\n\n composer = composer.append(...userConfig);\n\n if (isPackageExists('prettier')) {\n composer = composer.append(prettier());\n }\n\n return composer.renamePlugins(PluginNameMap).toConfigs();\n}\n"]}
1
+ {"version":3,"sources":["../src/configs/antfu.ts","../src/constants.ts","../src/configs/comments.ts","../src/utils.ts","../src/configs/drizzle.ts","../src/configs/graphql.ts","../src/globs.ts","../src/configs/ignores.ts","../src/configs/javascript.ts","../src/configs/jsdoc.ts","../src/configs/jsonc.ts","../src/configs/next.ts","../src/configs/node.ts","../src/configs/prettier.ts","../src/configs/react.ts","../src/configs/regexp.ts","../src/configs/sonar.ts","../src/configs/storybook.ts","../src/configs/tailwind.ts","../src/configs/tanstack.ts","../src/configs/turbo.ts","../src/configs/typescript.ts","../src/configs/unicorn.ts","../src/factory.ts"],"names":["antfu","pluginAntfu","PluginNameMap","recommended","renamePluginsInRules","configs","comments","pluginComments","interopDefault","m","resolved","drizzle","options","overrides","drizzleObjectName","fixupPluginRules","graphql","files","gql","gqlSchema","loadConfig","g","flatRecommended","rules","rule","ruleName","GLOB_SRC","GLOB_TS","GLOB_TSX","GLOB_STORIES","GLOB_JSON","GLOB_JSON5","GLOB_JSONC","GLOB_EXCLUDE","ignores","gitIgnore","composer","javascript","globals","eslint","jsdoc","jsonc","config","SHARED_OPTIONS","collectRules","parser","plugin","next","parserOptions","node","default","prettier","react","tsconfigRootDir","reactCompiler","pluginReact","pluginReactHooks","pluginReactCompiler","plugins","regexp","pluginRegexp","sonar","storybook","storybookDirectory","languageOptions","tailwind","tailwindcss","tailwindFunctions","findUp","tanstack","turbo","typescript","twoDigits","strictConfig","renamePluginsInConfigs","unicorn","enabled","defaults","enable","rest","userConfig","FlatConfigComposer","isPackageExists","typescriptOptions"],"mappings":"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","file":"index.cjs","sourcesContent":["import pluginAntfu from 'eslint-plugin-antfu';\n\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function antfu(): TypedFlatConfigItem[] {\n return [\n {\n name: '2digits:antfu',\n plugins: {\n antfu: pluginAntfu,\n },\n rules: {\n 'antfu/if-newline': 'error',\n 'antfu/top-level-function': 'error',\n },\n },\n ];\n}\n","export const PluginNameMap = {\n '@next/next': 'next',\n '@eslint-react/naming-convention': 'react-naming-convention',\n '@eslint-react/hooks-extra': 'react-hooks-extra',\n '@eslint-react/dom': 'react-dom',\n '@eslint-react/web-api': 'react-web-api',\n '@eslint-react': 'react-extra',\n 'react-hooks': 'react-hooks',\n 'react-compiler': 'react-compiler',\n react: 'react',\n '@typescript-eslint': 'ts',\n node: 'node',\n '@eslint-community/eslint-comments': 'comments',\n storybook: 'storybook',\n turbo: 'turbo',\n jsdoc: 'jsdoc',\n unicorn: 'unicorn',\n tailwindcss: 'tailwindcss',\n '@tanstack/query': 'tanstack',\n '@2digits': '@2digits',\n '@graphql-eslint': 'gql',\n sonarjs: 'sonar',\n drizzle: 'drizzle',\n} as const;\n","import pluginComments from '@eslint-community/eslint-plugin-eslint-comments';\nimport configs from '@eslint-community/eslint-plugin-eslint-comments/configs';\nimport { renamePluginsInRules } from 'eslint-flat-config-utils';\n\nimport { PluginNameMap } from '../constants';\nimport type { TypedFlatConfigItem } from '../types';\n\nconst recommended = renamePluginsInRules(configs.recommended.rules as never, PluginNameMap);\n\nexport function comments(): TypedFlatConfigItem[] {\n return [\n {\n name: '2digits:comments',\n plugins: {\n comments: pluginComments,\n },\n rules: {\n ...recommended,\n\n 'comments/no-unused-disable': 'error',\n 'comments/disable-enable-pair': ['error', { allowWholeFile: true }],\n },\n },\n ];\n}\n","import type { Awaitable } from 'eslint-flat-config-utils';\n\nexport async function interopDefault<T>(m: Awaitable<T>): Promise<T extends { default: infer U } ? U : T> {\n const resolved = await m;\n\n return ((resolved as Record<string, unknown>).default || resolved) as never;\n}\n","import { fixupPluginRules } from '@eslint/compat';\n\nimport type { OptionsWithDrizzle, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function drizzle(options: OptionsWithDrizzle = {}): Promise<TypedFlatConfigItem[]> {\n const { overrides = {}, drizzleObjectName = ['drizzle', 'db'] } = options;\n\n const drizzle = await interopDefault(import('eslint-plugin-drizzle'));\n\n return [\n {\n name: '2digits:drizzle',\n plugins: {\n drizzle: fixupPluginRules(drizzle as never),\n },\n rules: {\n 'drizzle/enforce-update-with-where': ['error', { drizzleObjectName }],\n 'drizzle/enforce-delete-with-where': ['error', { drizzleObjectName }],\n\n ...overrides,\n },\n },\n ];\n}\n","import { renamePluginsInRules } from 'eslint-flat-config-utils';\nimport { loadConfig } from 'graphql-config';\n\nimport { PluginNameMap } from '../constants';\nimport type { OptionsWithFiles, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function graphql(options: OptionsWithFiles = {}): Promise<TypedFlatConfigItem[]> {\n const { overrides = {}, files = ['**/*.graphql', '**/*.gql'] } = options;\n\n const [gql, gqlSchema] = await Promise.all([\n interopDefault(import('@graphql-eslint/eslint-plugin')),\n loadConfig({ throwOnEmpty: false, throwOnMissing: false }).then((g) => g?.getDefault().schema),\n ]);\n\n const flatRecommended = gql.configs['flat/operations-recommended'].rules;\n\n let rules = {} as typeof flatRecommended;\n\n if (gqlSchema) {\n rules = flatRecommended;\n } else {\n for (const rule of Object.keys(flatRecommended) as Array<keyof typeof rules>) {\n const ruleName = rule.replace('@graphql-eslint/', '') as keyof typeof gql.rules;\n if (\n ruleName in gql.rules\n && (gql.rules[ruleName].meta.docs?.requiresSchema || gql.rules[ruleName].meta.docs?.requiresSiblings)\n ) {\n continue;\n }\n rules[rule] = flatRecommended[rule] as never;\n }\n }\n\n const recommended = renamePluginsInRules(rules, PluginNameMap);\n\n return [\n {\n name: '2digits:graphql',\n plugins: {\n gql,\n },\n languageOptions: {\n parser: gql.parser,\n },\n files,\n rules: {\n ...recommended,\n\n 'gql/naming-convention': ['error', { allowLeadingUnderscore: true } as never],\n\n ...overrides,\n },\n },\n ];\n}\n","export const GLOB_SRC = '**/*.?([cm])[jt]s?(x)';\n\nexport const GLOB_TS = '**/*.?([cm])ts';\nexport const GLOB_TSX = '**/*.?([cm])tsx';\n\nexport const GLOB_STORIES = '**/*.stories.tsx';\n\nexport const GLOB_JSON = '**/*.json';\nexport const GLOB_JSON5 = '**/*.json5';\nexport const GLOB_JSONC = '**/*.jsonc';\n\nexport const GLOB_EXCLUDE = [\n '**/node_modules',\n '**/dist',\n '**/package-lock.json',\n '**/yarn.lock',\n '**/pnpm-lock.yaml',\n '**/bun.lockb',\n\n '**/output',\n '**/coverage',\n '**/temp',\n '**/.temp',\n '**/tmp',\n '**/.tmp',\n '**/.history',\n '**/.vitepress/cache',\n '**/.nuxt',\n '**/.next',\n '**/.vercel',\n '**/.changeset',\n '**/.idea',\n '**/.cache',\n '**/.output',\n '**/.vite-inspect',\n '**/.yarn',\n\n '**/CHANGELOG*.md',\n '**/*.min.*',\n '**/LICENSE*',\n '**/__snapshots__',\n '**/auto-import?(s).d.ts',\n '**/components.d.ts',\n] as const;\n","import { composer } from 'eslint-flat-config-utils';\n\nimport { GLOB_EXCLUDE } from '../globs';\nimport type { OptionsWithIgnores, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function ignores(options: OptionsWithIgnores = {}): Promise<TypedFlatConfigItem[]> {\n const { gitIgnore, ignores = [] } = options;\n\n return composer(\n {\n ignores: [GLOB_EXCLUDE, ignores].flat(),\n name: '2digits:ignores',\n },\n interopDefault(import('eslint-config-flat-gitignore')).then((m) =>\n m({ strict: false, ...gitIgnore, name: '2digits:gitignore' }),\n ),\n );\n}\n","import eslint from '@eslint/js';\nimport globals from 'globals';\n\nimport type { OptionsOverrides, TypedFlatConfigItem } from '../types';\n\nexport function javascript(options: OptionsOverrides = {}): TypedFlatConfigItem[] {\n const { overrides = {} } = options;\n\n return [\n {\n name: '2digits:javascript',\n languageOptions: {\n ecmaVersion: 2022,\n globals: {\n ...globals.browser,\n ...globals.es2021,\n ...globals.node,\n document: 'readonly',\n navigator: 'readonly',\n window: 'readonly',\n },\n parserOptions: {\n ecmaFeatures: {\n jsx: true,\n },\n ecmaVersion: 2022,\n sourceType: 'module',\n },\n sourceType: 'module',\n },\n linterOptions: {\n reportUnusedDisableDirectives: true,\n },\n rules: {\n ...eslint.configs.recommended.rules,\n\n 'accessor-pairs': ['error', { enforceForClassMembers: true, setWithoutGet: true }],\n 'array-callback-return': 'error',\n 'block-scoped-var': 'error',\n 'constructor-super': 'error',\n 'default-case-last': 'error',\n 'dot-notation': ['error', { allowKeywords: true }],\n eqeqeq: ['error', 'smart'],\n 'new-cap': ['error', { capIsNew: false, newIsCap: true, properties: true }],\n 'no-alert': 'error',\n 'no-array-constructor': 'error',\n 'no-async-promise-executor': 'error',\n 'no-caller': 'error',\n 'no-case-declarations': 'error',\n 'no-class-assign': 'error',\n 'no-compare-neg-zero': 'error',\n 'no-cond-assign': ['error', 'always'],\n 'no-const-assign': 'error',\n 'no-control-regex': 'error',\n 'no-debugger': 'error',\n 'no-delete-var': 'error',\n 'no-dupe-args': 'error',\n 'no-dupe-class-members': 'error',\n 'no-dupe-keys': 'error',\n 'no-duplicate-case': 'error',\n 'no-empty': ['error', { allowEmptyCatch: true }],\n 'no-empty-character-class': 'error',\n 'no-empty-pattern': 'error',\n 'no-eval': 'error',\n 'no-ex-assign': 'error',\n 'no-extend-native': 'error',\n 'no-extra-bind': 'error',\n 'no-extra-boolean-cast': 'error',\n 'no-fallthrough': 'error',\n 'no-func-assign': 'error',\n 'no-global-assign': 'error',\n 'no-implied-eval': 'error',\n 'no-import-assign': 'error',\n 'no-invalid-regexp': 'error',\n 'no-irregular-whitespace': 'error',\n 'no-iterator': 'error',\n 'no-labels': ['error', { allowLoop: false, allowSwitch: false }],\n 'no-lone-blocks': 'error',\n 'no-loss-of-precision': 'error',\n 'no-misleading-character-class': 'error',\n 'no-multi-str': 'error',\n 'no-new': 'error',\n 'no-new-func': 'error',\n 'no-new-native-nonconstructor': 'error',\n 'no-new-wrappers': 'error',\n 'no-obj-calls': 'error',\n 'no-octal': 'error',\n 'no-octal-escape': 'error',\n 'no-proto': 'error',\n 'no-prototype-builtins': 'error',\n 'no-redeclare': ['error', { builtinGlobals: false }],\n 'no-regex-spaces': 'error',\n 'no-restricted-globals': [\n 'error',\n { message: 'Use `globalThis` instead.', name: 'global' },\n { message: 'Use `globalThis` instead.', name: 'self' },\n ],\n 'no-restricted-properties': [\n 'error',\n {\n message: 'Use `Object.getPrototypeOf` or `Object.setPrototypeOf` instead.',\n property: '__proto__',\n },\n {\n message: 'Use `Object.defineProperty` instead.',\n property: '__defineGetter__',\n },\n {\n message: 'Use `Object.defineProperty` instead.',\n property: '__defineSetter__',\n },\n {\n message: 'Use `Object.getOwnPropertyDescriptor` instead.',\n property: '__lookupGetter__',\n },\n {\n message: 'Use `Object.getOwnPropertyDescriptor` instead.',\n property: '__lookupSetter__',\n },\n ],\n 'no-restricted-syntax': [\n 'error',\n 'DebuggerStatement',\n 'LabeledStatement',\n 'WithStatement',\n 'TSEnumDeclaration',\n 'TSExportAssignment',\n ],\n 'no-self-assign': ['error', { props: true }],\n 'no-self-compare': 'error',\n 'no-sequences': 'error',\n 'no-shadow-restricted-names': 'error',\n 'no-sparse-arrays': 'error',\n 'no-template-curly-in-string': 'error',\n 'no-this-before-super': 'error',\n 'no-throw-literal': 'error',\n 'no-undef': 'error',\n 'no-undef-init': 'error',\n 'no-unexpected-multiline': 'error',\n 'no-unmodified-loop-condition': 'error',\n 'no-unneeded-ternary': ['error', { defaultAssignment: false }],\n 'no-unreachable': 'error',\n 'no-unreachable-loop': 'error',\n 'no-unsafe-finally': 'error',\n 'no-unsafe-negation': 'error',\n 'no-unused-expressions': [\n 'error',\n {\n allowShortCircuit: true,\n allowTaggedTemplates: true,\n allowTernary: true,\n },\n ],\n 'no-unused-vars': [\n 'error',\n {\n args: 'none',\n caughtErrors: 'none',\n ignoreRestSiblings: true,\n vars: 'all',\n },\n ],\n 'no-useless-backreference': 'error',\n 'no-useless-call': 'error',\n 'no-useless-catch': 'error',\n 'no-useless-computed-key': 'error',\n 'no-useless-constructor': 'error',\n 'no-useless-rename': 'error',\n 'no-var': 'error',\n 'no-with': 'error',\n 'object-shorthand': [\n 'error',\n 'always',\n {\n avoidQuotes: true,\n ignoreConstructors: false,\n },\n ],\n 'one-var': ['error', { initialized: 'never' }],\n 'prefer-arrow-callback': [\n 'error',\n {\n allowNamedFunctions: true,\n allowUnboundThis: true,\n },\n ],\n 'prefer-const': [\n 'error',\n {\n destructuring: 'all',\n ignoreReadBeforeAssign: true,\n },\n ],\n 'prefer-exponentiation-operator': 'error',\n 'prefer-promise-reject-errors': 'error',\n 'prefer-regex-literals': ['error', { disallowRedundantWrapping: true }],\n 'prefer-rest-params': 'error',\n 'prefer-spread': 'error',\n 'prefer-template': 'error',\n 'symbol-description': 'error',\n 'unicode-bom': ['error', 'never'],\n 'use-isnan': ['error', { enforceForIndexOf: true, enforceForSwitchCase: true }],\n 'valid-typeof': ['error', { requireStringLiterals: true }],\n 'vars-on-top': 'error',\n yoda: ['error', 'never'],\n\n ...overrides,\n },\n },\n ];\n}\n","import type { TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function jsdoc(): Promise<TypedFlatConfigItem[]> {\n return [\n {\n name: '2digits:jsdoc',\n plugins: {\n jsdoc: await interopDefault(import('eslint-plugin-jsdoc')),\n },\n rules: {\n 'jsdoc/check-access': 'error',\n 'jsdoc/check-param-names': 'error',\n 'jsdoc/check-property-names': 'error',\n 'jsdoc/check-types': 'error',\n 'jsdoc/empty-tags': 'error',\n 'jsdoc/implements-on-classes': 'error',\n 'jsdoc/no-defaults': 'error',\n 'jsdoc/no-multi-asterisks': 'error',\n 'jsdoc/require-param-name': 'error',\n 'jsdoc/require-property': 'error',\n 'jsdoc/require-property-description': 'error',\n 'jsdoc/require-property-name': 'error',\n 'jsdoc/require-returns-check': 'error',\n 'jsdoc/require-returns-description': 'error',\n 'jsdoc/require-yields-check': 'error',\n },\n },\n ];\n}\n","import plugin, { configs } from 'eslint-plugin-jsonc';\nimport parser from 'jsonc-eslint-parser';\n\nimport { GLOB_JSON, GLOB_JSON5, GLOB_JSONC } from '../globs';\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function jsonc(): TypedFlatConfigItem[] {\n return [\n ...configs['flat/base'].map((config) => ({ ...config, name: '2digits:jsonc/base' })),\n\n {\n name: '2digits:jsonc/json',\n files: [GLOB_JSON],\n ...SHARED_OPTIONS,\n rules: {\n ...collectRules(configs['flat/recommended-with-json']),\n },\n },\n {\n name: '2digits:jsonc/jsonc',\n files: [GLOB_JSONC],\n ...SHARED_OPTIONS,\n rules: {\n ...collectRules(configs['flat/recommended-with-jsonc']),\n },\n },\n {\n name: '2digits:jsonc/json5',\n files: [GLOB_JSON5],\n ...SHARED_OPTIONS,\n rules: {\n ...collectRules(configs['flat/recommended-with-json5']),\n },\n },\n\n {\n name: '2digits:jsonc/package.json',\n ...SHARED_OPTIONS,\n files: ['**/package.json'],\n rules: {\n 'jsonc/sort-array-values': [\n 'error',\n {\n order: { type: 'asc' },\n pathPattern: '^files$',\n },\n ],\n 'jsonc/sort-keys': [\n 'error',\n {\n order: [\n '$schema',\n 'publisher',\n 'name',\n 'displayName',\n 'version',\n 'private',\n 'description',\n 'funding',\n 'homepage',\n 'repository',\n 'bugs',\n 'categories',\n 'type',\n 'main',\n 'module',\n 'types',\n 'typesVersions',\n 'bin',\n 'files',\n 'exports',\n 'icon',\n 'unpkg',\n 'jsdelivr',\n 'sideEffects',\n 'activationEvents',\n 'contributes',\n 'scripts',\n 'keywords',\n 'author',\n 'license',\n 'workspaces',\n 'dependencies',\n 'devDependencies',\n 'peerDependencies',\n 'peerDependenciesMeta',\n 'optionalDependencies',\n 'packageManager',\n 'engines',\n 'pnpm',\n 'overrides',\n 'resolutions',\n 'husky',\n 'simple-git-hooks',\n 'lint-staged',\n 'eslintConfig',\n 'prettier',\n ],\n pathPattern: '^$',\n },\n {\n order: { type: 'asc' },\n pathPattern: '^(?:dev|peer|optional|bundled)?[Dd]ependencies(Meta)?$',\n },\n {\n order: ['types', 'import', 'module', 'require', 'default'],\n pathPattern: '^exports.*$',\n },\n ],\n },\n },\n\n {\n name: '2digits:jsonc/tsconfig.json',\n ...SHARED_OPTIONS,\n files: [\n '**/tsconfig.json',\n '**/tsconfig.*.json',\n '**/tsconfig-*.json',\n '**/jsconfig.json',\n '**/jsconfig.*.json',\n '**/jsconfig-*.json',\n ],\n rules: {\n 'jsonc/sort-keys': [\n 'error',\n {\n order: ['$schema', 'extends', 'compilerOptions', 'references', 'files', 'include', 'exclude'],\n pathPattern: '^$',\n },\n {\n order: [\n /* Projects */\n 'incremental',\n 'composite',\n 'tsBuildInfoFile',\n 'disableSourceOfProjectReferenceRedirect',\n 'disableSolutionSearching',\n 'disableReferencedProjectLoad',\n /* Language and Environment */\n 'target',\n 'lib',\n 'jsx',\n 'experimentalDecorators',\n 'emitDecoratorMetadata',\n 'jsxFactory',\n 'jsxFragmentFactory',\n 'jsxImportSource',\n 'reactNamespace',\n 'noLib',\n 'useDefineForClassFields',\n 'moduleDetection',\n /* Modules */\n 'module',\n 'rootDir',\n 'moduleResolution',\n 'baseUrl',\n 'paths',\n 'rootDirs',\n 'typeRoots',\n 'types',\n 'allowUmdGlobalAccess',\n 'moduleSuffixes',\n 'allowImportingTsExtensions',\n 'resolvePackageJsonExports',\n 'resolvePackageJsonImports',\n 'customConditions',\n 'resolveJsonModule',\n 'allowArbitraryExtensions',\n 'noResolve',\n /* JavaScript Support */\n 'allowJs',\n 'checkJs',\n 'maxNodeModuleJsDepth',\n /* Emit */\n 'declaration',\n 'declarationMap',\n 'emitDeclarationOnly',\n 'sourceMap',\n 'inlineSourceMap',\n 'outFile',\n 'outDir',\n 'removeComments',\n 'noEmit',\n 'importHelpers',\n 'importsNotUsedAsValues',\n 'downlevelIteration',\n 'sourceRoot',\n 'mapRoot',\n 'inlineSources',\n 'emitBOM',\n 'newLine',\n 'stripInternal',\n 'noEmitHelpers',\n 'noEmitOnError',\n 'preserveConstEnums',\n 'declarationDir',\n 'preserveValueImports',\n /* Interop Constraints */\n 'isolatedModules',\n 'verbatimModuleSyntax',\n 'allowSyntheticDefaultImports',\n 'esModuleInterop',\n 'preserveSymlinks',\n 'forceConsistentCasingInFileNames',\n /* Type Checking */\n 'strict',\n 'strictBindCallApply',\n 'strictFunctionTypes',\n 'strictNullChecks',\n 'strictPropertyInitialization',\n 'allowUnreachableCode',\n 'allowUnusedLabels',\n 'alwaysStrict',\n 'exactOptionalPropertyTypes',\n 'noFallthroughCasesInSwitch',\n 'noImplicitAny',\n 'noImplicitOverride',\n 'noImplicitReturns',\n 'noImplicitThis',\n 'noPropertyAccessFromIndexSignature',\n 'noUncheckedIndexedAccess',\n 'noUnusedLocals',\n 'noUnusedParameters',\n 'useUnknownInCatchVariables',\n /* Completeness */\n 'skipDefaultLibCheck',\n 'skipLibCheck',\n ],\n pathPattern: '^compilerOptions$',\n },\n ],\n },\n },\n\n ...configs['flat/prettier'].map((config) => ({ ...config, name: '2digits:jsonc/prettier' })),\n ];\n}\n\nconst SHARED_OPTIONS = {\n languageOptions: {\n parser,\n },\n plugins: {\n jsonc: plugin,\n },\n} satisfies Pick<TypedFlatConfigItem, 'plugins' | 'languageOptions'>;\n\ntype FlatConfigName = Extract<keyof typeof configs, `flat/${string}`>;\n\nfunction collectRules(config: (typeof configs)[FlatConfigName]) {\n return Object.fromEntries(config.flatMap(({ rules }) => Object.entries(rules ?? {})));\n}\n","import { fixupPluginRules } from '@eslint/compat';\nimport { renamePluginsInRules } from 'eslint-flat-config-utils';\n\nimport { PluginNameMap } from '../constants';\nimport { GLOB_TS, GLOB_TSX } from '../globs';\nimport type { OptionsTypeScriptWithTypes, OptionsWithFiles, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function next(\n options: OptionsWithFiles & OptionsTypeScriptWithTypes = {},\n): Promise<TypedFlatConfigItem[]> {\n const { files = [GLOB_TS, GLOB_TSX], overrides = {}, parserOptions } = options;\n\n const [next, parser] = await Promise.all([\n interopDefault(import('@next/eslint-plugin-next')),\n interopDefault(import('@typescript-eslint/parser')),\n ]);\n\n const recommended = renamePluginsInRules(\n {\n ...next.configs.recommended.rules,\n ...next.configs['core-web-vitals'].rules,\n },\n PluginNameMap,\n );\n\n return [\n {\n name: '2digits:next/setup',\n plugins: {\n next: fixupPluginRules(next as never),\n },\n },\n {\n name: '2digits:next/rules',\n files,\n languageOptions: {\n parser,\n parserOptions: {\n ecmaFeatures: {\n jsx: true,\n },\n projectService: true,\n ...parserOptions,\n },\n sourceType: 'module',\n },\n rules: {\n ...recommended,\n\n 'next/no-html-link-for-pages': 'off',\n\n ...overrides,\n },\n },\n ];\n}\n","import { pluginNode } from '../plugins';\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function node(): TypedFlatConfigItem[] {\n return [\n {\n name: '2digits:node',\n settings: {\n node: {\n version: '>= 22.0.0',\n },\n },\n plugins: {\n node: pluginNode,\n },\n rules: {\n 'node/handle-callback-err': ['error', '^(err|error)$'],\n 'node/no-deprecated-api': 'error',\n 'node/no-exports-assign': 'error',\n 'node/no-new-require': 'error',\n 'node/no-path-concat': 'error',\n 'node/no-unsupported-features/node-builtins': ['error', { allowExperimental: true }],\n 'node/prefer-global/buffer': 'error',\n 'node/prefer-global/process': 'error',\n 'node/prefer-global/text-encoder': 'error',\n 'node/prefer-global/url': 'error',\n 'node/prefer-global/console': 'error',\n 'node/prefer-global/url-search-params': 'error',\n 'node/prefer-global/text-decoder': 'error',\n 'node/process-exit-as-throw': 'error',\n },\n },\n ];\n}\n","import type { TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function prettier(): Promise<TypedFlatConfigItem[]> {\n const [prettier, react] = await Promise.all([\n interopDefault(import('eslint-config-prettier')),\n interopDefault(import('eslint-plugin-react')),\n ]);\n\n return [\n {\n name: '2digits:prettier',\n plugins: {\n react,\n },\n rules: {\n ...prettier.rules,\n\n 'tailwindcss/classnames-order': 'off',\n 'react/jsx-newline': ['error', { prevent: false }],\n },\n },\n ];\n}\n","import { fixupPluginRules } from '@eslint/compat';\nimport { renamePluginsInRules } from 'eslint-flat-config-utils';\n\nimport { PluginNameMap } from '../constants';\nimport { GLOB_TS, GLOB_TSX } from '../globs';\nimport type { OptionsTypeScriptWithTypes, OptionsWithReact, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function react(\n options: OptionsWithReact & OptionsTypeScriptWithTypes = {},\n): Promise<TypedFlatConfigItem[]> {\n const { files = [GLOB_TS, GLOB_TSX], overrides = {}, parserOptions, tsconfigRootDir, reactCompiler = true } = options;\n\n const [pluginReact, pluginReactHooks, react, parser, pluginReactCompiler] = await Promise.all([\n interopDefault(import('@eslint-react/eslint-plugin')),\n interopDefault(import('eslint-plugin-react-hooks')),\n interopDefault(import('eslint-plugin-react')),\n interopDefault(import('@typescript-eslint/parser')),\n reactCompiler ? interopDefault(import('eslint-plugin-react-compiler')) : undefined,\n ]);\n\n const plugins = pluginReact.configs.all.plugins;\n\n const recommended = renamePluginsInRules(\n {\n ...react.configs.recommended.rules,\n ...react.configs['jsx-runtime'].rules,\n ...pluginReactHooks.configs.recommended.rules,\n ...pluginReact.configs['recommended-type-checked'].rules,\n },\n PluginNameMap,\n );\n\n return [\n {\n name: '2digits:react/setup',\n plugins: {\n react,\n 'react-dom': plugins['@eslint-react/dom'],\n 'react-web-api': plugins['@eslint-react/web-api'],\n 'react-extra': plugins['@eslint-react'],\n 'react-hooks': fixupPluginRules(pluginReactHooks as never),\n 'react-hooks-extra': plugins['@eslint-react/hooks-extra'],\n 'react-naming-convention': plugins['@eslint-react/naming-convention'],\n ...(reactCompiler ? { 'react-compiler': pluginReactCompiler } : {}),\n },\n settings: {\n react: {\n version: 'detect',\n },\n },\n },\n {\n name: '2digits:react/rules',\n files,\n languageOptions: {\n parser,\n parserOptions: {\n ecmaFeatures: {\n jsx: true,\n },\n tsconfigRootDir,\n projectService: true,\n ...parserOptions,\n },\n sourceType: 'module',\n },\n rules: {\n ...recommended,\n\n ...(reactCompiler ? { 'react-compiler/react-compiler': 'error' } : {}),\n\n 'react-hooks-extra/no-unnecessary-use-callback': 'error',\n 'react-hooks-extra/prefer-use-state-lazy-initialization': 'error',\n 'react-hooks-extra/no-redundant-custom-hook': 'error',\n 'react-hooks-extra/no-unnecessary-use-memo': 'error',\n\n 'react-extra/prefer-read-only-props': 'off',\n 'react-extra/prefer-shorthand-boolean': 'error',\n 'react-extra/prefer-shorthand-fragment': 'error',\n 'react-extra/prefer-react-namespace-import': 'error',\n\n 'react-naming-convention/use-state': 'error',\n\n 'react/jsx-curly-newline': 'off',\n 'react/jsx-newline': ['error', { prevent: false }],\n 'react/prop-types': 'off',\n\n ...overrides,\n },\n },\n ];\n}\n","import pluginRegexp from 'eslint-plugin-regexp';\n\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function regexp(): TypedFlatConfigItem[] {\n return [\n {\n name: '2digits:regexp',\n plugins: {\n regexp: pluginRegexp,\n },\n rules: {\n ...pluginRegexp.configs['flat/recommended'].rules,\n },\n },\n ];\n}\n","import { pluginSonar } from '../plugins';\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function sonar(): TypedFlatConfigItem[] {\n return [\n {\n name: '2digits:sonar',\n plugins: {\n sonar: pluginSonar,\n },\n rules: {\n 'sonar/code-eval': 'error',\n 'sonar/cognitive-complexity': 'error',\n 'sonar/comma-or-logical-or-case': 'error',\n 'sonar/concise-regex': 'error',\n 'sonar/confidential-information-logging': 'error',\n 'sonar/constructor-for-side-effects': 'error',\n 'sonar/content-length': 'error',\n 'sonar/content-security-policy': 'error',\n 'sonar/cookie-no-httponly': 'error',\n 'sonar/cors': 'error',\n 'sonar/csrf': 'error',\n 'sonar/max-switch-cases': 'error',\n 'sonar/no-all-duplicated-branches': 'error',\n 'sonar/no-collapsible-if': 'error',\n 'sonar/no-collection-size-mischeck': 'error',\n 'sonar/no-duplicate-string': ['error', { threshold: 5 }],\n 'sonar/no-duplicated-branches': 'error',\n 'sonar/no-element-overwrite': 'error',\n 'sonar/no-empty-collection': 'error',\n 'sonar/no-extra-arguments': 'error',\n 'sonar/no-for-in-iterable': 'error',\n 'sonar/no-gratuitous-expressions': 'error',\n 'sonar/no-identical-conditions': 'error',\n 'sonar/no-identical-expressions': 'error',\n 'sonar/no-identical-functions': 'error',\n 'sonar/no-ignored-return': 'error',\n 'sonar/no-inverted-boolean-check': 'error',\n 'sonar/no-nested-switch': 'error',\n 'sonar/no-nested-template-literals': 'error',\n 'sonar/no-one-iteration-loop': 'error',\n 'sonar/no-redundant-boolean': 'error',\n 'sonar/no-same-line-conditional': 'error',\n 'sonar/no-small-switch': 'error',\n 'sonar/no-unused-collection': 'error',\n 'sonar/no-use-of-empty-return-value': 'error',\n 'sonar/no-useless-catch': 'error',\n 'sonar/non-existent-operator': 'error',\n 'sonar/prefer-immediate-return': 'error',\n 'sonar/prefer-object-literal': 'error',\n 'sonar/prefer-single-boolean-return': 'error',\n 'sonar/prefer-while': 'error',\n\n 'sonar/elseif-without-else': 'off',\n 'sonar/no-redundant-jump': 'off',\n },\n },\n ];\n}\n","import { fixupPluginRules } from '@eslint/compat';\nimport type { FlatConfig } from '@typescript-eslint/utils/ts-eslint';\n\nimport { GLOB_STORIES } from '../globs';\nimport type { OptionsTypeScriptWithTypes, OptionsWithStorybook, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function storybook(\n options: OptionsWithStorybook & OptionsTypeScriptWithTypes = {},\n): Promise<TypedFlatConfigItem[]> {\n const { files = [GLOB_STORIES], overrides = {}, parserOptions, storybookDirectory = '.storybook' } = options;\n\n const [storybook, parser] = await Promise.all([\n interopDefault(import('eslint-plugin-storybook')),\n interopDefault(import('@typescript-eslint/parser')),\n ]);\n\n const languageOptions = {\n parser,\n parserOptions: {\n ecmaFeatures: {\n jsx: true,\n },\n projectService: true,\n ...parserOptions,\n },\n sourceType: 'module',\n } satisfies FlatConfig.LanguageOptions;\n\n return [\n {\n name: '2digits:storybook/setup',\n plugins: {\n storybook: fixupPluginRules(storybook as never),\n },\n },\n {\n name: '2digits:storybook/rules',\n files,\n languageOptions,\n rules: {\n 'storybook/await-interactions': 'error',\n 'storybook/context-in-play-function': 'error',\n 'storybook/csf-component': 'error',\n 'storybook/default-exports': 'error',\n 'storybook/hierarchy-separator': 'error',\n 'storybook/meta-inline-properties': 'error',\n 'storybook/no-redundant-story-name': 'error',\n 'storybook/no-stories-of': 'error',\n 'storybook/no-title-property-in-meta': 'error',\n 'storybook/no-uninstalled-addons': 'error',\n 'storybook/prefer-pascal-case': 'error',\n 'storybook/story-exports': 'error',\n 'storybook/use-storybook-expect': 'error',\n 'storybook/use-storybook-testing-library': 'error',\n\n ...overrides,\n },\n },\n {\n name: '2digits:storybook/disables',\n files,\n rules: {\n 'react-hooks/rules-of-hooks': 'off',\n 'react/display-name': 'off',\n 'sonar/no-duplicate-string': 'off',\n },\n },\n {\n name: '2digits:storybook/config',\n files: [`${storybookDirectory}/main.@(js|cjs|mjs|ts)`],\n languageOptions,\n rules: {\n 'storybook/no-uninstalled-addons': 'error',\n },\n },\n ];\n}\n","import { findUp } from 'find-up';\n\nimport type { OptionsOverrides, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function tailwind(options: OptionsOverrides = {}): Promise<TypedFlatConfigItem[]> {\n const { overrides = {} } = options;\n\n const [tailwindcss, { tailwindFunctions }, config] = await Promise.all([\n interopDefault(import('eslint-plugin-tailwindcss')),\n interopDefault(import('@2digits/constants')),\n findUp(['tailwind.config.ts', 'tailwind.config.js']),\n ]);\n\n return [\n {\n name: '2digits:tailwind',\n plugins: {\n tailwindcss,\n },\n settings: {\n tailwindcss: {\n callees: tailwindFunctions,\n config,\n },\n },\n rules: {\n ...tailwindcss.configs.recommended.rules,\n\n ...overrides,\n },\n },\n ];\n}\n","import { renamePluginsInRules } from 'eslint-flat-config-utils';\n\nimport { PluginNameMap } from '../constants';\nimport type { OptionsOverrides, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function tanstack(options: OptionsOverrides = {}): Promise<TypedFlatConfigItem[]> {\n const { overrides = {} } = options;\n\n const tanstack = await interopDefault(import('@tanstack/eslint-plugin-query'));\n\n const recommended = renamePluginsInRules(tanstack.configs['flat/recommended'].at(0)?.rules ?? {}, PluginNameMap);\n\n return [\n {\n name: '2digits:tanstack',\n plugins: { tanstack },\n rules: {\n ...recommended,\n\n ...overrides,\n },\n },\n ];\n}\n","import type { OptionsOverrides, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function turbo(options: OptionsOverrides = {}): Promise<TypedFlatConfigItem[]> {\n const { overrides = {} } = options;\n\n const turbo = await interopDefault(import('eslint-plugin-turbo'));\n\n return [\n {\n name: '2digits:turbo',\n plugins: {\n turbo,\n },\n rules: {\n 'turbo/no-undeclared-env-vars': 'error',\n\n ...overrides,\n },\n },\n ];\n}\n","import { renamePluginsInConfigs } from 'eslint-flat-config-utils';\n\nimport { PluginNameMap } from '../constants';\nimport { GLOB_SRC } from '../globs';\nimport type { OptionsTypeScriptWithTypes, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function typescript(options: OptionsTypeScriptWithTypes = {}): Promise<TypedFlatConfigItem[]> {\n const { overrides = {}, parserOptions = {} } = options;\n\n const [{ plugin, configs, parser }, twoDigits] = await Promise.all([\n interopDefault(import('typescript-eslint')),\n interopDefault(import('@2digits/eslint-plugin')),\n ]);\n\n const strictConfig = renamePluginsInConfigs(configs.strictTypeChecked as never, PluginNameMap);\n\n const rules = Object.fromEntries(strictConfig.flatMap(({ rules }) => Object.entries(rules ?? {})));\n\n return [\n {\n name: '2digits:typescript/setup',\n plugins: {\n ts: plugin,\n '@2digits': twoDigits,\n },\n },\n {\n name: '2digits:typescript/rules',\n files: [GLOB_SRC],\n languageOptions: {\n parser,\n parserOptions: {\n tsconfigRootDir: process.cwd(),\n projectService: true,\n warnOnUnsupportedTypeScriptVersion: false,\n ...parserOptions,\n },\n sourceType: 'module',\n },\n rules: {\n ...rules,\n 'ts/restrict-template-expressions': ['error', { allowNumber: true }],\n 'ts/ban-ts-comment': ['error', { 'ts-ignore': 'allow-with-description' }],\n 'ts/consistent-type-exports': ['error'],\n 'ts/consistent-type-imports': [\n 'error',\n {\n prefer: 'type-imports',\n disallowTypeAnnotations: false,\n fixStyle: 'inline-type-imports',\n },\n ],\n 'ts/no-empty-object-type': ['error', { allowInterfaces: 'with-single-extends', allowObjectTypes: 'never' }],\n 'ts/no-explicit-any': ['error'],\n 'ts/no-import-type-side-effects': ['error'],\n 'ts/no-misused-promises': 'off',\n 'ts/no-confusing-void-expression': 'off',\n 'ts/no-unused-vars': [\n 'error',\n {\n ignoreRestSiblings: true,\n argsIgnorePattern: '^_',\n varsIgnorePattern: '^_',\n },\n ],\n 'ts/unbound-method': 'off',\n\n ...(twoDigits.configs.recommended.rules as object),\n\n ...overrides,\n },\n },\n {\n files: ['**/*.d.ts'],\n name: '2digits:typescript/disables/dts',\n rules: {\n 'unicorn/no-abusive-eslint-disable': 'off',\n 'no-duplicate-imports': 'off',\n 'no-restricted-syntax': 'off',\n 'ts/no-unused-vars': 'off',\n },\n },\n {\n files: ['**/*.{test,spec}.ts?(x)'],\n name: '2digits:typescript/disables/test',\n rules: {\n 'no-unused-expressions': 'off',\n },\n },\n {\n files: ['**/*.js', '**/*.cjs', '**/*.cts'],\n name: '2digits:typescript/disables/cjs',\n rules: {\n 'ts/no-require-imports': 'off',\n 'ts/no-var-requires': 'off',\n },\n },\n ];\n}\n","import { pluginUnicorn } from '../plugins';\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function unicorn(): TypedFlatConfigItem[] {\n return [\n {\n name: '2digits:unicorn',\n plugins: {\n unicorn: pluginUnicorn,\n },\n rules: {\n ...pluginUnicorn.configs['flat/recommended'].rules,\n\n 'unicorn/filename-case': ['off'],\n 'unicorn/prefer-module': ['off'],\n 'unicorn/prevent-abbreviations': ['off'],\n 'unicorn/prefer-ternary': ['error', 'only-single-line'],\n 'unicorn/no-useless-undefined': [\n 'error',\n {\n checkArguments: false,\n checkArrowFunctionBody: false,\n },\n ],\n 'unicorn/prefer-top-level-await': ['off'],\n },\n },\n ];\n}\n","import { FlatConfigComposer } from 'eslint-flat-config-utils';\nimport { isPackageExists } from 'local-pkg';\n\nimport {\n antfu,\n comments,\n graphql,\n ignores,\n javascript,\n jsdoc,\n jsonc,\n next,\n node,\n prettier,\n react,\n regexp,\n sonar,\n storybook,\n tailwind,\n tanstack,\n turbo,\n typescript,\n unicorn,\n} from './configs';\nimport { drizzle } from './configs/drizzle';\nimport { PluginNameMap } from './constants';\nimport type {\n ConfigNames,\n OptionsOverrides,\n OptionsTypeScriptWithTypes,\n OptionsWithDrizzle,\n OptionsWithFiles,\n OptionsWithIgnores,\n OptionsWithReact,\n OptionsWithStorybook,\n TypedFlatConfigItem,\n} from './types';\n\ntype SharedOptions<T = unknown> = T & {\n enable?: boolean;\n};\n\ninterface ESLint2DigitsOptions {\n ignores?: OptionsWithIgnores;\n turbo?: SharedOptions<OptionsOverrides> | boolean;\n js?: OptionsOverrides;\n ts?: SharedOptions<OptionsTypeScriptWithTypes> | boolean;\n graphql?: SharedOptions<OptionsWithFiles> | boolean;\n react?: SharedOptions<OptionsWithReact> | boolean;\n next?: SharedOptions<OptionsWithFiles> | boolean;\n tailwind?: SharedOptions<OptionsOverrides> | boolean;\n storybook?: SharedOptions<OptionsWithStorybook> | boolean;\n tanstack?: SharedOptions<OptionsOverrides> | boolean;\n drizzle?: SharedOptions<OptionsWithDrizzle> | boolean;\n}\n\nfunction enabled<T extends SharedOptions>(options: T | boolean | undefined, defaults?: boolean): options is T {\n if (typeof options === 'boolean') {\n return options;\n }\n\n return options?.enable ?? defaults ?? false;\n}\n\nfunction config<T>(options: SharedOptions<T> | undefined | boolean): T {\n if (typeof options === 'boolean' || options === undefined) {\n return {} as T;\n }\n\n const { enable, ...rest } = options;\n return rest as T;\n}\n\nexport function twoDigits(\n options: ESLint2DigitsOptions = {},\n ...userConfig: TypedFlatConfigItem[]\n): Promise<TypedFlatConfigItem[]> {\n let composer = new FlatConfigComposer<TypedFlatConfigItem, ConfigNames>(\n ignores(options.ignores),\n javascript(options.js),\n node(),\n comments(),\n jsdoc(),\n unicorn(),\n sonar(),\n regexp(),\n antfu(),\n jsonc(),\n );\n\n if (enabled(options.turbo, isPackageExists('turbo'))) {\n composer = composer.append(turbo(config(options.turbo)));\n }\n\n const { overrides, ...typescriptOptions } = config(options.ts);\n\n if (enabled(options.ts, isPackageExists('typescript'))) {\n composer = composer.append(typescript(config(options.ts)));\n }\n\n if (enabled(options.react, isPackageExists('react'))) {\n composer = composer.append(\n react({\n ...config(options.react),\n ...typescriptOptions,\n }),\n );\n }\n\n if (enabled(options.next, isPackageExists('next'))) {\n composer = composer.append(\n next({\n ...config(options.next),\n ...typescriptOptions,\n }),\n );\n }\n\n if (enabled(options.storybook, isPackageExists('storybook'))) {\n composer = composer.append(\n storybook({\n ...config(options.storybook),\n ...typescriptOptions,\n }),\n );\n }\n\n if (enabled(options.tailwind, isPackageExists('tailwindcss'))) {\n composer = composer.append(tailwind(config(options.tailwind)));\n }\n\n if (\n enabled(\n options.tanstack,\n isPackageExists('react-query')\n || isPackageExists('@tanstack/react-query')\n || isPackageExists('@tanstack/react-query-devtools'),\n )\n ) {\n composer = composer.append(tanstack(config(options.tanstack)));\n }\n\n if (enabled(options.drizzle, isPackageExists('drizzle-kit') || isPackageExists('drizzle-orm'))) {\n composer = composer.append(drizzle(config(options.drizzle)));\n }\n\n if (enabled(options.graphql, isPackageExists('graphql'))) {\n composer = composer.append(graphql(config(options.graphql)));\n }\n\n composer = composer.append(...userConfig);\n\n if (isPackageExists('prettier')) {\n composer = composer.append(prettier());\n }\n\n return composer.renamePlugins(PluginNameMap).toConfigs();\n}\n"]}
package/dist/index.d.cts CHANGED
@@ -10,7 +10,7 @@ import { FlatGitignoreOptions } from 'eslint-config-flat-gitignore';
10
10
  interface RuleOptions {
11
11
  /**
12
12
  * Enforce giving proper names to type parameters when there are two or more
13
- * @see https://github.com/2digits-agency/configs/blob/@2digits/eslint-plugin@2.3.29/packages/eslint/src/rules/type-param-names.ts
13
+ * @see https://github.com/2digits-agency/configs/blob/@2digits/eslint-plugin@2.3.31/packages/eslint/src/rules/type-param-names.ts
14
14
  */
15
15
  '@2digits/type-param-names'?: Linter.RuleEntry<[]>
16
16
  /**
@@ -11541,6 +11541,8 @@ type TsNoUnnecessaryBooleanLiteralCompare = []|[{
11541
11541
  allowComparingNullableBooleansToFalse?: boolean
11542
11542
 
11543
11543
  allowComparingNullableBooleansToTrue?: boolean
11544
+
11545
+ allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing?: boolean
11544
11546
  }]
11545
11547
  // ----- ts/no-unnecessary-condition -----
11546
11548
  type TsNoUnnecessaryCondition = []|[{
@@ -12139,8 +12141,8 @@ type ConfigNames = '2digits:antfu' | '2digits:comments' | '2digits:drizzle' | '2
12139
12141
  type Rules = RuleOptions;
12140
12142
  interface TypedFlatConfigItem extends Omit<Linter.Config<Linter.RulesRecord & Rules>, 'plugins' | 'languageOptions'> {
12141
12143
  /**
12142
- * An object containing a name-value mapping of plugin names to plugin objects. When `files` is
12143
- * specified, these plugins are only available to the matching files.
12144
+ * An object containing a name-value mapping of plugin names to plugin objects. When `files` is specified, these
12145
+ * plugins are only available to the matching files.
12144
12146
  *
12145
12147
  * @see [Using plugins in your configuration](https://eslint.org/docs/latest/user-guide/configuring/configuration-files-new#using-plugins-in-your-configuration)
12146
12148
  */
package/dist/index.d.ts CHANGED
@@ -10,7 +10,7 @@ import { FlatGitignoreOptions } from 'eslint-config-flat-gitignore';
10
10
  interface RuleOptions {
11
11
  /**
12
12
  * Enforce giving proper names to type parameters when there are two or more
13
- * @see https://github.com/2digits-agency/configs/blob/@2digits/eslint-plugin@2.3.29/packages/eslint/src/rules/type-param-names.ts
13
+ * @see https://github.com/2digits-agency/configs/blob/@2digits/eslint-plugin@2.3.31/packages/eslint/src/rules/type-param-names.ts
14
14
  */
15
15
  '@2digits/type-param-names'?: Linter.RuleEntry<[]>
16
16
  /**
@@ -11541,6 +11541,8 @@ type TsNoUnnecessaryBooleanLiteralCompare = []|[{
11541
11541
  allowComparingNullableBooleansToFalse?: boolean
11542
11542
 
11543
11543
  allowComparingNullableBooleansToTrue?: boolean
11544
+
11545
+ allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing?: boolean
11544
11546
  }]
11545
11547
  // ----- ts/no-unnecessary-condition -----
11546
11548
  type TsNoUnnecessaryCondition = []|[{
@@ -12139,8 +12141,8 @@ type ConfigNames = '2digits:antfu' | '2digits:comments' | '2digits:drizzle' | '2
12139
12141
  type Rules = RuleOptions;
12140
12142
  interface TypedFlatConfigItem extends Omit<Linter.Config<Linter.RulesRecord & Rules>, 'plugins' | 'languageOptions'> {
12141
12143
  /**
12142
- * An object containing a name-value mapping of plugin names to plugin objects. When `files` is
12143
- * specified, these plugins are only available to the matching files.
12144
+ * An object containing a name-value mapping of plugin names to plugin objects. When `files` is specified, these
12145
+ * plugins are only available to the matching files.
12144
12146
  *
12145
12147
  * @see [Using plugins in your configuration](https://eslint.org/docs/latest/user-guide/configuring/configuration-files-new#using-plugins-in-your-configuration)
12146
12148
  */
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/configs/antfu.ts","../src/constants.ts","../src/configs/comments.ts","../src/utils.ts","../src/configs/drizzle.ts","../src/configs/graphql.ts","../src/globs.ts","../src/configs/ignores.ts","../src/configs/javascript.ts","../src/configs/jsdoc.ts","../src/configs/jsonc.ts","../src/configs/next.ts","../src/configs/node.ts","../src/configs/prettier.ts","../src/configs/react.ts","../src/configs/regexp.ts","../src/configs/sonar.ts","../src/configs/storybook.ts","../src/configs/tailwind.ts","../src/configs/tanstack.ts","../src/configs/turbo.ts","../src/configs/typescript.ts","../src/configs/unicorn.ts","../src/factory.ts"],"names":["antfu","pluginAntfu","PluginNameMap","recommended","renamePluginsInRules","configs","comments","pluginComments","interopDefault","m","resolved","drizzle","options","overrides","drizzleObjectName","fixupPluginRules","graphql","files","gql","gqlSchema","loadConfig","g","flatRecommended","rules","rule","ruleName","GLOB_SRC","GLOB_TS","GLOB_TSX","GLOB_STORIES","GLOB_JSON","GLOB_JSON5","GLOB_JSONC","GLOB_EXCLUDE","ignores","gitIgnore","composer","javascript","globals","eslint","jsdoc","jsonc","config","SHARED_OPTIONS","collectRules","parser","plugin","next","parserOptions","node","default","prettier","react","tsconfigRootDir","reactCompiler","pluginReact","pluginReactHooks","pluginReactCompiler","plugins","regexp","pluginRegexp","sonar","storybook","storybookDirectory","languageOptions","tailwind","tailwindcss","tailwindFunctions","findUp","tanstack","turbo","typescript","twoDigits","strictConfig","renamePluginsInConfigs","unicorn","enabled","defaults","enable","rest","userConfig","FlatConfigComposer","isPackageExists","typescriptOptions"],"mappings":"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AAM,CAAA,4BAAA,CACN,GAAGsC,CACH,CAAA,KAAA,CAAO,CAAC,iBAAiB,CAAA,CACzB,MAAO,CACL,yBAAA,CAA2B,CACzB,OACA,CAAA,CACE,MAAO,CAAE,IAAA,CAAM,KAAM,CAAA,CACrB,YAAa,SACf,CACF,EACA,iBAAmB,CAAA,CACjB,QACA,CACE,KAAA,CAAO,CACL,SAAA,CACA,YACA,MACA,CAAA,aAAA,CACA,UACA,SACA,CAAA,aAAA,CACA,UACA,UACA,CAAA,YAAA,CACA,MACA,CAAA,YAAA,CACA,OACA,MACA,CAAA,QAAA,CACA,QACA,eACA,CAAA,KAAA,CACA,QACA,SACA,CAAA,MAAA,CACA,QACA,UACA,CAAA,aAAA,CACA,mBACA,aACA,CAAA,SAAA,CACA,WACA,QACA,CAAA,SAAA,CACA,aACA,cACA,CAAA,iBAAA,CACA,kBACA,CAAA,sBAAA,CACA,uBACA,gBACA,CAAA,SAAA,CACA,OACA,WACA,CAAA,aAAA,CACA,QACA,kBACA,CAAA,aAAA,CACA,cACA,CAAA,UACF,EACA,WAAa,CAAA,IACf,EACA,CACE,KAAA,CAAO,CAAE,IAAM,CAAA,KAAM,CACrB,CAAA,WAAA,CAAa,wDACf,CACA,CAAA,CACE,MAAO,CAAC,OAAA,CAAS,SAAU,QAAU,CAAA,SAAA,CAAW,SAAS,CACzD,CAAA,WAAA,CAAa,aACf,CACF,CACF,CACF,CAEA,CAAA,CACE,KAAM,6BACN,CAAA,GAAGA,CACH,CAAA,KAAA,CAAO,CACL,kBACA,CAAA,oBAAA,CACA,qBACA,kBACA,CAAA,oBAAA,CACA,oBACF,CACA,CAAA,KAAA,CAAO,CACL,iBAAA,CAAmB,CACjB,OACA,CAAA,CACE,MAAO,CACL,SAAA,CACA,UACA,iBACA,CAAA,YAAA,CACA,OACA,CAAA,SAAA,CACA,SACF,CACA,CAAA,WAAA,CAAa,IACf,CACA,CAAA,CACE,MAAO,CAEL,aAAA,CACA,YACA,iBACA,CAAA,yCAAA,CACA,2BACA,8BAEA,CAAA,QAAA,CACA,MACA,KACA,CAAA,wBAAA,CACA,wBACA,YACA,CAAA,oBAAA,CACA,iBACA,CAAA,gBAAA,CACA,QACA,yBACA,CAAA,iBAAA,CAEA,SACA,SACA,CAAA,kBAAA,CACA,UACA,OACA,CAAA,UAAA,CACA,YACA,OACA,CAAA,sBAAA,CACA,iBACA,4BACA,CAAA,2BAAA,CACA,4BACA,kBACA,CAAA,mBAAA,CACA,2BACA,WAEA,CAAA,SAAA,CACA,SACA,CAAA,sBAAA,CAEA,cACA,gBACA,CAAA,qBAAA,CACA,YACA,iBACA,CAAA,SAAA,CACA,SACA,gBACA,CAAA,QAAA,CACA,gBACA,wBACA,CAAA,oBAAA,CACA,aACA,SACA,CAAA,eAAA,CACA,UACA,SACA,CAAA,eAAA,CACA,gBACA,eACA,CAAA,oBAAA,CACA,gBACA,CAAA,sBAAA,CAEA,kBACA,sBACA,CAAA,8BAAA,CACA,kBACA,kBACA,CAAA,kCAAA,CAEA,SACA,qBACA,CAAA,qBAAA,CACA,kBACA,CAAA,8BAAA,CACA,uBACA,mBACA,CAAA,cAAA,CACA,6BACA,4BACA,CAAA,eAAA,CACA,qBACA,mBACA,CAAA,gBAAA,CACA,oCACA,CAAA,0BAAA,CACA,iBACA,oBACA,CAAA,4BAAA,CAEA,sBACA,cACF,CAAA,CACA,YAAa,mBACf,CACF,CACF,CACF,CAAA,CAEA,GAAGtC,OAAQ,CAAA,eAAe,EAAE,GAAKqC,CAAAA,CAAAA,GAAY,CAAE,GAAGA,CAAAA,CAAQ,IAAM,CAAA,wBAAyB,EAAE,CAC7F,CACF,CAEA,IAAMC,CAAAA,CAAiB,CACrB,eAAiB,CAAA,CACf,OAAAE,EACF,CAAA,CACA,QAAS,CACP,KAAA,CAAOC,EACT,CACF,CAAA,CAIA,SAASF,CAAaF,CAAAA,CAAAA,CAA0C,CAC9D,OAAO,OAAO,WAAYA,CAAAA,CAAAA,CAAO,QAAQ,CAAC,CAAE,MAAAnB,CAAM,CAAA,GAAM,OAAO,OAAQA,CAAAA,CAAAA,EAAS,EAAE,CAAC,CAAC,CACtF,CC5PA,eAAsBwB,CACpBnC,CAAAA,CAAAA,CAAyD,EACzB,CAAA,CAChC,GAAM,CAAE,MAAAK,CAAQ,CAAA,CAACU,EAASC,CAAQ,CAAA,CAAG,UAAAf,CAAY,CAAA,EAAI,CAAA,aAAA,CAAAmC,CAAc,CAAIpC,CAAAA,CAAAA,CAEjE,CAACmC,CAAMF,CAAAA,CAAM,EAAI,MAAM,OAAA,CAAQ,IAAI,CACvCrC,CAAAA,CAAe,OAAO,0BAA0B,CAAC,EACjDA,CAAe,CAAA,OAAO,2BAA2B,CAAC,CACpD,CAAC,CAAA,CAEKL,EAAcC,oBAClB,CAAA,CACE,GAAG2C,CAAK,CAAA,OAAA,CAAQ,YAAY,KAC5B,CAAA,GAAGA,EAAK,OAAQ,CAAA,iBAAiB,EAAE,KACrC,CAAA,CACA7C,CACF,CAEA,CAAA,OAAO,CACL,CACE,IAAA,CAAM,oBACN,CAAA,OAAA,CAAS,CACP,IAAMa,CAAAA,gBAAAA,CAAiBgC,CAAa,CACtC,CACF,EACA,CACE,IAAA,CAAM,qBACN,KAAA9B,CAAAA,CAAAA,CACA,gBAAiB,CACf,MAAA,CAAA4B,EACA,aAAe,CAAA,CACb,aAAc,CACZ,GAAA,CAAK,CACP,CAAA,CAAA,CACA,eAAgB,CAChB,CAAA,CAAA,GAAGG,CACL,CACA,CAAA,UAAA,CAAY,QACd,CACA,CAAA,KAAA,CAAO,CACL,GAAG7C,EAEH,6BAA+B,CAAA,KAAA,CAE/B,GAAGU,CACL,CACF,CACF,CACF,CCrDO,SAASoC,CAAAA,EAA8B,CAC5C,OAAO,CACL,CACE,IAAM,CAAA,cAAA,CACN,SAAU,CACR,IAAA,CAAM,CACJ,OAAA,CAAS,WACX,CACF,CAAA,CACA,QAAS,CACP,IAAA,CAAMC,CACR,CACA,CAAA,KAAA,CAAO,CACL,0BAAA,CAA4B,CAAC,OAAS,CAAA,eAAe,EACrD,wBAA0B,CAAA,OAAA,CAC1B,yBAA0B,OAC1B,CAAA,qBAAA,CAAuB,OACvB,CAAA,qBAAA,CAAuB,QACvB,4CAA8C,CAAA,CAAC,QAAS,CAAE,iBAAA,CAAmB,EAAK,CAAC,CAAA,CACnF,4BAA6B,OAC7B,CAAA,4BAAA,CAA8B,QAC9B,iCAAmC,CAAA,OAAA,CACnC,yBAA0B,OAC1B,CAAA,4BAAA,CAA8B,QAC9B,sCAAwC,CAAA,OAAA,CACxC,iCAAmC,CAAA,OAAA,CACnC,6BAA8B,OAChC,CACF,CACF,CACF,CC9BA,eAAsBC,CAA2C,EAAA,CAC/D,GAAM,CAACA,EAAUC,CAAK,CAAA,CAAI,MAAM,OAAQ,CAAA,GAAA,CAAI,CAC1C5C,CAAe,CAAA,OAAO,wBAAwB,CAAC,EAC/CA,CAAe,CAAA,OAAO,qBAAqB,CAAC,CAC9C,CAAC,CAED,CAAA,OAAO,CACL,CACE,IAAA,CAAM,mBACN,OAAS,CAAA,CACP,MAAA4C,CACF,CAAA,CACA,MAAO,CACL,GAAGD,CAAS,CAAA,KAAA,CAEZ,+BAAgC,KAChC,CAAA,mBAAA,CAAqB,CAAC,OAAS,CAAA,CAAE,QAAS,CAAM,CAAA,CAAC,CACnD,CACF,CACF,CACF,CCfA,eAAsBC,EACpBxC,CAAyD,CAAA,GACzB,CAChC,GAAM,CACJ,KAAAK,CAAAA,CAAAA,CAAQ,CAACU,CAASC,CAAAA,CAAQ,EAC1B,SAAAf,CAAAA,CAAAA,CAAY,EACZ,CAAA,aAAA,CAAAmC,EACA,eAAAK,CAAAA,CAAAA,CACA,aAAAC,CAAAA,CAAAA,CAAgB,EAClB,CAAI1C,CAAAA,CAAAA,CAEE,CAAC2C,CAAaC,CAAAA,CAAAA,CAAkBJ,EAAOP,CAAQY,CAAAA,EAAmB,CAAI,CAAA,MAAM,QAAQ,GAAI,CAAA,CAC5FjD,EAAe,OAAO,6BAA6B,CAAC,CACpDA,CAAAA,CAAAA,CAAe,OAAO,2BAA2B,CAAC,CAClDA,CAAAA,CAAAA,CAAe,OAAO,qBAAqB,CAAC,EAC5CA,CAAe,CAAA,OAAO,2BAA2B,CAAC,CAAA,CAClD8C,EAAgB9C,CAAe,CAAA,OAAO,8BAA8B,CAAC,CAAA,CAAI,MAC3E,CAAC,CAAA,CAEKkD,CAAUH,CAAAA,CAAAA,CAAY,QAAQ,GAAI,CAAA,OAAA,CAElCpD,GAAcC,oBAClB,CAAA,CACE,GAAGgD,CAAM,CAAA,OAAA,CAAQ,YAAY,KAC7B,CAAA,GAAGA,EAAM,OAAQ,CAAA,aAAa,EAAE,KAChC,CAAA,GAAGI,EAAiB,OAAQ,CAAA,WAAA,CAAY,KACxC,CAAA,GAAGD,EAAY,OAAQ,CAAA,0BAA0B,EAAE,KACrD,CAAA,CACArD,CACF,CAEA,CAAA,OAAO,CACL,CACE,IAAA,CAAM,sBACN,OAAS,CAAA,CACP,MAAAkD,CACA,CAAA,WAAA,CAAaM,EAAQ,mBAAmB,CAAA,CACxC,eAAiBA,CAAAA,CAAAA,CAAQ,uBAAuB,CAChD,CAAA,aAAA,CAAeA,EAAQ,eAAe,CAAA,CACtC,cAAe3C,gBAAiByC,CAAAA,CAAyB,CACzD,CAAA,mBAAA,CAAqBE,EAAQ,2BAA2B,CAAA,CACxD,0BAA2BA,CAAQ,CAAA,iCAAiC,EACpE,GAAIJ,CAAAA,CAAgB,CAAE,gBAAA,CAAkBG,EAAoB,CAAI,CAAA,EAClE,CACA,CAAA,QAAA,CAAU,CACR,KAAO,CAAA,CACL,QAAS,QACX,CACF,CACF,CACA,CAAA,CACE,KAAM,qBACN,CAAA,KAAA,CAAAxC,EACA,eAAiB,CAAA,CACf,MAAA4B,CAAAA,CAAAA,CACA,cAAe,CACb,YAAA,CAAc,CACZ,GAAK,CAAA,CAAA,CACP,EACA,eAAAQ,CAAAA,CAAAA,CACA,eAAgB,CAChB,CAAA,CAAA,GAAGL,CACL,CACA,CAAA,UAAA,CAAY,QACd,CACA,CAAA,KAAA,CAAO,CACL,GAAG7C,EAAAA,CAEH,GAAImD,CAAAA,CAAgB,CAAE,+BAAiC,CAAA,OAAQ,EAAI,EAAC,CAEpE,gDAAiD,OACjD,CAAA,wDAAA,CAA0D,QAC1D,4CAA8C,CAAA,OAAA,CAC9C,4CAA6C,OAE7C,CAAA,oCAAA,CAAsC,MACtC,sCAAwC,CAAA,OAAA,CACxC,wCAAyC,OACzC,CAAA,2CAAA,CAA6C,OAE7C,CAAA,mCAAA,CAAqC,QAErC,yBAA2B,CAAA,KAAA,CAC3B,oBAAqB,CAAC,OAAA,CAAS,CAAE,OAAS,CAAA,CAAA,CAAM,CAAC,CAAA,CACjD,mBAAoB,KAEpB,CAAA,GAAGzC,CACL,CACF,CACF,CACF,CC9FO,SAAS8C,CAAgC,EAAA,CAC9C,OAAO,CACL,CACE,KAAM,gBACN,CAAA,OAAA,CAAS,CACP,MAAQC,CAAAA,CACV,EACA,KAAO,CAAA,CACL,GAAGA,CAAa,CAAA,OAAA,CAAQ,kBAAkB,CAAE,CAAA,KAC9C,CACF,CACF,CACF,CCbO,SAASC,GAA+B,CAC7C,OAAO,CACL,CACE,IAAA,CAAM,eACN,CAAA,OAAA,CAAS,CACP,KAAOX,CAAAA,CACT,EACA,KAAO,CAAA,CACL,kBAAmB,OACnB,CAAA,4BAAA,CAA8B,OAC9B,CAAA,gCAAA,CAAkC,QAClC,qBAAuB,CAAA,OAAA,CACvB,yCAA0C,OAC1C,CAAA,oCAAA,CAAsC,QACtC,sBAAwB,CAAA,OAAA,CACxB,gCAAiC,OACjC,CAAA,0BAAA,CAA4B,QAC5B,YAAc,CAAA,OAAA,CACd,aAAc,OACd,CAAA,wBAAA,CAA0B,QAC1B,kCAAoC,CAAA,OAAA,CACpC,yBAA2B,CAAA,OAAA,CAC3B,oCAAqC,OACrC,CAAA,2BAAA,CAA6B,CAAC,OAAS,CAAA,CAAE,UAAW,CAAE,CAAC,CACvD,CAAA,8BAAA,CAAgC,QAChC,4BAA8B,CAAA,OAAA,CAC9B,4BAA6B,OAC7B,CAAA,0BAAA,CAA4B,QAC5B,0BAA4B,CAAA,OAAA,CAC5B,iCAAmC,CAAA,OAAA,CACnC,gCAAiC,OACjC,CAAA,gCAAA,CAAkC,QAClC,8BAAgC,CAAA,OAAA,CAChC,0BAA2B,OAC3B,CAAA,iCAAA,CAAmC,QACnC,wBAA0B,CAAA,OAAA,CAC1B,oCAAqC,OACrC,CAAA,6BAAA,CAA+B,QAC/B,4BAA8B,CAAA,OAAA,CAC9B,iCAAkC,OAClC,CAAA,uBAAA,CAAyB,OACzB,CAAA,4BAAA,CAA8B,QAC9B,oCAAsC,CAAA,OAAA,CACtC,yBAA0B,OAC1B,CAAA,6BAAA,CAA+B,QAC/B,+BAAiC,CAAA,OAAA,CACjC,8BAA+B,OAC/B,CAAA,oCAAA,CAAsC,QACtC,oBAAsB,CAAA,OAAA,CAEtB,4BAA6B,KAC7B,CAAA,yBAAA,CAA2B,KAC7B,CACF,CACF,CACF,CC/CA,eAAsBY,CAAAA,CACpBlD,EAA6D,EAAC,CAC9B,CAChC,GAAM,CACJ,MAAAK,CAAQ,CAAA,CAACY,CAAY,CACrB,CAAA,SAAA,CAAAhB,EAAY,EAAC,CACb,aAAAmC,CAAAA,CAAAA,CACA,mBAAAe,CAAqB,CAAA,YACvB,EAAInD,CAEE,CAAA,CAACkD,EAAWjB,CAAM,CAAA,CAAI,MAAM,OAAA,CAAQ,IAAI,CAC5CrC,CAAAA,CAAe,OAAO,yBAAyB,CAAC,EAChDA,CAAe,CAAA,OAAO,2BAA2B,CAAC,CACpD,CAAC,CAAA,CAEKwD,EAAkB,CACtB,MAAA,CAAAnB,EACA,aAAe,CAAA,CACb,aAAc,CACZ,GAAA,CAAK,EACP,CACA,CAAA,cAAA,CAAgB,GAChB,GAAGG,CACL,EACA,UAAY,CAAA,QACd,CAEA,CAAA,OAAO,CACL,CACE,IAAA,CAAM,0BACN,OAAS,CAAA,CACP,UAAWjC,gBAAiB+C,CAAAA,CAAkB,CAChD,CACF,CAAA,CACA,CACE,IAAM,CAAA,yBAAA,CACN,MAAA7C,CACA,CAAA,eAAA,CAAA+C,EACA,KAAO,CAAA,CACL,8BAAgC,CAAA,OAAA,CAChC,qCAAsC,OACtC,CAAA,yBAAA,CAA2B,QAC3B,2BAA6B,CAAA,OAAA,CAC7B,gCAAiC,OACjC,CAAA,kCAAA,CAAoC,QACpC,mCAAqC,CAAA,OAAA,CACrC,0BAA2B,OAC3B,CAAA,qCAAA,CAAuC,QACvC,iCAAmC,CAAA,OAAA,CACnC,+BAAgC,OAChC,CAAA,yBAAA,CAA2B,OAC3B,CAAA,gCAAA,CAAkC,QAClC,yCAA2C,CAAA,OAAA,CAE3C,GAAGnD,CACL,CACF,EACA,CACE,IAAA,CAAM,4BACN,CAAA,KAAA,CAAAI,EACA,KAAO,CAAA,CACL,6BAA8B,KAC9B,CAAA,oBAAA,CAAsB,MACtB,2BAA6B,CAAA,KAC/B,CACF,CAAA,CACA,CACE,IAAM,CAAA,0BAAA,CACN,MAAO,CAAC,CAAA,EAAG8C,CAAkB,CAAwB,sBAAA,CAAA,CAAA,CACrD,gBAAAC,CACA,CAAA,KAAA,CAAO,CACL,iCAAmC,CAAA,OACrC,CACF,CACF,CACF,CCjFA,eAAsBC,CAASrD,CAAAA,CAAAA,CAA4B,EAAoC,CAAA,CAC7F,GAAM,CAAE,SAAA,CAAAC,EAAY,EAAG,EAAID,CAErB,CAAA,CAACsD,EAAa,CAAE,iBAAA,CAAAC,CAAkB,CAAGzB,CAAAA,CAAM,CAAI,CAAA,MAAM,QAAQ,GAAI,CAAA,CACrElC,EAAe,OAAO,2BAA2B,CAAC,CAClDA,CAAAA,CAAAA,CAAe,OAAO,oBAAoB,CAAC,EAC3C4D,MAAO,CAAA,CAAC,qBAAsB,oBAAoB,CAAC,CACrD,CAAC,CAAA,CAED,OAAO,CACL,CACE,IAAM,CAAA,kBAAA,CACN,QAAS,CACP,WAAA,CAAAF,CACF,CACA,CAAA,QAAA,CAAU,CACR,WAAA,CAAa,CACX,OAASC,CAAAA,CAAAA,CACT,OAAAzB,CACF,CACF,EACA,KAAO,CAAA,CACL,GAAGwB,CAAAA,CAAY,QAAQ,WAAY,CAAA,KAAA,CAEnC,GAAGrD,CACL,CACF,CACF,CACF,CC3BA,eAAsBwD,CAAAA,CAASzD,EAA4B,EAAC,CAAmC,CAC7F,GAAM,CAAE,SAAAC,CAAAA,CAAAA,CAAY,EAAG,CAAA,CAAID,EAErByD,CAAW,CAAA,MAAM7D,EAAe,OAAO,+BAA+B,CAAC,CAAA,CAEvEL,EAAcC,oBAClBiE,CAAAA,CAAAA,CAAS,QAAQ,kBAAkB,CAAA,CAAE,GAAG,CAAC,CAAA,EAAG,KAAS,EAAA,GACrDnE,CACF,CAAA,CAEA,OAAO,CACL,CACE,KAAM,kBACN,CAAA,OAAA,CAAS,CAAE,QAAAmE,CAAAA,CAAS,EACpB,KAAO,CAAA,CACL,GAAGlE,CAEH,CAAA,GAAGU,CACL,CACF,CACF,CACF,CCxBA,eAAsByD,CAAM1D,CAAAA,CAAAA,CAA4B,EAAoC,CAAA,CAC1F,GAAM,CAAE,SAAA,CAAAC,CAAY,CAAA,EAAG,CAAID,CAAAA,CAAAA,CAI3B,OAAO,CACL,CACE,KAAM,eACN,CAAA,OAAA,CAAS,CACP,KAAA,CANQ,MAAMJ,CAAe,CAAA,OAAO,qBAAqB,CAAC,CAO5D,EACA,KAAO,CAAA,CACL,+BAAgC,OAEhC,CAAA,GAAGK,CACL,CACF,CACF,CACF,CCdA,eAAsB0D,CAAAA,CACpB3D,EAAsC,EAAC,CACP,CAChC,GAAM,CAAE,UAAAC,CAAY,CAAA,GAAI,aAAAmC,CAAAA,CAAAA,CAAgB,EAAG,CAAA,CAAIpC,EAEzC,CAAC,CAAE,OAAAkC,CAAQ,CAAA,OAAA,CAAAzC,CAAS,CAAA,MAAA,CAAAwC,CAAO,CAAG2B,CAAAA,CAAS,EAAI,MAAM,OAAA,CAAQ,IAAI,CACjEhE,CAAAA,CAAe,OAAO,mBAAmB,CAAC,EAC1CA,CAAe,CAAA,OAAO,wBAAwB,CAAC,CACjD,CAAC,CAEKiE,CAAAA,CAAAA,CAAeC,sBAAuBrE,CAAAA,CAAAA,CAAQ,kBAA4BH,CAAa,CAAA,CAEvFqB,EAAQ,MAAO,CAAA,WAAA,CACnBkD,EAAa,OAAQ,CAAA,CAAC,CAAE,KAAA,CAAAlD,CAAM,CAAM,GAAA,MAAA,CAAO,QAAQA,CAAS,EAAA,EAAE,CAAC,CACjE,CAEA,CAAA,OAAO,CACL,CACE,IAAA,CAAM,2BACN,OAAS,CAAA,CACP,GAAIuB,CACJ,CAAA,UAAA,CAAY0B,CACd,CACF,CAAA,CACA,CACE,IAAM,CAAA,0BAAA,CACN,MAAO,CAAC9C,CAAQ,EAChB,eAAiB,CAAA,CACf,MAAAmB,CAAAA,CAAAA,CACA,cAAe,CACb,eAAA,CAAiB,QAAQ,GAAI,EAAA,CAC7B,eAAgB,CAChB,CAAA,CAAA,kCAAA,CAAoC,GACpC,GAAGG,CACL,EACA,UAAY,CAAA,QACd,EACA,KAAO,CAAA,CACL,GAAGzB,CACH,CAAA,kCAAA,CAAoC,CAAC,OAAA,CAAS,CAAE,WAAa,CAAA,CAAA,CAAK,CAAC,CACnE,CAAA,mBAAA,CAAqB,CAAC,OAAS,CAAA,CAAE,YAAa,wBAAyB,CAAC,EACxE,4BAA8B,CAAA,CAAC,OAAO,CACtC,CAAA,4BAAA,CAA8B,CAC5B,OACA,CAAA,CACE,MAAQ,CAAA,cAAA,CACR,wBAAyB,CACzB,CAAA,CAAA,QAAA,CAAU,qBACZ,CACF,CAAA,CACA,0BAA2B,CACzB,OAAA,CACA,CAAE,eAAA,CAAiB,sBAAuB,gBAAkB,CAAA,OAAQ,CACtE,CACA,CAAA,oBAAA,CAAsB,CAAC,OAAO,CAAA,CAC9B,gCAAkC,CAAA,CAAC,OAAO,CAC1C,CAAA,wBAAA,CAA0B,MAC1B,iCAAmC,CAAA,KAAA,CACnC,oBAAqB,CACnB,OAAA,CACA,CACE,kBAAoB,CAAA,CAAA,CAAA,CACpB,kBAAmB,IACnB,CAAA,iBAAA,CAAmB,IACrB,CACF,CAAA,CACA,oBAAqB,KAErB,CAAA,GAAIiD,CAAU,CAAA,OAAA,CAAQ,YAAY,KAElC,CAAA,GAAG3D,CACL,CACF,CAAA,CACA,CACE,KAAO,CAAA,CAAC,WAAW,CACnB,CAAA,IAAA,CAAM,kCACN,KAAO,CAAA,CACL,oCAAqC,KACrC,CAAA,sBAAA,CAAwB,MACxB,sBAAwB,CAAA,KAAA,CACxB,mBAAqB,CAAA,KACvB,CACF,CACA,CAAA,CACE,MAAO,CAAC,yBAAyB,EACjC,IAAM,CAAA,kCAAA,CACN,MAAO,CACL,uBAAA,CAAyB,KAC3B,CACF,CAAA,CACA,CACE,KAAO,CAAA,CAAC,UAAW,UAAY,CAAA,UAAU,CACzC,CAAA,IAAA,CAAM,kCACN,KAAO,CAAA,CACL,wBAAyB,KACzB,CAAA,oBAAA,CAAsB,KACxB,CACF,CACF,CACF,CCvGO,SAAS8D,CAAiC,EAAA,CAC/C,OAAO,CACL,CACE,KAAM,iBACN,CAAA,OAAA,CAAS,CACP,OAAA,CAASzB,CACX,CACA,CAAA,KAAA,CAAO,CACL,GAAGA,CAAAA,CAAc,QAAQ,kBAAkB,CAAA,CAAE,MAE7C,uBAAyB,CAAA,CAAC,KAAK,CAC/B,CAAA,uBAAA,CAAyB,CAAC,KAAK,CAAA,CAC/B,gCAAiC,CAAC,KAAK,CACvC,CAAA,wBAAA,CAA0B,CAAC,OAAS,CAAA,kBAAkB,EACtD,8BAAgC,CAAA,CAC9B,QACA,CACE,cAAA,CAAgB,CAChB,CAAA,CAAA,sBAAA,CAAwB,EAC1B,CACF,CAAA,CACA,iCAAkC,CAAC,KAAK,CAC1C,CACF,CACF,CACF,CC4BA,SAAS0B,EACPhE,CACAiE,CAAAA,CAAAA,CACc,CACd,OAAI,OAAOjE,GAAY,SACdA,CAAAA,CAAAA,CAGFA,GAAS,MAAUiE,EAAAA,CAAAA,EAAY,CACxC,CAAA,CAEA,SAASnC,CAAU9B,CAAAA,CAAAA,CAAoD,CACrE,GAAI,OAAOA,GAAY,SAAaA,EAAAA,CAAAA,GAAY,KAC9C,CAAA,CAAA,OAAO,EAGT,CAAA,GAAM,CAAE,MAAAkE,CAAAA,CAAAA,CAAQ,GAAGC,CAAK,CAAA,CAAInE,CAC5B,CAAA,OAAOmE,CACT,CAEO,SAASP,GACd5D,CAAgC,CAAA,MAC7BoE,CAC6B,CAAA,CAChC,IAAI5C,CAAW,CAAA,IAAI6C,mBACjB/C,CAAQtB,CAAAA,CAAAA,CAAQ,OAAO,CACvByB,CAAAA,CAAAA,CAAWzB,EAAQ,EAAE,CAAA,CACrBqC,CAAK,EAAA,CACL3C,GACAkC,CAAAA,CAAAA,GACAmC,CAAQ,EAAA,CACRd,GACAF,CAAAA,CAAAA,GACA3D,CAAM,EAAA,CACNyC,GACF,CAAA,CAEImC,EAAQhE,CAAQ,CAAA,KAAA,CAAOsE,gBAAgB,OAAO,CAAC,CACjD9C,GAAAA,CAAAA,CAAWA,EAAS,MAAOkC,CAAAA,CAAAA,CAAM5B,EAAO9B,CAAQ,CAAA,KAAK,CAAC,CAAC,CAAA,CAAA,CAGzD,GAAM,CAAE,SAAA,CAAAC,EAAW,GAAGsE,CAAkB,EAAIzC,CAAO9B,CAAAA,CAAAA,CAAQ,EAAE,CAE7D,CAAA,OAAIgE,CAAQhE,CAAAA,CAAAA,CAAQ,GAAIsE,eAAgB,CAAA,YAAY,CAAC,CACnD9C,GAAAA,CAAAA,CAAWA,EAAS,MAAOmC,CAAAA,CAAAA,CAAW7B,CAAO9B,CAAAA,CAAAA,CAAQ,EAAE,CAAC,CAAC,GAGvDgE,CAAQhE,CAAAA,CAAAA,CAAQ,MAAOsE,eAAgB,CAAA,OAAO,CAAC,CAAA,GACjD9C,EAAWA,CAAS,CAAA,MAAA,CAClBgB,EAAM,CACJ,GAAGV,EAAO9B,CAAQ,CAAA,KAAK,EACvB,GAAGuE,CACL,CAAC,CACH,CAAA,CAAA,CAGEP,EAAQhE,CAAQ,CAAA,IAAA,CAAMsE,gBAAgB,MAAM,CAAC,CAC/C9C,GAAAA,CAAAA,CAAWA,EAAS,MAClBW,CAAAA,CAAAA,CAAK,CACH,GAAGL,CAAAA,CAAO9B,EAAQ,IAAI,CAAA,CACtB,GAAGuE,CACL,CAAC,CACH,CAGEP,CAAAA,CAAAA,CAAAA,CAAQhE,EAAQ,SAAWsE,CAAAA,eAAAA,CAAgB,WAAW,CAAC,CAAA,GACzD9C,CAAWA,CAAAA,CAAAA,CAAS,OAClB0B,CAAU,CAAA,CACR,GAAGpB,CAAO9B,CAAAA,CAAAA,CAAQ,SAAS,CAC3B,CAAA,GAAGuE,CACL,CAAC,CACH,GAGEP,CAAQhE,CAAAA,CAAAA,CAAQ,SAAUsE,eAAgB,CAAA,aAAa,CAAC,CAC1D9C,GAAAA,CAAAA,CAAWA,CAAS,CAAA,MAAA,CAAO6B,EAASvB,CAAO9B,CAAAA,CAAAA,CAAQ,QAAQ,CAAC,CAAC,GAI7DgE,CACEhE,CAAAA,CAAAA,CAAQ,QACRsE,CAAAA,eAAAA,CAAgB,aAAa,CAC3BA,EAAAA,eAAAA,CAAgB,uBAAuB,CACvCA,EAAAA,eAAAA,CAAgB,gCAAgC,CACpD,CAAA,GAEA9C,CAAWA,CAAAA,CAAAA,CAAS,OAAOiC,CAAS3B,CAAAA,CAAAA,CAAO9B,EAAQ,QAAQ,CAAC,CAAC,CAG3DgE,CAAAA,CAAAA,CAAAA,CAAQhE,EAAQ,OAASsE,CAAAA,eAAAA,CAAgB,aAAa,CAAKA,EAAAA,eAAAA,CAAgB,aAAa,CAAC,CAAA,GAC3F9C,EAAWA,CAAS,CAAA,MAAA,CAAOzB,CAAQ+B,CAAAA,CAAAA,CAAO9B,EAAQ,OAAO,CAAC,CAAC,CAGzDgE,CAAAA,CAAAA,CAAAA,CAAQhE,EAAQ,OAASsE,CAAAA,eAAAA,CAAgB,SAAS,CAAC,CAAA,GACrD9C,EAAWA,CAAS,CAAA,MAAA,CAAOpB,EAAQ0B,CAAO9B,CAAAA,CAAAA,CAAQ,OAAO,CAAC,CAAC,CAG7DwB,CAAAA,CAAAA,CAAAA,CAAWA,EAAS,MAAO,CAAA,GAAG4C,CAAU,CAEpCE,CAAAA,eAAAA,CAAgB,UAAU,CAC5B9C,GAAAA,CAAAA,CAAWA,EAAS,MAAOe,CAAAA,CAAAA,EAAU,CAGhCf,CAAAA,CAAAA,CAAAA,CAAS,cAAclC,CAAa,CAAA,CAAE,WAC/C","file":"index.js","sourcesContent":["import pluginAntfu from 'eslint-plugin-antfu';\n\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function antfu(): TypedFlatConfigItem[] {\n return [\n {\n name: '2digits:antfu',\n plugins: {\n antfu: pluginAntfu,\n },\n rules: {\n 'antfu/if-newline': 'error',\n 'antfu/top-level-function': 'error',\n },\n },\n ];\n}\n","export const PluginNameMap = {\n '@next/next': 'next',\n '@eslint-react/naming-convention': 'react-naming-convention',\n '@eslint-react/hooks-extra': 'react-hooks-extra',\n '@eslint-react/dom': 'react-dom',\n '@eslint-react/web-api': 'react-web-api',\n '@eslint-react': 'react-extra',\n 'react-hooks': 'react-hooks',\n 'react-compiler': 'react-compiler',\n react: 'react',\n '@typescript-eslint': 'ts',\n node: 'node',\n '@eslint-community/eslint-comments': 'comments',\n storybook: 'storybook',\n turbo: 'turbo',\n jsdoc: 'jsdoc',\n unicorn: 'unicorn',\n tailwindcss: 'tailwindcss',\n '@tanstack/query': 'tanstack',\n '@2digits': '@2digits',\n '@graphql-eslint': 'gql',\n sonarjs: 'sonar',\n drizzle: 'drizzle',\n} as const;\n","import pluginComments from '@eslint-community/eslint-plugin-eslint-comments';\nimport configs from '@eslint-community/eslint-plugin-eslint-comments/configs';\nimport { renamePluginsInRules } from 'eslint-flat-config-utils';\n\nimport { PluginNameMap } from '../constants';\nimport type { TypedFlatConfigItem } from '../types';\n\nconst recommended = renamePluginsInRules(configs.recommended.rules as never, PluginNameMap);\n\nexport function comments(): TypedFlatConfigItem[] {\n return [\n {\n name: '2digits:comments',\n plugins: {\n comments: pluginComments,\n },\n rules: {\n ...recommended,\n\n 'comments/no-unused-disable': 'error',\n 'comments/disable-enable-pair': ['error', { allowWholeFile: true }],\n },\n },\n ];\n}\n","import type { Awaitable } from 'eslint-flat-config-utils';\n\nexport async function interopDefault<T>(\n m: Awaitable<T>,\n): Promise<T extends { default: infer U } ? U : T> {\n const resolved = await m;\n\n return ((resolved as Record<string, unknown>).default || resolved) as never;\n}\n","import { fixupPluginRules } from '@eslint/compat';\n\nimport type { OptionsWithDrizzle, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function drizzle(options: OptionsWithDrizzle = {}): Promise<TypedFlatConfigItem[]> {\n const { overrides = {}, drizzleObjectName = ['drizzle', 'db'] } = options;\n\n const drizzle = await interopDefault(import('eslint-plugin-drizzle'));\n\n return [\n {\n name: '2digits:drizzle',\n plugins: {\n drizzle: fixupPluginRules(drizzle as never),\n },\n rules: {\n 'drizzle/enforce-update-with-where': ['error', { drizzleObjectName }],\n 'drizzle/enforce-delete-with-where': ['error', { drizzleObjectName }],\n\n ...overrides,\n },\n },\n ];\n}\n","import { renamePluginsInRules } from 'eslint-flat-config-utils';\nimport { loadConfig } from 'graphql-config';\n\nimport { PluginNameMap } from '../constants';\nimport type { OptionsWithFiles, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function graphql(options: OptionsWithFiles = {}): Promise<TypedFlatConfigItem[]> {\n const { overrides = {}, files = ['**/*.graphql', '**/*.gql'] } = options;\n\n const [gql, gqlSchema] = await Promise.all([\n interopDefault(import('@graphql-eslint/eslint-plugin')),\n loadConfig({ throwOnEmpty: false, throwOnMissing: false }).then((g) => g?.getDefault().schema),\n ]);\n\n const flatRecommended = gql.configs['flat/operations-recommended'].rules;\n\n let rules = {} as typeof flatRecommended;\n\n if (gqlSchema) {\n rules = flatRecommended;\n } else {\n for (const rule of Object.keys(flatRecommended) as Array<keyof typeof rules>) {\n const ruleName = rule.replace('@graphql-eslint/', '') as keyof typeof gql.rules;\n if (\n ruleName in gql.rules &&\n (gql.rules[ruleName].meta.docs?.requiresSchema ||\n gql.rules[ruleName].meta.docs?.requiresSiblings)\n ) {\n continue;\n }\n rules[rule] = flatRecommended[rule] as never;\n }\n }\n\n const recommended = renamePluginsInRules(rules, PluginNameMap);\n\n return [\n {\n name: '2digits:graphql',\n plugins: {\n gql,\n },\n languageOptions: {\n parser: gql.parser,\n },\n files,\n rules: {\n ...recommended,\n\n 'gql/naming-convention': ['error', { allowLeadingUnderscore: true } as never],\n\n ...overrides,\n },\n },\n ];\n}\n","export const GLOB_SRC = '**/*.?([cm])[jt]s?(x)';\n\nexport const GLOB_TS = '**/*.?([cm])ts';\nexport const GLOB_TSX = '**/*.?([cm])tsx';\n\nexport const GLOB_STORIES = '**/*.stories.tsx';\n\nexport const GLOB_JSON = '**/*.json';\nexport const GLOB_JSON5 = '**/*.json5';\nexport const GLOB_JSONC = '**/*.jsonc';\n\nexport const GLOB_EXCLUDE = [\n '**/node_modules',\n '**/dist',\n '**/package-lock.json',\n '**/yarn.lock',\n '**/pnpm-lock.yaml',\n '**/bun.lockb',\n\n '**/output',\n '**/coverage',\n '**/temp',\n '**/.temp',\n '**/tmp',\n '**/.tmp',\n '**/.history',\n '**/.vitepress/cache',\n '**/.nuxt',\n '**/.next',\n '**/.vercel',\n '**/.changeset',\n '**/.idea',\n '**/.cache',\n '**/.output',\n '**/.vite-inspect',\n '**/.yarn',\n\n '**/CHANGELOG*.md',\n '**/*.min.*',\n '**/LICENSE*',\n '**/__snapshots__',\n '**/auto-import?(s).d.ts',\n '**/components.d.ts',\n] as const;\n","import { composer } from 'eslint-flat-config-utils';\n\nimport { GLOB_EXCLUDE } from '../globs';\nimport type { OptionsWithIgnores, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function ignores(options: OptionsWithIgnores = {}): Promise<TypedFlatConfigItem[]> {\n const { gitIgnore, ignores = [] } = options;\n\n return composer(\n {\n ignores: [GLOB_EXCLUDE, ignores].flat(),\n name: '2digits:ignores',\n },\n interopDefault(import('eslint-config-flat-gitignore')).then((m) =>\n m({ strict: false, ...gitIgnore, name: '2digits:gitignore' }),\n ),\n );\n}\n","import eslint from '@eslint/js';\nimport globals from 'globals';\n\nimport type { OptionsOverrides, TypedFlatConfigItem } from '../types';\n\nexport function javascript(options: OptionsOverrides = {}): TypedFlatConfigItem[] {\n const { overrides = {} } = options;\n\n return [\n {\n name: '2digits:javascript',\n languageOptions: {\n ecmaVersion: 2022,\n globals: {\n ...globals.browser,\n ...globals.es2021,\n ...globals.node,\n document: 'readonly',\n navigator: 'readonly',\n window: 'readonly',\n },\n parserOptions: {\n ecmaFeatures: {\n jsx: true,\n },\n ecmaVersion: 2022,\n sourceType: 'module',\n },\n sourceType: 'module',\n },\n linterOptions: {\n reportUnusedDisableDirectives: true,\n },\n rules: {\n ...eslint.configs.recommended.rules,\n\n 'accessor-pairs': ['error', { enforceForClassMembers: true, setWithoutGet: true }],\n 'array-callback-return': 'error',\n 'block-scoped-var': 'error',\n 'constructor-super': 'error',\n 'default-case-last': 'error',\n 'dot-notation': ['error', { allowKeywords: true }],\n eqeqeq: ['error', 'smart'],\n 'new-cap': ['error', { capIsNew: false, newIsCap: true, properties: true }],\n 'no-alert': 'error',\n 'no-array-constructor': 'error',\n 'no-async-promise-executor': 'error',\n 'no-caller': 'error',\n 'no-case-declarations': 'error',\n 'no-class-assign': 'error',\n 'no-compare-neg-zero': 'error',\n 'no-cond-assign': ['error', 'always'],\n 'no-const-assign': 'error',\n 'no-control-regex': 'error',\n 'no-debugger': 'error',\n 'no-delete-var': 'error',\n 'no-dupe-args': 'error',\n 'no-dupe-class-members': 'error',\n 'no-dupe-keys': 'error',\n 'no-duplicate-case': 'error',\n 'no-empty': ['error', { allowEmptyCatch: true }],\n 'no-empty-character-class': 'error',\n 'no-empty-pattern': 'error',\n 'no-eval': 'error',\n 'no-ex-assign': 'error',\n 'no-extend-native': 'error',\n 'no-extra-bind': 'error',\n 'no-extra-boolean-cast': 'error',\n 'no-fallthrough': 'error',\n 'no-func-assign': 'error',\n 'no-global-assign': 'error',\n 'no-implied-eval': 'error',\n 'no-import-assign': 'error',\n 'no-invalid-regexp': 'error',\n 'no-irregular-whitespace': 'error',\n 'no-iterator': 'error',\n 'no-labels': ['error', { allowLoop: false, allowSwitch: false }],\n 'no-lone-blocks': 'error',\n 'no-loss-of-precision': 'error',\n 'no-misleading-character-class': 'error',\n 'no-multi-str': 'error',\n 'no-new': 'error',\n 'no-new-func': 'error',\n 'no-new-native-nonconstructor': 'error',\n 'no-new-wrappers': 'error',\n 'no-obj-calls': 'error',\n 'no-octal': 'error',\n 'no-octal-escape': 'error',\n 'no-proto': 'error',\n 'no-prototype-builtins': 'error',\n 'no-redeclare': ['error', { builtinGlobals: false }],\n 'no-regex-spaces': 'error',\n 'no-restricted-globals': [\n 'error',\n { message: 'Use `globalThis` instead.', name: 'global' },\n { message: 'Use `globalThis` instead.', name: 'self' },\n ],\n 'no-restricted-properties': [\n 'error',\n {\n message: 'Use `Object.getPrototypeOf` or `Object.setPrototypeOf` instead.',\n property: '__proto__',\n },\n {\n message: 'Use `Object.defineProperty` instead.',\n property: '__defineGetter__',\n },\n {\n message: 'Use `Object.defineProperty` instead.',\n property: '__defineSetter__',\n },\n {\n message: 'Use `Object.getOwnPropertyDescriptor` instead.',\n property: '__lookupGetter__',\n },\n {\n message: 'Use `Object.getOwnPropertyDescriptor` instead.',\n property: '__lookupSetter__',\n },\n ],\n 'no-restricted-syntax': [\n 'error',\n 'DebuggerStatement',\n 'LabeledStatement',\n 'WithStatement',\n 'TSEnumDeclaration',\n 'TSExportAssignment',\n ],\n 'no-self-assign': ['error', { props: true }],\n 'no-self-compare': 'error',\n 'no-sequences': 'error',\n 'no-shadow-restricted-names': 'error',\n 'no-sparse-arrays': 'error',\n 'no-template-curly-in-string': 'error',\n 'no-this-before-super': 'error',\n 'no-throw-literal': 'error',\n 'no-undef': 'error',\n 'no-undef-init': 'error',\n 'no-unexpected-multiline': 'error',\n 'no-unmodified-loop-condition': 'error',\n 'no-unneeded-ternary': ['error', { defaultAssignment: false }],\n 'no-unreachable': 'error',\n 'no-unreachable-loop': 'error',\n 'no-unsafe-finally': 'error',\n 'no-unsafe-negation': 'error',\n 'no-unused-expressions': [\n 'error',\n {\n allowShortCircuit: true,\n allowTaggedTemplates: true,\n allowTernary: true,\n },\n ],\n 'no-unused-vars': [\n 'error',\n {\n args: 'none',\n caughtErrors: 'none',\n ignoreRestSiblings: true,\n vars: 'all',\n },\n ],\n 'no-useless-backreference': 'error',\n 'no-useless-call': 'error',\n 'no-useless-catch': 'error',\n 'no-useless-computed-key': 'error',\n 'no-useless-constructor': 'error',\n 'no-useless-rename': 'error',\n 'no-var': 'error',\n 'no-with': 'error',\n 'object-shorthand': [\n 'error',\n 'always',\n {\n avoidQuotes: true,\n ignoreConstructors: false,\n },\n ],\n 'one-var': ['error', { initialized: 'never' }],\n 'prefer-arrow-callback': [\n 'error',\n {\n allowNamedFunctions: true,\n allowUnboundThis: true,\n },\n ],\n 'prefer-const': [\n 'error',\n {\n destructuring: 'all',\n ignoreReadBeforeAssign: true,\n },\n ],\n 'prefer-exponentiation-operator': 'error',\n 'prefer-promise-reject-errors': 'error',\n 'prefer-regex-literals': ['error', { disallowRedundantWrapping: true }],\n 'prefer-rest-params': 'error',\n 'prefer-spread': 'error',\n 'prefer-template': 'error',\n 'symbol-description': 'error',\n 'unicode-bom': ['error', 'never'],\n 'use-isnan': ['error', { enforceForIndexOf: true, enforceForSwitchCase: true }],\n 'valid-typeof': ['error', { requireStringLiterals: true }],\n 'vars-on-top': 'error',\n yoda: ['error', 'never'],\n\n ...overrides,\n },\n },\n ];\n}\n","import type { TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function jsdoc(): Promise<TypedFlatConfigItem[]> {\n return [\n {\n name: '2digits:jsdoc',\n plugins: {\n jsdoc: await interopDefault(import('eslint-plugin-jsdoc')),\n },\n rules: {\n 'jsdoc/check-access': 'error',\n 'jsdoc/check-param-names': 'error',\n 'jsdoc/check-property-names': 'error',\n 'jsdoc/check-types': 'error',\n 'jsdoc/empty-tags': 'error',\n 'jsdoc/implements-on-classes': 'error',\n 'jsdoc/no-defaults': 'error',\n 'jsdoc/no-multi-asterisks': 'error',\n 'jsdoc/require-param-name': 'error',\n 'jsdoc/require-property': 'error',\n 'jsdoc/require-property-description': 'error',\n 'jsdoc/require-property-name': 'error',\n 'jsdoc/require-returns-check': 'error',\n 'jsdoc/require-returns-description': 'error',\n 'jsdoc/require-yields-check': 'error',\n },\n },\n ];\n}\n","import plugin, { configs } from 'eslint-plugin-jsonc';\nimport parser from 'jsonc-eslint-parser';\n\nimport { GLOB_JSON, GLOB_JSON5, GLOB_JSONC } from '../globs';\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function jsonc(): TypedFlatConfigItem[] {\n return [\n ...configs['flat/base'].map((config) => ({ ...config, name: '2digits:jsonc/base' })),\n\n {\n name: '2digits:jsonc/json',\n files: [GLOB_JSON],\n ...SHARED_OPTIONS,\n rules: {\n ...collectRules(configs['flat/recommended-with-json']),\n },\n },\n {\n name: '2digits:jsonc/jsonc',\n files: [GLOB_JSONC],\n ...SHARED_OPTIONS,\n rules: {\n ...collectRules(configs['flat/recommended-with-jsonc']),\n },\n },\n {\n name: '2digits:jsonc/json5',\n files: [GLOB_JSON5],\n ...SHARED_OPTIONS,\n rules: {\n ...collectRules(configs['flat/recommended-with-json5']),\n },\n },\n\n {\n name: '2digits:jsonc/package.json',\n ...SHARED_OPTIONS,\n files: ['**/package.json'],\n rules: {\n 'jsonc/sort-array-values': [\n 'error',\n {\n order: { type: 'asc' },\n pathPattern: '^files$',\n },\n ],\n 'jsonc/sort-keys': [\n 'error',\n {\n order: [\n '$schema',\n 'publisher',\n 'name',\n 'displayName',\n 'version',\n 'private',\n 'description',\n 'funding',\n 'homepage',\n 'repository',\n 'bugs',\n 'categories',\n 'type',\n 'main',\n 'module',\n 'types',\n 'typesVersions',\n 'bin',\n 'files',\n 'exports',\n 'icon',\n 'unpkg',\n 'jsdelivr',\n 'sideEffects',\n 'activationEvents',\n 'contributes',\n 'scripts',\n 'keywords',\n 'author',\n 'license',\n 'workspaces',\n 'dependencies',\n 'devDependencies',\n 'peerDependencies',\n 'peerDependenciesMeta',\n 'optionalDependencies',\n 'packageManager',\n 'engines',\n 'pnpm',\n 'overrides',\n 'resolutions',\n 'husky',\n 'simple-git-hooks',\n 'lint-staged',\n 'eslintConfig',\n 'prettier',\n ],\n pathPattern: '^$',\n },\n {\n order: { type: 'asc' },\n pathPattern: '^(?:dev|peer|optional|bundled)?[Dd]ependencies(Meta)?$',\n },\n {\n order: ['types', 'import', 'module', 'require', 'default'],\n pathPattern: '^exports.*$',\n },\n ],\n },\n },\n\n {\n name: '2digits:jsonc/tsconfig.json',\n ...SHARED_OPTIONS,\n files: [\n '**/tsconfig.json',\n '**/tsconfig.*.json',\n '**/tsconfig-*.json',\n '**/jsconfig.json',\n '**/jsconfig.*.json',\n '**/jsconfig-*.json',\n ],\n rules: {\n 'jsonc/sort-keys': [\n 'error',\n {\n order: [\n '$schema',\n 'extends',\n 'compilerOptions',\n 'references',\n 'files',\n 'include',\n 'exclude',\n ],\n pathPattern: '^$',\n },\n {\n order: [\n /* Projects */\n 'incremental',\n 'composite',\n 'tsBuildInfoFile',\n 'disableSourceOfProjectReferenceRedirect',\n 'disableSolutionSearching',\n 'disableReferencedProjectLoad',\n /* Language and Environment */\n 'target',\n 'lib',\n 'jsx',\n 'experimentalDecorators',\n 'emitDecoratorMetadata',\n 'jsxFactory',\n 'jsxFragmentFactory',\n 'jsxImportSource',\n 'reactNamespace',\n 'noLib',\n 'useDefineForClassFields',\n 'moduleDetection',\n /* Modules */\n 'module',\n 'rootDir',\n 'moduleResolution',\n 'baseUrl',\n 'paths',\n 'rootDirs',\n 'typeRoots',\n 'types',\n 'allowUmdGlobalAccess',\n 'moduleSuffixes',\n 'allowImportingTsExtensions',\n 'resolvePackageJsonExports',\n 'resolvePackageJsonImports',\n 'customConditions',\n 'resolveJsonModule',\n 'allowArbitraryExtensions',\n 'noResolve',\n /* JavaScript Support */\n 'allowJs',\n 'checkJs',\n 'maxNodeModuleJsDepth',\n /* Emit */\n 'declaration',\n 'declarationMap',\n 'emitDeclarationOnly',\n 'sourceMap',\n 'inlineSourceMap',\n 'outFile',\n 'outDir',\n 'removeComments',\n 'noEmit',\n 'importHelpers',\n 'importsNotUsedAsValues',\n 'downlevelIteration',\n 'sourceRoot',\n 'mapRoot',\n 'inlineSources',\n 'emitBOM',\n 'newLine',\n 'stripInternal',\n 'noEmitHelpers',\n 'noEmitOnError',\n 'preserveConstEnums',\n 'declarationDir',\n 'preserveValueImports',\n /* Interop Constraints */\n 'isolatedModules',\n 'verbatimModuleSyntax',\n 'allowSyntheticDefaultImports',\n 'esModuleInterop',\n 'preserveSymlinks',\n 'forceConsistentCasingInFileNames',\n /* Type Checking */\n 'strict',\n 'strictBindCallApply',\n 'strictFunctionTypes',\n 'strictNullChecks',\n 'strictPropertyInitialization',\n 'allowUnreachableCode',\n 'allowUnusedLabels',\n 'alwaysStrict',\n 'exactOptionalPropertyTypes',\n 'noFallthroughCasesInSwitch',\n 'noImplicitAny',\n 'noImplicitOverride',\n 'noImplicitReturns',\n 'noImplicitThis',\n 'noPropertyAccessFromIndexSignature',\n 'noUncheckedIndexedAccess',\n 'noUnusedLocals',\n 'noUnusedParameters',\n 'useUnknownInCatchVariables',\n /* Completeness */\n 'skipDefaultLibCheck',\n 'skipLibCheck',\n ],\n pathPattern: '^compilerOptions$',\n },\n ],\n },\n },\n\n ...configs['flat/prettier'].map((config) => ({ ...config, name: '2digits:jsonc/prettier' })),\n ];\n}\n\nconst SHARED_OPTIONS = {\n languageOptions: {\n parser,\n },\n plugins: {\n jsonc: plugin,\n },\n} satisfies Pick<TypedFlatConfigItem, 'plugins' | 'languageOptions'>;\n\ntype FlatConfigName = Extract<keyof typeof configs, `flat/${string}`>;\n\nfunction collectRules(config: (typeof configs)[FlatConfigName]) {\n return Object.fromEntries(config.flatMap(({ rules }) => Object.entries(rules ?? {})));\n}\n","import { fixupPluginRules } from '@eslint/compat';\nimport { renamePluginsInRules } from 'eslint-flat-config-utils';\n\nimport { PluginNameMap } from '../constants';\nimport { GLOB_TS, GLOB_TSX } from '../globs';\nimport type { OptionsTypeScriptWithTypes, OptionsWithFiles, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function next(\n options: OptionsWithFiles & OptionsTypeScriptWithTypes = {},\n): Promise<TypedFlatConfigItem[]> {\n const { files = [GLOB_TS, GLOB_TSX], overrides = {}, parserOptions } = options;\n\n const [next, parser] = await Promise.all([\n interopDefault(import('@next/eslint-plugin-next')),\n interopDefault(import('@typescript-eslint/parser')),\n ]);\n\n const recommended = renamePluginsInRules(\n {\n ...next.configs.recommended.rules,\n ...next.configs['core-web-vitals'].rules,\n },\n PluginNameMap,\n );\n\n return [\n {\n name: '2digits:next/setup',\n plugins: {\n next: fixupPluginRules(next as never),\n },\n },\n {\n name: '2digits:next/rules',\n files,\n languageOptions: {\n parser,\n parserOptions: {\n ecmaFeatures: {\n jsx: true,\n },\n projectService: true,\n ...parserOptions,\n },\n sourceType: 'module',\n },\n rules: {\n ...recommended,\n\n 'next/no-html-link-for-pages': 'off',\n\n ...overrides,\n },\n },\n ];\n}\n","import { pluginNode } from '../plugins';\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function node(): TypedFlatConfigItem[] {\n return [\n {\n name: '2digits:node',\n settings: {\n node: {\n version: '>= 22.0.0',\n },\n },\n plugins: {\n node: pluginNode,\n },\n rules: {\n 'node/handle-callback-err': ['error', '^(err|error)$'],\n 'node/no-deprecated-api': 'error',\n 'node/no-exports-assign': 'error',\n 'node/no-new-require': 'error',\n 'node/no-path-concat': 'error',\n 'node/no-unsupported-features/node-builtins': ['error', { allowExperimental: true }],\n 'node/prefer-global/buffer': 'error',\n 'node/prefer-global/process': 'error',\n 'node/prefer-global/text-encoder': 'error',\n 'node/prefer-global/url': 'error',\n 'node/prefer-global/console': 'error',\n 'node/prefer-global/url-search-params': 'error',\n 'node/prefer-global/text-decoder': 'error',\n 'node/process-exit-as-throw': 'error',\n },\n },\n ];\n}\n","import type { TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function prettier(): Promise<TypedFlatConfigItem[]> {\n const [prettier, react] = await Promise.all([\n interopDefault(import('eslint-config-prettier')),\n interopDefault(import('eslint-plugin-react')),\n ]);\n\n return [\n {\n name: '2digits:prettier',\n plugins: {\n react,\n },\n rules: {\n ...prettier.rules,\n\n 'tailwindcss/classnames-order': 'off',\n 'react/jsx-newline': ['error', { prevent: false }],\n },\n },\n ];\n}\n","import { fixupPluginRules } from '@eslint/compat';\nimport { renamePluginsInRules } from 'eslint-flat-config-utils';\n\nimport { PluginNameMap } from '../constants';\nimport { GLOB_TS, GLOB_TSX } from '../globs';\nimport type { OptionsTypeScriptWithTypes, OptionsWithReact, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function react(\n options: OptionsWithReact & OptionsTypeScriptWithTypes = {},\n): Promise<TypedFlatConfigItem[]> {\n const {\n files = [GLOB_TS, GLOB_TSX],\n overrides = {},\n parserOptions,\n tsconfigRootDir,\n reactCompiler = true,\n } = options;\n\n const [pluginReact, pluginReactHooks, react, parser, pluginReactCompiler] = await Promise.all([\n interopDefault(import('@eslint-react/eslint-plugin')),\n interopDefault(import('eslint-plugin-react-hooks')),\n interopDefault(import('eslint-plugin-react')),\n interopDefault(import('@typescript-eslint/parser')),\n reactCompiler ? interopDefault(import('eslint-plugin-react-compiler')) : undefined,\n ]);\n\n const plugins = pluginReact.configs.all.plugins;\n\n const recommended = renamePluginsInRules(\n {\n ...react.configs.recommended.rules,\n ...react.configs['jsx-runtime'].rules,\n ...pluginReactHooks.configs.recommended.rules,\n ...pluginReact.configs['recommended-type-checked'].rules,\n },\n PluginNameMap,\n );\n\n return [\n {\n name: '2digits:react/setup',\n plugins: {\n react,\n 'react-dom': plugins['@eslint-react/dom'],\n 'react-web-api': plugins['@eslint-react/web-api'],\n 'react-extra': plugins['@eslint-react'],\n 'react-hooks': fixupPluginRules(pluginReactHooks as never),\n 'react-hooks-extra': plugins['@eslint-react/hooks-extra'],\n 'react-naming-convention': plugins['@eslint-react/naming-convention'],\n ...(reactCompiler ? { 'react-compiler': pluginReactCompiler } : {}),\n },\n settings: {\n react: {\n version: 'detect',\n },\n },\n },\n {\n name: '2digits:react/rules',\n files,\n languageOptions: {\n parser,\n parserOptions: {\n ecmaFeatures: {\n jsx: true,\n },\n tsconfigRootDir,\n projectService: true,\n ...parserOptions,\n },\n sourceType: 'module',\n },\n rules: {\n ...recommended,\n\n ...(reactCompiler ? { 'react-compiler/react-compiler': 'error' } : {}),\n\n 'react-hooks-extra/no-unnecessary-use-callback': 'error',\n 'react-hooks-extra/prefer-use-state-lazy-initialization': 'error',\n 'react-hooks-extra/no-redundant-custom-hook': 'error',\n 'react-hooks-extra/no-unnecessary-use-memo': 'error',\n\n 'react-extra/prefer-read-only-props': 'off',\n 'react-extra/prefer-shorthand-boolean': 'error',\n 'react-extra/prefer-shorthand-fragment': 'error',\n 'react-extra/prefer-react-namespace-import': 'error',\n\n 'react-naming-convention/use-state': 'error',\n\n 'react/jsx-curly-newline': 'off',\n 'react/jsx-newline': ['error', { prevent: false }],\n 'react/prop-types': 'off',\n\n ...overrides,\n },\n },\n ];\n}\n","import pluginRegexp from 'eslint-plugin-regexp';\n\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function regexp(): TypedFlatConfigItem[] {\n return [\n {\n name: '2digits:regexp',\n plugins: {\n regexp: pluginRegexp,\n },\n rules: {\n ...pluginRegexp.configs['flat/recommended'].rules,\n },\n },\n ];\n}\n","import { pluginSonar } from '../plugins';\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function sonar(): TypedFlatConfigItem[] {\n return [\n {\n name: '2digits:sonar',\n plugins: {\n sonar: pluginSonar,\n },\n rules: {\n 'sonar/code-eval': 'error',\n 'sonar/cognitive-complexity': 'error',\n 'sonar/comma-or-logical-or-case': 'error',\n 'sonar/concise-regex': 'error',\n 'sonar/confidential-information-logging': 'error',\n 'sonar/constructor-for-side-effects': 'error',\n 'sonar/content-length': 'error',\n 'sonar/content-security-policy': 'error',\n 'sonar/cookie-no-httponly': 'error',\n 'sonar/cors': 'error',\n 'sonar/csrf': 'error',\n 'sonar/max-switch-cases': 'error',\n 'sonar/no-all-duplicated-branches': 'error',\n 'sonar/no-collapsible-if': 'error',\n 'sonar/no-collection-size-mischeck': 'error',\n 'sonar/no-duplicate-string': ['error', { threshold: 5 }],\n 'sonar/no-duplicated-branches': 'error',\n 'sonar/no-element-overwrite': 'error',\n 'sonar/no-empty-collection': 'error',\n 'sonar/no-extra-arguments': 'error',\n 'sonar/no-for-in-iterable': 'error',\n 'sonar/no-gratuitous-expressions': 'error',\n 'sonar/no-identical-conditions': 'error',\n 'sonar/no-identical-expressions': 'error',\n 'sonar/no-identical-functions': 'error',\n 'sonar/no-ignored-return': 'error',\n 'sonar/no-inverted-boolean-check': 'error',\n 'sonar/no-nested-switch': 'error',\n 'sonar/no-nested-template-literals': 'error',\n 'sonar/no-one-iteration-loop': 'error',\n 'sonar/no-redundant-boolean': 'error',\n 'sonar/no-same-line-conditional': 'error',\n 'sonar/no-small-switch': 'error',\n 'sonar/no-unused-collection': 'error',\n 'sonar/no-use-of-empty-return-value': 'error',\n 'sonar/no-useless-catch': 'error',\n 'sonar/non-existent-operator': 'error',\n 'sonar/prefer-immediate-return': 'error',\n 'sonar/prefer-object-literal': 'error',\n 'sonar/prefer-single-boolean-return': 'error',\n 'sonar/prefer-while': 'error',\n\n 'sonar/elseif-without-else': 'off',\n 'sonar/no-redundant-jump': 'off',\n },\n },\n ];\n}\n","import { fixupPluginRules } from '@eslint/compat';\nimport type { FlatConfig } from '@typescript-eslint/utils/ts-eslint';\n\nimport { GLOB_STORIES } from '../globs';\nimport type {\n OptionsTypeScriptWithTypes,\n OptionsWithStorybook,\n TypedFlatConfigItem,\n} from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function storybook(\n options: OptionsWithStorybook & OptionsTypeScriptWithTypes = {},\n): Promise<TypedFlatConfigItem[]> {\n const {\n files = [GLOB_STORIES],\n overrides = {},\n parserOptions,\n storybookDirectory = '.storybook',\n } = options;\n\n const [storybook, parser] = await Promise.all([\n interopDefault(import('eslint-plugin-storybook')),\n interopDefault(import('@typescript-eslint/parser')),\n ]);\n\n const languageOptions = {\n parser,\n parserOptions: {\n ecmaFeatures: {\n jsx: true,\n },\n projectService: true,\n ...parserOptions,\n },\n sourceType: 'module',\n } satisfies FlatConfig.LanguageOptions;\n\n return [\n {\n name: '2digits:storybook/setup',\n plugins: {\n storybook: fixupPluginRules(storybook as never),\n },\n },\n {\n name: '2digits:storybook/rules',\n files,\n languageOptions,\n rules: {\n 'storybook/await-interactions': 'error',\n 'storybook/context-in-play-function': 'error',\n 'storybook/csf-component': 'error',\n 'storybook/default-exports': 'error',\n 'storybook/hierarchy-separator': 'error',\n 'storybook/meta-inline-properties': 'error',\n 'storybook/no-redundant-story-name': 'error',\n 'storybook/no-stories-of': 'error',\n 'storybook/no-title-property-in-meta': 'error',\n 'storybook/no-uninstalled-addons': 'error',\n 'storybook/prefer-pascal-case': 'error',\n 'storybook/story-exports': 'error',\n 'storybook/use-storybook-expect': 'error',\n 'storybook/use-storybook-testing-library': 'error',\n\n ...overrides,\n },\n },\n {\n name: '2digits:storybook/disables',\n files,\n rules: {\n 'react-hooks/rules-of-hooks': 'off',\n 'react/display-name': 'off',\n 'sonar/no-duplicate-string': 'off',\n },\n },\n {\n name: '2digits:storybook/config',\n files: [`${storybookDirectory}/main.@(js|cjs|mjs|ts)`],\n languageOptions,\n rules: {\n 'storybook/no-uninstalled-addons': 'error',\n },\n },\n ];\n}\n","import { findUp } from 'find-up';\n\nimport type { OptionsOverrides, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function tailwind(options: OptionsOverrides = {}): Promise<TypedFlatConfigItem[]> {\n const { overrides = {} } = options;\n\n const [tailwindcss, { tailwindFunctions }, config] = await Promise.all([\n interopDefault(import('eslint-plugin-tailwindcss')),\n interopDefault(import('@2digits/constants')),\n findUp(['tailwind.config.ts', 'tailwind.config.js']),\n ]);\n\n return [\n {\n name: '2digits:tailwind',\n plugins: {\n tailwindcss,\n },\n settings: {\n tailwindcss: {\n callees: tailwindFunctions,\n config,\n },\n },\n rules: {\n ...tailwindcss.configs.recommended.rules,\n\n ...overrides,\n },\n },\n ];\n}\n","import { renamePluginsInRules } from 'eslint-flat-config-utils';\n\nimport { PluginNameMap } from '../constants';\nimport type { OptionsOverrides, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function tanstack(options: OptionsOverrides = {}): Promise<TypedFlatConfigItem[]> {\n const { overrides = {} } = options;\n\n const tanstack = await interopDefault(import('@tanstack/eslint-plugin-query'));\n\n const recommended = renamePluginsInRules(\n tanstack.configs['flat/recommended'].at(0)?.rules ?? {},\n PluginNameMap,\n );\n\n return [\n {\n name: '2digits:tanstack',\n plugins: { tanstack },\n rules: {\n ...recommended,\n\n ...overrides,\n },\n },\n ];\n}\n","import type { OptionsOverrides, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function turbo(options: OptionsOverrides = {}): Promise<TypedFlatConfigItem[]> {\n const { overrides = {} } = options;\n\n const turbo = await interopDefault(import('eslint-plugin-turbo'));\n\n return [\n {\n name: '2digits:turbo',\n plugins: {\n turbo,\n },\n rules: {\n 'turbo/no-undeclared-env-vars': 'error',\n\n ...overrides,\n },\n },\n ];\n}\n","import { renamePluginsInConfigs } from 'eslint-flat-config-utils';\n\nimport { PluginNameMap } from '../constants';\nimport { GLOB_SRC } from '../globs';\nimport type { OptionsTypeScriptWithTypes, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function typescript(\n options: OptionsTypeScriptWithTypes = {},\n): Promise<TypedFlatConfigItem[]> {\n const { overrides = {}, parserOptions = {} } = options;\n\n const [{ plugin, configs, parser }, twoDigits] = await Promise.all([\n interopDefault(import('typescript-eslint')),\n interopDefault(import('@2digits/eslint-plugin')),\n ]);\n\n const strictConfig = renamePluginsInConfigs(configs.strictTypeChecked as never, PluginNameMap);\n\n const rules = Object.fromEntries(\n strictConfig.flatMap(({ rules }) => Object.entries(rules ?? {})),\n );\n\n return [\n {\n name: '2digits:typescript/setup',\n plugins: {\n ts: plugin,\n '@2digits': twoDigits,\n },\n },\n {\n name: '2digits:typescript/rules',\n files: [GLOB_SRC],\n languageOptions: {\n parser,\n parserOptions: {\n tsconfigRootDir: process.cwd(),\n projectService: true,\n warnOnUnsupportedTypeScriptVersion: false,\n ...parserOptions,\n },\n sourceType: 'module',\n },\n rules: {\n ...rules,\n 'ts/restrict-template-expressions': ['error', { allowNumber: true }],\n 'ts/ban-ts-comment': ['error', { 'ts-ignore': 'allow-with-description' }],\n 'ts/consistent-type-exports': ['error'],\n 'ts/consistent-type-imports': [\n 'error',\n {\n prefer: 'type-imports',\n disallowTypeAnnotations: false,\n fixStyle: 'inline-type-imports',\n },\n ],\n 'ts/no-empty-object-type': [\n 'error',\n { allowInterfaces: 'with-single-extends', allowObjectTypes: 'never' },\n ],\n 'ts/no-explicit-any': ['error'],\n 'ts/no-import-type-side-effects': ['error'],\n 'ts/no-misused-promises': 'off',\n 'ts/no-confusing-void-expression': 'off',\n 'ts/no-unused-vars': [\n 'error',\n {\n ignoreRestSiblings: true,\n argsIgnorePattern: '^_',\n varsIgnorePattern: '^_',\n },\n ],\n 'ts/unbound-method': 'off',\n\n ...(twoDigits.configs.recommended.rules as object),\n\n ...overrides,\n },\n },\n {\n files: ['**/*.d.ts'],\n name: '2digits:typescript/disables/dts',\n rules: {\n 'unicorn/no-abusive-eslint-disable': 'off',\n 'no-duplicate-imports': 'off',\n 'no-restricted-syntax': 'off',\n 'ts/no-unused-vars': 'off',\n },\n },\n {\n files: ['**/*.{test,spec}.ts?(x)'],\n name: '2digits:typescript/disables/test',\n rules: {\n 'no-unused-expressions': 'off',\n },\n },\n {\n files: ['**/*.js', '**/*.cjs', '**/*.cts'],\n name: '2digits:typescript/disables/cjs',\n rules: {\n 'ts/no-require-imports': 'off',\n 'ts/no-var-requires': 'off',\n },\n },\n ];\n}\n","import { pluginUnicorn } from '../plugins';\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function unicorn(): TypedFlatConfigItem[] {\n return [\n {\n name: '2digits:unicorn',\n plugins: {\n unicorn: pluginUnicorn,\n },\n rules: {\n ...pluginUnicorn.configs['flat/recommended'].rules,\n\n 'unicorn/filename-case': ['off'],\n 'unicorn/prefer-module': ['off'],\n 'unicorn/prevent-abbreviations': ['off'],\n 'unicorn/prefer-ternary': ['error', 'only-single-line'],\n 'unicorn/no-useless-undefined': [\n 'error',\n {\n checkArguments: false,\n checkArrowFunctionBody: false,\n },\n ],\n 'unicorn/prefer-top-level-await': ['off'],\n },\n },\n ];\n}\n","import { FlatConfigComposer } from 'eslint-flat-config-utils';\nimport { isPackageExists } from 'local-pkg';\n\nimport {\n antfu,\n comments,\n graphql,\n ignores,\n javascript,\n jsdoc,\n jsonc,\n next,\n node,\n prettier,\n react,\n regexp,\n sonar,\n storybook,\n tailwind,\n tanstack,\n turbo,\n typescript,\n unicorn,\n} from './configs';\nimport { drizzle } from './configs/drizzle';\nimport { PluginNameMap } from './constants';\nimport type {\n ConfigNames,\n OptionsOverrides,\n OptionsTypeScriptWithTypes,\n OptionsWithDrizzle,\n OptionsWithFiles,\n OptionsWithIgnores,\n OptionsWithReact,\n OptionsWithStorybook,\n TypedFlatConfigItem,\n} from './types';\n\ntype SharedOptions<T = unknown> = T & {\n enable?: boolean;\n};\n\ninterface ESLint2DigitsOptions {\n ignores?: OptionsWithIgnores;\n turbo?: SharedOptions<OptionsOverrides> | boolean;\n js?: OptionsOverrides;\n ts?: SharedOptions<OptionsTypeScriptWithTypes> | boolean;\n graphql?: SharedOptions<OptionsWithFiles> | boolean;\n react?: SharedOptions<OptionsWithReact> | boolean;\n next?: SharedOptions<OptionsWithFiles> | boolean;\n tailwind?: SharedOptions<OptionsOverrides> | boolean;\n storybook?: SharedOptions<OptionsWithStorybook> | boolean;\n tanstack?: SharedOptions<OptionsOverrides> | boolean;\n drizzle?: SharedOptions<OptionsWithDrizzle> | boolean;\n}\n\nfunction enabled<T extends SharedOptions>(\n options: T | boolean | undefined,\n defaults?: boolean,\n): options is T {\n if (typeof options === 'boolean') {\n return options;\n }\n\n return options?.enable ?? defaults ?? false;\n}\n\nfunction config<T>(options: SharedOptions<T> | undefined | boolean): T {\n if (typeof options === 'boolean' || options === undefined) {\n return {} as T;\n }\n\n const { enable, ...rest } = options;\n return rest as T;\n}\n\nexport function twoDigits(\n options: ESLint2DigitsOptions = {},\n ...userConfig: TypedFlatConfigItem[]\n): Promise<TypedFlatConfigItem[]> {\n let composer = new FlatConfigComposer<TypedFlatConfigItem, ConfigNames>(\n ignores(options.ignores),\n javascript(options.js),\n node(),\n comments(),\n jsdoc(),\n unicorn(),\n sonar(),\n regexp(),\n antfu(),\n jsonc(),\n );\n\n if (enabled(options.turbo, isPackageExists('turbo'))) {\n composer = composer.append(turbo(config(options.turbo)));\n }\n\n const { overrides, ...typescriptOptions } = config(options.ts);\n\n if (enabled(options.ts, isPackageExists('typescript'))) {\n composer = composer.append(typescript(config(options.ts)));\n }\n\n if (enabled(options.react, isPackageExists('react'))) {\n composer = composer.append(\n react({\n ...config(options.react),\n ...typescriptOptions,\n }),\n );\n }\n\n if (enabled(options.next, isPackageExists('next'))) {\n composer = composer.append(\n next({\n ...config(options.next),\n ...typescriptOptions,\n }),\n );\n }\n\n if (enabled(options.storybook, isPackageExists('storybook'))) {\n composer = composer.append(\n storybook({\n ...config(options.storybook),\n ...typescriptOptions,\n }),\n );\n }\n\n if (enabled(options.tailwind, isPackageExists('tailwindcss'))) {\n composer = composer.append(tailwind(config(options.tailwind)));\n }\n\n if (\n enabled(\n options.tanstack,\n isPackageExists('react-query') ||\n isPackageExists('@tanstack/react-query') ||\n isPackageExists('@tanstack/react-query-devtools'),\n )\n ) {\n composer = composer.append(tanstack(config(options.tanstack)));\n }\n\n if (enabled(options.drizzle, isPackageExists('drizzle-kit') || isPackageExists('drizzle-orm'))) {\n composer = composer.append(drizzle(config(options.drizzle)));\n }\n\n if (enabled(options.graphql, isPackageExists('graphql'))) {\n composer = composer.append(graphql(config(options.graphql)));\n }\n\n composer = composer.append(...userConfig);\n\n if (isPackageExists('prettier')) {\n composer = composer.append(prettier());\n }\n\n return composer.renamePlugins(PluginNameMap).toConfigs();\n}\n"]}
1
+ {"version":3,"sources":["../src/configs/antfu.ts","../src/constants.ts","../src/configs/comments.ts","../src/utils.ts","../src/configs/drizzle.ts","../src/configs/graphql.ts","../src/globs.ts","../src/configs/ignores.ts","../src/configs/javascript.ts","../src/configs/jsdoc.ts","../src/configs/jsonc.ts","../src/configs/next.ts","../src/configs/node.ts","../src/configs/prettier.ts","../src/configs/react.ts","../src/configs/regexp.ts","../src/configs/sonar.ts","../src/configs/storybook.ts","../src/configs/tailwind.ts","../src/configs/tanstack.ts","../src/configs/turbo.ts","../src/configs/typescript.ts","../src/configs/unicorn.ts","../src/factory.ts"],"names":["antfu","pluginAntfu","PluginNameMap","recommended","renamePluginsInRules","configs","comments","pluginComments","interopDefault","m","resolved","drizzle","options","overrides","drizzleObjectName","fixupPluginRules","graphql","files","gql","gqlSchema","loadConfig","g","flatRecommended","rules","rule","ruleName","GLOB_SRC","GLOB_TS","GLOB_TSX","GLOB_STORIES","GLOB_JSON","GLOB_JSON5","GLOB_JSONC","GLOB_EXCLUDE","ignores","gitIgnore","composer","javascript","globals","eslint","jsdoc","jsonc","config","SHARED_OPTIONS","collectRules","parser","plugin","next","parserOptions","node","default","prettier","react","tsconfigRootDir","reactCompiler","pluginReact","pluginReactHooks","pluginReactCompiler","plugins","regexp","pluginRegexp","sonar","storybook","storybookDirectory","languageOptions","tailwind","tailwindcss","tailwindFunctions","findUp","tanstack","turbo","typescript","twoDigits","strictConfig","renamePluginsInConfigs","unicorn","enabled","defaults","enable","rest","userConfig","FlatConfigComposer","isPackageExists","typescriptOptions"],"mappings":"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","file":"index.js","sourcesContent":["import pluginAntfu from 'eslint-plugin-antfu';\n\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function antfu(): TypedFlatConfigItem[] {\n return [\n {\n name: '2digits:antfu',\n plugins: {\n antfu: pluginAntfu,\n },\n rules: {\n 'antfu/if-newline': 'error',\n 'antfu/top-level-function': 'error',\n },\n },\n ];\n}\n","export const PluginNameMap = {\n '@next/next': 'next',\n '@eslint-react/naming-convention': 'react-naming-convention',\n '@eslint-react/hooks-extra': 'react-hooks-extra',\n '@eslint-react/dom': 'react-dom',\n '@eslint-react/web-api': 'react-web-api',\n '@eslint-react': 'react-extra',\n 'react-hooks': 'react-hooks',\n 'react-compiler': 'react-compiler',\n react: 'react',\n '@typescript-eslint': 'ts',\n node: 'node',\n '@eslint-community/eslint-comments': 'comments',\n storybook: 'storybook',\n turbo: 'turbo',\n jsdoc: 'jsdoc',\n unicorn: 'unicorn',\n tailwindcss: 'tailwindcss',\n '@tanstack/query': 'tanstack',\n '@2digits': '@2digits',\n '@graphql-eslint': 'gql',\n sonarjs: 'sonar',\n drizzle: 'drizzle',\n} as const;\n","import pluginComments from '@eslint-community/eslint-plugin-eslint-comments';\nimport configs from '@eslint-community/eslint-plugin-eslint-comments/configs';\nimport { renamePluginsInRules } from 'eslint-flat-config-utils';\n\nimport { PluginNameMap } from '../constants';\nimport type { TypedFlatConfigItem } from '../types';\n\nconst recommended = renamePluginsInRules(configs.recommended.rules as never, PluginNameMap);\n\nexport function comments(): TypedFlatConfigItem[] {\n return [\n {\n name: '2digits:comments',\n plugins: {\n comments: pluginComments,\n },\n rules: {\n ...recommended,\n\n 'comments/no-unused-disable': 'error',\n 'comments/disable-enable-pair': ['error', { allowWholeFile: true }],\n },\n },\n ];\n}\n","import type { Awaitable } from 'eslint-flat-config-utils';\n\nexport async function interopDefault<T>(m: Awaitable<T>): Promise<T extends { default: infer U } ? U : T> {\n const resolved = await m;\n\n return ((resolved as Record<string, unknown>).default || resolved) as never;\n}\n","import { fixupPluginRules } from '@eslint/compat';\n\nimport type { OptionsWithDrizzle, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function drizzle(options: OptionsWithDrizzle = {}): Promise<TypedFlatConfigItem[]> {\n const { overrides = {}, drizzleObjectName = ['drizzle', 'db'] } = options;\n\n const drizzle = await interopDefault(import('eslint-plugin-drizzle'));\n\n return [\n {\n name: '2digits:drizzle',\n plugins: {\n drizzle: fixupPluginRules(drizzle as never),\n },\n rules: {\n 'drizzle/enforce-update-with-where': ['error', { drizzleObjectName }],\n 'drizzle/enforce-delete-with-where': ['error', { drizzleObjectName }],\n\n ...overrides,\n },\n },\n ];\n}\n","import { renamePluginsInRules } from 'eslint-flat-config-utils';\nimport { loadConfig } from 'graphql-config';\n\nimport { PluginNameMap } from '../constants';\nimport type { OptionsWithFiles, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function graphql(options: OptionsWithFiles = {}): Promise<TypedFlatConfigItem[]> {\n const { overrides = {}, files = ['**/*.graphql', '**/*.gql'] } = options;\n\n const [gql, gqlSchema] = await Promise.all([\n interopDefault(import('@graphql-eslint/eslint-plugin')),\n loadConfig({ throwOnEmpty: false, throwOnMissing: false }).then((g) => g?.getDefault().schema),\n ]);\n\n const flatRecommended = gql.configs['flat/operations-recommended'].rules;\n\n let rules = {} as typeof flatRecommended;\n\n if (gqlSchema) {\n rules = flatRecommended;\n } else {\n for (const rule of Object.keys(flatRecommended) as Array<keyof typeof rules>) {\n const ruleName = rule.replace('@graphql-eslint/', '') as keyof typeof gql.rules;\n if (\n ruleName in gql.rules\n && (gql.rules[ruleName].meta.docs?.requiresSchema || gql.rules[ruleName].meta.docs?.requiresSiblings)\n ) {\n continue;\n }\n rules[rule] = flatRecommended[rule] as never;\n }\n }\n\n const recommended = renamePluginsInRules(rules, PluginNameMap);\n\n return [\n {\n name: '2digits:graphql',\n plugins: {\n gql,\n },\n languageOptions: {\n parser: gql.parser,\n },\n files,\n rules: {\n ...recommended,\n\n 'gql/naming-convention': ['error', { allowLeadingUnderscore: true } as never],\n\n ...overrides,\n },\n },\n ];\n}\n","export const GLOB_SRC = '**/*.?([cm])[jt]s?(x)';\n\nexport const GLOB_TS = '**/*.?([cm])ts';\nexport const GLOB_TSX = '**/*.?([cm])tsx';\n\nexport const GLOB_STORIES = '**/*.stories.tsx';\n\nexport const GLOB_JSON = '**/*.json';\nexport const GLOB_JSON5 = '**/*.json5';\nexport const GLOB_JSONC = '**/*.jsonc';\n\nexport const GLOB_EXCLUDE = [\n '**/node_modules',\n '**/dist',\n '**/package-lock.json',\n '**/yarn.lock',\n '**/pnpm-lock.yaml',\n '**/bun.lockb',\n\n '**/output',\n '**/coverage',\n '**/temp',\n '**/.temp',\n '**/tmp',\n '**/.tmp',\n '**/.history',\n '**/.vitepress/cache',\n '**/.nuxt',\n '**/.next',\n '**/.vercel',\n '**/.changeset',\n '**/.idea',\n '**/.cache',\n '**/.output',\n '**/.vite-inspect',\n '**/.yarn',\n\n '**/CHANGELOG*.md',\n '**/*.min.*',\n '**/LICENSE*',\n '**/__snapshots__',\n '**/auto-import?(s).d.ts',\n '**/components.d.ts',\n] as const;\n","import { composer } from 'eslint-flat-config-utils';\n\nimport { GLOB_EXCLUDE } from '../globs';\nimport type { OptionsWithIgnores, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function ignores(options: OptionsWithIgnores = {}): Promise<TypedFlatConfigItem[]> {\n const { gitIgnore, ignores = [] } = options;\n\n return composer(\n {\n ignores: [GLOB_EXCLUDE, ignores].flat(),\n name: '2digits:ignores',\n },\n interopDefault(import('eslint-config-flat-gitignore')).then((m) =>\n m({ strict: false, ...gitIgnore, name: '2digits:gitignore' }),\n ),\n );\n}\n","import eslint from '@eslint/js';\nimport globals from 'globals';\n\nimport type { OptionsOverrides, TypedFlatConfigItem } from '../types';\n\nexport function javascript(options: OptionsOverrides = {}): TypedFlatConfigItem[] {\n const { overrides = {} } = options;\n\n return [\n {\n name: '2digits:javascript',\n languageOptions: {\n ecmaVersion: 2022,\n globals: {\n ...globals.browser,\n ...globals.es2021,\n ...globals.node,\n document: 'readonly',\n navigator: 'readonly',\n window: 'readonly',\n },\n parserOptions: {\n ecmaFeatures: {\n jsx: true,\n },\n ecmaVersion: 2022,\n sourceType: 'module',\n },\n sourceType: 'module',\n },\n linterOptions: {\n reportUnusedDisableDirectives: true,\n },\n rules: {\n ...eslint.configs.recommended.rules,\n\n 'accessor-pairs': ['error', { enforceForClassMembers: true, setWithoutGet: true }],\n 'array-callback-return': 'error',\n 'block-scoped-var': 'error',\n 'constructor-super': 'error',\n 'default-case-last': 'error',\n 'dot-notation': ['error', { allowKeywords: true }],\n eqeqeq: ['error', 'smart'],\n 'new-cap': ['error', { capIsNew: false, newIsCap: true, properties: true }],\n 'no-alert': 'error',\n 'no-array-constructor': 'error',\n 'no-async-promise-executor': 'error',\n 'no-caller': 'error',\n 'no-case-declarations': 'error',\n 'no-class-assign': 'error',\n 'no-compare-neg-zero': 'error',\n 'no-cond-assign': ['error', 'always'],\n 'no-const-assign': 'error',\n 'no-control-regex': 'error',\n 'no-debugger': 'error',\n 'no-delete-var': 'error',\n 'no-dupe-args': 'error',\n 'no-dupe-class-members': 'error',\n 'no-dupe-keys': 'error',\n 'no-duplicate-case': 'error',\n 'no-empty': ['error', { allowEmptyCatch: true }],\n 'no-empty-character-class': 'error',\n 'no-empty-pattern': 'error',\n 'no-eval': 'error',\n 'no-ex-assign': 'error',\n 'no-extend-native': 'error',\n 'no-extra-bind': 'error',\n 'no-extra-boolean-cast': 'error',\n 'no-fallthrough': 'error',\n 'no-func-assign': 'error',\n 'no-global-assign': 'error',\n 'no-implied-eval': 'error',\n 'no-import-assign': 'error',\n 'no-invalid-regexp': 'error',\n 'no-irregular-whitespace': 'error',\n 'no-iterator': 'error',\n 'no-labels': ['error', { allowLoop: false, allowSwitch: false }],\n 'no-lone-blocks': 'error',\n 'no-loss-of-precision': 'error',\n 'no-misleading-character-class': 'error',\n 'no-multi-str': 'error',\n 'no-new': 'error',\n 'no-new-func': 'error',\n 'no-new-native-nonconstructor': 'error',\n 'no-new-wrappers': 'error',\n 'no-obj-calls': 'error',\n 'no-octal': 'error',\n 'no-octal-escape': 'error',\n 'no-proto': 'error',\n 'no-prototype-builtins': 'error',\n 'no-redeclare': ['error', { builtinGlobals: false }],\n 'no-regex-spaces': 'error',\n 'no-restricted-globals': [\n 'error',\n { message: 'Use `globalThis` instead.', name: 'global' },\n { message: 'Use `globalThis` instead.', name: 'self' },\n ],\n 'no-restricted-properties': [\n 'error',\n {\n message: 'Use `Object.getPrototypeOf` or `Object.setPrototypeOf` instead.',\n property: '__proto__',\n },\n {\n message: 'Use `Object.defineProperty` instead.',\n property: '__defineGetter__',\n },\n {\n message: 'Use `Object.defineProperty` instead.',\n property: '__defineSetter__',\n },\n {\n message: 'Use `Object.getOwnPropertyDescriptor` instead.',\n property: '__lookupGetter__',\n },\n {\n message: 'Use `Object.getOwnPropertyDescriptor` instead.',\n property: '__lookupSetter__',\n },\n ],\n 'no-restricted-syntax': [\n 'error',\n 'DebuggerStatement',\n 'LabeledStatement',\n 'WithStatement',\n 'TSEnumDeclaration',\n 'TSExportAssignment',\n ],\n 'no-self-assign': ['error', { props: true }],\n 'no-self-compare': 'error',\n 'no-sequences': 'error',\n 'no-shadow-restricted-names': 'error',\n 'no-sparse-arrays': 'error',\n 'no-template-curly-in-string': 'error',\n 'no-this-before-super': 'error',\n 'no-throw-literal': 'error',\n 'no-undef': 'error',\n 'no-undef-init': 'error',\n 'no-unexpected-multiline': 'error',\n 'no-unmodified-loop-condition': 'error',\n 'no-unneeded-ternary': ['error', { defaultAssignment: false }],\n 'no-unreachable': 'error',\n 'no-unreachable-loop': 'error',\n 'no-unsafe-finally': 'error',\n 'no-unsafe-negation': 'error',\n 'no-unused-expressions': [\n 'error',\n {\n allowShortCircuit: true,\n allowTaggedTemplates: true,\n allowTernary: true,\n },\n ],\n 'no-unused-vars': [\n 'error',\n {\n args: 'none',\n caughtErrors: 'none',\n ignoreRestSiblings: true,\n vars: 'all',\n },\n ],\n 'no-useless-backreference': 'error',\n 'no-useless-call': 'error',\n 'no-useless-catch': 'error',\n 'no-useless-computed-key': 'error',\n 'no-useless-constructor': 'error',\n 'no-useless-rename': 'error',\n 'no-var': 'error',\n 'no-with': 'error',\n 'object-shorthand': [\n 'error',\n 'always',\n {\n avoidQuotes: true,\n ignoreConstructors: false,\n },\n ],\n 'one-var': ['error', { initialized: 'never' }],\n 'prefer-arrow-callback': [\n 'error',\n {\n allowNamedFunctions: true,\n allowUnboundThis: true,\n },\n ],\n 'prefer-const': [\n 'error',\n {\n destructuring: 'all',\n ignoreReadBeforeAssign: true,\n },\n ],\n 'prefer-exponentiation-operator': 'error',\n 'prefer-promise-reject-errors': 'error',\n 'prefer-regex-literals': ['error', { disallowRedundantWrapping: true }],\n 'prefer-rest-params': 'error',\n 'prefer-spread': 'error',\n 'prefer-template': 'error',\n 'symbol-description': 'error',\n 'unicode-bom': ['error', 'never'],\n 'use-isnan': ['error', { enforceForIndexOf: true, enforceForSwitchCase: true }],\n 'valid-typeof': ['error', { requireStringLiterals: true }],\n 'vars-on-top': 'error',\n yoda: ['error', 'never'],\n\n ...overrides,\n },\n },\n ];\n}\n","import type { TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function jsdoc(): Promise<TypedFlatConfigItem[]> {\n return [\n {\n name: '2digits:jsdoc',\n plugins: {\n jsdoc: await interopDefault(import('eslint-plugin-jsdoc')),\n },\n rules: {\n 'jsdoc/check-access': 'error',\n 'jsdoc/check-param-names': 'error',\n 'jsdoc/check-property-names': 'error',\n 'jsdoc/check-types': 'error',\n 'jsdoc/empty-tags': 'error',\n 'jsdoc/implements-on-classes': 'error',\n 'jsdoc/no-defaults': 'error',\n 'jsdoc/no-multi-asterisks': 'error',\n 'jsdoc/require-param-name': 'error',\n 'jsdoc/require-property': 'error',\n 'jsdoc/require-property-description': 'error',\n 'jsdoc/require-property-name': 'error',\n 'jsdoc/require-returns-check': 'error',\n 'jsdoc/require-returns-description': 'error',\n 'jsdoc/require-yields-check': 'error',\n },\n },\n ];\n}\n","import plugin, { configs } from 'eslint-plugin-jsonc';\nimport parser from 'jsonc-eslint-parser';\n\nimport { GLOB_JSON, GLOB_JSON5, GLOB_JSONC } from '../globs';\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function jsonc(): TypedFlatConfigItem[] {\n return [\n ...configs['flat/base'].map((config) => ({ ...config, name: '2digits:jsonc/base' })),\n\n {\n name: '2digits:jsonc/json',\n files: [GLOB_JSON],\n ...SHARED_OPTIONS,\n rules: {\n ...collectRules(configs['flat/recommended-with-json']),\n },\n },\n {\n name: '2digits:jsonc/jsonc',\n files: [GLOB_JSONC],\n ...SHARED_OPTIONS,\n rules: {\n ...collectRules(configs['flat/recommended-with-jsonc']),\n },\n },\n {\n name: '2digits:jsonc/json5',\n files: [GLOB_JSON5],\n ...SHARED_OPTIONS,\n rules: {\n ...collectRules(configs['flat/recommended-with-json5']),\n },\n },\n\n {\n name: '2digits:jsonc/package.json',\n ...SHARED_OPTIONS,\n files: ['**/package.json'],\n rules: {\n 'jsonc/sort-array-values': [\n 'error',\n {\n order: { type: 'asc' },\n pathPattern: '^files$',\n },\n ],\n 'jsonc/sort-keys': [\n 'error',\n {\n order: [\n '$schema',\n 'publisher',\n 'name',\n 'displayName',\n 'version',\n 'private',\n 'description',\n 'funding',\n 'homepage',\n 'repository',\n 'bugs',\n 'categories',\n 'type',\n 'main',\n 'module',\n 'types',\n 'typesVersions',\n 'bin',\n 'files',\n 'exports',\n 'icon',\n 'unpkg',\n 'jsdelivr',\n 'sideEffects',\n 'activationEvents',\n 'contributes',\n 'scripts',\n 'keywords',\n 'author',\n 'license',\n 'workspaces',\n 'dependencies',\n 'devDependencies',\n 'peerDependencies',\n 'peerDependenciesMeta',\n 'optionalDependencies',\n 'packageManager',\n 'engines',\n 'pnpm',\n 'overrides',\n 'resolutions',\n 'husky',\n 'simple-git-hooks',\n 'lint-staged',\n 'eslintConfig',\n 'prettier',\n ],\n pathPattern: '^$',\n },\n {\n order: { type: 'asc' },\n pathPattern: '^(?:dev|peer|optional|bundled)?[Dd]ependencies(Meta)?$',\n },\n {\n order: ['types', 'import', 'module', 'require', 'default'],\n pathPattern: '^exports.*$',\n },\n ],\n },\n },\n\n {\n name: '2digits:jsonc/tsconfig.json',\n ...SHARED_OPTIONS,\n files: [\n '**/tsconfig.json',\n '**/tsconfig.*.json',\n '**/tsconfig-*.json',\n '**/jsconfig.json',\n '**/jsconfig.*.json',\n '**/jsconfig-*.json',\n ],\n rules: {\n 'jsonc/sort-keys': [\n 'error',\n {\n order: ['$schema', 'extends', 'compilerOptions', 'references', 'files', 'include', 'exclude'],\n pathPattern: '^$',\n },\n {\n order: [\n /* Projects */\n 'incremental',\n 'composite',\n 'tsBuildInfoFile',\n 'disableSourceOfProjectReferenceRedirect',\n 'disableSolutionSearching',\n 'disableReferencedProjectLoad',\n /* Language and Environment */\n 'target',\n 'lib',\n 'jsx',\n 'experimentalDecorators',\n 'emitDecoratorMetadata',\n 'jsxFactory',\n 'jsxFragmentFactory',\n 'jsxImportSource',\n 'reactNamespace',\n 'noLib',\n 'useDefineForClassFields',\n 'moduleDetection',\n /* Modules */\n 'module',\n 'rootDir',\n 'moduleResolution',\n 'baseUrl',\n 'paths',\n 'rootDirs',\n 'typeRoots',\n 'types',\n 'allowUmdGlobalAccess',\n 'moduleSuffixes',\n 'allowImportingTsExtensions',\n 'resolvePackageJsonExports',\n 'resolvePackageJsonImports',\n 'customConditions',\n 'resolveJsonModule',\n 'allowArbitraryExtensions',\n 'noResolve',\n /* JavaScript Support */\n 'allowJs',\n 'checkJs',\n 'maxNodeModuleJsDepth',\n /* Emit */\n 'declaration',\n 'declarationMap',\n 'emitDeclarationOnly',\n 'sourceMap',\n 'inlineSourceMap',\n 'outFile',\n 'outDir',\n 'removeComments',\n 'noEmit',\n 'importHelpers',\n 'importsNotUsedAsValues',\n 'downlevelIteration',\n 'sourceRoot',\n 'mapRoot',\n 'inlineSources',\n 'emitBOM',\n 'newLine',\n 'stripInternal',\n 'noEmitHelpers',\n 'noEmitOnError',\n 'preserveConstEnums',\n 'declarationDir',\n 'preserveValueImports',\n /* Interop Constraints */\n 'isolatedModules',\n 'verbatimModuleSyntax',\n 'allowSyntheticDefaultImports',\n 'esModuleInterop',\n 'preserveSymlinks',\n 'forceConsistentCasingInFileNames',\n /* Type Checking */\n 'strict',\n 'strictBindCallApply',\n 'strictFunctionTypes',\n 'strictNullChecks',\n 'strictPropertyInitialization',\n 'allowUnreachableCode',\n 'allowUnusedLabels',\n 'alwaysStrict',\n 'exactOptionalPropertyTypes',\n 'noFallthroughCasesInSwitch',\n 'noImplicitAny',\n 'noImplicitOverride',\n 'noImplicitReturns',\n 'noImplicitThis',\n 'noPropertyAccessFromIndexSignature',\n 'noUncheckedIndexedAccess',\n 'noUnusedLocals',\n 'noUnusedParameters',\n 'useUnknownInCatchVariables',\n /* Completeness */\n 'skipDefaultLibCheck',\n 'skipLibCheck',\n ],\n pathPattern: '^compilerOptions$',\n },\n ],\n },\n },\n\n ...configs['flat/prettier'].map((config) => ({ ...config, name: '2digits:jsonc/prettier' })),\n ];\n}\n\nconst SHARED_OPTIONS = {\n languageOptions: {\n parser,\n },\n plugins: {\n jsonc: plugin,\n },\n} satisfies Pick<TypedFlatConfigItem, 'plugins' | 'languageOptions'>;\n\ntype FlatConfigName = Extract<keyof typeof configs, `flat/${string}`>;\n\nfunction collectRules(config: (typeof configs)[FlatConfigName]) {\n return Object.fromEntries(config.flatMap(({ rules }) => Object.entries(rules ?? {})));\n}\n","import { fixupPluginRules } from '@eslint/compat';\nimport { renamePluginsInRules } from 'eslint-flat-config-utils';\n\nimport { PluginNameMap } from '../constants';\nimport { GLOB_TS, GLOB_TSX } from '../globs';\nimport type { OptionsTypeScriptWithTypes, OptionsWithFiles, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function next(\n options: OptionsWithFiles & OptionsTypeScriptWithTypes = {},\n): Promise<TypedFlatConfigItem[]> {\n const { files = [GLOB_TS, GLOB_TSX], overrides = {}, parserOptions } = options;\n\n const [next, parser] = await Promise.all([\n interopDefault(import('@next/eslint-plugin-next')),\n interopDefault(import('@typescript-eslint/parser')),\n ]);\n\n const recommended = renamePluginsInRules(\n {\n ...next.configs.recommended.rules,\n ...next.configs['core-web-vitals'].rules,\n },\n PluginNameMap,\n );\n\n return [\n {\n name: '2digits:next/setup',\n plugins: {\n next: fixupPluginRules(next as never),\n },\n },\n {\n name: '2digits:next/rules',\n files,\n languageOptions: {\n parser,\n parserOptions: {\n ecmaFeatures: {\n jsx: true,\n },\n projectService: true,\n ...parserOptions,\n },\n sourceType: 'module',\n },\n rules: {\n ...recommended,\n\n 'next/no-html-link-for-pages': 'off',\n\n ...overrides,\n },\n },\n ];\n}\n","import { pluginNode } from '../plugins';\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function node(): TypedFlatConfigItem[] {\n return [\n {\n name: '2digits:node',\n settings: {\n node: {\n version: '>= 22.0.0',\n },\n },\n plugins: {\n node: pluginNode,\n },\n rules: {\n 'node/handle-callback-err': ['error', '^(err|error)$'],\n 'node/no-deprecated-api': 'error',\n 'node/no-exports-assign': 'error',\n 'node/no-new-require': 'error',\n 'node/no-path-concat': 'error',\n 'node/no-unsupported-features/node-builtins': ['error', { allowExperimental: true }],\n 'node/prefer-global/buffer': 'error',\n 'node/prefer-global/process': 'error',\n 'node/prefer-global/text-encoder': 'error',\n 'node/prefer-global/url': 'error',\n 'node/prefer-global/console': 'error',\n 'node/prefer-global/url-search-params': 'error',\n 'node/prefer-global/text-decoder': 'error',\n 'node/process-exit-as-throw': 'error',\n },\n },\n ];\n}\n","import type { TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function prettier(): Promise<TypedFlatConfigItem[]> {\n const [prettier, react] = await Promise.all([\n interopDefault(import('eslint-config-prettier')),\n interopDefault(import('eslint-plugin-react')),\n ]);\n\n return [\n {\n name: '2digits:prettier',\n plugins: {\n react,\n },\n rules: {\n ...prettier.rules,\n\n 'tailwindcss/classnames-order': 'off',\n 'react/jsx-newline': ['error', { prevent: false }],\n },\n },\n ];\n}\n","import { fixupPluginRules } from '@eslint/compat';\nimport { renamePluginsInRules } from 'eslint-flat-config-utils';\n\nimport { PluginNameMap } from '../constants';\nimport { GLOB_TS, GLOB_TSX } from '../globs';\nimport type { OptionsTypeScriptWithTypes, OptionsWithReact, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function react(\n options: OptionsWithReact & OptionsTypeScriptWithTypes = {},\n): Promise<TypedFlatConfigItem[]> {\n const { files = [GLOB_TS, GLOB_TSX], overrides = {}, parserOptions, tsconfigRootDir, reactCompiler = true } = options;\n\n const [pluginReact, pluginReactHooks, react, parser, pluginReactCompiler] = await Promise.all([\n interopDefault(import('@eslint-react/eslint-plugin')),\n interopDefault(import('eslint-plugin-react-hooks')),\n interopDefault(import('eslint-plugin-react')),\n interopDefault(import('@typescript-eslint/parser')),\n reactCompiler ? interopDefault(import('eslint-plugin-react-compiler')) : undefined,\n ]);\n\n const plugins = pluginReact.configs.all.plugins;\n\n const recommended = renamePluginsInRules(\n {\n ...react.configs.recommended.rules,\n ...react.configs['jsx-runtime'].rules,\n ...pluginReactHooks.configs.recommended.rules,\n ...pluginReact.configs['recommended-type-checked'].rules,\n },\n PluginNameMap,\n );\n\n return [\n {\n name: '2digits:react/setup',\n plugins: {\n react,\n 'react-dom': plugins['@eslint-react/dom'],\n 'react-web-api': plugins['@eslint-react/web-api'],\n 'react-extra': plugins['@eslint-react'],\n 'react-hooks': fixupPluginRules(pluginReactHooks as never),\n 'react-hooks-extra': plugins['@eslint-react/hooks-extra'],\n 'react-naming-convention': plugins['@eslint-react/naming-convention'],\n ...(reactCompiler ? { 'react-compiler': pluginReactCompiler } : {}),\n },\n settings: {\n react: {\n version: 'detect',\n },\n },\n },\n {\n name: '2digits:react/rules',\n files,\n languageOptions: {\n parser,\n parserOptions: {\n ecmaFeatures: {\n jsx: true,\n },\n tsconfigRootDir,\n projectService: true,\n ...parserOptions,\n },\n sourceType: 'module',\n },\n rules: {\n ...recommended,\n\n ...(reactCompiler ? { 'react-compiler/react-compiler': 'error' } : {}),\n\n 'react-hooks-extra/no-unnecessary-use-callback': 'error',\n 'react-hooks-extra/prefer-use-state-lazy-initialization': 'error',\n 'react-hooks-extra/no-redundant-custom-hook': 'error',\n 'react-hooks-extra/no-unnecessary-use-memo': 'error',\n\n 'react-extra/prefer-read-only-props': 'off',\n 'react-extra/prefer-shorthand-boolean': 'error',\n 'react-extra/prefer-shorthand-fragment': 'error',\n 'react-extra/prefer-react-namespace-import': 'error',\n\n 'react-naming-convention/use-state': 'error',\n\n 'react/jsx-curly-newline': 'off',\n 'react/jsx-newline': ['error', { prevent: false }],\n 'react/prop-types': 'off',\n\n ...overrides,\n },\n },\n ];\n}\n","import pluginRegexp from 'eslint-plugin-regexp';\n\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function regexp(): TypedFlatConfigItem[] {\n return [\n {\n name: '2digits:regexp',\n plugins: {\n regexp: pluginRegexp,\n },\n rules: {\n ...pluginRegexp.configs['flat/recommended'].rules,\n },\n },\n ];\n}\n","import { pluginSonar } from '../plugins';\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function sonar(): TypedFlatConfigItem[] {\n return [\n {\n name: '2digits:sonar',\n plugins: {\n sonar: pluginSonar,\n },\n rules: {\n 'sonar/code-eval': 'error',\n 'sonar/cognitive-complexity': 'error',\n 'sonar/comma-or-logical-or-case': 'error',\n 'sonar/concise-regex': 'error',\n 'sonar/confidential-information-logging': 'error',\n 'sonar/constructor-for-side-effects': 'error',\n 'sonar/content-length': 'error',\n 'sonar/content-security-policy': 'error',\n 'sonar/cookie-no-httponly': 'error',\n 'sonar/cors': 'error',\n 'sonar/csrf': 'error',\n 'sonar/max-switch-cases': 'error',\n 'sonar/no-all-duplicated-branches': 'error',\n 'sonar/no-collapsible-if': 'error',\n 'sonar/no-collection-size-mischeck': 'error',\n 'sonar/no-duplicate-string': ['error', { threshold: 5 }],\n 'sonar/no-duplicated-branches': 'error',\n 'sonar/no-element-overwrite': 'error',\n 'sonar/no-empty-collection': 'error',\n 'sonar/no-extra-arguments': 'error',\n 'sonar/no-for-in-iterable': 'error',\n 'sonar/no-gratuitous-expressions': 'error',\n 'sonar/no-identical-conditions': 'error',\n 'sonar/no-identical-expressions': 'error',\n 'sonar/no-identical-functions': 'error',\n 'sonar/no-ignored-return': 'error',\n 'sonar/no-inverted-boolean-check': 'error',\n 'sonar/no-nested-switch': 'error',\n 'sonar/no-nested-template-literals': 'error',\n 'sonar/no-one-iteration-loop': 'error',\n 'sonar/no-redundant-boolean': 'error',\n 'sonar/no-same-line-conditional': 'error',\n 'sonar/no-small-switch': 'error',\n 'sonar/no-unused-collection': 'error',\n 'sonar/no-use-of-empty-return-value': 'error',\n 'sonar/no-useless-catch': 'error',\n 'sonar/non-existent-operator': 'error',\n 'sonar/prefer-immediate-return': 'error',\n 'sonar/prefer-object-literal': 'error',\n 'sonar/prefer-single-boolean-return': 'error',\n 'sonar/prefer-while': 'error',\n\n 'sonar/elseif-without-else': 'off',\n 'sonar/no-redundant-jump': 'off',\n },\n },\n ];\n}\n","import { fixupPluginRules } from '@eslint/compat';\nimport type { FlatConfig } from '@typescript-eslint/utils/ts-eslint';\n\nimport { GLOB_STORIES } from '../globs';\nimport type { OptionsTypeScriptWithTypes, OptionsWithStorybook, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function storybook(\n options: OptionsWithStorybook & OptionsTypeScriptWithTypes = {},\n): Promise<TypedFlatConfigItem[]> {\n const { files = [GLOB_STORIES], overrides = {}, parserOptions, storybookDirectory = '.storybook' } = options;\n\n const [storybook, parser] = await Promise.all([\n interopDefault(import('eslint-plugin-storybook')),\n interopDefault(import('@typescript-eslint/parser')),\n ]);\n\n const languageOptions = {\n parser,\n parserOptions: {\n ecmaFeatures: {\n jsx: true,\n },\n projectService: true,\n ...parserOptions,\n },\n sourceType: 'module',\n } satisfies FlatConfig.LanguageOptions;\n\n return [\n {\n name: '2digits:storybook/setup',\n plugins: {\n storybook: fixupPluginRules(storybook as never),\n },\n },\n {\n name: '2digits:storybook/rules',\n files,\n languageOptions,\n rules: {\n 'storybook/await-interactions': 'error',\n 'storybook/context-in-play-function': 'error',\n 'storybook/csf-component': 'error',\n 'storybook/default-exports': 'error',\n 'storybook/hierarchy-separator': 'error',\n 'storybook/meta-inline-properties': 'error',\n 'storybook/no-redundant-story-name': 'error',\n 'storybook/no-stories-of': 'error',\n 'storybook/no-title-property-in-meta': 'error',\n 'storybook/no-uninstalled-addons': 'error',\n 'storybook/prefer-pascal-case': 'error',\n 'storybook/story-exports': 'error',\n 'storybook/use-storybook-expect': 'error',\n 'storybook/use-storybook-testing-library': 'error',\n\n ...overrides,\n },\n },\n {\n name: '2digits:storybook/disables',\n files,\n rules: {\n 'react-hooks/rules-of-hooks': 'off',\n 'react/display-name': 'off',\n 'sonar/no-duplicate-string': 'off',\n },\n },\n {\n name: '2digits:storybook/config',\n files: [`${storybookDirectory}/main.@(js|cjs|mjs|ts)`],\n languageOptions,\n rules: {\n 'storybook/no-uninstalled-addons': 'error',\n },\n },\n ];\n}\n","import { findUp } from 'find-up';\n\nimport type { OptionsOverrides, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function tailwind(options: OptionsOverrides = {}): Promise<TypedFlatConfigItem[]> {\n const { overrides = {} } = options;\n\n const [tailwindcss, { tailwindFunctions }, config] = await Promise.all([\n interopDefault(import('eslint-plugin-tailwindcss')),\n interopDefault(import('@2digits/constants')),\n findUp(['tailwind.config.ts', 'tailwind.config.js']),\n ]);\n\n return [\n {\n name: '2digits:tailwind',\n plugins: {\n tailwindcss,\n },\n settings: {\n tailwindcss: {\n callees: tailwindFunctions,\n config,\n },\n },\n rules: {\n ...tailwindcss.configs.recommended.rules,\n\n ...overrides,\n },\n },\n ];\n}\n","import { renamePluginsInRules } from 'eslint-flat-config-utils';\n\nimport { PluginNameMap } from '../constants';\nimport type { OptionsOverrides, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function tanstack(options: OptionsOverrides = {}): Promise<TypedFlatConfigItem[]> {\n const { overrides = {} } = options;\n\n const tanstack = await interopDefault(import('@tanstack/eslint-plugin-query'));\n\n const recommended = renamePluginsInRules(tanstack.configs['flat/recommended'].at(0)?.rules ?? {}, PluginNameMap);\n\n return [\n {\n name: '2digits:tanstack',\n plugins: { tanstack },\n rules: {\n ...recommended,\n\n ...overrides,\n },\n },\n ];\n}\n","import type { OptionsOverrides, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function turbo(options: OptionsOverrides = {}): Promise<TypedFlatConfigItem[]> {\n const { overrides = {} } = options;\n\n const turbo = await interopDefault(import('eslint-plugin-turbo'));\n\n return [\n {\n name: '2digits:turbo',\n plugins: {\n turbo,\n },\n rules: {\n 'turbo/no-undeclared-env-vars': 'error',\n\n ...overrides,\n },\n },\n ];\n}\n","import { renamePluginsInConfigs } from 'eslint-flat-config-utils';\n\nimport { PluginNameMap } from '../constants';\nimport { GLOB_SRC } from '../globs';\nimport type { OptionsTypeScriptWithTypes, TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function typescript(options: OptionsTypeScriptWithTypes = {}): Promise<TypedFlatConfigItem[]> {\n const { overrides = {}, parserOptions = {} } = options;\n\n const [{ plugin, configs, parser }, twoDigits] = await Promise.all([\n interopDefault(import('typescript-eslint')),\n interopDefault(import('@2digits/eslint-plugin')),\n ]);\n\n const strictConfig = renamePluginsInConfigs(configs.strictTypeChecked as never, PluginNameMap);\n\n const rules = Object.fromEntries(strictConfig.flatMap(({ rules }) => Object.entries(rules ?? {})));\n\n return [\n {\n name: '2digits:typescript/setup',\n plugins: {\n ts: plugin,\n '@2digits': twoDigits,\n },\n },\n {\n name: '2digits:typescript/rules',\n files: [GLOB_SRC],\n languageOptions: {\n parser,\n parserOptions: {\n tsconfigRootDir: process.cwd(),\n projectService: true,\n warnOnUnsupportedTypeScriptVersion: false,\n ...parserOptions,\n },\n sourceType: 'module',\n },\n rules: {\n ...rules,\n 'ts/restrict-template-expressions': ['error', { allowNumber: true }],\n 'ts/ban-ts-comment': ['error', { 'ts-ignore': 'allow-with-description' }],\n 'ts/consistent-type-exports': ['error'],\n 'ts/consistent-type-imports': [\n 'error',\n {\n prefer: 'type-imports',\n disallowTypeAnnotations: false,\n fixStyle: 'inline-type-imports',\n },\n ],\n 'ts/no-empty-object-type': ['error', { allowInterfaces: 'with-single-extends', allowObjectTypes: 'never' }],\n 'ts/no-explicit-any': ['error'],\n 'ts/no-import-type-side-effects': ['error'],\n 'ts/no-misused-promises': 'off',\n 'ts/no-confusing-void-expression': 'off',\n 'ts/no-unused-vars': [\n 'error',\n {\n ignoreRestSiblings: true,\n argsIgnorePattern: '^_',\n varsIgnorePattern: '^_',\n },\n ],\n 'ts/unbound-method': 'off',\n\n ...(twoDigits.configs.recommended.rules as object),\n\n ...overrides,\n },\n },\n {\n files: ['**/*.d.ts'],\n name: '2digits:typescript/disables/dts',\n rules: {\n 'unicorn/no-abusive-eslint-disable': 'off',\n 'no-duplicate-imports': 'off',\n 'no-restricted-syntax': 'off',\n 'ts/no-unused-vars': 'off',\n },\n },\n {\n files: ['**/*.{test,spec}.ts?(x)'],\n name: '2digits:typescript/disables/test',\n rules: {\n 'no-unused-expressions': 'off',\n },\n },\n {\n files: ['**/*.js', '**/*.cjs', '**/*.cts'],\n name: '2digits:typescript/disables/cjs',\n rules: {\n 'ts/no-require-imports': 'off',\n 'ts/no-var-requires': 'off',\n },\n },\n ];\n}\n","import { pluginUnicorn } from '../plugins';\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function unicorn(): TypedFlatConfigItem[] {\n return [\n {\n name: '2digits:unicorn',\n plugins: {\n unicorn: pluginUnicorn,\n },\n rules: {\n ...pluginUnicorn.configs['flat/recommended'].rules,\n\n 'unicorn/filename-case': ['off'],\n 'unicorn/prefer-module': ['off'],\n 'unicorn/prevent-abbreviations': ['off'],\n 'unicorn/prefer-ternary': ['error', 'only-single-line'],\n 'unicorn/no-useless-undefined': [\n 'error',\n {\n checkArguments: false,\n checkArrowFunctionBody: false,\n },\n ],\n 'unicorn/prefer-top-level-await': ['off'],\n },\n },\n ];\n}\n","import { FlatConfigComposer } from 'eslint-flat-config-utils';\nimport { isPackageExists } from 'local-pkg';\n\nimport {\n antfu,\n comments,\n graphql,\n ignores,\n javascript,\n jsdoc,\n jsonc,\n next,\n node,\n prettier,\n react,\n regexp,\n sonar,\n storybook,\n tailwind,\n tanstack,\n turbo,\n typescript,\n unicorn,\n} from './configs';\nimport { drizzle } from './configs/drizzle';\nimport { PluginNameMap } from './constants';\nimport type {\n ConfigNames,\n OptionsOverrides,\n OptionsTypeScriptWithTypes,\n OptionsWithDrizzle,\n OptionsWithFiles,\n OptionsWithIgnores,\n OptionsWithReact,\n OptionsWithStorybook,\n TypedFlatConfigItem,\n} from './types';\n\ntype SharedOptions<T = unknown> = T & {\n enable?: boolean;\n};\n\ninterface ESLint2DigitsOptions {\n ignores?: OptionsWithIgnores;\n turbo?: SharedOptions<OptionsOverrides> | boolean;\n js?: OptionsOverrides;\n ts?: SharedOptions<OptionsTypeScriptWithTypes> | boolean;\n graphql?: SharedOptions<OptionsWithFiles> | boolean;\n react?: SharedOptions<OptionsWithReact> | boolean;\n next?: SharedOptions<OptionsWithFiles> | boolean;\n tailwind?: SharedOptions<OptionsOverrides> | boolean;\n storybook?: SharedOptions<OptionsWithStorybook> | boolean;\n tanstack?: SharedOptions<OptionsOverrides> | boolean;\n drizzle?: SharedOptions<OptionsWithDrizzle> | boolean;\n}\n\nfunction enabled<T extends SharedOptions>(options: T | boolean | undefined, defaults?: boolean): options is T {\n if (typeof options === 'boolean') {\n return options;\n }\n\n return options?.enable ?? defaults ?? false;\n}\n\nfunction config<T>(options: SharedOptions<T> | undefined | boolean): T {\n if (typeof options === 'boolean' || options === undefined) {\n return {} as T;\n }\n\n const { enable, ...rest } = options;\n return rest as T;\n}\n\nexport function twoDigits(\n options: ESLint2DigitsOptions = {},\n ...userConfig: TypedFlatConfigItem[]\n): Promise<TypedFlatConfigItem[]> {\n let composer = new FlatConfigComposer<TypedFlatConfigItem, ConfigNames>(\n ignores(options.ignores),\n javascript(options.js),\n node(),\n comments(),\n jsdoc(),\n unicorn(),\n sonar(),\n regexp(),\n antfu(),\n jsonc(),\n );\n\n if (enabled(options.turbo, isPackageExists('turbo'))) {\n composer = composer.append(turbo(config(options.turbo)));\n }\n\n const { overrides, ...typescriptOptions } = config(options.ts);\n\n if (enabled(options.ts, isPackageExists('typescript'))) {\n composer = composer.append(typescript(config(options.ts)));\n }\n\n if (enabled(options.react, isPackageExists('react'))) {\n composer = composer.append(\n react({\n ...config(options.react),\n ...typescriptOptions,\n }),\n );\n }\n\n if (enabled(options.next, isPackageExists('next'))) {\n composer = composer.append(\n next({\n ...config(options.next),\n ...typescriptOptions,\n }),\n );\n }\n\n if (enabled(options.storybook, isPackageExists('storybook'))) {\n composer = composer.append(\n storybook({\n ...config(options.storybook),\n ...typescriptOptions,\n }),\n );\n }\n\n if (enabled(options.tailwind, isPackageExists('tailwindcss'))) {\n composer = composer.append(tailwind(config(options.tailwind)));\n }\n\n if (\n enabled(\n options.tanstack,\n isPackageExists('react-query')\n || isPackageExists('@tanstack/react-query')\n || isPackageExists('@tanstack/react-query-devtools'),\n )\n ) {\n composer = composer.append(tanstack(config(options.tanstack)));\n }\n\n if (enabled(options.drizzle, isPackageExists('drizzle-kit') || isPackageExists('drizzle-orm'))) {\n composer = composer.append(drizzle(config(options.drizzle)));\n }\n\n if (enabled(options.graphql, isPackageExists('graphql'))) {\n composer = composer.append(graphql(config(options.graphql)));\n }\n\n composer = composer.append(...userConfig);\n\n if (isPackageExists('prettier')) {\n composer = composer.append(prettier());\n }\n\n return composer.renamePlugins(PluginNameMap).toConfigs();\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@2digits/eslint-config",
3
- "version": "2.14.7",
3
+ "version": "2.14.9",
4
4
  "description": "Effortlessly enforce best practices and catch errors with this comprehensive ESLint configuration for TypeScript, featuring popular plugins like @typescript-eslint, eslint-plugin-react, and eslint-plugin-unicorn.",
5
5
  "homepage": "https://2d-configs.vercel.app/",
6
6
  "type": "module",
@@ -30,16 +30,16 @@
30
30
  "public": true,
31
31
  "dependencies": {
32
32
  "@eslint-community/eslint-plugin-eslint-comments": "4.4.1",
33
- "@eslint-react/eslint-plugin": "1.26.0",
33
+ "@eslint-react/eslint-plugin": "1.26.2",
34
34
  "@eslint/compat": "1.2.6",
35
- "@eslint/js": "9.19.0",
35
+ "@eslint/js": "9.20.0",
36
36
  "@graphql-eslint/eslint-plugin": "4.3.0",
37
37
  "@next/eslint-plugin-next": "15.1.6",
38
38
  "@tanstack/eslint-plugin-query": "5.66.0",
39
- "@typescript-eslint/parser": "8.22.0",
39
+ "@typescript-eslint/parser": "8.23.0",
40
40
  "eslint-config-flat-gitignore": "2.0.0",
41
41
  "eslint-config-prettier": "10.0.1",
42
- "eslint-flat-config-utils": "2.0.0",
42
+ "eslint-flat-config-utils": "2.0.1",
43
43
  "eslint-plugin-antfu": "3.0.0",
44
44
  "eslint-plugin-drizzle": "0.2.3",
45
45
  "eslint-plugin-jsdoc": "50.6.3",
@@ -59,16 +59,16 @@
59
59
  "graphql-config": "5.1.3",
60
60
  "jsonc-eslint-parser": "2.4.0",
61
61
  "local-pkg": "1.0.0",
62
- "typescript-eslint": "8.22.0",
63
- "@2digits/eslint-plugin": "2.3.29",
64
- "@2digits/constants": "0.3.5"
62
+ "typescript-eslint": "8.23.0",
63
+ "@2digits/constants": "0.3.5",
64
+ "@2digits/eslint-plugin": "2.3.31"
65
65
  },
66
66
  "devDependencies": {
67
67
  "@eslint/config-inspector": "1.0.0",
68
68
  "@types/eslint__js": "8.42.3",
69
- "@types/node": "22.13.0",
70
- "@typescript-eslint/utils": "8.22.0",
71
- "eslint": "9.19.0",
69
+ "@types/node": "22.13.1",
70
+ "@typescript-eslint/utils": "8.23.0",
71
+ "eslint": "9.20.0",
72
72
  "eslint-typegen": "1.0.0",
73
73
  "tsup": "8.3.6",
74
74
  "typescript": "5.7.3",