@2digits/eslint-config 4.1.1 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/globs.ts","../src/configs/antfu.ts","../src/configs/boolean.ts","../src/constants.ts","../src/configs/comments.ts","../src/configs/css.ts","../src/utils.ts","../src/configs/drizzle.ts","../src/configs/graphql.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/pnpm.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/configs/yaml.ts","../src/factory.ts"],"names":["GLOB_SRC","GLOB_TS","GLOB_TSX","GLOB_STORIES","GLOB_JSON","GLOB_JSON5","GLOB_JSONC","GLOB_CSS","GLOB_YAML","GLOB_EXCLUDE","antfu","pluginAntfu","boolean","pluginDeMorgan","PluginNameMap","recommended","renamePluginsInRules","configs","comments","pluginComments","css","plugin","tailwindSyntax","interopDefault","m","resolved","drizzle","options","overrides","drizzleObjectName","fixupPluginRules","graphql","files","gql","gqlSchema","loadConfig","flatRecommended","rules","rule","ruleName","ignores","gitIgnore","composer","javascript","stylistic","globals","eslint","jsdoc","jsonc","config","SHARED_OPTIONS","collectRules","parser","next","parserOptions","node","default","pnpm","jsoncParser","yamlParser","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","yaml","yml","enabled","defaults","enable","rest","userConfig","pnpmPromise","FlatConfigComposer","isPackageExists","typescriptOptions"],"mappings":"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","file":"index.cjs","sourcesContent":["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_CSS = '**/*.css';\n\nexport const GLOB_YAML = '**/*.ya?ml';\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 pluginAntfu from 'eslint-plugin-antfu';\n\nimport { GLOB_SRC } from '../globs';\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function antfu(): TypedFlatConfigItem[] {\n return [\n {\n files: [GLOB_SRC],\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","import pluginDeMorgan from 'eslint-plugin-de-morgan';\n\nimport { GLOB_SRC } from '../globs';\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function boolean(): TypedFlatConfigItem[] {\n return [\n {\n files: [GLOB_SRC],\n name: '2digits:boolean',\n plugins: {\n boolean: pluginDeMorgan,\n },\n rules: {\n ...pluginDeMorgan.configs.recommended.rules,\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 '@stylistic/eslint-plugin': 'stylistic',\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 'de-morgan': 'boolean',\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 { GLOB_SRC } from '../globs';\nimport type { TypedFlatConfigItem } from '../types';\n\nconst recommended = renamePluginsInRules(configs.recommended.rules as never, PluginNameMap);\n\nexport function comments(): TypedFlatConfigItem[] {\n return [\n {\n files: [GLOB_SRC],\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 plugin from '@eslint/css';\nimport { tailwindSyntax } from '@eslint/css/syntax';\n\nimport { GLOB_CSS } from '../globs';\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function css(): TypedFlatConfigItem[] {\n return [\n {\n name: '2digits:css',\n files: [GLOB_CSS],\n language: 'css/css',\n plugins: {\n css: plugin,\n },\n languageOptions: {\n tolerant: true,\n customSyntax: tailwindSyntax,\n },\n rules: {\n ...plugin.configs.recommended.rules,\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 { GLOB_SRC } from '../globs';\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 files: [GLOB_SRC],\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\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","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 stylistic from '@stylistic/eslint-plugin';\nimport globals from 'globals';\n\nimport { GLOB_SRC } from '../globs';\nimport type { OptionsOverrides, TypedFlatConfigItem } from '../types';\n\nexport function javascript(options: OptionsOverrides = {}): TypedFlatConfigItem[] {\n const { overrides = {} } = options;\n\n return [\n {\n files: [GLOB_SRC],\n name: '2digits:javascript',\n plugins: {\n stylistic,\n },\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 'stylistic/padding-line-between-statements': [\n 'error',\n { blankLine: 'always', prev: ['const', 'let'], next: '*' },\n {\n blankLine: 'any',\n prev: ['const', 'let'],\n next: ['const', 'let'],\n },\n { blankLine: 'always', prev: '*', next: 'return' },\n ],\n\n ...overrides,\n },\n },\n ];\n}\n","import { GLOB_SRC } from '../globs';\nimport type { TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function jsdoc(): Promise<TypedFlatConfigItem[]> {\n return [\n {\n files: [GLOB_SRC],\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 { GLOB_SRC } from '../globs';\nimport { pluginNode } from '../plugins';\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function node(): TypedFlatConfigItem[] {\n return [\n {\n files: [GLOB_SRC],\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 jsoncParser from 'jsonc-eslint-parser';\nimport yamlParser from 'yaml-eslint-parser';\n\nimport type { TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function pnpm(): Promise<TypedFlatConfigItem[]> {\n const plugin = await interopDefault(import('eslint-plugin-pnpm'));\n\n return [\n {\n name: '2digits:pnpm/package-json',\n files: ['**/package.json'],\n languageOptions: {\n parser: jsoncParser,\n },\n plugins: {\n pnpm: plugin,\n },\n rules: {\n 'pnpm/json-enforce-catalog': 'error',\n 'pnpm/json-prefer-workspace-settings': 'error',\n 'pnpm/json-valid-catalog': 'error',\n },\n },\n {\n name: '2digits:pnpm/pnpm-workspace-yaml',\n files: ['pnpm-workspace.yaml'],\n languageOptions: {\n parser: yamlParser,\n },\n plugins: {\n pnpm: plugin,\n },\n rules: {\n 'pnpm/yaml-no-duplicate-catalog-item': 'error',\n 'pnpm/yaml-no-unused-catalog-item': '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, stylistic] = await Promise.all([\n interopDefault(import('eslint-config-prettier')),\n interopDefault(import('@stylistic/eslint-plugin')),\n ]);\n\n return [\n {\n name: '2digits:prettier',\n plugins: {\n stylistic,\n },\n rules: {\n ...prettier.rules,\n\n 'tailwindcss/classnames-order': 'off',\n 'stylistic/jsx-newline': ['error', { prevent: false }],\n },\n },\n ];\n}\n","import stylistic from '@stylistic/eslint-plugin';\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, parser, pluginReactCompiler] = await Promise.all([\n interopDefault(import('@eslint-react/eslint-plugin')),\n interopDefault(import('eslint-plugin-react-hooks')),\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 ...pluginReactHooks.configs['recommended-latest'].rules,\n ...pluginReact.configs['recommended-type-checked'].rules,\n },\n PluginNameMap,\n );\n\n return [\n {\n name: '2digits:react/setup',\n plugins: {\n stylistic,\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': pluginReactHooks,\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 'stylistic/jsx-curly-newline': 'off',\n 'stylistic/jsx-newline': ['error', { prevent: false }],\n 'stylistic/jsx-self-closing-comp': 'error',\n\n ...overrides,\n },\n },\n ];\n}\n","import pluginRegexp from 'eslint-plugin-regexp';\n\nimport { GLOB_SRC } from '../globs';\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function regexp(): TypedFlatConfigItem[] {\n return [\n {\n files: [GLOB_SRC],\n name: '2digits:regexp',\n plugins: {\n regexp: pluginRegexp,\n },\n rules: {\n ...pluginRegexp.configs['flat/recommended'].rules,\n },\n },\n ];\n}\n","import { GLOB_SRC } from '../globs';\nimport { pluginSonar } from '../plugins';\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function sonar(): TypedFlatConfigItem[] {\n return [\n {\n files: [GLOB_SRC],\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 { GLOB_SRC } from '../globs';\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 files: [GLOB_SRC],\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 { GLOB_SRC } from '../globs';\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 files: [GLOB_SRC],\n name: '2digits:tanstack',\n plugins: { tanstack },\n rules: {\n ...recommended,\n\n ...overrides,\n },\n },\n ];\n}\n","import { GLOB_SRC } from '../globs';\nimport 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 files: [GLOB_SRC],\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 { GLOB_SRC } from '../globs';\nimport { pluginUnicorn } from '../plugins';\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function unicorn(): TypedFlatConfigItem[] {\n return [\n {\n files: [GLOB_SRC],\n name: '2digits:unicorn',\n plugins: {\n unicorn: pluginUnicorn,\n },\n rules: {\n ...pluginUnicorn.configs.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 yml from 'eslint-plugin-yml';\nimport parser from 'yaml-eslint-parser';\n\nimport { GLOB_YAML } from '../globs';\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function yaml(): TypedFlatConfigItem[] {\n return [\n {\n name: '2digits:yaml/setup',\n plugins: {\n yml,\n },\n },\n\n {\n name: '2digits:yaml/base',\n ...SHARED_OPTIONS,\n rules: {\n 'no-irregular-whitespace': 'off',\n 'no-unused-vars': 'off',\n 'spaced-comment': 'off',\n },\n },\n\n {\n name: '2digits:yaml/recommended',\n ...SHARED_OPTIONS,\n rules: {\n 'yml/no-empty-document': 'error',\n 'yml/no-empty-key': 'error',\n 'yml/no-empty-mapping-value': 'error',\n 'yml/no-empty-sequence-entry': 'error',\n 'yml/no-irregular-whitespace': 'error',\n 'yml/no-tab-indent': 'error',\n 'yml/vue-custom-block/no-parsing-error': 'error',\n },\n },\n\n {\n name: '2digits:yaml/standard',\n ...SHARED_OPTIONS,\n rules: {\n 'yml/block-mapping': 'error',\n 'yml/block-sequence': 'error',\n 'yml/plain-scalar': 'error',\n 'yml/spaced-comment': 'error',\n },\n },\n\n {\n name: '2digits:yaml/pnpm-workspace',\n ...SHARED_OPTIONS,\n files: ['pnpm-workspace.yaml'],\n rules: {\n 'yml/sort-keys': [\n 'error',\n {\n order: [\n 'packages',\n 'overrides',\n 'patchedDependencies',\n 'hoistPattern',\n 'catalog',\n 'catalogs',\n\n 'allowedDeprecatedVersions',\n 'allowNonAppliedPatches',\n 'configDependencies',\n 'ignoredBuiltDependencies',\n 'ignoredOptionalDependencies',\n 'neverBuiltDependencies',\n 'onlyBuiltDependencies',\n 'onlyBuiltDependenciesFile',\n 'packageExtensions',\n 'peerDependencyRules',\n 'supportedArchitectures',\n ],\n pathPattern: '^$',\n },\n {\n order: { type: 'asc' },\n pathPattern: '.*',\n },\n ],\n },\n },\n\n {\n name: '2digits:yaml/prettier',\n ...SHARED_OPTIONS,\n rules: {\n 'yml/block-mapping-colon-indicator-newline': 'off',\n 'yml/block-mapping-question-indicator-newline': 'off',\n 'yml/block-sequence-hyphen-indicator-newline': 'off',\n 'yml/flow-mapping-curly-newline': 'off',\n 'yml/flow-mapping-curly-spacing': 'off',\n 'yml/flow-sequence-bracket-newline': 'off',\n 'yml/flow-sequence-bracket-spacing': 'off',\n 'yml/indent': 'off',\n 'yml/key-spacing': 'off',\n 'yml/no-multiple-empty-lines': 'off',\n 'yml/no-trailing-zeros': 'off',\n 'yml/quotes': 'off',\n },\n },\n ];\n}\n\nconst SHARED_OPTIONS = {\n files: [GLOB_YAML],\n languageOptions: {\n parser,\n },\n} satisfies Pick<TypedFlatConfigItem, 'languageOptions' | 'files'>;\n","import { FlatConfigComposer } from 'eslint-flat-config-utils';\nimport { findUp } from 'find-up';\nimport { isPackageExists } from 'local-pkg';\n\nimport {\n antfu,\n boolean,\n comments,\n css,\n drizzle,\n graphql,\n ignores,\n javascript,\n jsdoc,\n jsonc,\n next,\n node,\n pnpm,\n prettier,\n react,\n regexp,\n sonar,\n storybook,\n tailwind,\n tanstack,\n turbo,\n typescript,\n unicorn,\n yaml,\n} from './configs';\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 pnpm?: SharedOptions | 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\n return rest as T;\n}\n\nexport async function twoDigits(\n options: ESLint2DigitsOptions = {},\n ...userConfig: TypedFlatConfigItem[]\n): Promise<TypedFlatConfigItem[]> {\n let pnpmPromise;\n\n if (options.pnpm === undefined) {\n pnpmPromise = findUp('pnpm-workspace.yaml');\n }\n\n let composer = new FlatConfigComposer<TypedFlatConfigItem, ConfigNames>(\n ignores(options.ignores),\n javascript(options.js),\n boolean(),\n node(),\n comments(),\n jsdoc(),\n unicorn(),\n sonar(),\n regexp(),\n antfu(),\n jsonc(),\n css(),\n yaml(),\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 if (enabled(options.pnpm, !!(await pnpmPromise))) {\n composer = composer.append(pnpm());\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/globs.ts","../src/configs/antfu.ts","../src/configs/boolean.ts","../src/constants.ts","../src/configs/comments.ts","../src/configs/css.ts","../src/utils.ts","../src/configs/drizzle.ts","../src/configs/graphql.ts","../src/configs/ignores.ts","../src/configs/javascript.ts","../src/configs/jsdoc.ts","../src/configs/jsonc.ts","../src/configs/markdown.ts","../src/configs/next.ts","../src/configs/node.ts","../src/configs/pnpm.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/configs/yaml.ts","../src/factory.ts"],"names":["GLOB_SRC","GLOB_TS","GLOB_TSX","GLOB_STORIES","GLOB_JSON","GLOB_JSON5","GLOB_JSONC","GLOB_CSS","GLOB_YAML","GLOB_MARKDOWN","GLOB_MARKDOWN_IN_MARKDOWN","GLOB_EXCLUDE","antfu","pluginAntfu","boolean","pluginDeMorgan","PluginNameMap","recommended","renamePluginsInRules","configs","comments","pluginComments","css","plugin","tailwindSyntax","interopDefault","m","resolved","drizzle","options","overrides","drizzleObjectName","fixupPluginRules","graphql","files","gql","gqlSchema","loadConfig","flatRecommended","rules","rule","ruleName","ignores","gitIgnore","composer","javascript","stylistic","globals","eslint","jsdoc","jsonc","config","SHARED_OPTIONS","collectRules","parser","markdown","mergeProcessors","processorPassThrough","parserPlain","code","next","parserOptions","node","default","pnpm","jsoncParser","yamlParser","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","yaml","yml","enabled","defaults","enable","rest","userConfig","pnpmPromise","FlatConfigComposer","isPackageExists","typescriptOptions"],"mappings":"yzDAAO,IAAMA,CAAAA,CAAW,wBAEXC,CAAU,CAAA,gBAAA,CACVC,CAAW,CAAA,iBAAA,CAEXC,CAAe,CAAA,kBAAA,CAEfC,EAAY,WACZC,CAAAA,CAAAA,CAAa,YACbC,CAAAA,CAAAA,CAAa,YAEbC,CAAAA,CAAAA,CAAW,WAEXC,CAAY,CAAA,YAAA,CAEZC,CAAgB,CAAA,SAAA,CAChBC,CAA4B,CAAA,cAAA,CAE5BC,EAAe,CAC1B,iBAAA,CACA,UACA,sBACA,CAAA,cAAA,CACA,oBACA,cAEA,CAAA,WAAA,CACA,aACA,CAAA,SAAA,CACA,UACA,CAAA,QAAA,CACA,UACA,aACA,CAAA,qBAAA,CACA,UACA,CAAA,UAAA,CACA,YACA,CAAA,eAAA,CACA,WACA,WACA,CAAA,YAAA,CACA,kBACA,CAAA,UAAA,CAEA,kBACA,CAAA,YAAA,CACA,cACA,kBACA,CAAA,yBAAA,CACA,oBACF,CC7CO,CAAA,SAASC,GAA+B,CAC7C,OAAO,CACL,CACE,KAAO,CAAA,CAACZ,CAAQ,CAChB,CAAA,IAAA,CAAM,eACN,CAAA,OAAA,CAAS,CACP,KAAA,CAAOa,mBACT,CACA,CAAA,KAAA,CAAO,CACL,kBAAA,CAAoB,OACpB,CAAA,0BAAA,CAA4B,OAC9B,CACF,CACF,CACF,CCdO,SAASC,CAAiC,EAAA,CAC/C,OAAO,CACL,CACE,KAAO,CAAA,CAACd,CAAQ,CAAA,CAChB,IAAM,CAAA,iBAAA,CACN,QAAS,CACP,OAAA,CAASe,kBACX,CAAA,CACA,KAAO,CAAA,CACL,GAAGA,kBAAe,CAAA,OAAA,CAAQ,YAAY,KACxC,CACF,CACF,CACF,CClBO,IAAMC,EAAgB,CAC3B,YAAA,CAAc,MACd,CAAA,iCAAA,CAAmC,yBACnC,CAAA,2BAAA,CAA6B,oBAC7B,mBAAqB,CAAA,WAAA,CACrB,wBAAyB,eACzB,CAAA,eAAA,CAAiB,cACjB,aAAe,CAAA,aAAA,CACf,gBAAkB,CAAA,gBAAA,CAClB,0BAA4B,CAAA,WAAA,CAC5B,qBAAsB,IACtB,CAAA,IAAA,CAAM,MACN,CAAA,mCAAA,CAAqC,UACrC,CAAA,SAAA,CAAW,YACX,KAAO,CAAA,OAAA,CACP,KAAO,CAAA,OAAA,CACP,OAAS,CAAA,SAAA,CACT,YAAa,aACb,CAAA,iBAAA,CAAmB,WACnB,UAAY,CAAA,UAAA,CACZ,kBAAmB,KACnB,CAAA,OAAA,CAAS,OACT,CAAA,OAAA,CAAS,SACT,CAAA,WAAA,CAAa,SACf,CChBA,CAAA,IAAMC,EAAcC,CAAAA,0CAAAA,CAAqBC,mBAAQ,CAAA,WAAA,CAAY,MAAgBH,CAAa,CAAA,CAEnF,SAASI,CAAAA,EAAkC,CAChD,OAAO,CACL,CACE,KAAA,CAAO,CAACpB,CAAQ,CAChB,CAAA,IAAA,CAAM,mBACN,OAAS,CAAA,CACP,QAAUqB,CAAAA,mBACZ,CACA,CAAA,KAAA,CAAO,CACL,GAAGJ,EAAAA,CAEH,4BAA8B,CAAA,OAAA,CAC9B,8BAAgC,CAAA,CAAC,QAAS,CAAE,cAAA,CAAgB,IAAK,CAAC,CACpE,CACF,CACF,CACF,CCpBO,SAASK,CAA6B,EAAA,CAC3C,OAAO,CACL,CACE,IAAM,CAAA,aAAA,CACN,KAAO,CAAA,CAACf,CAAQ,CAChB,CAAA,QAAA,CAAU,SACV,CAAA,OAAA,CAAS,CACP,GAAA,CAAKgB,kBACP,CACA,CAAA,eAAA,CAAiB,CACf,QAAU,CAAA,IAAA,CACV,aAAcC,qBAChB,CAAA,CACA,KAAO,CAAA,CACL,GAAGD,kBAAAA,CAAO,QAAQ,WAAY,CAAA,KAChC,CACF,CACF,CACF,CCtBA,eAAsBE,CAAkBC,CAAAA,CAAAA,CAAkE,CACxG,IAAMC,CAAAA,CAAW,MAAMD,CAEvB,CAAA,OAASC,EAAqC,OAAWA,EAAAA,CAC3D,CCAA,eAAsBC,CAAQC,CAAAA,CAAAA,CAA8B,EAAoC,CAAA,CAC9F,GAAM,CAAE,SAAAC,CAAAA,CAAAA,CAAY,EAAI,CAAA,iBAAA,CAAAC,CAAoB,CAAA,CAAC,SAAW,CAAA,IAAI,CAAE,CAAIF,CAAAA,CAAAA,CAE5DD,CAAU,CAAA,MAAMH,CAAe,CAAA,OAAO,uBAAuB,CAAC,CAAA,CAEpE,OAAO,CACL,CACE,KAAA,CAAO,CAACzB,CAAQ,CAAA,CAChB,IAAM,CAAA,iBAAA,CACN,OAAS,CAAA,CACP,QAASgC,uBAAiBJ,CAAAA,CAAgB,CAC5C,CAAA,CACA,KAAO,CAAA,CACL,oCAAqC,CAAC,OAAA,CAAS,CAAE,iBAAAG,CAAAA,CAAkB,CAAC,CACpE,CAAA,mCAAA,CAAqC,CAAC,OAAA,CAAS,CAAE,iBAAA,CAAAA,CAAkB,CAAC,CAAA,CAEpE,GAAGD,CACL,CACF,CACF,CACF,CCnBA,eAAsBG,CAAQJ,CAAAA,CAAAA,CAA4B,EAAoC,CAAA,CAC5F,GAAM,CAAE,SAAAC,CAAAA,CAAAA,CAAY,EAAI,CAAA,KAAA,CAAAI,CAAQ,CAAA,CAAC,cAAgB,CAAA,UAAU,CAAE,CAAIL,CAAAA,CAAAA,CAE3D,CAACM,CAAAA,CAAKC,CAAS,CAAA,CAAI,MAAM,OAAQ,CAAA,GAAA,CAAI,CACzCX,CAAe,CAAA,OAAO,+BAA+B,CAAC,CAAA,CACtDY,wBAAW,CAAA,CAAE,YAAc,CAAA,KAAA,CAAO,eAAgB,KAAM,CAAC,CAAE,CAAA,IAAA,CAAM,CAAM,EAAA,CAAA,EAAG,YAAa,CAAA,MAAM,CAC/F,CAAC,CAEKC,CAAAA,CAAAA,CAAkBH,EAAI,OAAQ,CAAA,6BAA6B,CAAE,CAAA,KAAA,CAE/DI,CAAQ,CAAA,GAEZ,GAAIH,CAAAA,CACFG,CAAQD,CAAAA,CAAAA,CAAAA,KAEGE,IAAAA,IAAAA,CAAAA,IAAQ,OAAO,IAAKF,CAAAA,CAAe,CAAgC,CAAA,CAC5E,IAAMG,CAAAA,CAAWD,EAAK,OAAQ,CAAA,kBAAA,CAAoB,EAAE,CAAA,CAGlDC,CAAYN,IAAAA,CAAAA,CAAI,QACZA,CAAI,CAAA,KAAA,CAAMM,CAAQ,CAAE,CAAA,IAAA,CAAK,MAAM,cAAkBN,EAAAA,CAAAA,CAAI,KAAMM,CAAAA,CAAQ,CAAE,CAAA,IAAA,CAAK,MAAM,gBAItFF,CAAAA,GAAAA,CAAAA,CAAMC,CAAI,CAAA,CAAIF,CAAgBE,CAAAA,CAAI,GACpC,CAGF,IAAMvB,CAAcC,CAAAA,0CAAAA,CAAqBqB,CAAOvB,CAAAA,CAAa,EAE7D,OAAO,CACL,CACE,IAAM,CAAA,iBAAA,CACN,QAAS,CACP,GAAA,CAAAmB,CACF,CAAA,CACA,eAAiB,CAAA,CACf,OAAQA,CAAI,CAAA,MACd,CACA,CAAA,KAAA,CAAAD,CACA,CAAA,KAAA,CAAO,CACL,GAAGjB,CAAAA,CAEH,uBAAyB,CAAA,CAAC,OAAS,CAAA,CAAE,uBAAwB,IAAK,CAAU,EAE5E,GAAGa,CACL,CACF,CACF,CACF,CClDA,eAAsBY,CAAAA,CAAQb,CAA8B,CAAA,EAAoC,CAAA,CAC9F,GAAM,CAAE,SAAA,CAAAc,CAAW,CAAA,OAAA,CAAAD,CAAU,CAAA,EAAG,CAAIb,CAAAA,CAAAA,CAEpC,OAAOe,8BAAAA,CACL,CACE,OAAA,CAAS,CAACjC,CAAc+B,CAAAA,CAAO,CAAE,CAAA,IAAA,EACjC,CAAA,IAAA,CAAM,iBACR,CACAjB,CAAAA,CAAAA,CAAe,OAAO,8BAA8B,CAAC,CAAA,CAAE,KAAMC,CAC3DA,EAAAA,CAAAA,CAAE,CAAE,MAAA,CAAQ,KAAO,CAAA,GAAGiB,EAAW,IAAM,CAAA,mBAAoB,CAAC,CAC9D,CACF,CACF,CCXO,SAASE,CAAWhB,CAAAA,CAAAA,CAA4B,EAA2B,CAAA,CAChF,GAAM,CAAE,SAAAC,CAAAA,CAAAA,CAAY,EAAG,CAAA,CAAID,EAE3B,OAAO,CACL,CACE,KAAO,CAAA,CAAC7B,CAAQ,CAAA,CAChB,IAAM,CAAA,oBAAA,CACN,QAAS,CACP,SAAA,CAAA8C,mBACF,CAAA,CACA,eAAiB,CAAA,CACf,YAAa,IACb,CAAA,OAAA,CAAS,CACP,GAAGC,kBAAQ,CAAA,OAAA,CACX,GAAGA,kBAAQ,CAAA,MAAA,CACX,GAAGA,kBAAQ,CAAA,IAAA,CACX,SAAU,UACV,CAAA,SAAA,CAAW,UACX,CAAA,MAAA,CAAQ,UACV,CAAA,CACA,cAAe,CACb,YAAA,CAAc,CACZ,GAAA,CAAK,IACP,CAAA,CACA,YAAa,IACb,CAAA,UAAA,CAAY,QACd,CAAA,CACA,UAAY,CAAA,QACd,EACA,aAAe,CAAA,CACb,6BAA+B,CAAA,IACjC,CACA,CAAA,KAAA,CAAO,CACL,GAAGC,mBAAAA,CAAO,OAAQ,CAAA,WAAA,CAAY,KAE9B,CAAA,gBAAA,CAAkB,CAAC,OAAS,CAAA,CAAE,sBAAwB,CAAA,IAAA,CAAM,aAAe,CAAA,IAAK,CAAC,CACjF,CAAA,uBAAA,CAAyB,OACzB,CAAA,kBAAA,CAAoB,OACpB,CAAA,mBAAA,CAAqB,QACrB,mBAAqB,CAAA,OAAA,CACrB,eAAgB,CAAC,OAAA,CAAS,CAAE,aAAe,CAAA,IAAK,CAAC,CAAA,CACjD,MAAQ,CAAA,CAAC,QAAS,OAAO,CAAA,CACzB,SAAW,CAAA,CAAC,OAAS,CAAA,CAAE,SAAU,KAAO,CAAA,QAAA,CAAU,IAAM,CAAA,UAAA,CAAY,IAAK,CAAC,EAC1E,UAAY,CAAA,OAAA,CACZ,uBAAwB,OACxB,CAAA,2BAAA,CAA6B,QAC7B,WAAa,CAAA,OAAA,CACb,sBAAwB,CAAA,OAAA,CACxB,iBAAmB,CAAA,OAAA,CACnB,sBAAuB,OACvB,CAAA,gBAAA,CAAkB,CAAC,OAAA,CAAS,QAAQ,CAAA,CACpC,kBAAmB,OACnB,CAAA,kBAAA,CAAoB,OACpB,CAAA,aAAA,CAAe,OACf,CAAA,eAAA,CAAiB,QACjB,cAAgB,CAAA,OAAA,CAChB,wBAAyB,OACzB,CAAA,cAAA,CAAgB,QAChB,mBAAqB,CAAA,OAAA,CACrB,UAAY,CAAA,CAAC,OAAS,CAAA,CAAE,gBAAiB,IAAK,CAAC,CAC/C,CAAA,0BAAA,CAA4B,OAC5B,CAAA,kBAAA,CAAoB,QACpB,SAAW,CAAA,OAAA,CACX,cAAgB,CAAA,OAAA,CAChB,kBAAoB,CAAA,OAAA,CACpB,gBAAiB,OACjB,CAAA,uBAAA,CAAyB,OACzB,CAAA,gBAAA,CAAkB,OAClB,CAAA,gBAAA,CAAkB,QAClB,kBAAoB,CAAA,OAAA,CACpB,iBAAmB,CAAA,OAAA,CACnB,kBAAoB,CAAA,OAAA,CACpB,oBAAqB,OACrB,CAAA,yBAAA,CAA2B,OAC3B,CAAA,aAAA,CAAe,OACf,CAAA,WAAA,CAAa,CAAC,OAAS,CAAA,CAAE,SAAW,CAAA,KAAA,CAAO,WAAa,CAAA,KAAM,CAAC,CAC/D,CAAA,gBAAA,CAAkB,QAClB,sBAAwB,CAAA,OAAA,CACxB,gCAAiC,OACjC,CAAA,cAAA,CAAgB,OAChB,CAAA,QAAA,CAAU,OACV,CAAA,aAAA,CAAe,QACf,8BAAgC,CAAA,OAAA,CAChC,iBAAmB,CAAA,OAAA,CACnB,cAAgB,CAAA,OAAA,CAChB,WAAY,OACZ,CAAA,iBAAA,CAAmB,OACnB,CAAA,UAAA,CAAY,OACZ,CAAA,uBAAA,CAAyB,QACzB,cAAgB,CAAA,CAAC,QAAS,CAAE,cAAA,CAAgB,KAAM,CAAC,CAAA,CACnD,iBAAmB,CAAA,OAAA,CACnB,uBAAyB,CAAA,CACvB,QACA,CAAE,OAAA,CAAS,2BAA6B,CAAA,IAAA,CAAM,QAAS,CAAA,CACvD,CAAE,OAAS,CAAA,2BAAA,CAA6B,IAAM,CAAA,MAAO,CACvD,CAAA,CACA,2BAA4B,CAC1B,OAAA,CACA,CACE,OAAS,CAAA,iEAAA,CACT,SAAU,WACZ,CAAA,CACA,CACE,OAAA,CAAS,sCACT,CAAA,QAAA,CAAU,kBACZ,CACA,CAAA,CACE,OAAS,CAAA,sCAAA,CACT,QAAU,CAAA,kBACZ,EACA,CACE,OAAA,CAAS,gDACT,CAAA,QAAA,CAAU,kBACZ,CAAA,CACA,CACE,OAAS,CAAA,gDAAA,CACT,QAAU,CAAA,kBACZ,CACF,CAAA,CACA,uBAAwB,CACtB,OAAA,CACA,mBACA,CAAA,kBAAA,CACA,eACA,CAAA,mBAAA,CACA,oBACF,CACA,CAAA,gBAAA,CAAkB,CAAC,OAAA,CAAS,CAAE,KAAA,CAAO,IAAK,CAAC,CAAA,CAC3C,iBAAmB,CAAA,OAAA,CACnB,cAAgB,CAAA,OAAA,CAChB,6BAA8B,OAC9B,CAAA,kBAAA,CAAoB,QACpB,6BAA+B,CAAA,OAAA,CAC/B,uBAAwB,OACxB,CAAA,kBAAA,CAAoB,OACpB,CAAA,UAAA,CAAY,OACZ,CAAA,eAAA,CAAiB,QACjB,yBAA2B,CAAA,OAAA,CAC3B,8BAAgC,CAAA,OAAA,CAChC,qBAAuB,CAAA,CAAC,QAAS,CAAE,iBAAA,CAAmB,KAAM,CAAC,CAC7D,CAAA,gBAAA,CAAkB,QAClB,qBAAuB,CAAA,OAAA,CACvB,oBAAqB,OACrB,CAAA,oBAAA,CAAsB,QACtB,uBAAyB,CAAA,CACvB,OACA,CAAA,CACE,iBAAmB,CAAA,IAAA,CACnB,qBAAsB,IACtB,CAAA,YAAA,CAAc,IAChB,CACF,CACA,CAAA,gBAAA,CAAkB,CAChB,OACA,CAAA,CACE,IAAM,CAAA,MAAA,CACN,YAAc,CAAA,MAAA,CACd,mBAAoB,IACpB,CAAA,IAAA,CAAM,KACR,CACF,CAAA,CACA,2BAA4B,OAC5B,CAAA,iBAAA,CAAmB,OACnB,CAAA,kBAAA,CAAoB,OACpB,CAAA,yBAAA,CAA2B,QAC3B,wBAA0B,CAAA,OAAA,CAC1B,mBAAqB,CAAA,OAAA,CACrB,QAAU,CAAA,OAAA,CACV,UAAW,OACX,CAAA,kBAAA,CAAoB,CAClB,OAAA,CACA,QACA,CAAA,CACE,YAAa,IACb,CAAA,kBAAA,CAAoB,KACtB,CACF,CAAA,CACA,UAAW,CAAC,OAAA,CAAS,CAAE,WAAA,CAAa,OAAQ,CAAC,EAC7C,uBAAyB,CAAA,CACvB,OACA,CAAA,CACE,mBAAqB,CAAA,IAAA,CACrB,iBAAkB,IACpB,CACF,CACA,CAAA,cAAA,CAAgB,CACd,OAAA,CACA,CACE,aAAe,CAAA,KAAA,CACf,uBAAwB,IAC1B,CACF,EACA,gCAAkC,CAAA,OAAA,CAClC,8BAAgC,CAAA,OAAA,CAChC,uBAAyB,CAAA,CAAC,QAAS,CAAE,yBAAA,CAA2B,IAAK,CAAC,CACtE,CAAA,oBAAA,CAAsB,QACtB,eAAiB,CAAA,OAAA,CACjB,iBAAmB,CAAA,OAAA,CACnB,oBAAsB,CAAA,OAAA,CACtB,cAAe,CAAC,OAAA,CAAS,OAAO,CAChC,CAAA,WAAA,CAAa,CAAC,OAAS,CAAA,CAAE,iBAAmB,CAAA,IAAA,CAAM,oBAAsB,CAAA,IAAK,CAAC,CAC9E,CAAA,cAAA,CAAgB,CAAC,OAAA,CAAS,CAAE,qBAAA,CAAuB,IAAK,CAAC,CAAA,CACzD,aAAe,CAAA,OAAA,CACf,IAAM,CAAA,CAAC,QAAS,OAAO,CAAA,CAEvB,4CAA6C,CAC3C,OAAA,CACA,CAAE,SAAW,CAAA,QAAA,CAAU,IAAM,CAAA,CAAC,OAAS,CAAA,KAAK,EAAG,IAAM,CAAA,GAAI,CACzD,CAAA,CACE,SAAW,CAAA,KAAA,CACX,KAAM,CAAC,OAAA,CAAS,KAAK,CAAA,CACrB,IAAM,CAAA,CAAC,QAAS,KAAK,CACvB,CACA,CAAA,CAAE,SAAW,CAAA,QAAA,CAAU,KAAM,GAAK,CAAA,IAAA,CAAM,QAAS,CACnD,CAEA,CAAA,GAAGlB,CACL,CACF,CACF,CACF,CC/NA,eAAsBmB,CAAAA,EAAwC,CAC5D,OAAO,CACL,CACE,KAAA,CAAO,CAACjD,CAAQ,EAChB,IAAM,CAAA,eAAA,CACN,QAAS,CACP,KAAA,CAAO,MAAMyB,CAAe,CAAA,OAAO,qBAAqB,CAAC,CAC3D,CAAA,CACA,MAAO,CACL,oBAAA,CAAsB,OACtB,CAAA,yBAAA,CAA2B,OAC3B,CAAA,4BAAA,CAA8B,QAC9B,mBAAqB,CAAA,OAAA,CACrB,kBAAoB,CAAA,OAAA,CACpB,6BAA+B,CAAA,OAAA,CAC/B,oBAAqB,OACrB,CAAA,0BAAA,CAA4B,QAC5B,0BAA4B,CAAA,OAAA,CAC5B,yBAA0B,OAC1B,CAAA,oCAAA,CAAsC,OACtC,CAAA,6BAAA,CAA+B,OAC/B,CAAA,6BAAA,CAA+B,QAC/B,mCAAqC,CAAA,OAAA,CACrC,4BAA8B,CAAA,OAChC,CACF,CACF,CACF,CCzBO,SAASyB,CAA+B,EAAA,CAC7C,OAAO,CACL,GAAG/B,UAAQ,CAAA,WAAW,CAAE,CAAA,GAAA,CAAKgC,IAAY,CAAE,GAAGA,CAAQ,CAAA,IAAA,CAAM,oBAAqB,CAAA,CAAE,EAEnF,CACE,IAAA,CAAM,oBACN,CAAA,KAAA,CAAO,CAAC/C,CAAS,EACjB,GAAGgD,CAAAA,CACH,KAAO,CAAA,CACL,GAAGC,CAAAA,CAAalC,WAAQ,4BAA4B,CAAC,CACvD,CACF,CACA,CAAA,CACE,KAAM,qBACN,CAAA,KAAA,CAAO,CAACb,CAAU,CAClB,CAAA,GAAG8C,EACH,KAAO,CAAA,CACL,GAAGC,CAAAA,CAAalC,UAAQ,CAAA,6BAA6B,CAAC,CACxD,CACF,EACA,CACE,IAAA,CAAM,sBACN,KAAO,CAAA,CAACd,CAAU,CAAA,CAClB,GAAG+C,CAAAA,CACH,MAAO,CACL,GAAGC,CAAalC,CAAAA,UAAAA,CAAQ,6BAA6B,CAAC,CACxD,CACF,CAAA,CAEA,CACE,IAAA,CAAM,4BACN,CAAA,GAAGiC,EACH,KAAO,CAAA,CAAC,iBAAiB,CACzB,CAAA,KAAA,CAAO,CACL,yBAA2B,CAAA,CACzB,OACA,CAAA,CACE,KAAO,CAAA,CAAE,KAAM,KAAM,CAAA,CACrB,WAAa,CAAA,SACf,CACF,CAAA,CACA,kBAAmB,CACjB,OAAA,CACA,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,MACA,CAAA,MAAA,CACA,SACA,OACA,CAAA,eAAA,CACA,KACA,CAAA,OAAA,CACA,SACA,CAAA,MAAA,CACA,QACA,UACA,CAAA,aAAA,CACA,kBACA,CAAA,aAAA,CACA,SACA,CAAA,UAAA,CACA,SACA,SACA,CAAA,YAAA,CACA,cACA,CAAA,iBAAA,CACA,kBACA,CAAA,sBAAA,CACA,uBACA,gBACA,CAAA,SAAA,CACA,MACA,CAAA,WAAA,CACA,aACA,CAAA,OAAA,CACA,mBACA,aACA,CAAA,cAAA,CACA,UACF,CAAA,CACA,WAAa,CAAA,IACf,EACA,CACE,KAAA,CAAO,CAAE,IAAA,CAAM,KAAM,CAAA,CACrB,YAAa,wDACf,CAAA,CACA,CACE,KAAO,CAAA,CAAC,QAAS,QAAU,CAAA,QAAA,CAAU,SAAW,CAAA,SAAS,CACzD,CAAA,WAAA,CAAa,aACf,CACF,CACF,CACF,CAAA,CAEA,CACE,IAAA,CAAM,8BACN,GAAGA,CAAAA,CACH,KAAO,CAAA,CACL,kBACA,CAAA,oBAAA,CACA,qBACA,kBACA,CAAA,oBAAA,CACA,oBACF,CACA,CAAA,KAAA,CAAO,CACL,iBAAmB,CAAA,CACjB,OACA,CAAA,CACE,KAAO,CAAA,CAAC,UAAW,SAAW,CAAA,iBAAA,CAAmB,YAAc,CAAA,OAAA,CAAS,SAAW,CAAA,SAAS,EAC5F,WAAa,CAAA,IACf,CACA,CAAA,CACE,KAAO,CAAA,CAEL,cACA,WACA,CAAA,iBAAA,CACA,0CACA,0BACA,CAAA,8BAAA,CAEA,SACA,KACA,CAAA,KAAA,CACA,wBACA,CAAA,uBAAA,CACA,YACA,CAAA,oBAAA,CACA,kBACA,gBACA,CAAA,OAAA,CACA,yBACA,CAAA,iBAAA,CAEA,QACA,CAAA,SAAA,CACA,mBACA,SACA,CAAA,OAAA,CACA,UACA,CAAA,WAAA,CACA,OACA,CAAA,sBAAA,CACA,iBACA,4BACA,CAAA,2BAAA,CACA,2BACA,CAAA,kBAAA,CACA,mBACA,CAAA,0BAAA,CACA,YAEA,SACA,CAAA,SAAA,CACA,sBAEA,CAAA,aAAA,CACA,gBACA,CAAA,qBAAA,CACA,YACA,iBACA,CAAA,SAAA,CACA,QACA,CAAA,gBAAA,CACA,QACA,CAAA,eAAA,CACA,yBACA,oBACA,CAAA,YAAA,CACA,SACA,CAAA,eAAA,CACA,SACA,CAAA,SAAA,CACA,gBACA,eACA,CAAA,eAAA,CACA,qBACA,gBACA,CAAA,sBAAA,CAEA,kBACA,sBACA,CAAA,8BAAA,CACA,iBACA,CAAA,kBAAA,CACA,kCAEA,CAAA,QAAA,CACA,sBACA,qBACA,CAAA,kBAAA,CACA,8BACA,CAAA,sBAAA,CACA,mBACA,CAAA,cAAA,CACA,6BACA,4BACA,CAAA,eAAA,CACA,oBACA,CAAA,mBAAA,CACA,gBACA,CAAA,oCAAA,CACA,2BACA,gBACA,CAAA,oBAAA,CACA,6BAEA,qBACA,CAAA,cACF,EACA,WAAa,CAAA,mBACf,CACF,CACF,CACF,CAAA,CAEA,GAAGjC,UAAQ,CAAA,eAAe,CAAE,CAAA,GAAA,CAAKgC,CAAY,GAAA,CAAE,GAAGA,CAAQ,CAAA,IAAA,CAAM,wBAAyB,CAAA,CAAE,CAC7F,CACF,CAEA,IAAMC,CAAAA,CAAiB,CACrB,eAAiB,CAAA,CACf,OAAAE,mBACF,CAAA,CACA,OAAS,CAAA,CACP,KAAO/B,CAAAA,mBACT,CACF,CAIA,CAAA,SAAS8B,CAAaF,CAAAA,CAAAA,CAA0C,CAC9D,OAAO,OAAO,WAAYA,CAAAA,CAAAA,CAAO,OAAQ,CAAA,CAAC,CAAE,KAAA,CAAAZ,CAAM,CAAM,GAAA,MAAA,CAAO,OAAQA,CAAAA,CAAAA,EAAS,EAAE,CAAC,CAAC,CACtF,CCtPA,IAAML,EAAQ,CAACzB,CAAa,CAErB,CAAA,SAAS8C,CAAkC,EAAA,CAChD,OAAO,CACL,CACE,KAAM,wBACN,CAAA,OAAA,CAAS,CACP,QAAUhC,CAAAA,kBACZ,CACF,CAAA,CACA,CACE,IAAA,CAAM,6BACN,KAAAW,CAAAA,CAAAA,CACA,OAAS,CAAA,CAACxB,CAAyB,CAAA,CAKnC,UAAW8C,qCAAgB,CAAA,CAACjC,kBAAO,CAAA,UAAA,CAAW,QAAUkC,CAAAA,0CAAoB,CAAC,CAC/E,CAAA,CACA,CACE,IAAM,CAAA,yBAAA,CACN,MAAAvB,CACA,CAAA,eAAA,CAAiB,CACf,MAAA,CAAQwB,EACV,CACF,EACA,CACE,IAAA,CAAM,wBACN,CAAA,KAAA,CAAAxB,CACA,CAAA,KAAA,CAAO,CACL,GAAG,MAAA,CAAO,WAAYX,CAAAA,kBAAAA,CAAO,OAAQ,CAAA,WAAA,CAAY,QAAQ,CAAC,CAAE,MAAAgB,CAAM,CAAA,GAAM,OAAO,OAAQA,CAAAA,CAAK,CAAC,CAAC,CAChG,CACF,CACF,CACF,CAEA,IAAMmB,EAAAA,CAAc,CAClB,IAAA,CAAM,CACJ,IAAM,CAAA,cACR,CACA,CAAA,cAAA,CAAiBC,CAAkB,GAAA,CACjC,IAAK,CACH,IAAA,CAAM,EAAC,CACP,QAAU,CAAA,GACV,GAAK,CAAA,CAAE,GAAKA,CAAAA,CAAAA,CAAK,MAAQ,CAAA,KAAA,CAAO,CAAE,CAClC,CAAA,KAAA,CAAO,CAAC,CAAA,CAAGA,CAAK,CAAA,MAAM,EACtB,MAAQ,CAAA,EACR,CAAA,IAAA,CAAM,SACR,CAAA,CAEA,aAAc,IACd,CAAA,QAAA,CAAU,CAAE,OAAS,CAAA,IAAK,EAC1B,WAAa,CAAA,CACX,OAAS,CAAA,EACX,CACF,EACF,CC/DA,CAQA,eAAsBC,CAAAA,CACpB/B,CAAyD,CAAA,GACzB,CAChC,GAAM,CAAE,KAAAK,CAAAA,CAAAA,CAAQ,CAACjC,CAASC,CAAAA,CAAQ,CAAG,CAAA,SAAA,CAAA4B,CAAY,CAAA,GAAI,aAAA+B,CAAAA,CAAc,CAAIhC,CAAAA,CAAAA,CAEjE,CAAC+B,CAAAA,CAAMN,CAAM,CAAI,CAAA,MAAM,OAAQ,CAAA,GAAA,CAAI,CACvC7B,CAAAA,CAAe,OAAO,0BAA0B,CAAC,EACjDA,CAAe,CAAA,OAAO,2BAA2B,CAAC,CACpD,CAAC,CAAA,CAEKR,CAAcC,CAAAA,0CAAAA,CAClB,CACE,GAAG0C,CAAAA,CAAK,OAAQ,CAAA,WAAA,CAAY,KAC5B,CAAA,GAAGA,EAAK,OAAQ,CAAA,iBAAiB,CAAE,CAAA,KACrC,CACA5C,CAAAA,CACF,EAEA,OAAO,CACL,CACE,IAAA,CAAM,oBACN,CAAA,OAAA,CAAS,CACP,IAAMgB,CAAAA,uBAAAA,CAAiB4B,CAAa,CACtC,CACF,CAAA,CACA,CACE,IAAM,CAAA,oBAAA,CACN,KAAA1B,CAAAA,CAAAA,CACA,eAAiB,CAAA,CACf,OAAAoB,CACA,CAAA,aAAA,CAAe,CACb,YAAA,CAAc,CACZ,GAAA,CAAK,IACP,CACA,CAAA,cAAA,CAAgB,KAChB,GAAGO,CACL,EACA,UAAY,CAAA,QACd,CACA,CAAA,KAAA,CAAO,CACL,GAAG5C,EAEH,6BAA+B,CAAA,KAAA,CAE/B,GAAGa,CACL,CACF,CACF,CACF,CCpDO,SAASgC,CAAAA,EAA8B,CAC5C,OAAO,CACL,CACE,MAAO,CAAC9D,CAAQ,CAChB,CAAA,IAAA,CAAM,cACN,CAAA,QAAA,CAAU,CACR,IAAM,CAAA,CACJ,OAAS,CAAA,WACX,CACF,CAAA,CACA,QAAS,CACP,IAAA,CAAM+D,kBACR,CACA,CAAA,KAAA,CAAO,CACL,0BAA4B,CAAA,CAAC,OAAS,CAAA,eAAe,CACrD,CAAA,wBAAA,CAA0B,QAC1B,wBAA0B,CAAA,OAAA,CAC1B,qBAAuB,CAAA,OAAA,CACvB,qBAAuB,CAAA,OAAA,CACvB,6CAA8C,CAAC,OAAA,CAAS,CAAE,iBAAA,CAAmB,IAAK,CAAC,EACnF,2BAA6B,CAAA,OAAA,CAC7B,6BAA8B,OAC9B,CAAA,iCAAA,CAAmC,QACnC,wBAA0B,CAAA,OAAA,CAC1B,4BAA8B,CAAA,OAAA,CAC9B,sCAAwC,CAAA,OAAA,CACxC,kCAAmC,OACnC,CAAA,4BAAA,CAA8B,OAChC,CACF,CACF,CACF,CC7BA,eAAsBC,EAAuC,EAAA,CAC3D,IAAMzC,CAAS,CAAA,MAAME,EAAe,OAAO,oBAAoB,CAAC,CAAA,CAEhE,OAAO,CACL,CACE,IAAM,CAAA,2BAAA,CACN,KAAO,CAAA,CAAC,iBAAiB,CAAA,CACzB,gBAAiB,CACf,MAAA,CAAQwC,mBACV,CAAA,CACA,OAAS,CAAA,CACP,KAAM1C,CACR,CAAA,CACA,MAAO,CACL,2BAAA,CAA6B,QAC7B,qCAAuC,CAAA,OAAA,CACvC,yBAA2B,CAAA,OAC7B,CACF,CAAA,CACA,CACE,IAAM,CAAA,kCAAA,CACN,KAAO,CAAA,CAAC,qBAAqB,CAAA,CAC7B,gBAAiB,CACf,MAAA,CAAQ2C,mBACV,CAAA,CACA,OAAS,CAAA,CACP,KAAM3C,CACR,CAAA,CACA,MAAO,CACL,qCAAA,CAAuC,QACvC,kCAAoC,CAAA,OACtC,CACF,CACF,CACF,CCrCA,eAAsB4C,EAA2C,EAAA,CAC/D,GAAM,CAACA,CAAUrB,CAAAA,CAAS,EAAI,MAAM,OAAA,CAAQ,GAAI,CAAA,CAC9CrB,CAAe,CAAA,OAAO,wBAAwB,CAAC,CAAA,CAC/CA,CAAe,CAAA,OAAO,0BAA0B,CAAC,CACnD,CAAC,CAAA,CAED,OAAO,CACL,CACE,IAAA,CAAM,mBACN,OAAS,CAAA,CACP,SAAAqB,CAAAA,CACF,CACA,CAAA,KAAA,CAAO,CACL,GAAGqB,CAAAA,CAAS,KAEZ,CAAA,8BAAA,CAAgC,KAChC,CAAA,uBAAA,CAAyB,CAAC,OAAS,CAAA,CAAE,QAAS,KAAM,CAAC,CACvD,CACF,CACF,CACF,CCfA,eAAsBC,EAAAA,CACpBvC,EAAyD,EAAC,CAC1B,CAChC,GAAM,CAAE,KAAA,CAAAK,EAAQ,CAACjC,CAAAA,CAASC,CAAQ,CAAG,CAAA,SAAA,CAAA4B,EAAY,EAAC,CAAG,aAAA+B,CAAAA,CAAAA,CAAe,eAAAQ,CAAAA,CAAAA,CAAiB,cAAAC,CAAgB,CAAA,IAAK,CAAIzC,CAAAA,CAAAA,CAExG,CAAC0C,CAAAA,CAAaC,EAAkBlB,CAAQmB,CAAAA,CAAmB,CAAI,CAAA,MAAM,OAAQ,CAAA,GAAA,CAAI,CACrFhD,CAAe,CAAA,OAAO,6BAA6B,CAAC,CAAA,CACpDA,EAAe,OAAO,2BAA2B,CAAC,CAAA,CAClDA,CAAe,CAAA,OAAO,2BAA2B,CAAC,CAAA,CAClD6C,CAAgB7C,CAAAA,CAAAA,CAAe,OAAO,8BAA8B,CAAC,CAAI,CAAA,MAC3E,CAAC,CAAA,CAEKiD,CAAUH,CAAAA,CAAAA,CAAY,QAAQ,GAAI,CAAA,OAAA,CAElCtD,EAAcC,CAAAA,0CAAAA,CAClB,CACE,GAAGsD,EAAiB,OAAQ,CAAA,oBAAoB,CAAE,CAAA,KAAA,CAClD,GAAGD,CAAAA,CAAY,QAAQ,0BAA0B,CAAA,CAAE,KACrD,CAAA,CACAvD,CACF,CAAA,CAEA,OAAO,CACL,CACE,IAAM,CAAA,qBAAA,CACN,OAAS,CAAA,CACP,UAAA8B,mBACA,CAAA,WAAA,CAAa4B,EAAQ,mBAAmB,CAAA,CACxC,gBAAiBA,CAAQ,CAAA,uBAAuB,CAChD,CAAA,aAAA,CAAeA,CAAQ,CAAA,eAAe,EACtC,aAAeF,CAAAA,CAAAA,CACf,mBAAqBE,CAAAA,CAAAA,CAAQ,2BAA2B,CAAA,CACxD,0BAA2BA,CAAQ,CAAA,iCAAiC,CACpE,CAAA,GAAIJ,CAAgB,CAAA,CAAE,iBAAkBG,CAAoB,CAAA,CAAI,EAClE,CAAA,CACA,SAAU,CACR,KAAA,CAAO,CACL,OAAA,CAAS,QACX,CACF,CACF,CACA,CAAA,CACE,IAAM,CAAA,qBAAA,CACN,KAAAvC,CAAAA,CAAAA,CACA,gBAAiB,CACf,MAAA,CAAAoB,CACA,CAAA,aAAA,CAAe,CACb,YAAA,CAAc,CACZ,GAAK,CAAA,IACP,EACA,eAAAe,CAAAA,CAAAA,CACA,eAAgB,IAChB,CAAA,GAAGR,CACL,CAAA,CACA,UAAY,CAAA,QACd,EACA,KAAO,CAAA,CACL,GAAG5C,EAAAA,CAEH,GAAIqD,CAAAA,CAAgB,CAAE,+BAAiC,CAAA,OAAQ,CAAI,CAAA,EAEnE,CAAA,+CAAA,CAAiD,QACjD,wDAA0D,CAAA,OAAA,CAC1D,4CAA8C,CAAA,OAAA,CAC9C,2CAA6C,CAAA,OAAA,CAE7C,qCAAsC,KACtC,CAAA,sCAAA,CAAwC,OACxC,CAAA,uCAAA,CAAyC,OACzC,CAAA,2CAAA,CAA6C,QAE7C,mCAAqC,CAAA,OAAA,CAErC,6BAA+B,CAAA,KAAA,CAC/B,uBAAyB,CAAA,CAAC,QAAS,CAAE,OAAA,CAAS,KAAM,CAAC,CACrD,CAAA,iCAAA,CAAmC,QAEnC,GAAGxC,CACL,CACF,CACF,CACF,CCpFO,SAAS6C,EAAgC,EAAA,CAC9C,OAAO,CACL,CACE,KAAO,CAAA,CAAC3E,CAAQ,CAAA,CAChB,KAAM,gBACN,CAAA,OAAA,CAAS,CACP,MAAA,CAAQ4E,mBACV,CAAA,CACA,MAAO,CACL,GAAGA,oBAAa,OAAQ,CAAA,kBAAkB,EAAE,KAC9C,CACF,CACF,CACF,CCdO,SAASC,IAA+B,CAC7C,OAAO,CACL,CACE,KAAO,CAAA,CAAC7E,CAAQ,CAChB,CAAA,IAAA,CAAM,eACN,CAAA,OAAA,CAAS,CACP,KAAA,CAAO+D,kBACT,CACA,CAAA,KAAA,CAAO,CACL,iBAAmB,CAAA,OAAA,CACnB,6BAA8B,OAC9B,CAAA,gCAAA,CAAkC,OAClC,CAAA,qBAAA,CAAuB,OACvB,CAAA,wCAAA,CAA0C,QAC1C,oCAAsC,CAAA,OAAA,CACtC,sBAAwB,CAAA,OAAA,CACxB,+BAAiC,CAAA,OAAA,CACjC,2BAA4B,OAC5B,CAAA,YAAA,CAAc,OACd,CAAA,YAAA,CAAc,OACd,CAAA,wBAAA,CAA0B,QAC1B,kCAAoC,CAAA,OAAA,CACpC,yBAA2B,CAAA,OAAA,CAC3B,mCAAqC,CAAA,OAAA,CACrC,4BAA6B,CAAC,OAAA,CAAS,CAAE,SAAA,CAAW,CAAE,CAAC,EACvD,8BAAgC,CAAA,OAAA,CAChC,4BAA8B,CAAA,OAAA,CAC9B,2BAA6B,CAAA,OAAA,CAC7B,2BAA4B,OAC5B,CAAA,0BAAA,CAA4B,OAC5B,CAAA,iCAAA,CAAmC,OACnC,CAAA,+BAAA,CAAiC,QACjC,gCAAkC,CAAA,OAAA,CAClC,+BAAgC,OAChC,CAAA,yBAAA,CAA2B,QAC3B,iCAAmC,CAAA,OAAA,CACnC,wBAA0B,CAAA,OAAA,CAC1B,mCAAqC,CAAA,OAAA,CACrC,8BAA+B,OAC/B,CAAA,4BAAA,CAA8B,OAC9B,CAAA,gCAAA,CAAkC,OAClC,CAAA,uBAAA,CAAyB,QACzB,4BAA8B,CAAA,OAAA,CAC9B,oCAAsC,CAAA,OAAA,CACtC,wBAA0B,CAAA,OAAA,CAC1B,8BAA+B,OAC/B,CAAA,+BAAA,CAAiC,QACjC,6BAA+B,CAAA,OAAA,CAC/B,qCAAsC,OACtC,CAAA,oBAAA,CAAsB,OAEtB,CAAA,2BAAA,CAA6B,KAC7B,CAAA,yBAAA,CAA2B,KAC7B,CACF,CACF,CACF,CCrDA,eAAsBe,EACpBjD,CAAAA,CAAAA,CAA6D,EAAC,CAC9B,CAChC,GAAM,CAAE,MAAAK,CAAQ,CAAA,CAAC/B,CAAY,CAAG,CAAA,SAAA,CAAA2B,CAAY,CAAA,EAAI,CAAA,aAAA,CAAA+B,EAAe,kBAAAkB,CAAAA,CAAAA,CAAqB,YAAa,CAAA,CAAIlD,CAE/F,CAAA,CAACiD,EAAWxB,CAAM,CAAA,CAAI,MAAM,OAAA,CAAQ,GAAI,CAAA,CAC5C7B,EAAe,OAAO,yBAAyB,CAAC,CAAA,CAChDA,CAAe,CAAA,OAAO,2BAA2B,CAAC,CACpD,CAAC,CAAA,CAEKuD,CAAkB,CAAA,CACtB,OAAA1B,CACA,CAAA,aAAA,CAAe,CACb,YAAA,CAAc,CACZ,GAAA,CAAK,IACP,CACA,CAAA,cAAA,CAAgB,IAChB,CAAA,GAAGO,CACL,CAAA,CACA,WAAY,QACd,CAAA,CAEA,OAAO,CACL,CACE,KAAM,yBACN,CAAA,OAAA,CAAS,CACP,SAAA,CAAW7B,uBAAiB8C,CAAAA,CAAkB,CAChD,CACF,CAAA,CACA,CACE,IAAA,CAAM,yBACN,CAAA,KAAA,CAAA5C,EACA,eAAA8C,CAAAA,CAAAA,CACA,KAAO,CAAA,CACL,8BAAgC,CAAA,OAAA,CAChC,qCAAsC,OACtC,CAAA,yBAAA,CAA2B,QAC3B,2BAA6B,CAAA,OAAA,CAC7B,gCAAiC,OACjC,CAAA,kCAAA,CAAoC,OACpC,CAAA,mCAAA,CAAqC,OACrC,CAAA,yBAAA,CAA2B,QAC3B,qCAAuC,CAAA,OAAA,CACvC,iCAAmC,CAAA,OAAA,CACnC,8BAAgC,CAAA,OAAA,CAChC,0BAA2B,OAC3B,CAAA,gCAAA,CAAkC,OAClC,CAAA,yCAAA,CAA2C,OAE3C,CAAA,GAAGlD,CACL,CACF,CAAA,CACA,CACE,IAAM,CAAA,4BAAA,CACN,MAAAI,CACA,CAAA,KAAA,CAAO,CACL,4BAAA,CAA8B,KAC9B,CAAA,oBAAA,CAAsB,MACtB,2BAA6B,CAAA,KAC/B,CACF,CAAA,CACA,CACE,IAAA,CAAM,2BACN,KAAO,CAAA,CAAC,CAAG6C,EAAAA,CAAkB,CAAwB,sBAAA,CAAA,CAAA,CACrD,gBAAAC,CACA,CAAA,KAAA,CAAO,CACL,iCAAA,CAAmC,OACrC,CACF,CACF,CACF,CCvEA,eAAsBC,EAASpD,CAAAA,CAAAA,CAA4B,EAAC,CAAmC,CAC7F,GAAM,CAAE,SAAAC,CAAAA,CAAAA,CAAY,EAAG,CAAID,CAAAA,CAAAA,CAErB,CAACqD,CAAa,CAAA,CAAE,kBAAAC,CAAkB,CAAA,CAAGhC,CAAM,CAAI,CAAA,MAAM,OAAQ,CAAA,GAAA,CAAI,CACrE1B,CAAAA,CAAe,OAAO,2BAA2B,CAAC,CAClDA,CAAAA,CAAAA,CAAe,OAAO,oBAAoB,CAAC,CAC3C2D,CAAAA,aAAAA,CAAO,CAAC,oBAAA,CAAsB,oBAAoB,CAAC,CACrD,CAAC,CAAA,CAED,OAAO,CACL,CACE,MAAO,CAACpF,CAAQ,CAChB,CAAA,IAAA,CAAM,kBACN,CAAA,OAAA,CAAS,CACP,WAAAkF,CAAAA,CACF,CACA,CAAA,QAAA,CAAU,CACR,WAAA,CAAa,CACX,OAASC,CAAAA,CAAAA,CACT,MAAAhC,CAAAA,CACF,CACF,CAAA,CACA,MAAO,CACL,GAAG+B,EAAY,OAAQ,CAAA,WAAA,CAAY,MAEnC,GAAGpD,CACL,CACF,CACF,CACF,CC5BA,eAAsBuD,EAASxD,CAAAA,CAAAA,CAA4B,EAAoC,CAAA,CAC7F,GAAM,CAAE,SAAAC,CAAAA,CAAAA,CAAY,EAAG,CAAA,CAAID,CAErBwD,CAAAA,CAAAA,CAAW,MAAM5D,CAAAA,CAAe,OAAO,+BAA+B,CAAC,CAEvER,CAAAA,CAAAA,CAAcC,0CAAqBmE,CAAAA,CAAAA,CAAS,QAAQ,kBAAkB,CAAA,CAAE,EAAG,CAAA,CAAC,CAAG,EAAA,KAAA,EAAS,EAAIrE,CAAAA,CAAa,CAE/G,CAAA,OAAO,CACL,CACE,MAAO,CAAChB,CAAQ,EAChB,IAAM,CAAA,kBAAA,CACN,QAAS,CAAE,QAAA,CAAAqF,CAAS,CAAA,CACpB,KAAO,CAAA,CACL,GAAGpE,CAEH,CAAA,GAAGa,CACL,CACF,CACF,CACF,CCtBA,eAAsBwD,EAAAA,CAAMzD,CAA4B,CAAA,EAAoC,CAAA,CAC1F,GAAM,CAAE,SAAA,CAAAC,EAAY,EAAG,EAAID,CAErByD,CAAAA,CAAAA,CAAQ,MAAM7D,CAAAA,CAAe,OAAO,qBAAqB,CAAC,CAEhE,CAAA,OAAO,CACL,CACE,KAAO,CAAA,CAACzB,CAAQ,CAChB,CAAA,IAAA,CAAM,eACN,CAAA,OAAA,CAAS,CACP,KAAA,CAAAsF,CACF,CACA,CAAA,KAAA,CAAO,CACL,8BAAgC,CAAA,OAAA,CAEhC,GAAGxD,CACL,CACF,CACF,CACF,CChBA,eAAsByD,EAAAA,CAAW1D,CAAsC,CAAA,GAAoC,CACzG,GAAM,CAAE,SAAA,CAAAC,CAAY,CAAA,GAAI,aAAA+B,CAAAA,CAAAA,CAAgB,EAAG,CAAIhC,CAAAA,CAAAA,CAEzC,CAAC,CAAE,MAAA,CAAAN,CAAQ,CAAA,OAAA,CAAAJ,CAAS,CAAA,MAAA,CAAAmC,CAAO,CAAGkC,CAAAA,CAAS,CAAI,CAAA,MAAM,OAAQ,CAAA,GAAA,CAAI,CACjE/D,CAAe,CAAA,OAAO,mBAAmB,CAAC,CAC1CA,CAAAA,CAAAA,CAAe,OAAO,wBAAwB,CAAC,CACjD,CAAC,CAAA,CAEKgE,EAAeC,4CAAuBvE,CAAAA,CAAAA,CAAQ,iBAA4BH,CAAAA,CAAa,CAEvFuB,CAAAA,CAAAA,CAAQ,OAAO,WAAYkD,CAAAA,CAAAA,CAAa,OAAQ,CAAA,CAAC,CAAE,KAAA,CAAAlD,CAAM,CAAM,GAAA,MAAA,CAAO,OAAQA,CAAAA,CAAAA,EAAS,EAAE,CAAC,CAAC,CAAA,CAEjG,OAAO,CACL,CACE,KAAM,0BACN,CAAA,OAAA,CAAS,CACP,EAAA,CAAIhB,CACJ,CAAA,UAAA,CAAYiE,CACd,CACF,CAAA,CACA,CACE,IAAA,CAAM,0BACN,CAAA,KAAA,CAAO,CAACxF,CAAQ,CAAA,CAChB,eAAiB,CAAA,CACf,MAAAsD,CAAAA,CAAAA,CACA,cAAe,CACb,eAAA,CAAiB,QAAQ,GAAI,EAAA,CAC7B,eAAgB,IAChB,CAAA,kCAAA,CAAoC,KACpC,CAAA,GAAGO,CACL,CAAA,CACA,WAAY,QACd,CAAA,CACA,KAAO,CAAA,CACL,GAAGtB,CAAAA,CACH,mCAAoC,CAAC,OAAA,CAAS,CAAE,WAAA,CAAa,IAAK,CAAC,EACnE,mBAAqB,CAAA,CAAC,OAAS,CAAA,CAAE,WAAa,CAAA,wBAAyB,CAAC,CACxE,CAAA,4BAAA,CAA8B,CAAC,OAAO,CACtC,CAAA,4BAAA,CAA8B,CAC5B,OACA,CAAA,CACE,MAAQ,CAAA,cAAA,CACR,uBAAyB,CAAA,KAAA,CACzB,SAAU,qBACZ,CACF,CACA,CAAA,yBAAA,CAA2B,CAAC,OAAA,CAAS,CAAE,eAAiB,CAAA,qBAAA,CAAuB,iBAAkB,OAAQ,CAAC,EAC1G,oBAAsB,CAAA,CAAC,OAAO,CAAA,CAC9B,gCAAkC,CAAA,CAAC,OAAO,CAC1C,CAAA,wBAAA,CAA0B,KAC1B,CAAA,iCAAA,CAAmC,KACnC,CAAA,mBAAA,CAAqB,CACnB,OACA,CAAA,CACE,kBAAoB,CAAA,IAAA,CACpB,iBAAmB,CAAA,IAAA,CACnB,kBAAmB,IACrB,CACF,EACA,mBAAqB,CAAA,KAAA,CAErB,GAAIiD,CAAU,CAAA,OAAA,CAAQ,WAAY,CAAA,KAAA,CAElC,GAAG1D,CACL,CACF,CACA,CAAA,CACE,KAAO,CAAA,CAAC,WAAW,CAAA,CACnB,KAAM,iCACN,CAAA,KAAA,CAAO,CACL,mCAAA,CAAqC,KACrC,CAAA,sBAAA,CAAwB,MACxB,sBAAwB,CAAA,KAAA,CACxB,oBAAqB,KACvB,CACF,EACA,CACE,KAAA,CAAO,CAAC,yBAAyB,CACjC,CAAA,IAAA,CAAM,mCACN,KAAO,CAAA,CACL,uBAAyB,CAAA,KAC3B,CACF,CAAA,CACA,CACE,KAAO,CAAA,CAAC,SAAW,CAAA,UAAA,CAAY,UAAU,CAAA,CACzC,KAAM,iCACN,CAAA,KAAA,CAAO,CACL,uBAAA,CAAyB,KACzB,CAAA,oBAAA,CAAsB,KACxB,CACF,CACF,CACF,CC/FO,SAAS6D,EAAAA,EAAiC,CAC/C,OAAO,CACL,CACE,KAAA,CAAO,CAAC3F,CAAQ,EAChB,IAAM,CAAA,iBAAA,CACN,OAAS,CAAA,CACP,OAAS+D,CAAAA,kBACX,EACA,KAAO,CAAA,CACL,GAAGA,kBAAc,CAAA,OAAA,CAAQ,YAAY,KAErC,CAAA,uBAAA,CAAyB,CAAC,KAAK,CAC/B,CAAA,uBAAA,CAAyB,CAAC,KAAK,CAAA,CAC/B,+BAAiC,CAAA,CAAC,KAAK,CAAA,CACvC,yBAA0B,CAAC,OAAA,CAAS,kBAAkB,CAAA,CACtD,8BAAgC,CAAA,CAC9B,QACA,CACE,cAAA,CAAgB,MAChB,sBAAwB,CAAA,KAC1B,CACF,CACA,CAAA,gCAAA,CAAkC,CAAC,KAAK,CAC1C,CACF,CACF,CACF,CCxBO,SAAS6B,EAA8B,EAAA,CAC5C,OAAO,CACL,CACE,IAAM,CAAA,oBAAA,CACN,QAAS,CACP,GAAA,CAAAC,mBACF,CACF,CAAA,CAEA,CACE,IAAA,CAAM,mBACN,CAAA,GAAGzC,EACH,KAAO,CAAA,CACL,yBAA2B,CAAA,KAAA,CAC3B,gBAAkB,CAAA,KAAA,CAClB,iBAAkB,KACpB,CACF,CAEA,CAAA,CACE,IAAM,CAAA,0BAAA,CACN,GAAGA,CACH,CAAA,KAAA,CAAO,CACL,uBAAA,CAAyB,OACzB,CAAA,kBAAA,CAAoB,QACpB,4BAA8B,CAAA,OAAA,CAC9B,6BAA+B,CAAA,OAAA,CAC/B,6BAA+B,CAAA,OAAA,CAC/B,oBAAqB,OACrB,CAAA,uCAAA,CAAyC,OAC3C,CACF,CAEA,CAAA,CACE,KAAM,uBACN,CAAA,GAAGA,CACH,CAAA,KAAA,CAAO,CACL,mBAAA,CAAqB,QACrB,oBAAsB,CAAA,OAAA,CACtB,mBAAoB,OACpB,CAAA,oBAAA,CAAsB,OACxB,CACF,CAAA,CAEA,CACE,IAAA,CAAM,6BACN,CAAA,GAAGA,EACH,KAAO,CAAA,CAAC,qBAAqB,CAAA,CAC7B,KAAO,CAAA,CACL,gBAAiB,CACf,OAAA,CACA,CACE,KAAA,CAAO,CACL,UAAA,CACA,YACA,qBACA,CAAA,cAAA,CACA,UACA,UAEA,CAAA,2BAAA,CACA,yBACA,oBACA,CAAA,0BAAA,CACA,6BACA,CAAA,wBAAA,CACA,uBACA,CAAA,2BAAA,CACA,oBACA,qBACA,CAAA,wBACF,CACA,CAAA,WAAA,CAAa,IACf,CAAA,CACA,CACE,KAAO,CAAA,CAAE,IAAM,CAAA,KAAM,CACrB,CAAA,WAAA,CAAa,IACf,CACF,CACF,CACF,CAEA,CAAA,CACE,KAAM,uBACN,CAAA,GAAGA,CACH,CAAA,KAAA,CAAO,CACL,2CAAA,CAA6C,MAC7C,8CAAgD,CAAA,KAAA,CAChD,6CAA+C,CAAA,KAAA,CAC/C,gCAAkC,CAAA,KAAA,CAClC,iCAAkC,KAClC,CAAA,mCAAA,CAAqC,KACrC,CAAA,mCAAA,CAAqC,KACrC,CAAA,YAAA,CAAc,MACd,iBAAmB,CAAA,KAAA,CACnB,6BAA+B,CAAA,KAAA,CAC/B,uBAAyB,CAAA,KAAA,CACzB,aAAc,KAChB,CACF,CACF,CACF,CAEA,IAAMA,EAAiB,CACrB,KAAA,CAAO,CAAC5C,CAAS,CACjB,CAAA,eAAA,CAAiB,CACf,MAAA8C,CAAAA,mBACF,CACF,CAAA,CCnDA,SAASwC,CAAiCjE,CAAAA,CAAAA,CAAkCkE,EAAkC,CAC5G,OAAI,OAAOlE,CAAAA,EAAY,SACdA,CAAAA,CAAAA,CAGFA,GAAS,MAAUkE,EAAAA,CAAAA,EAAY,KACxC,CAEA,SAAS5C,CAAAA,CAAUtB,EAAoD,CACrE,GAAI,OAAOA,CAAY,EAAA,SAAA,EAAaA,IAAY,MAC9C,CAAA,OAAO,EAAC,CAGV,GAAM,CAAE,OAAAmE,CAAQ,CAAA,GAAGC,CAAK,CAAA,CAAIpE,CAE5B,CAAA,OAAOoE,CACT,CAEA,eAAsBT,EACpB3D,CAAAA,CAAAA,CAAgC,EAAC,CAAA,GAC9BqE,EAC6B,CAChC,IAAIC,EAEAtE,CAAQ,CAAA,IAAA,GAAS,SACnBsE,CAAcf,CAAAA,aAAAA,CAAO,qBAAqB,CAAA,CAAA,CAG5C,IAAIxC,CAAAA,CAAW,IAAIwD,wCACjB1D,CAAAA,CAAAA,CAAQb,CAAQ,CAAA,OAAO,CACvBgB,CAAAA,CAAAA,CAAWhB,EAAQ,EAAE,CAAA,CACrBf,CAAQ,EAAA,CACRgD,CAAK,EAAA,CACL1C,GACA6B,CAAAA,CAAAA,EACA0C,CAAAA,EAAAA,EACAd,CAAAA,EAAAA,GACAF,EAAO,EAAA,CACP/D,CAAM,EAAA,CACNsC,CAAM,EAAA,CACN5B,GACAsE,CAAAA,EAAAA,EACArC,CAAAA,CAAAA,EACF,CAAA,CAEIuC,EAAQjE,CAAQ,CAAA,KAAA,CAAOwE,wBAAgB,CAAA,OAAO,CAAC,CAAA,GACjDzD,EAAWA,CAAS,CAAA,MAAA,CAAO0C,GAAMnC,CAAOtB,CAAAA,CAAAA,CAAQ,KAAK,CAAC,CAAC,CAGzD,CAAA,CAAA,GAAM,CAAE,SAAA,CAAAC,EAAW,GAAGwE,CAAkB,CAAInD,CAAAA,CAAAA,CAAOtB,CAAQ,CAAA,EAAE,EAE7D,OAAIiE,CAAAA,CAAQjE,CAAQ,CAAA,EAAA,CAAIwE,wBAAgB,CAAA,YAAY,CAAC,CACnDzD,GAAAA,CAAAA,CAAWA,EAAS,MAAO2C,CAAAA,EAAAA,CAAWpC,EAAOtB,CAAQ,CAAA,EAAE,CAAC,CAAC,CAGvDiE,CAAAA,CAAAA,CAAAA,CAAQjE,EAAQ,KAAOwE,CAAAA,wBAAAA,CAAgB,OAAO,CAAC,CACjDzD,GAAAA,CAAAA,CAAWA,EAAS,MAClBwB,CAAAA,EAAAA,CAAM,CACJ,GAAGjB,CAAOtB,CAAAA,CAAAA,CAAQ,KAAK,CACvB,CAAA,GAAGyE,CACL,CAAC,CACH,GAGER,CAAQjE,CAAAA,CAAAA,CAAQ,IAAMwE,CAAAA,wBAAAA,CAAgB,MAAM,CAAC,IAC/CzD,CAAWA,CAAAA,CAAAA,CAAS,MAClBgB,CAAAA,CAAAA,CAAK,CACH,GAAGT,EAAOtB,CAAQ,CAAA,IAAI,CACtB,CAAA,GAAGyE,CACL,CAAC,CACH,CAGER,CAAAA,CAAAA,CAAAA,CAAQjE,CAAQ,CAAA,SAAA,CAAWwE,wBAAgB,CAAA,WAAW,CAAC,CACzDzD,GAAAA,CAAAA,CAAWA,CAAS,CAAA,MAAA,CAClBkC,EAAU,CAAA,CACR,GAAG3B,CAAOtB,CAAAA,CAAAA,CAAQ,SAAS,CAAA,CAC3B,GAAGyE,CACL,CAAC,CACH,CAAA,CAAA,CAGER,CAAQjE,CAAAA,CAAAA,CAAQ,QAAUwE,CAAAA,wBAAAA,CAAgB,aAAa,CAAC,CAAA,GAC1DzD,EAAWA,CAAS,CAAA,MAAA,CAAOqC,GAAS9B,CAAOtB,CAAAA,CAAAA,CAAQ,QAAQ,CAAC,CAAC,CAAA,CAAA,CAI7DiE,EACEjE,CAAQ,CAAA,QAAA,CACRwE,wBAAgB,CAAA,aAAa,CACxBA,EAAAA,wBAAAA,CAAgB,uBAAuB,CACvCA,EAAAA,wBAAAA,CAAgB,gCAAgC,CACvD,CAEAzD,GAAAA,CAAAA,CAAWA,EAAS,MAAOyC,CAAAA,EAAAA,CAASlC,EAAOtB,CAAQ,CAAA,QAAQ,CAAC,CAAC,CAAA,CAAA,CAG3DiE,CAAQjE,CAAAA,CAAAA,CAAQ,OAASwE,CAAAA,wBAAAA,CAAgB,aAAa,CAAKA,EAAAA,wBAAAA,CAAgB,aAAa,CAAC,CAC3FzD,GAAAA,CAAAA,CAAWA,EAAS,MAAOhB,CAAAA,CAAAA,CAAQuB,CAAOtB,CAAAA,CAAAA,CAAQ,OAAO,CAAC,CAAC,CAGzDiE,CAAAA,CAAAA,CAAAA,CAAQjE,EAAQ,OAASwE,CAAAA,wBAAAA,CAAgB,SAAS,CAAC,CAAA,GACrDzD,CAAWA,CAAAA,CAAAA,CAAS,MAAOX,CAAAA,CAAAA,CAAQkB,EAAOtB,CAAQ,CAAA,OAAO,CAAC,CAAC,CAGzDiE,CAAAA,CAAAA,CAAAA,CAAQjE,EAAQ,IAAM,CAAA,CAAC,CAAE,MAAMsE,CAAY,CAAA,GAC7CvD,EAAWA,CAAS,CAAA,MAAA,CAAOoB,EAAK,EAAC,CAGnCpB,CAAAA,CAAAA,CAAAA,CAAWA,EAAS,MAAO,CAAA,GAAGsD,CAAU,CAAA,CAEpCG,wBAAgB,CAAA,UAAU,IAC5BzD,CAAWA,CAAAA,CAAAA,CAAS,MAAOuB,CAAAA,EAAAA,EAAU,CAAA,CAAA,CAGhCvB,EAAS,aAAc5B,CAAAA,CAAa,CAAE,CAAA,SAAA,EAC/C","file":"index.cjs","sourcesContent":["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_CSS = '**/*.css';\n\nexport const GLOB_YAML = '**/*.ya?ml';\n\nexport const GLOB_MARKDOWN = '**/*.md';\nexport const GLOB_MARKDOWN_IN_MARKDOWN = '**/*.md/*.md';\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 pluginAntfu from 'eslint-plugin-antfu';\n\nimport { GLOB_SRC } from '../globs';\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function antfu(): TypedFlatConfigItem[] {\n return [\n {\n files: [GLOB_SRC],\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","import pluginDeMorgan from 'eslint-plugin-de-morgan';\n\nimport { GLOB_SRC } from '../globs';\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function boolean(): TypedFlatConfigItem[] {\n return [\n {\n files: [GLOB_SRC],\n name: '2digits:boolean',\n plugins: {\n boolean: pluginDeMorgan,\n },\n rules: {\n ...pluginDeMorgan.configs.recommended.rules,\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 '@stylistic/eslint-plugin': 'stylistic',\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 'de-morgan': 'boolean',\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 { GLOB_SRC } from '../globs';\nimport type { TypedFlatConfigItem } from '../types';\n\nconst recommended = renamePluginsInRules(configs.recommended.rules as never, PluginNameMap);\n\nexport function comments(): TypedFlatConfigItem[] {\n return [\n {\n files: [GLOB_SRC],\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 plugin from '@eslint/css';\nimport { tailwindSyntax } from '@eslint/css/syntax';\n\nimport { GLOB_CSS } from '../globs';\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function css(): TypedFlatConfigItem[] {\n return [\n {\n name: '2digits:css',\n files: [GLOB_CSS],\n language: 'css/css',\n plugins: {\n css: plugin,\n },\n languageOptions: {\n tolerant: true,\n customSyntax: tailwindSyntax,\n },\n rules: {\n ...plugin.configs.recommended.rules,\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 { GLOB_SRC } from '../globs';\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 files: [GLOB_SRC],\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\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","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 stylistic from '@stylistic/eslint-plugin';\nimport globals from 'globals';\n\nimport { GLOB_SRC } from '../globs';\nimport type { OptionsOverrides, TypedFlatConfigItem } from '../types';\n\nexport function javascript(options: OptionsOverrides = {}): TypedFlatConfigItem[] {\n const { overrides = {} } = options;\n\n return [\n {\n files: [GLOB_SRC],\n name: '2digits:javascript',\n plugins: {\n stylistic,\n },\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 'stylistic/padding-line-between-statements': [\n 'error',\n { blankLine: 'always', prev: ['const', 'let'], next: '*' },\n {\n blankLine: 'any',\n prev: ['const', 'let'],\n next: ['const', 'let'],\n },\n { blankLine: 'always', prev: '*', next: 'return' },\n ],\n\n ...overrides,\n },\n },\n ];\n}\n","import { GLOB_SRC } from '../globs';\nimport type { TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function jsdoc(): Promise<TypedFlatConfigItem[]> {\n return [\n {\n files: [GLOB_SRC],\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 plugin from '@eslint/markdown';\nimport { mergeProcessors, processorPassThrough } from 'eslint-merge-processors';\n\nimport { GLOB_MARKDOWN, GLOB_MARKDOWN_IN_MARKDOWN } from '../globs';\nimport type { TypedFlatConfigItem } from '../types';\n\nconst files = [GLOB_MARKDOWN];\n\nexport function markdown(): TypedFlatConfigItem[] {\n return [\n {\n name: '2digits:markdown/setup',\n plugins: {\n markdown: plugin,\n },\n },\n {\n name: '2digits:markdown/processor',\n files,\n ignores: [GLOB_MARKDOWN_IN_MARKDOWN],\n /**\n * `eslint-plugin-markdown` only creates virtual files for code blocks, but not the markdown file itself. We use\n * `eslint-merge-processors` to add a pass-through processor for the markdown file itself.\n */\n processor: mergeProcessors([plugin.processors.markdown, processorPassThrough]),\n },\n {\n name: '2digits:markdown/parser',\n files,\n languageOptions: {\n parser: parserPlain,\n },\n },\n {\n name: '2digits:markdown/rules',\n files,\n rules: {\n ...Object.fromEntries(plugin.configs.recommended.flatMap(({ rules }) => Object.entries(rules))),\n },\n },\n ];\n}\n\nconst parserPlain = {\n meta: {\n name: 'parser-plain',\n },\n parseForESLint: (code: string) => ({\n ast: {\n body: [],\n comments: [],\n loc: { end: code.length, start: 0 },\n range: [0, code.length],\n tokens: [],\n type: 'Program',\n },\n // eslint-disable-next-line unicorn/no-null\n scopeManager: null,\n services: { isPlain: true },\n visitorKeys: {\n Program: [],\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, 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 { GLOB_SRC } from '../globs';\nimport { pluginNode } from '../plugins';\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function node(): TypedFlatConfigItem[] {\n return [\n {\n files: [GLOB_SRC],\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 jsoncParser from 'jsonc-eslint-parser';\nimport yamlParser from 'yaml-eslint-parser';\n\nimport type { TypedFlatConfigItem } from '../types';\nimport { interopDefault } from '../utils';\n\nexport async function pnpm(): Promise<TypedFlatConfigItem[]> {\n const plugin = await interopDefault(import('eslint-plugin-pnpm'));\n\n return [\n {\n name: '2digits:pnpm/package-json',\n files: ['**/package.json'],\n languageOptions: {\n parser: jsoncParser,\n },\n plugins: {\n pnpm: plugin,\n },\n rules: {\n 'pnpm/json-enforce-catalog': 'error',\n 'pnpm/json-prefer-workspace-settings': 'error',\n 'pnpm/json-valid-catalog': 'error',\n },\n },\n {\n name: '2digits:pnpm/pnpm-workspace-yaml',\n files: ['pnpm-workspace.yaml'],\n languageOptions: {\n parser: yamlParser,\n },\n plugins: {\n pnpm: plugin,\n },\n rules: {\n 'pnpm/yaml-no-duplicate-catalog-item': 'error',\n 'pnpm/yaml-no-unused-catalog-item': '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, stylistic] = await Promise.all([\n interopDefault(import('eslint-config-prettier')),\n interopDefault(import('@stylistic/eslint-plugin')),\n ]);\n\n return [\n {\n name: '2digits:prettier',\n plugins: {\n stylistic,\n },\n rules: {\n ...prettier.rules,\n\n 'tailwindcss/classnames-order': 'off',\n 'stylistic/jsx-newline': ['error', { prevent: false }],\n },\n },\n ];\n}\n","import stylistic from '@stylistic/eslint-plugin';\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, parser, pluginReactCompiler] = await Promise.all([\n interopDefault(import('@eslint-react/eslint-plugin')),\n interopDefault(import('eslint-plugin-react-hooks')),\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 ...pluginReactHooks.configs['recommended-latest'].rules,\n ...pluginReact.configs['recommended-type-checked'].rules,\n },\n PluginNameMap,\n );\n\n return [\n {\n name: '2digits:react/setup',\n plugins: {\n stylistic,\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': pluginReactHooks,\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 'stylistic/jsx-curly-newline': 'off',\n 'stylistic/jsx-newline': ['error', { prevent: false }],\n 'stylistic/jsx-self-closing-comp': 'error',\n\n ...overrides,\n },\n },\n ];\n}\n","import pluginRegexp from 'eslint-plugin-regexp';\n\nimport { GLOB_SRC } from '../globs';\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function regexp(): TypedFlatConfigItem[] {\n return [\n {\n files: [GLOB_SRC],\n name: '2digits:regexp',\n plugins: {\n regexp: pluginRegexp,\n },\n rules: {\n ...pluginRegexp.configs['flat/recommended'].rules,\n },\n },\n ];\n}\n","import { GLOB_SRC } from '../globs';\nimport { pluginSonar } from '../plugins';\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function sonar(): TypedFlatConfigItem[] {\n return [\n {\n files: [GLOB_SRC],\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 { GLOB_SRC } from '../globs';\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 files: [GLOB_SRC],\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 { GLOB_SRC } from '../globs';\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 files: [GLOB_SRC],\n name: '2digits:tanstack',\n plugins: { tanstack },\n rules: {\n ...recommended,\n\n ...overrides,\n },\n },\n ];\n}\n","import { GLOB_SRC } from '../globs';\nimport 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 files: [GLOB_SRC],\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 { GLOB_SRC } from '../globs';\nimport { pluginUnicorn } from '../plugins';\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function unicorn(): TypedFlatConfigItem[] {\n return [\n {\n files: [GLOB_SRC],\n name: '2digits:unicorn',\n plugins: {\n unicorn: pluginUnicorn,\n },\n rules: {\n ...pluginUnicorn.configs.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 yml from 'eslint-plugin-yml';\nimport parser from 'yaml-eslint-parser';\n\nimport { GLOB_YAML } from '../globs';\nimport type { TypedFlatConfigItem } from '../types';\n\nexport function yaml(): TypedFlatConfigItem[] {\n return [\n {\n name: '2digits:yaml/setup',\n plugins: {\n yml,\n },\n },\n\n {\n name: '2digits:yaml/base',\n ...SHARED_OPTIONS,\n rules: {\n 'no-irregular-whitespace': 'off',\n 'no-unused-vars': 'off',\n 'spaced-comment': 'off',\n },\n },\n\n {\n name: '2digits:yaml/recommended',\n ...SHARED_OPTIONS,\n rules: {\n 'yml/no-empty-document': 'error',\n 'yml/no-empty-key': 'error',\n 'yml/no-empty-mapping-value': 'error',\n 'yml/no-empty-sequence-entry': 'error',\n 'yml/no-irregular-whitespace': 'error',\n 'yml/no-tab-indent': 'error',\n 'yml/vue-custom-block/no-parsing-error': 'error',\n },\n },\n\n {\n name: '2digits:yaml/standard',\n ...SHARED_OPTIONS,\n rules: {\n 'yml/block-mapping': 'error',\n 'yml/block-sequence': 'error',\n 'yml/plain-scalar': 'error',\n 'yml/spaced-comment': 'error',\n },\n },\n\n {\n name: '2digits:yaml/pnpm-workspace',\n ...SHARED_OPTIONS,\n files: ['pnpm-workspace.yaml'],\n rules: {\n 'yml/sort-keys': [\n 'error',\n {\n order: [\n 'packages',\n 'overrides',\n 'patchedDependencies',\n 'hoistPattern',\n 'catalog',\n 'catalogs',\n\n 'allowedDeprecatedVersions',\n 'allowNonAppliedPatches',\n 'configDependencies',\n 'ignoredBuiltDependencies',\n 'ignoredOptionalDependencies',\n 'neverBuiltDependencies',\n 'onlyBuiltDependencies',\n 'onlyBuiltDependenciesFile',\n 'packageExtensions',\n 'peerDependencyRules',\n 'supportedArchitectures',\n ],\n pathPattern: '^$',\n },\n {\n order: { type: 'asc' },\n pathPattern: '.*',\n },\n ],\n },\n },\n\n {\n name: '2digits:yaml/prettier',\n ...SHARED_OPTIONS,\n rules: {\n 'yml/block-mapping-colon-indicator-newline': 'off',\n 'yml/block-mapping-question-indicator-newline': 'off',\n 'yml/block-sequence-hyphen-indicator-newline': 'off',\n 'yml/flow-mapping-curly-newline': 'off',\n 'yml/flow-mapping-curly-spacing': 'off',\n 'yml/flow-sequence-bracket-newline': 'off',\n 'yml/flow-sequence-bracket-spacing': 'off',\n 'yml/indent': 'off',\n 'yml/key-spacing': 'off',\n 'yml/no-multiple-empty-lines': 'off',\n 'yml/no-trailing-zeros': 'off',\n 'yml/quotes': 'off',\n },\n },\n ];\n}\n\nconst SHARED_OPTIONS = {\n files: [GLOB_YAML],\n languageOptions: {\n parser,\n },\n} satisfies Pick<TypedFlatConfigItem, 'languageOptions' | 'files'>;\n","import { FlatConfigComposer } from 'eslint-flat-config-utils';\nimport { findUp } from 'find-up';\nimport { isPackageExists } from 'local-pkg';\n\nimport {\n antfu,\n boolean,\n comments,\n css,\n drizzle,\n graphql,\n ignores,\n javascript,\n jsdoc,\n jsonc,\n markdown,\n next,\n node,\n pnpm,\n prettier,\n react,\n regexp,\n sonar,\n storybook,\n tailwind,\n tanstack,\n turbo,\n typescript,\n unicorn,\n yaml,\n} from './configs';\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 pnpm?: SharedOptions | 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\n return rest as T;\n}\n\nexport async function twoDigits(\n options: ESLint2DigitsOptions = {},\n ...userConfig: TypedFlatConfigItem[]\n): Promise<TypedFlatConfigItem[]> {\n let pnpmPromise;\n\n if (options.pnpm === undefined) {\n pnpmPromise = findUp('pnpm-workspace.yaml');\n }\n\n let composer = new FlatConfigComposer<TypedFlatConfigItem, ConfigNames>(\n ignores(options.ignores),\n javascript(options.js),\n boolean(),\n node(),\n comments(),\n jsdoc(),\n unicorn(),\n sonar(),\n regexp(),\n antfu(),\n jsonc(),\n css(),\n yaml(),\n markdown(),\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 if (enabled(options.pnpm, !!(await pnpmPromise))) {\n composer = composer.append(pnpm());\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
@@ -1392,6 +1392,34 @@ Backward pagination arguments
1392
1392
  * @see https://eslint.org/docs/latest/rules/logical-assignment-operators
1393
1393
  */
1394
1394
  'logical-assignment-operators'?: Linter.RuleEntry<LogicalAssignmentOperators>
1395
+ /**
1396
+ * Require languages for fenced code blocks
1397
+ */
1398
+ 'markdown/fenced-code-language'?: Linter.RuleEntry<MarkdownFencedCodeLanguage>
1399
+ /**
1400
+ * Enforce heading levels increment by one
1401
+ */
1402
+ 'markdown/heading-increment'?: Linter.RuleEntry<[]>
1403
+ /**
1404
+ * Disallow duplicate headings in the same document
1405
+ */
1406
+ 'markdown/no-duplicate-headings'?: Linter.RuleEntry<[]>
1407
+ /**
1408
+ * Disallow empty links
1409
+ */
1410
+ 'markdown/no-empty-links'?: Linter.RuleEntry<[]>
1411
+ /**
1412
+ * Disallow HTML tags
1413
+ */
1414
+ 'markdown/no-html'?: Linter.RuleEntry<MarkdownNoHtml>
1415
+ /**
1416
+ * Disallow invalid label references
1417
+ */
1418
+ 'markdown/no-invalid-label-refs'?: Linter.RuleEntry<[]>
1419
+ /**
1420
+ * Disallow missing label references
1421
+ */
1422
+ 'markdown/no-missing-label-refs'?: Linter.RuleEntry<[]>
1395
1423
  /**
1396
1424
  * Enforce a maximum number of classes per file
1397
1425
  * @see https://eslint.org/docs/latest/rules/max-classes-per-file
@@ -2788,7 +2816,7 @@ Backward pagination arguments
2788
2816
  */
2789
2817
  'react-dom/no-find-dom-node'?: Linter.RuleEntry<[]>
2790
2818
  /**
2791
- * warns against using `flushSync`
2819
+ * disallow 'flushSync'
2792
2820
  * @see https://eslint-react.xyz/docs/rules/dom-no-flush-sync
2793
2821
  */
2794
2822
  'react-dom/no-flush-sync'?: Linter.RuleEntry<[]>
@@ -2843,7 +2871,7 @@ Backward pagination arguments
2843
2871
  */
2844
2872
  'react-dom/no-unsafe-target-blank'?: Linter.RuleEntry<[]>
2845
2873
  /**
2846
- * replace usages of 'ReactDom.render()' with 'createRoot(node).render()'
2874
+ * replace the usages of 'useFormState' with 'useActionState'
2847
2875
  * @see https://eslint-react.xyz/docs/rules/dom-no-use-form-state
2848
2876
  */
2849
2877
  'react-dom/no-use-form-state'?: Linter.RuleEntry<[]>
@@ -8906,6 +8934,14 @@ type LinesBetweenClassMembers = []|[({
8906
8934
  type LogicalAssignmentOperators = (([]|["always"]|["always", {
8907
8935
  enforceForIfStatements?: boolean
8908
8936
  }] | ["never"]) & unknown[])
8937
+ // ----- markdown/fenced-code-language -----
8938
+ type MarkdownFencedCodeLanguage = []|[{
8939
+ required?: string[]
8940
+ }]
8941
+ // ----- markdown/no-html -----
8942
+ type MarkdownNoHtml = []|[{
8943
+ allowed?: string[]
8944
+ }]
8909
8945
  // ----- max-classes-per-file -----
8910
8946
  type MaxClassesPerFile = []|[(number | {
8911
8947
  ignoreExpressions?: boolean
@@ -13245,7 +13281,7 @@ type Yoda = []|[("always" | "never")]|[("always" | "never"), {
13245
13281
  onlyEquality?: boolean
13246
13282
  }]
13247
13283
  // Names of all the configs
13248
- type ConfigNames = '2digits:antfu' | '2digits:boolean' | '2digits:comments' | '2digits:css' | '2digits:drizzle' | '2digits:graphql' | '2digits:ignores' | '2digits:gitignore' | '2digits:javascript' | '2digits:jsdoc' | '2digits:jsonc/base' | '2digits:jsonc/base' | '2digits:jsonc/json' | '2digits:jsonc/jsonc' | '2digits:jsonc/json5' | '2digits:jsonc/package.json' | '2digits:jsonc/tsconfig.json' | '2digits:jsonc/prettier' | '2digits:jsonc/prettier' | '2digits:jsonc/prettier' | '2digits:next/setup' | '2digits:next/rules' | '2digits:node' | '2digits:pnpm/package-json' | '2digits:pnpm/pnpm-workspace-yaml' | '2digits:prettier' | '2digits:react/setup' | '2digits:react/rules' | '2digits:regexp' | '2digits:sonar' | '2digits:storybook/setup' | '2digits:storybook/rules' | '2digits:storybook/disables' | '2digits:storybook/config' | '2digits:tailwind' | '2digits:tanstack' | '2digits:turbo' | '2digits:typescript/setup' | '2digits:typescript/rules' | '2digits:typescript/disables/dts' | '2digits:typescript/disables/test' | '2digits:typescript/disables/cjs' | '2digits:unicorn' | '2digits:yaml/setup' | '2digits:yaml/base' | '2digits:yaml/recommended' | '2digits:yaml/standard' | '2digits:yaml/pnpm-workspace' | '2digits:yaml/prettier'
13284
+ type ConfigNames = '2digits:antfu' | '2digits:boolean' | '2digits:comments' | '2digits:css' | '2digits:drizzle' | '2digits:graphql' | '2digits:ignores' | '2digits:gitignore' | '2digits:javascript' | '2digits:jsdoc' | '2digits:jsonc/base' | '2digits:jsonc/base' | '2digits:jsonc/json' | '2digits:jsonc/jsonc' | '2digits:jsonc/json5' | '2digits:jsonc/package.json' | '2digits:jsonc/tsconfig.json' | '2digits:jsonc/prettier' | '2digits:jsonc/prettier' | '2digits:jsonc/prettier' | '2digits:markdown/setup' | '2digits:markdown/processor' | '2digits:markdown/parser' | '2digits:markdown/rules' | '2digits:next/setup' | '2digits:next/rules' | '2digits:node' | '2digits:pnpm/package-json' | '2digits:pnpm/pnpm-workspace-yaml' | '2digits:prettier' | '2digits:react/setup' | '2digits:react/rules' | '2digits:regexp' | '2digits:sonar' | '2digits:storybook/setup' | '2digits:storybook/rules' | '2digits:storybook/disables' | '2digits:storybook/config' | '2digits:tailwind' | '2digits:tanstack' | '2digits:turbo' | '2digits:typescript/setup' | '2digits:typescript/rules' | '2digits:typescript/disables/dts' | '2digits:typescript/disables/test' | '2digits:typescript/disables/cjs' | '2digits:unicorn' | '2digits:yaml/setup' | '2digits:yaml/base' | '2digits:yaml/recommended' | '2digits:yaml/standard' | '2digits:yaml/pnpm-workspace' | '2digits:yaml/prettier'
13249
13285
 
13250
13286
  type Rules = RuleOptions;
13251
13287
  interface TypedFlatConfigItem extends Omit<Linter.Config<Linter.RulesRecord & Rules>, 'plugins' | 'languageOptions'> {
@@ -13326,6 +13362,8 @@ declare function jsdoc(): Promise<TypedFlatConfigItem[]>;
13326
13362
 
13327
13363
  declare function jsonc(): TypedFlatConfigItem[];
13328
13364
 
13365
+ declare function markdown(): TypedFlatConfigItem[];
13366
+
13329
13367
  declare function next(options?: OptionsWithFiles & OptionsTypeScriptWithTypes): Promise<TypedFlatConfigItem[]>;
13330
13368
 
13331
13369
  declare function node(): TypedFlatConfigItem[];
@@ -13373,4 +13411,4 @@ interface ESLint2DigitsOptions {
13373
13411
  }
13374
13412
  declare function twoDigits(options?: ESLint2DigitsOptions, ...userConfig: TypedFlatConfigItem[]): Promise<TypedFlatConfigItem[]>;
13375
13413
 
13376
- export { type ConfigNames, type OptionsOverrides, type OptionsTypeScriptWithTypes, type OptionsWithDrizzle, type OptionsWithFiles, type OptionsWithIgnores, type OptionsWithReact, type OptionsWithStorybook, type Rules, type TypedFlatConfigItem, antfu, boolean, comments, css, twoDigits as default, drizzle, graphql, ignores, javascript, jsdoc, jsonc, next, node, pnpm, prettier, react, regexp, sonar, storybook, tailwind, tanstack, turbo, twoDigits, typescript, unicorn, yaml };
13414
+ export { type ConfigNames, type OptionsOverrides, type OptionsTypeScriptWithTypes, type OptionsWithDrizzle, type OptionsWithFiles, type OptionsWithIgnores, type OptionsWithReact, type OptionsWithStorybook, type Rules, type TypedFlatConfigItem, antfu, boolean, comments, css, twoDigits as default, drizzle, graphql, ignores, javascript, jsdoc, jsonc, markdown, next, node, pnpm, prettier, react, regexp, sonar, storybook, tailwind, tanstack, turbo, twoDigits, typescript, unicorn, yaml };