@solvro/config 1.8.2 → 1.8.3

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.
@@ -911,7 +911,7 @@ var adonisConfig = [
911
911
  },
912
912
  {
913
913
  selector: "variable",
914
- format: ["camelCase", "UPPER_CASE"],
914
+ format: ["camelCase", "UPPER_CASE", "PascalCase"],
915
915
  leadingUnderscore: "allow",
916
916
  trailingUnderscore: "allow"
917
917
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/eslint/index.ts","../../src/eslint/configs/a11y.ts","../../src/eslint/plugins.ts","../../src/eslint/configs/comments.ts","../../src/eslint/configs/disables.ts","../../src/eslint/globs.ts","../../src/eslint/configs/formatters.ts","../../src/eslint/configs/ignores.ts","../../src/eslint/configs/imports.ts","../../src/eslint/configs/javascript.ts","../../src/eslint/configs/jsdoc.ts","../../src/eslint/configs/node.ts","../../src/eslint/configs/react.ts","../../src/eslint/configs/typescript-relaxed.ts","../../src/eslint/configs/typescript-strict.ts","../../src/eslint/configs/unicorn.ts"],"sourcesContent":["import { findUpSync } from \"find-up-simple\";\nimport { isPackageExists } from \"local-pkg\";\nimport path from \"node:path\";\nimport tseslint from \"typescript-eslint\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { configApp } from \"@adonisjs/eslint-config\";\n\nimport { a11y } from \"./configs/a11y\";\nimport { comments } from \"./configs/comments\";\nimport { disables } from \"./configs/disables\";\nimport { formatters } from \"./configs/formatters\";\nimport { ignores } from \"./configs/ignores\";\nimport { imports } from \"./configs/imports\";\nimport { javascript } from \"./configs/javascript\";\nimport { jsdoc } from \"./configs/jsdoc\";\nimport { node } from \"./configs/node\";\nimport { react } from \"./configs/react\";\nimport { typescriptRelaxed } from \"./configs/typescript-relaxed\";\nimport { typescriptStrict } from \"./configs/typescript-strict\";\nimport { unicorn } from \"./configs/unicorn\";\n\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call\nconst builtinAdonisConfig: ConfigWithExtends[] = configApp();\n\nconst adonisConfig: ConfigWithExtends[] = [\n ...builtinAdonisConfig,\n ...node(),\n ...imports(),\n {\n rules: {\n \"@typescript-eslint/naming-convention\": [\n \"error\",\n {\n selector: [\"enum\", \"enumMember\", \"class\", \"interface\", \"typeLike\"],\n format: [\"PascalCase\"],\n },\n {\n selector: [\"classProperty\", \"classMethod\", \"method\", \"variableLike\"],\n format: [\"camelCase\"],\n },\n {\n selector: \"variable\",\n format: [\"camelCase\", \"UPPER_CASE\"],\n leadingUnderscore: \"allow\",\n trailingUnderscore: \"allow\",\n },\n ],\n },\n },\n];\n\nconst nextjsConfig: ConfigWithExtends[] = [\n ...a11y(),\n ...unicorn(),\n ...typescriptStrict(),\n ...react(),\n ...imports({ forbidDefaultExport: true }),\n];\n\nconst configs: ConfigWithExtends[] = [\n ...javascript(),\n ...jsdoc(),\n ...comments(),\n ...typescriptRelaxed(),\n];\n\nconst defaultOverrides = [...ignores(), ...formatters(), ...disables()];\n\nexport const solvro = (...overrides: ConfigWithExtends[]) => {\n const isAdonis = isPackageExists(\"@adonisjs/core\");\n const isNext = isPackageExists(\"next\");\n\n if (isNext && isAdonis) {\n throw new Error(\n \"You can't use both Adonis and Next.js in the same project\",\n );\n }\n\n const newConfig: ConfigWithExtends[] = [];\n\n if (isAdonis) {\n newConfig.push(...adonisConfig);\n }\n\n if (isNext) {\n newConfig.push(...nextjsConfig);\n }\n\n const tsConfigPath = findUpSync(\"tsconfig.json\", {\n cwd: process.cwd(),\n });\n\n if (tsConfigPath == null) {\n throw new Error(\"No tsconfig.json found\");\n }\n\n const rootDirectory = path.dirname(tsConfigPath);\n\n configs.push({\n languageOptions: {\n parserOptions: {\n projectService: true,\n tsconfigRootDir: rootDirectory,\n },\n },\n });\n\n return tseslint.config(\n ...configs,\n ...newConfig,\n ...defaultOverrides,\n ...overrides,\n );\n};\n","import jsxA11y from \"eslint-plugin-jsx-a11y\";\nimport globals from \"globals\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nexport function a11y(): ConfigWithExtends[] {\n return [\n {\n files: [\"**/*.{js,mjs,cjs,jsx,mjsx,ts,tsx,mtsx}\"],\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n ...jsxA11y.flatConfigs.recommended,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n languageOptions: {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n ...jsxA11y.flatConfigs.recommended.languageOptions,\n globals: {\n ...globals.serviceworker,\n ...globals.browser,\n },\n },\n settings: {\n \"jsx-a11y\": {\n components: {\n Input: \"input\",\n Button: \"button\",\n Link: \"a\",\n Label: \"label\",\n Select: \"select\",\n Textarea: \"textarea\",\n },\n attributes: {\n for: [\"htmlFor\", \"for\"],\n },\n },\n },\n },\n ];\n}\n","//@ts-expect-error not working\nexport { default as pluginComments } from \"@eslint-community/eslint-plugin-eslint-comments\";\nexport { default as pluginAntfu } from \"eslint-plugin-antfu\";\n//@ts-expect-error not working too\nexport { default as pluginImport } from \"eslint-plugin-import\";\nexport { default as pluginNode } from \"eslint-plugin-n\";\nexport { default as pluginUnicorn } from \"eslint-plugin-unicorn\";\nexport { default as pluginUnusedImports } from \"eslint-plugin-unused-imports\";\n","import type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginComments } from \"../plugins\";\n\nexport function comments(): ConfigWithExtends[] {\n return [\n {\n name: \"solvro/eslint-comments/rules\",\n plugins: {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n \"eslint-comments\": pluginComments,\n },\n rules: {\n \"eslint-comments/no-aggregating-enable\": \"error\",\n \"eslint-comments/no-duplicate-disable\": \"error\",\n \"eslint-comments/no-unlimited-disable\": \"error\",\n \"eslint-comments/no-unused-enable\": \"error\",\n },\n },\n ];\n}\n","import tseslint, { type ConfigWithExtends } from \"typescript-eslint\";\n\nimport { GLOB_SRC, GLOB_SRC_EXT } from \"../globs\";\n\nexport function disables(): ConfigWithExtends[] {\n return [\n {\n files: [`**/scripts/${GLOB_SRC}`],\n name: \"solvro/disables/scripts\",\n rules: {\n \"antfu/no-top-level-await\": \"off\",\n \"no-console\": \"off\",\n \"@typescript-eslint/explicit-function-return-type\": \"off\",\n },\n },\n {\n rules: {\n \"prettier/prettier\": \"off\",\n },\n },\n {\n files: [`**/cli/${GLOB_SRC}`, `**/cli.${GLOB_SRC_EXT}`],\n name: \"solvro/disables/cli\",\n rules: {\n \"antfu/no-top-level-await\": \"off\",\n \"no-console\": \"off\",\n },\n },\n {\n files: [\"**/bin/**/*\", `**/bin.${GLOB_SRC_EXT}`],\n name: \"solvro/disables/bin\",\n rules: {\n \"antfu/no-import-dist\": \"off\",\n \"antfu/no-import-node-modules-by-path\": \"off\",\n },\n },\n {\n files: [\"**/*.d.?([cm])ts\"],\n name: \"solvro/disables/dts\",\n rules: {\n \"eslint-comments/no-unlimited-disable\": \"off\",\n \"import-x/no-duplicates\": \"off\",\n \"no-restricted-syntax\": \"off\",\n \"unused-imports/no-unused-vars\": \"off\",\n },\n },\n {\n files: [\"**/*.js\", \"**/*.cjs\"],\n name: \"solvro/disables/cjs\",\n rules: {\n \"@typescript-eslint/no-require-imports\": \"off\",\n },\n },\n {\n files: [`**/*.config.${GLOB_SRC_EXT}`, `**/*.config.*.${GLOB_SRC_EXT}`],\n name: \"solvro/disables/config-files\",\n rules: {\n \"antfu/no-top-level-await\": \"off\",\n \"no-console\": \"off\",\n \"@typescript-eslint/explicit-function-return-type\": \"off\",\n },\n },\n {\n files: [\"**/*.js\"],\n extends: [tseslint.configs.disableTypeChecked],\n },\n ];\n}\n","export const GLOB_SRC_EXT = \"?([cm])[jt]s?(x)\";\nexport const GLOB_SRC = \"**/*.?([cm])[jt]s?(x)\";\n\nexport const GLOB_JS = \"**/*.?([cm])js\";\nexport const GLOB_JSX = \"**/*.?([cm])jsx\";\n\nexport const GLOB_TS = \"**/*.?([cm])ts\";\nexport const GLOB_TSX = \"**/*.?([cm])tsx\";\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 \"**/build\",\n \"**/output\",\n \"**/coverage\",\n \"**/temp\",\n \"**/.temp\",\n \"**/tmp\",\n \"**/.tmp\",\n \"**/.history\",\n \"**/.vitepress/cache\",\n \"**/.nuxt\",\n \"**/.next\",\n \"**/.svelte-kit\",\n \"**/.vercel\",\n \"**/.changeset\",\n \"**/.idea\",\n \"**/.cache\",\n \"**/.output\",\n \"**/.vite-inspect\",\n \"**/.yarn\",\n \"**/vite.config.*.timestamp-*\",\n\n \"**/CHANGELOG*.md\",\n \"**/*.min.*\",\n \"**/LICENSE*\",\n \"**/__snapshots__\",\n \"**/auto-import?(s).d.ts\",\n \"**/components.d.ts\",\n];\n","import prettierConfig from \"eslint-config-prettier\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nexport function formatters(): ConfigWithExtends[] {\n return [\n {\n name: \"solvro/prettier\",\n rules: {\n ...prettierConfig.rules,\n curly: \"error\",\n },\n },\n ];\n}\n","import type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { GLOB_EXCLUDE } from \"../globs\";\n\nexport function ignores(): ConfigWithExtends[] {\n return [\n {\n ignores: [...GLOB_EXCLUDE],\n name: \"solvro/ignores\",\n },\n ];\n}\n","import type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginAntfu, pluginImport } from \"../plugins\";\n\nexport function imports(\n options: { forbidDefaultExport: boolean } = { forbidDefaultExport: false },\n): ConfigWithExtends[] {\n const config = [\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n pluginImport.flatConfigs.typescript,\n {\n name: \"solvro/imports/rules\",\n plugins: {\n antfu: pluginAntfu,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n import: pluginImport,\n },\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n rules: {\n \"antfu/import-dedupe\": \"error\",\n \"antfu/no-import-dist\": \"error\",\n \"antfu/no-import-node-modules-by-path\": \"error\",\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n ...pluginImport.flatConfigs.recommended.rules,\n \"import/no-dynamic-require\": \"warn\",\n \"import/no-unresolved\": \"off\",\n \"import/consistent-type-specifier-style\": \"warn\",\n \"@typescript-eslint/no-restricted-imports\": [\n \"error\",\n {\n paths: [\n {\n name: \"axios\",\n message: \"Please use fetch instead\",\n },\n ],\n },\n ],\n },\n },\n ];\n\n if (options.forbidDefaultExport) {\n config.push(\n {\n \"import/no-default-export\": \"error\",\n },\n {\n files: [\n \"tsup.config.*\",\n \"eslint.config.*\",\n \".commitlintrc.*\",\n \"knip.*\",\n \"next.config.*\",\n \"commitlint.config.*\",\n \".releaserc.*\",\n ],\n rules: {\n \"import/no-default-export\": \"off\",\n },\n },\n );\n }\n\n return config;\n}\n","import eslint from \"@eslint/js\";\nimport globals from \"globals\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginAntfu, pluginUnusedImports } from \"../plugins\";\n\nexport function javascript(): ConfigWithExtends[] {\n return [\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 name: \"solvro/javascript/setup\",\n },\n {\n name: \"solvro/javascript/rules\",\n plugins: {\n antfu: pluginAntfu,\n \"unused-imports\": pluginUnusedImports,\n },\n rules: {\n ...eslint.configs.recommended.rules,\n \"accessor-pairs\": [\n \"error\",\n { enforceForClassMembers: true, setWithoutGet: true },\n ],\n curly: \"error\",\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\": [\n \"error\",\n { capIsNew: false, newIsCap: true, properties: true },\n ],\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-console\": [\"error\", { allow: [\"warn\", \"error\"] }],\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:\n \"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 \"TSEnumDeclaration[const=true]\",\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-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\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-useless-return\": \"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: false,\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 \"unused-imports/no-unused-imports\": \"error\",\n \"unused-imports/no-unused-vars\": [\n \"error\",\n {\n args: \"after-used\",\n argsIgnorePattern: \"^_\",\n ignoreRestSiblings: true,\n vars: \"all\",\n varsIgnorePattern: \"^_\",\n },\n ],\n \"use-isnan\": [\n \"error\",\n { enforceForIndexOf: true, enforceForSwitchCase: true },\n ],\n \"valid-typeof\": [\"error\", { requireStringLiterals: true }],\n \"vars-on-top\": \"error\",\n yoda: [\"error\", \"never\"],\n },\n },\n ];\n}\n","import jsdocPlugin from \"eslint-plugin-jsdoc\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nexport function jsdoc(): ConfigWithExtends[] {\n return [\n {\n name: \"solvro/jsdoc/rules\",\n plugins: {\n jsdoc: jsdocPlugin,\n },\n rules: {\n \"jsdoc/check-access\": \"warn\",\n \"jsdoc/check-param-names\": \"warn\",\n \"jsdoc/check-property-names\": \"warn\",\n \"jsdoc/check-types\": \"warn\",\n \"jsdoc/empty-tags\": \"warn\",\n \"jsdoc/implements-on-classes\": \"warn\",\n \"jsdoc/no-defaults\": \"warn\",\n \"jsdoc/no-multi-asterisks\": \"warn\",\n \"jsdoc/require-param-name\": \"warn\",\n \"jsdoc/require-property\": \"warn\",\n \"jsdoc/require-property-description\": \"warn\",\n \"jsdoc/require-property-name\": \"warn\",\n \"jsdoc/require-returns-check\": \"warn\",\n \"jsdoc/require-returns-description\": \"warn\",\n \"jsdoc/require-yields-check\": \"warn\",\n },\n },\n ];\n}\n","import type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginNode } from \"../plugins\";\n\nexport function node(): ConfigWithExtends[] {\n return [\n {\n name: \"solvro/node/rules\",\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/prefer-global/buffer\": [\"error\"],\n \"node/prefer-global/process\": [\"error\"],\n \"node/process-exit-as-throw\": \"error\",\n },\n },\n ];\n}\n","// @ts-expect-error ???\nimport nextPlugin from \"@next/eslint-plugin-next\";\nimport pluginReact from \"eslint-plugin-react\";\nimport pluginReactHooks from \"eslint-plugin-react-hooks\";\nimport { isPackageExists } from \"local-pkg\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nconst nextJsPackages = [\"next\"];\n\nconst forbiddenLibraries = [\n \"@headlessui/react\",\n \"@mui/material\",\n \"@chakra-ui/react\",\n \"@chakra-ui/core\",\n \"@nextui-org/react\",\n \"react-bootstrap\",\n \"antd\",\n];\n\nexport function react(): ConfigWithExtends[] {\n const isUsingNext = nextJsPackages.some((index) => isPackageExists(index));\n\n const nextjsConfig: ConfigWithExtends[] = [];\n\n if (isUsingNext) {\n nextjsConfig.push(\n {\n name: \"solvro/next/setup\",\n plugins: {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n \"@next/next\": nextPlugin,\n },\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n rules: nextPlugin.configs.recommended.rules,\n },\n {\n files: [\n \"**/app/**/{page,loading,layout}.{js,jsx,ts,tsx}\",\n \"**/pages/**/*.{js,jsx,ts,tsx}\",\n ],\n name: \"solvro/next/pages\",\n rules: {\n \"import/no-default-export\": \"off\",\n },\n },\n );\n }\n\n return [\n {\n name: \"solvro/react/setup\",\n plugins: {\n // @ts-expect-error ???\n react: pluginReact,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n \"react-hooks\": pluginReactHooks,\n },\n },\n ...nextjsConfig,\n {\n files: [\"**/*.{js,jsx,mjs,cjs,ts,tsx}\"],\n languageOptions: {\n parserOptions: {\n ecmaFeatures: {\n jsx: true,\n },\n },\n sourceType: \"module\",\n },\n settings: {\n react: {\n version: \"detect\",\n },\n },\n name: \"solvro/react/rules\",\n rules: {\n ...pluginReact.configs.flat?.recommended.rules,\n ...pluginReact.configs.flat?.[\"jsx-runtime\"].rules,\n \"react/no-danger\": \"warn\",\n \"react/jsx-no-leaked-render\": \"warn\",\n // recommended rules react-hooks\n \"react-hooks/exhaustive-deps\": \"warn\",\n \"react-hooks/rules-of-hooks\": \"error\",\n \"react/jsx-no-useless-fragment\": \"error\",\n \"react/function-component-definition\": [\n \"error\",\n {\n unnamedComponents: \"arrow-function\",\n namedComponents: \"function-declaration\",\n },\n ],\n \"react/hook-use-state\": [\n \"error\",\n {\n allowDestructuredState: true,\n },\n ],\n \"react/no-array-index-key\": \"warn\",\n \"@typescript-eslint/no-restricted-imports\": [\n \"error\",\n {\n paths: forbiddenLibraries.map((library) => ({\n name: library,\n message: `Please use ui.shadcn.com components instead.`,\n })),\n },\n ],\n },\n },\n {\n name: \"solvro/react/disables\",\n files: [\"**/components/ui/*.{jsx,tsx}\"],\n rules: {\n \"react/prop-types\": \"off\",\n \"no-shadow\": \"off\",\n \"@typescript-eslint/no-shadow\": \"off\",\n \"@typescript-eslint/restrict-template-expressions\": \"off\",\n \"unicorn/no-document-cookie\": \"off\",\n \"@typescript-eslint/no-redeclare\": \"off\",\n \"@typescript-eslint/no-deprecated\": \"off\",\n },\n },\n ];\n}\n","import tseslint from \"typescript-eslint\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nexport function typescriptRelaxed(): ConfigWithExtends[] {\n return [\n ...tseslint.configs.recommendedTypeChecked,\n ...tseslint.configs.stylisticTypeChecked,\n {\n name: \"solvro/typescript-relaxed/rules\",\n rules: {\n \"@typescript-eslint/no-unsafe-return\": \"off\",\n \"@typescript-eslint/require-await\": \"off\",\n \"@typescript-eslint/no-misused-promises\": [\n \"error\",\n {\n checksVoidReturn: false,\n },\n ],\n \"unused-imports/no-unused-vars\": \"off\",\n \"@typescript-eslint/no-unused-vars\": [\n \"error\",\n {\n args: \"all\",\n argsIgnorePattern: \"^_\",\n destructuredArrayIgnorePattern: \"^_\",\n varsIgnorePattern: \"^_\",\n ignoreRestSiblings: true,\n },\n ],\n \"@typescript-eslint/no-empty-object-type\": \"off\",\n \"@typescript-eslint/no-unnecessary-condition\": \"warn\",\n },\n },\n ];\n}\n","import tseslint from \"typescript-eslint\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginAntfu } from \"../plugins\";\n\nexport function typescriptStrict(): ConfigWithExtends[] {\n return [\n ...tseslint.configs.strictTypeChecked,\n ...tseslint.configs.stylisticTypeChecked,\n {\n name: \"solvro/typescript-strict/setup\",\n plugins: {\n antfu: pluginAntfu,\n },\n },\n {\n files: [\"**/*.{ts,tsx}\"],\n name: \"solvro/typescript-strict/rules\",\n rules: {\n \"@typescript-eslint/ban-ts-comment\": [\n \"error\",\n { \"ts-expect-error\": \"allow-with-description\" },\n ],\n \"@typescript-eslint/consistent-type-definitions\": [\n \"error\",\n \"interface\",\n ],\n \"@typescript-eslint/consistent-type-imports\": [\n \"error\",\n {\n disallowTypeAnnotations: false,\n prefer: \"type-imports\",\n },\n ],\n \"@typescript-eslint/method-signature-style\": [\"error\", \"property\"], // https://www.totaltypescript.com/method-shorthand-syntax-considered-harmful\n \"@typescript-eslint/no-dupe-class-members\": \"error\",\n \"@typescript-eslint/no-empty-object-type\": [\n \"error\",\n { allowInterfaces: \"always\" },\n ],\n \"@typescript-eslint/no-import-type-side-effects\": \"error\",\n \"@typescript-eslint/no-redeclare\": [\"error\", { builtinGlobals: false }],\n \"@typescript-eslint/no-require-imports\": \"error\",\n \"@typescript-eslint/no-unused-expressions\": [\n \"error\",\n {\n allowShortCircuit: true,\n allowTaggedTemplates: true,\n allowTernary: true,\n },\n ],\n \"@typescript-eslint/no-use-before-define\": [\n \"error\",\n { classes: false, functions: false, variables: true },\n ],\n \"@typescript-eslint/no-wrapper-object-types\": \"error\",\n // prevent unnecessary use of void operator\n \"@typescript-eslint/no-meaningless-void-operator\": \"error\",\n // \"using non-null assertions cancels the benefits of the strict\n // null-checking mode.\"\n // warn when one of the types in union / intersection overrides others\n \"@typescript-eslint/no-redundant-type-constituents\": \"warn\",\n // prevent variables shadowing\n \"no-shadow\": \"error\",\n \"@typescript-eslint/no-shadow\": \"error\",\n // prevent assignment of this, signals a wrong usage of it\n \"@typescript-eslint/no-this-alias\": \"error\",\n // prevent throwing non-error\n \"no-throw-literal\": \"off\",\n\n // prevent unnecessary explicitly adding a default type argument\n \"@typescript-eslint/no-unnecessary-type-arguments\": \"error\",\n // prevent unnecessary assertions that won't change the outcome\n \"@typescript-eslint/no-unnecessary-type-assertion\": \"error\",\n // prevent extending default types\n \"@typescript-eslint/no-unnecessary-type-constraint\": \"error\",\n // force typing out function arguments\n \"@typescript-eslint/no-unsafe-argument\": \"error\",\n // prevent usage of any via reassigning\n \"@typescript-eslint/no-unsafe-assignment\": \"error\",\n // prevent usage of any via calling it\n \"@typescript-eslint/no-unsafe-call\": \"error\",\n // prevent usage of any via using it's members\n \"@typescript-eslint/no-unsafe-member-access\": \"error\",\n // prevent reverting any from functions\n \"@typescript-eslint/no-unsafe-return\": \"error\",\n // prevent unused expressions\n \"no-unused-expressions\": \"off\",\n // var<'string'> = 'string' -> var = 'string' as const\n \"@typescript-eslint/prefer-as-const\": \"error\",\n // force initializing enums\n \"@typescript-eslint/prefer-enum-initializers\": \"error\",\n // prefer for x of obj to for let i = 0...\n \"@typescript-eslint/prefer-for-of\": \"error\",\n // prefer includes() to indexOf()\n \"@typescript-eslint/prefer-includes\": \"error\",\n // use literals for enum initialization\n \"@typescript-eslint/prefer-literal-enum-member\": \"error\",\n // prefer safe cascade of a value when dealing with undefined or null\n \"@typescript-eslint/prefer-nullish-coalescing\": \"error\",\n // prefer optional chaining (a?.b)\n \"@typescript-eslint/prefer-optional-chain\": \"error\",\n // prefer using type parameter for Array.reduce\n \"@typescript-eslint/prefer-reduce-type-parameter\": \"error\",\n // prefer RegExp#exec when no /g flag in regex\n \"@typescript-eslint/prefer-regexp-exec\": \"error\",\n // enforce `this` as a type when stating type for a method\n \"@typescript-eslint/prefer-return-this-type\": \"error\",\n // enforce startsWith to indexOf === 0\n \"@typescript-eslint/prefer-string-starts-ends-with\": \"error\",\n // prevents default behavior of .sort() - which is confusing\n \"@typescript-eslint/require-array-sort-compare\": \"error\",\n // no async functions without awaits in body\n \"require-await\": \"off\",\n \"@typescript-eslint/require-await\": \"error\",\n // prevent number + string\n \"@typescript-eslint/restrict-plus-operands\": \"error\",\n // only allow string in templates\n \"@typescript-eslint/restrict-template-expressions\": \"error\",\n // prevent returning await\n \"no-return-await\": \"off\",\n \"@typescript-eslint/return-await\": \"error\",\n // only booleans in ifs and whiles\n \"@typescript-eslint/strict-boolean-expressions\": \"error\",\n // check if all paths are followed in code\n \"@typescript-eslint/switch-exhaustiveness-check\": \"error\",\n \"dot-notation\": \"off\",\n \"no-implied-eval\": \"off\",\n \"@typescript-eslint/await-thenable\": \"error\",\n \"@typescript-eslint/dot-notation\": [\"error\", { allowKeywords: true }],\n \"@typescript-eslint/no-floating-promises\": \"error\",\n \"@typescript-eslint/no-for-in-array\": \"error\",\n \"@typescript-eslint/no-implied-eval\": \"error\",\n \"@typescript-eslint/no-misused-promises\": \"error\",\n \"@typescript-eslint/promise-function-async\": \"error\",\n \"@typescript-eslint/unbound-method\": \"error\",\n \"no-restricted-imports\": \"off\",\n },\n },\n ];\n}\n","import type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginUnicorn } from \"../plugins\";\n\nexport function unicorn(): ConfigWithExtends[] {\n return [\n {\n name: \"solvro/unicorn/rules\",\n plugins: {\n unicorn: pluginUnicorn,\n },\n rules: {\n ...pluginUnicorn.configs[\"flat/recommended\"].rules,\n \"unicorn/no-array-reduce\": \"off\",\n \"unicorn/no-null\": \"off\",\n \"unicorn/no-useless-switch-case\": \"off\",\n \"unicorn/prefer-global-this\": \"off\",\n \"unicorn/prevent-abbreviations\": [\n \"error\",\n {\n replacements: {\n env: false,\n envs: false,\n props: false,\n prop: false,\n ref: false,\n },\n },\n ],\n },\n },\n ];\n}\n"],"mappings":"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","names":["import_local_pkg","import_typescript_eslint","jsxA11y","globals","tseslint","prettierConfig","import_globals","globals","eslint","jsdocPlugin","nextjsConfig","nextPlugin","pluginReact","pluginReactHooks","import_typescript_eslint","tseslint","import_typescript_eslint","tseslint","path","tseslint"]}
1
+ {"version":3,"sources":["../../src/eslint/index.ts","../../src/eslint/configs/a11y.ts","../../src/eslint/plugins.ts","../../src/eslint/configs/comments.ts","../../src/eslint/configs/disables.ts","../../src/eslint/globs.ts","../../src/eslint/configs/formatters.ts","../../src/eslint/configs/ignores.ts","../../src/eslint/configs/imports.ts","../../src/eslint/configs/javascript.ts","../../src/eslint/configs/jsdoc.ts","../../src/eslint/configs/node.ts","../../src/eslint/configs/react.ts","../../src/eslint/configs/typescript-relaxed.ts","../../src/eslint/configs/typescript-strict.ts","../../src/eslint/configs/unicorn.ts"],"sourcesContent":["import { findUpSync } from \"find-up-simple\";\nimport { isPackageExists } from \"local-pkg\";\nimport path from \"node:path\";\nimport tseslint from \"typescript-eslint\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { configApp } from \"@adonisjs/eslint-config\";\n\nimport { a11y } from \"./configs/a11y\";\nimport { comments } from \"./configs/comments\";\nimport { disables } from \"./configs/disables\";\nimport { formatters } from \"./configs/formatters\";\nimport { ignores } from \"./configs/ignores\";\nimport { imports } from \"./configs/imports\";\nimport { javascript } from \"./configs/javascript\";\nimport { jsdoc } from \"./configs/jsdoc\";\nimport { node } from \"./configs/node\";\nimport { react } from \"./configs/react\";\nimport { typescriptRelaxed } from \"./configs/typescript-relaxed\";\nimport { typescriptStrict } from \"./configs/typescript-strict\";\nimport { unicorn } from \"./configs/unicorn\";\n\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call\nconst builtinAdonisConfig: ConfigWithExtends[] = configApp();\n\nconst adonisConfig: ConfigWithExtends[] = [\n ...builtinAdonisConfig,\n ...node(),\n ...imports(),\n {\n rules: {\n \"@typescript-eslint/naming-convention\": [\n \"error\",\n {\n selector: [\"enum\", \"enumMember\", \"class\", \"interface\", \"typeLike\"],\n format: [\"PascalCase\"],\n },\n {\n selector: [\"classProperty\", \"classMethod\", \"method\", \"variableLike\"],\n format: [\"camelCase\"],\n },\n {\n selector: \"variable\",\n format: [\"camelCase\", \"UPPER_CASE\", \"PascalCase\"],\n leadingUnderscore: \"allow\",\n trailingUnderscore: \"allow\",\n },\n ],\n },\n },\n];\n\nconst nextjsConfig: ConfigWithExtends[] = [\n ...a11y(),\n ...unicorn(),\n ...typescriptStrict(),\n ...react(),\n ...imports({ forbidDefaultExport: true }),\n];\n\nconst configs: ConfigWithExtends[] = [\n ...javascript(),\n ...jsdoc(),\n ...comments(),\n ...typescriptRelaxed(),\n];\n\nconst defaultOverrides = [...ignores(), ...formatters(), ...disables()];\n\nexport const solvro = (...overrides: ConfigWithExtends[]) => {\n const isAdonis = isPackageExists(\"@adonisjs/core\");\n const isNext = isPackageExists(\"next\");\n\n if (isNext && isAdonis) {\n throw new Error(\n \"You can't use both Adonis and Next.js in the same project\",\n );\n }\n\n const newConfig: ConfigWithExtends[] = [];\n\n if (isAdonis) {\n newConfig.push(...adonisConfig);\n }\n\n if (isNext) {\n newConfig.push(...nextjsConfig);\n }\n\n const tsConfigPath = findUpSync(\"tsconfig.json\", {\n cwd: process.cwd(),\n });\n\n if (tsConfigPath == null) {\n throw new Error(\"No tsconfig.json found\");\n }\n\n const rootDirectory = path.dirname(tsConfigPath);\n\n configs.push({\n languageOptions: {\n parserOptions: {\n projectService: true,\n tsconfigRootDir: rootDirectory,\n },\n },\n });\n\n return tseslint.config(\n ...configs,\n ...newConfig,\n ...defaultOverrides,\n ...overrides,\n );\n};\n","import jsxA11y from \"eslint-plugin-jsx-a11y\";\nimport globals from \"globals\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nexport function a11y(): ConfigWithExtends[] {\n return [\n {\n files: [\"**/*.{js,mjs,cjs,jsx,mjsx,ts,tsx,mtsx}\"],\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n ...jsxA11y.flatConfigs.recommended,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n languageOptions: {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n ...jsxA11y.flatConfigs.recommended.languageOptions,\n globals: {\n ...globals.serviceworker,\n ...globals.browser,\n },\n },\n settings: {\n \"jsx-a11y\": {\n components: {\n Input: \"input\",\n Button: \"button\",\n Link: \"a\",\n Label: \"label\",\n Select: \"select\",\n Textarea: \"textarea\",\n },\n attributes: {\n for: [\"htmlFor\", \"for\"],\n },\n },\n },\n },\n ];\n}\n","//@ts-expect-error not working\nexport { default as pluginComments } from \"@eslint-community/eslint-plugin-eslint-comments\";\nexport { default as pluginAntfu } from \"eslint-plugin-antfu\";\n//@ts-expect-error not working too\nexport { default as pluginImport } from \"eslint-plugin-import\";\nexport { default as pluginNode } from \"eslint-plugin-n\";\nexport { default as pluginUnicorn } from \"eslint-plugin-unicorn\";\nexport { default as pluginUnusedImports } from \"eslint-plugin-unused-imports\";\n","import type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginComments } from \"../plugins\";\n\nexport function comments(): ConfigWithExtends[] {\n return [\n {\n name: \"solvro/eslint-comments/rules\",\n plugins: {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n \"eslint-comments\": pluginComments,\n },\n rules: {\n \"eslint-comments/no-aggregating-enable\": \"error\",\n \"eslint-comments/no-duplicate-disable\": \"error\",\n \"eslint-comments/no-unlimited-disable\": \"error\",\n \"eslint-comments/no-unused-enable\": \"error\",\n },\n },\n ];\n}\n","import tseslint, { type ConfigWithExtends } from \"typescript-eslint\";\n\nimport { GLOB_SRC, GLOB_SRC_EXT } from \"../globs\";\n\nexport function disables(): ConfigWithExtends[] {\n return [\n {\n files: [`**/scripts/${GLOB_SRC}`],\n name: \"solvro/disables/scripts\",\n rules: {\n \"antfu/no-top-level-await\": \"off\",\n \"no-console\": \"off\",\n \"@typescript-eslint/explicit-function-return-type\": \"off\",\n },\n },\n {\n rules: {\n \"prettier/prettier\": \"off\",\n },\n },\n {\n files: [`**/cli/${GLOB_SRC}`, `**/cli.${GLOB_SRC_EXT}`],\n name: \"solvro/disables/cli\",\n rules: {\n \"antfu/no-top-level-await\": \"off\",\n \"no-console\": \"off\",\n },\n },\n {\n files: [\"**/bin/**/*\", `**/bin.${GLOB_SRC_EXT}`],\n name: \"solvro/disables/bin\",\n rules: {\n \"antfu/no-import-dist\": \"off\",\n \"antfu/no-import-node-modules-by-path\": \"off\",\n },\n },\n {\n files: [\"**/*.d.?([cm])ts\"],\n name: \"solvro/disables/dts\",\n rules: {\n \"eslint-comments/no-unlimited-disable\": \"off\",\n \"import-x/no-duplicates\": \"off\",\n \"no-restricted-syntax\": \"off\",\n \"unused-imports/no-unused-vars\": \"off\",\n },\n },\n {\n files: [\"**/*.js\", \"**/*.cjs\"],\n name: \"solvro/disables/cjs\",\n rules: {\n \"@typescript-eslint/no-require-imports\": \"off\",\n },\n },\n {\n files: [`**/*.config.${GLOB_SRC_EXT}`, `**/*.config.*.${GLOB_SRC_EXT}`],\n name: \"solvro/disables/config-files\",\n rules: {\n \"antfu/no-top-level-await\": \"off\",\n \"no-console\": \"off\",\n \"@typescript-eslint/explicit-function-return-type\": \"off\",\n },\n },\n {\n files: [\"**/*.js\"],\n extends: [tseslint.configs.disableTypeChecked],\n },\n ];\n}\n","export const GLOB_SRC_EXT = \"?([cm])[jt]s?(x)\";\nexport const GLOB_SRC = \"**/*.?([cm])[jt]s?(x)\";\n\nexport const GLOB_JS = \"**/*.?([cm])js\";\nexport const GLOB_JSX = \"**/*.?([cm])jsx\";\n\nexport const GLOB_TS = \"**/*.?([cm])ts\";\nexport const GLOB_TSX = \"**/*.?([cm])tsx\";\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 \"**/build\",\n \"**/output\",\n \"**/coverage\",\n \"**/temp\",\n \"**/.temp\",\n \"**/tmp\",\n \"**/.tmp\",\n \"**/.history\",\n \"**/.vitepress/cache\",\n \"**/.nuxt\",\n \"**/.next\",\n \"**/.svelte-kit\",\n \"**/.vercel\",\n \"**/.changeset\",\n \"**/.idea\",\n \"**/.cache\",\n \"**/.output\",\n \"**/.vite-inspect\",\n \"**/.yarn\",\n \"**/vite.config.*.timestamp-*\",\n\n \"**/CHANGELOG*.md\",\n \"**/*.min.*\",\n \"**/LICENSE*\",\n \"**/__snapshots__\",\n \"**/auto-import?(s).d.ts\",\n \"**/components.d.ts\",\n];\n","import prettierConfig from \"eslint-config-prettier\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nexport function formatters(): ConfigWithExtends[] {\n return [\n {\n name: \"solvro/prettier\",\n rules: {\n ...prettierConfig.rules,\n curly: \"error\",\n },\n },\n ];\n}\n","import type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { GLOB_EXCLUDE } from \"../globs\";\n\nexport function ignores(): ConfigWithExtends[] {\n return [\n {\n ignores: [...GLOB_EXCLUDE],\n name: \"solvro/ignores\",\n },\n ];\n}\n","import type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginAntfu, pluginImport } from \"../plugins\";\n\nexport function imports(\n options: { forbidDefaultExport: boolean } = { forbidDefaultExport: false },\n): ConfigWithExtends[] {\n const config = [\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n pluginImport.flatConfigs.typescript,\n {\n name: \"solvro/imports/rules\",\n plugins: {\n antfu: pluginAntfu,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n import: pluginImport,\n },\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n rules: {\n \"antfu/import-dedupe\": \"error\",\n \"antfu/no-import-dist\": \"error\",\n \"antfu/no-import-node-modules-by-path\": \"error\",\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n ...pluginImport.flatConfigs.recommended.rules,\n \"import/no-dynamic-require\": \"warn\",\n \"import/no-unresolved\": \"off\",\n \"import/consistent-type-specifier-style\": \"warn\",\n \"@typescript-eslint/no-restricted-imports\": [\n \"error\",\n {\n paths: [\n {\n name: \"axios\",\n message: \"Please use fetch instead\",\n },\n ],\n },\n ],\n },\n },\n ];\n\n if (options.forbidDefaultExport) {\n config.push(\n {\n \"import/no-default-export\": \"error\",\n },\n {\n files: [\n \"tsup.config.*\",\n \"eslint.config.*\",\n \".commitlintrc.*\",\n \"knip.*\",\n \"next.config.*\",\n \"commitlint.config.*\",\n \".releaserc.*\",\n ],\n rules: {\n \"import/no-default-export\": \"off\",\n },\n },\n );\n }\n\n return config;\n}\n","import eslint from \"@eslint/js\";\nimport globals from \"globals\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginAntfu, pluginUnusedImports } from \"../plugins\";\n\nexport function javascript(): ConfigWithExtends[] {\n return [\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 name: \"solvro/javascript/setup\",\n },\n {\n name: \"solvro/javascript/rules\",\n plugins: {\n antfu: pluginAntfu,\n \"unused-imports\": pluginUnusedImports,\n },\n rules: {\n ...eslint.configs.recommended.rules,\n \"accessor-pairs\": [\n \"error\",\n { enforceForClassMembers: true, setWithoutGet: true },\n ],\n curly: \"error\",\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\": [\n \"error\",\n { capIsNew: false, newIsCap: true, properties: true },\n ],\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-console\": [\"error\", { allow: [\"warn\", \"error\"] }],\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:\n \"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 \"TSEnumDeclaration[const=true]\",\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-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\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-useless-return\": \"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: false,\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 \"unused-imports/no-unused-imports\": \"error\",\n \"unused-imports/no-unused-vars\": [\n \"error\",\n {\n args: \"after-used\",\n argsIgnorePattern: \"^_\",\n ignoreRestSiblings: true,\n vars: \"all\",\n varsIgnorePattern: \"^_\",\n },\n ],\n \"use-isnan\": [\n \"error\",\n { enforceForIndexOf: true, enforceForSwitchCase: true },\n ],\n \"valid-typeof\": [\"error\", { requireStringLiterals: true }],\n \"vars-on-top\": \"error\",\n yoda: [\"error\", \"never\"],\n },\n },\n ];\n}\n","import jsdocPlugin from \"eslint-plugin-jsdoc\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nexport function jsdoc(): ConfigWithExtends[] {\n return [\n {\n name: \"solvro/jsdoc/rules\",\n plugins: {\n jsdoc: jsdocPlugin,\n },\n rules: {\n \"jsdoc/check-access\": \"warn\",\n \"jsdoc/check-param-names\": \"warn\",\n \"jsdoc/check-property-names\": \"warn\",\n \"jsdoc/check-types\": \"warn\",\n \"jsdoc/empty-tags\": \"warn\",\n \"jsdoc/implements-on-classes\": \"warn\",\n \"jsdoc/no-defaults\": \"warn\",\n \"jsdoc/no-multi-asterisks\": \"warn\",\n \"jsdoc/require-param-name\": \"warn\",\n \"jsdoc/require-property\": \"warn\",\n \"jsdoc/require-property-description\": \"warn\",\n \"jsdoc/require-property-name\": \"warn\",\n \"jsdoc/require-returns-check\": \"warn\",\n \"jsdoc/require-returns-description\": \"warn\",\n \"jsdoc/require-yields-check\": \"warn\",\n },\n },\n ];\n}\n","import type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginNode } from \"../plugins\";\n\nexport function node(): ConfigWithExtends[] {\n return [\n {\n name: \"solvro/node/rules\",\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/prefer-global/buffer\": [\"error\"],\n \"node/prefer-global/process\": [\"error\"],\n \"node/process-exit-as-throw\": \"error\",\n },\n },\n ];\n}\n","// @ts-expect-error ???\nimport nextPlugin from \"@next/eslint-plugin-next\";\nimport pluginReact from \"eslint-plugin-react\";\nimport pluginReactHooks from \"eslint-plugin-react-hooks\";\nimport { isPackageExists } from \"local-pkg\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nconst nextJsPackages = [\"next\"];\n\nconst forbiddenLibraries = [\n \"@headlessui/react\",\n \"@mui/material\",\n \"@chakra-ui/react\",\n \"@chakra-ui/core\",\n \"@nextui-org/react\",\n \"react-bootstrap\",\n \"antd\",\n];\n\nexport function react(): ConfigWithExtends[] {\n const isUsingNext = nextJsPackages.some((index) => isPackageExists(index));\n\n const nextjsConfig: ConfigWithExtends[] = [];\n\n if (isUsingNext) {\n nextjsConfig.push(\n {\n name: \"solvro/next/setup\",\n plugins: {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n \"@next/next\": nextPlugin,\n },\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n rules: nextPlugin.configs.recommended.rules,\n },\n {\n files: [\n \"**/app/**/{page,loading,layout}.{js,jsx,ts,tsx}\",\n \"**/pages/**/*.{js,jsx,ts,tsx}\",\n ],\n name: \"solvro/next/pages\",\n rules: {\n \"import/no-default-export\": \"off\",\n },\n },\n );\n }\n\n return [\n {\n name: \"solvro/react/setup\",\n plugins: {\n // @ts-expect-error ???\n react: pluginReact,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n \"react-hooks\": pluginReactHooks,\n },\n },\n ...nextjsConfig,\n {\n files: [\"**/*.{js,jsx,mjs,cjs,ts,tsx}\"],\n languageOptions: {\n parserOptions: {\n ecmaFeatures: {\n jsx: true,\n },\n },\n sourceType: \"module\",\n },\n settings: {\n react: {\n version: \"detect\",\n },\n },\n name: \"solvro/react/rules\",\n rules: {\n ...pluginReact.configs.flat?.recommended.rules,\n ...pluginReact.configs.flat?.[\"jsx-runtime\"].rules,\n \"react/no-danger\": \"warn\",\n \"react/jsx-no-leaked-render\": \"warn\",\n // recommended rules react-hooks\n \"react-hooks/exhaustive-deps\": \"warn\",\n \"react-hooks/rules-of-hooks\": \"error\",\n \"react/jsx-no-useless-fragment\": \"error\",\n \"react/function-component-definition\": [\n \"error\",\n {\n unnamedComponents: \"arrow-function\",\n namedComponents: \"function-declaration\",\n },\n ],\n \"react/hook-use-state\": [\n \"error\",\n {\n allowDestructuredState: true,\n },\n ],\n \"react/no-array-index-key\": \"warn\",\n \"@typescript-eslint/no-restricted-imports\": [\n \"error\",\n {\n paths: forbiddenLibraries.map((library) => ({\n name: library,\n message: `Please use ui.shadcn.com components instead.`,\n })),\n },\n ],\n },\n },\n {\n name: \"solvro/react/disables\",\n files: [\"**/components/ui/*.{jsx,tsx}\"],\n rules: {\n \"react/prop-types\": \"off\",\n \"no-shadow\": \"off\",\n \"@typescript-eslint/no-shadow\": \"off\",\n \"@typescript-eslint/restrict-template-expressions\": \"off\",\n \"unicorn/no-document-cookie\": \"off\",\n \"@typescript-eslint/no-redeclare\": \"off\",\n \"@typescript-eslint/no-deprecated\": \"off\",\n },\n },\n ];\n}\n","import tseslint from \"typescript-eslint\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nexport function typescriptRelaxed(): ConfigWithExtends[] {\n return [\n ...tseslint.configs.recommendedTypeChecked,\n ...tseslint.configs.stylisticTypeChecked,\n {\n name: \"solvro/typescript-relaxed/rules\",\n rules: {\n \"@typescript-eslint/no-unsafe-return\": \"off\",\n \"@typescript-eslint/require-await\": \"off\",\n \"@typescript-eslint/no-misused-promises\": [\n \"error\",\n {\n checksVoidReturn: false,\n },\n ],\n \"unused-imports/no-unused-vars\": \"off\",\n \"@typescript-eslint/no-unused-vars\": [\n \"error\",\n {\n args: \"all\",\n argsIgnorePattern: \"^_\",\n destructuredArrayIgnorePattern: \"^_\",\n varsIgnorePattern: \"^_\",\n ignoreRestSiblings: true,\n },\n ],\n \"@typescript-eslint/no-empty-object-type\": \"off\",\n \"@typescript-eslint/no-unnecessary-condition\": \"warn\",\n },\n },\n ];\n}\n","import tseslint from \"typescript-eslint\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginAntfu } from \"../plugins\";\n\nexport function typescriptStrict(): ConfigWithExtends[] {\n return [\n ...tseslint.configs.strictTypeChecked,\n ...tseslint.configs.stylisticTypeChecked,\n {\n name: \"solvro/typescript-strict/setup\",\n plugins: {\n antfu: pluginAntfu,\n },\n },\n {\n files: [\"**/*.{ts,tsx}\"],\n name: \"solvro/typescript-strict/rules\",\n rules: {\n \"@typescript-eslint/ban-ts-comment\": [\n \"error\",\n { \"ts-expect-error\": \"allow-with-description\" },\n ],\n \"@typescript-eslint/consistent-type-definitions\": [\n \"error\",\n \"interface\",\n ],\n \"@typescript-eslint/consistent-type-imports\": [\n \"error\",\n {\n disallowTypeAnnotations: false,\n prefer: \"type-imports\",\n },\n ],\n \"@typescript-eslint/method-signature-style\": [\"error\", \"property\"], // https://www.totaltypescript.com/method-shorthand-syntax-considered-harmful\n \"@typescript-eslint/no-dupe-class-members\": \"error\",\n \"@typescript-eslint/no-empty-object-type\": [\n \"error\",\n { allowInterfaces: \"always\" },\n ],\n \"@typescript-eslint/no-import-type-side-effects\": \"error\",\n \"@typescript-eslint/no-redeclare\": [\"error\", { builtinGlobals: false }],\n \"@typescript-eslint/no-require-imports\": \"error\",\n \"@typescript-eslint/no-unused-expressions\": [\n \"error\",\n {\n allowShortCircuit: true,\n allowTaggedTemplates: true,\n allowTernary: true,\n },\n ],\n \"@typescript-eslint/no-use-before-define\": [\n \"error\",\n { classes: false, functions: false, variables: true },\n ],\n \"@typescript-eslint/no-wrapper-object-types\": \"error\",\n // prevent unnecessary use of void operator\n \"@typescript-eslint/no-meaningless-void-operator\": \"error\",\n // \"using non-null assertions cancels the benefits of the strict\n // null-checking mode.\"\n // warn when one of the types in union / intersection overrides others\n \"@typescript-eslint/no-redundant-type-constituents\": \"warn\",\n // prevent variables shadowing\n \"no-shadow\": \"error\",\n \"@typescript-eslint/no-shadow\": \"error\",\n // prevent assignment of this, signals a wrong usage of it\n \"@typescript-eslint/no-this-alias\": \"error\",\n // prevent throwing non-error\n \"no-throw-literal\": \"off\",\n\n // prevent unnecessary explicitly adding a default type argument\n \"@typescript-eslint/no-unnecessary-type-arguments\": \"error\",\n // prevent unnecessary assertions that won't change the outcome\n \"@typescript-eslint/no-unnecessary-type-assertion\": \"error\",\n // prevent extending default types\n \"@typescript-eslint/no-unnecessary-type-constraint\": \"error\",\n // force typing out function arguments\n \"@typescript-eslint/no-unsafe-argument\": \"error\",\n // prevent usage of any via reassigning\n \"@typescript-eslint/no-unsafe-assignment\": \"error\",\n // prevent usage of any via calling it\n \"@typescript-eslint/no-unsafe-call\": \"error\",\n // prevent usage of any via using it's members\n \"@typescript-eslint/no-unsafe-member-access\": \"error\",\n // prevent reverting any from functions\n \"@typescript-eslint/no-unsafe-return\": \"error\",\n // prevent unused expressions\n \"no-unused-expressions\": \"off\",\n // var<'string'> = 'string' -> var = 'string' as const\n \"@typescript-eslint/prefer-as-const\": \"error\",\n // force initializing enums\n \"@typescript-eslint/prefer-enum-initializers\": \"error\",\n // prefer for x of obj to for let i = 0...\n \"@typescript-eslint/prefer-for-of\": \"error\",\n // prefer includes() to indexOf()\n \"@typescript-eslint/prefer-includes\": \"error\",\n // use literals for enum initialization\n \"@typescript-eslint/prefer-literal-enum-member\": \"error\",\n // prefer safe cascade of a value when dealing with undefined or null\n \"@typescript-eslint/prefer-nullish-coalescing\": \"error\",\n // prefer optional chaining (a?.b)\n \"@typescript-eslint/prefer-optional-chain\": \"error\",\n // prefer using type parameter for Array.reduce\n \"@typescript-eslint/prefer-reduce-type-parameter\": \"error\",\n // prefer RegExp#exec when no /g flag in regex\n \"@typescript-eslint/prefer-regexp-exec\": \"error\",\n // enforce `this` as a type when stating type for a method\n \"@typescript-eslint/prefer-return-this-type\": \"error\",\n // enforce startsWith to indexOf === 0\n \"@typescript-eslint/prefer-string-starts-ends-with\": \"error\",\n // prevents default behavior of .sort() - which is confusing\n \"@typescript-eslint/require-array-sort-compare\": \"error\",\n // no async functions without awaits in body\n \"require-await\": \"off\",\n \"@typescript-eslint/require-await\": \"error\",\n // prevent number + string\n \"@typescript-eslint/restrict-plus-operands\": \"error\",\n // only allow string in templates\n \"@typescript-eslint/restrict-template-expressions\": \"error\",\n // prevent returning await\n \"no-return-await\": \"off\",\n \"@typescript-eslint/return-await\": \"error\",\n // only booleans in ifs and whiles\n \"@typescript-eslint/strict-boolean-expressions\": \"error\",\n // check if all paths are followed in code\n \"@typescript-eslint/switch-exhaustiveness-check\": \"error\",\n \"dot-notation\": \"off\",\n \"no-implied-eval\": \"off\",\n \"@typescript-eslint/await-thenable\": \"error\",\n \"@typescript-eslint/dot-notation\": [\"error\", { allowKeywords: true }],\n \"@typescript-eslint/no-floating-promises\": \"error\",\n \"@typescript-eslint/no-for-in-array\": \"error\",\n \"@typescript-eslint/no-implied-eval\": \"error\",\n \"@typescript-eslint/no-misused-promises\": \"error\",\n \"@typescript-eslint/promise-function-async\": \"error\",\n \"@typescript-eslint/unbound-method\": \"error\",\n \"no-restricted-imports\": \"off\",\n },\n },\n ];\n}\n","import type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginUnicorn } from \"../plugins\";\n\nexport function unicorn(): ConfigWithExtends[] {\n return [\n {\n name: \"solvro/unicorn/rules\",\n plugins: {\n unicorn: pluginUnicorn,\n },\n rules: {\n ...pluginUnicorn.configs[\"flat/recommended\"].rules,\n \"unicorn/no-array-reduce\": \"off\",\n \"unicorn/no-null\": \"off\",\n \"unicorn/no-useless-switch-case\": \"off\",\n \"unicorn/prefer-global-this\": \"off\",\n \"unicorn/prevent-abbreviations\": [\n \"error\",\n {\n replacements: {\n env: false,\n envs: false,\n props: false,\n prop: false,\n ref: false,\n },\n },\n ],\n },\n },\n ];\n}\n"],"mappings":"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","names":["import_local_pkg","import_typescript_eslint","jsxA11y","globals","tseslint","prettierConfig","import_globals","globals","eslint","jsdocPlugin","nextjsConfig","nextPlugin","pluginReact","pluginReactHooks","import_typescript_eslint","tseslint","import_typescript_eslint","tseslint","path","tseslint"]}
@@ -877,7 +877,7 @@ var adonisConfig = [
877
877
  },
878
878
  {
879
879
  selector: "variable",
880
- format: ["camelCase", "UPPER_CASE"],
880
+ format: ["camelCase", "UPPER_CASE", "PascalCase"],
881
881
  leadingUnderscore: "allow",
882
882
  trailingUnderscore: "allow"
883
883
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/eslint/index.ts","../../src/eslint/configs/a11y.ts","../../src/eslint/plugins.ts","../../src/eslint/configs/comments.ts","../../src/eslint/configs/disables.ts","../../src/eslint/globs.ts","../../src/eslint/configs/formatters.ts","../../src/eslint/configs/ignores.ts","../../src/eslint/configs/imports.ts","../../src/eslint/configs/javascript.ts","../../src/eslint/configs/jsdoc.ts","../../src/eslint/configs/node.ts","../../src/eslint/configs/react.ts","../../src/eslint/configs/typescript-relaxed.ts","../../src/eslint/configs/typescript-strict.ts","../../src/eslint/configs/unicorn.ts"],"sourcesContent":["import { findUpSync } from \"find-up-simple\";\nimport { isPackageExists } from \"local-pkg\";\nimport path from \"node:path\";\nimport tseslint from \"typescript-eslint\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { configApp } from \"@adonisjs/eslint-config\";\n\nimport { a11y } from \"./configs/a11y\";\nimport { comments } from \"./configs/comments\";\nimport { disables } from \"./configs/disables\";\nimport { formatters } from \"./configs/formatters\";\nimport { ignores } from \"./configs/ignores\";\nimport { imports } from \"./configs/imports\";\nimport { javascript } from \"./configs/javascript\";\nimport { jsdoc } from \"./configs/jsdoc\";\nimport { node } from \"./configs/node\";\nimport { react } from \"./configs/react\";\nimport { typescriptRelaxed } from \"./configs/typescript-relaxed\";\nimport { typescriptStrict } from \"./configs/typescript-strict\";\nimport { unicorn } from \"./configs/unicorn\";\n\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call\nconst builtinAdonisConfig: ConfigWithExtends[] = configApp();\n\nconst adonisConfig: ConfigWithExtends[] = [\n ...builtinAdonisConfig,\n ...node(),\n ...imports(),\n {\n rules: {\n \"@typescript-eslint/naming-convention\": [\n \"error\",\n {\n selector: [\"enum\", \"enumMember\", \"class\", \"interface\", \"typeLike\"],\n format: [\"PascalCase\"],\n },\n {\n selector: [\"classProperty\", \"classMethod\", \"method\", \"variableLike\"],\n format: [\"camelCase\"],\n },\n {\n selector: \"variable\",\n format: [\"camelCase\", \"UPPER_CASE\"],\n leadingUnderscore: \"allow\",\n trailingUnderscore: \"allow\",\n },\n ],\n },\n },\n];\n\nconst nextjsConfig: ConfigWithExtends[] = [\n ...a11y(),\n ...unicorn(),\n ...typescriptStrict(),\n ...react(),\n ...imports({ forbidDefaultExport: true }),\n];\n\nconst configs: ConfigWithExtends[] = [\n ...javascript(),\n ...jsdoc(),\n ...comments(),\n ...typescriptRelaxed(),\n];\n\nconst defaultOverrides = [...ignores(), ...formatters(), ...disables()];\n\nexport const solvro = (...overrides: ConfigWithExtends[]) => {\n const isAdonis = isPackageExists(\"@adonisjs/core\");\n const isNext = isPackageExists(\"next\");\n\n if (isNext && isAdonis) {\n throw new Error(\n \"You can't use both Adonis and Next.js in the same project\",\n );\n }\n\n const newConfig: ConfigWithExtends[] = [];\n\n if (isAdonis) {\n newConfig.push(...adonisConfig);\n }\n\n if (isNext) {\n newConfig.push(...nextjsConfig);\n }\n\n const tsConfigPath = findUpSync(\"tsconfig.json\", {\n cwd: process.cwd(),\n });\n\n if (tsConfigPath == null) {\n throw new Error(\"No tsconfig.json found\");\n }\n\n const rootDirectory = path.dirname(tsConfigPath);\n\n configs.push({\n languageOptions: {\n parserOptions: {\n projectService: true,\n tsconfigRootDir: rootDirectory,\n },\n },\n });\n\n return tseslint.config(\n ...configs,\n ...newConfig,\n ...defaultOverrides,\n ...overrides,\n );\n};\n","import jsxA11y from \"eslint-plugin-jsx-a11y\";\nimport globals from \"globals\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nexport function a11y(): ConfigWithExtends[] {\n return [\n {\n files: [\"**/*.{js,mjs,cjs,jsx,mjsx,ts,tsx,mtsx}\"],\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n ...jsxA11y.flatConfigs.recommended,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n languageOptions: {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n ...jsxA11y.flatConfigs.recommended.languageOptions,\n globals: {\n ...globals.serviceworker,\n ...globals.browser,\n },\n },\n settings: {\n \"jsx-a11y\": {\n components: {\n Input: \"input\",\n Button: \"button\",\n Link: \"a\",\n Label: \"label\",\n Select: \"select\",\n Textarea: \"textarea\",\n },\n attributes: {\n for: [\"htmlFor\", \"for\"],\n },\n },\n },\n },\n ];\n}\n","//@ts-expect-error not working\nexport { default as pluginComments } from \"@eslint-community/eslint-plugin-eslint-comments\";\nexport { default as pluginAntfu } from \"eslint-plugin-antfu\";\n//@ts-expect-error not working too\nexport { default as pluginImport } from \"eslint-plugin-import\";\nexport { default as pluginNode } from \"eslint-plugin-n\";\nexport { default as pluginUnicorn } from \"eslint-plugin-unicorn\";\nexport { default as pluginUnusedImports } from \"eslint-plugin-unused-imports\";\n","import type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginComments } from \"../plugins\";\n\nexport function comments(): ConfigWithExtends[] {\n return [\n {\n name: \"solvro/eslint-comments/rules\",\n plugins: {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n \"eslint-comments\": pluginComments,\n },\n rules: {\n \"eslint-comments/no-aggregating-enable\": \"error\",\n \"eslint-comments/no-duplicate-disable\": \"error\",\n \"eslint-comments/no-unlimited-disable\": \"error\",\n \"eslint-comments/no-unused-enable\": \"error\",\n },\n },\n ];\n}\n","import tseslint, { type ConfigWithExtends } from \"typescript-eslint\";\n\nimport { GLOB_SRC, GLOB_SRC_EXT } from \"../globs\";\n\nexport function disables(): ConfigWithExtends[] {\n return [\n {\n files: [`**/scripts/${GLOB_SRC}`],\n name: \"solvro/disables/scripts\",\n rules: {\n \"antfu/no-top-level-await\": \"off\",\n \"no-console\": \"off\",\n \"@typescript-eslint/explicit-function-return-type\": \"off\",\n },\n },\n {\n rules: {\n \"prettier/prettier\": \"off\",\n },\n },\n {\n files: [`**/cli/${GLOB_SRC}`, `**/cli.${GLOB_SRC_EXT}`],\n name: \"solvro/disables/cli\",\n rules: {\n \"antfu/no-top-level-await\": \"off\",\n \"no-console\": \"off\",\n },\n },\n {\n files: [\"**/bin/**/*\", `**/bin.${GLOB_SRC_EXT}`],\n name: \"solvro/disables/bin\",\n rules: {\n \"antfu/no-import-dist\": \"off\",\n \"antfu/no-import-node-modules-by-path\": \"off\",\n },\n },\n {\n files: [\"**/*.d.?([cm])ts\"],\n name: \"solvro/disables/dts\",\n rules: {\n \"eslint-comments/no-unlimited-disable\": \"off\",\n \"import-x/no-duplicates\": \"off\",\n \"no-restricted-syntax\": \"off\",\n \"unused-imports/no-unused-vars\": \"off\",\n },\n },\n {\n files: [\"**/*.js\", \"**/*.cjs\"],\n name: \"solvro/disables/cjs\",\n rules: {\n \"@typescript-eslint/no-require-imports\": \"off\",\n },\n },\n {\n files: [`**/*.config.${GLOB_SRC_EXT}`, `**/*.config.*.${GLOB_SRC_EXT}`],\n name: \"solvro/disables/config-files\",\n rules: {\n \"antfu/no-top-level-await\": \"off\",\n \"no-console\": \"off\",\n \"@typescript-eslint/explicit-function-return-type\": \"off\",\n },\n },\n {\n files: [\"**/*.js\"],\n extends: [tseslint.configs.disableTypeChecked],\n },\n ];\n}\n","export const GLOB_SRC_EXT = \"?([cm])[jt]s?(x)\";\nexport const GLOB_SRC = \"**/*.?([cm])[jt]s?(x)\";\n\nexport const GLOB_JS = \"**/*.?([cm])js\";\nexport const GLOB_JSX = \"**/*.?([cm])jsx\";\n\nexport const GLOB_TS = \"**/*.?([cm])ts\";\nexport const GLOB_TSX = \"**/*.?([cm])tsx\";\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 \"**/build\",\n \"**/output\",\n \"**/coverage\",\n \"**/temp\",\n \"**/.temp\",\n \"**/tmp\",\n \"**/.tmp\",\n \"**/.history\",\n \"**/.vitepress/cache\",\n \"**/.nuxt\",\n \"**/.next\",\n \"**/.svelte-kit\",\n \"**/.vercel\",\n \"**/.changeset\",\n \"**/.idea\",\n \"**/.cache\",\n \"**/.output\",\n \"**/.vite-inspect\",\n \"**/.yarn\",\n \"**/vite.config.*.timestamp-*\",\n\n \"**/CHANGELOG*.md\",\n \"**/*.min.*\",\n \"**/LICENSE*\",\n \"**/__snapshots__\",\n \"**/auto-import?(s).d.ts\",\n \"**/components.d.ts\",\n];\n","import prettierConfig from \"eslint-config-prettier\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nexport function formatters(): ConfigWithExtends[] {\n return [\n {\n name: \"solvro/prettier\",\n rules: {\n ...prettierConfig.rules,\n curly: \"error\",\n },\n },\n ];\n}\n","import type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { GLOB_EXCLUDE } from \"../globs\";\n\nexport function ignores(): ConfigWithExtends[] {\n return [\n {\n ignores: [...GLOB_EXCLUDE],\n name: \"solvro/ignores\",\n },\n ];\n}\n","import type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginAntfu, pluginImport } from \"../plugins\";\n\nexport function imports(\n options: { forbidDefaultExport: boolean } = { forbidDefaultExport: false },\n): ConfigWithExtends[] {\n const config = [\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n pluginImport.flatConfigs.typescript,\n {\n name: \"solvro/imports/rules\",\n plugins: {\n antfu: pluginAntfu,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n import: pluginImport,\n },\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n rules: {\n \"antfu/import-dedupe\": \"error\",\n \"antfu/no-import-dist\": \"error\",\n \"antfu/no-import-node-modules-by-path\": \"error\",\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n ...pluginImport.flatConfigs.recommended.rules,\n \"import/no-dynamic-require\": \"warn\",\n \"import/no-unresolved\": \"off\",\n \"import/consistent-type-specifier-style\": \"warn\",\n \"@typescript-eslint/no-restricted-imports\": [\n \"error\",\n {\n paths: [\n {\n name: \"axios\",\n message: \"Please use fetch instead\",\n },\n ],\n },\n ],\n },\n },\n ];\n\n if (options.forbidDefaultExport) {\n config.push(\n {\n \"import/no-default-export\": \"error\",\n },\n {\n files: [\n \"tsup.config.*\",\n \"eslint.config.*\",\n \".commitlintrc.*\",\n \"knip.*\",\n \"next.config.*\",\n \"commitlint.config.*\",\n \".releaserc.*\",\n ],\n rules: {\n \"import/no-default-export\": \"off\",\n },\n },\n );\n }\n\n return config;\n}\n","import eslint from \"@eslint/js\";\nimport globals from \"globals\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginAntfu, pluginUnusedImports } from \"../plugins\";\n\nexport function javascript(): ConfigWithExtends[] {\n return [\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 name: \"solvro/javascript/setup\",\n },\n {\n name: \"solvro/javascript/rules\",\n plugins: {\n antfu: pluginAntfu,\n \"unused-imports\": pluginUnusedImports,\n },\n rules: {\n ...eslint.configs.recommended.rules,\n \"accessor-pairs\": [\n \"error\",\n { enforceForClassMembers: true, setWithoutGet: true },\n ],\n curly: \"error\",\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\": [\n \"error\",\n { capIsNew: false, newIsCap: true, properties: true },\n ],\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-console\": [\"error\", { allow: [\"warn\", \"error\"] }],\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:\n \"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 \"TSEnumDeclaration[const=true]\",\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-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\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-useless-return\": \"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: false,\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 \"unused-imports/no-unused-imports\": \"error\",\n \"unused-imports/no-unused-vars\": [\n \"error\",\n {\n args: \"after-used\",\n argsIgnorePattern: \"^_\",\n ignoreRestSiblings: true,\n vars: \"all\",\n varsIgnorePattern: \"^_\",\n },\n ],\n \"use-isnan\": [\n \"error\",\n { enforceForIndexOf: true, enforceForSwitchCase: true },\n ],\n \"valid-typeof\": [\"error\", { requireStringLiterals: true }],\n \"vars-on-top\": \"error\",\n yoda: [\"error\", \"never\"],\n },\n },\n ];\n}\n","import jsdocPlugin from \"eslint-plugin-jsdoc\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nexport function jsdoc(): ConfigWithExtends[] {\n return [\n {\n name: \"solvro/jsdoc/rules\",\n plugins: {\n jsdoc: jsdocPlugin,\n },\n rules: {\n \"jsdoc/check-access\": \"warn\",\n \"jsdoc/check-param-names\": \"warn\",\n \"jsdoc/check-property-names\": \"warn\",\n \"jsdoc/check-types\": \"warn\",\n \"jsdoc/empty-tags\": \"warn\",\n \"jsdoc/implements-on-classes\": \"warn\",\n \"jsdoc/no-defaults\": \"warn\",\n \"jsdoc/no-multi-asterisks\": \"warn\",\n \"jsdoc/require-param-name\": \"warn\",\n \"jsdoc/require-property\": \"warn\",\n \"jsdoc/require-property-description\": \"warn\",\n \"jsdoc/require-property-name\": \"warn\",\n \"jsdoc/require-returns-check\": \"warn\",\n \"jsdoc/require-returns-description\": \"warn\",\n \"jsdoc/require-yields-check\": \"warn\",\n },\n },\n ];\n}\n","import type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginNode } from \"../plugins\";\n\nexport function node(): ConfigWithExtends[] {\n return [\n {\n name: \"solvro/node/rules\",\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/prefer-global/buffer\": [\"error\"],\n \"node/prefer-global/process\": [\"error\"],\n \"node/process-exit-as-throw\": \"error\",\n },\n },\n ];\n}\n","// @ts-expect-error ???\nimport nextPlugin from \"@next/eslint-plugin-next\";\nimport pluginReact from \"eslint-plugin-react\";\nimport pluginReactHooks from \"eslint-plugin-react-hooks\";\nimport { isPackageExists } from \"local-pkg\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nconst nextJsPackages = [\"next\"];\n\nconst forbiddenLibraries = [\n \"@headlessui/react\",\n \"@mui/material\",\n \"@chakra-ui/react\",\n \"@chakra-ui/core\",\n \"@nextui-org/react\",\n \"react-bootstrap\",\n \"antd\",\n];\n\nexport function react(): ConfigWithExtends[] {\n const isUsingNext = nextJsPackages.some((index) => isPackageExists(index));\n\n const nextjsConfig: ConfigWithExtends[] = [];\n\n if (isUsingNext) {\n nextjsConfig.push(\n {\n name: \"solvro/next/setup\",\n plugins: {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n \"@next/next\": nextPlugin,\n },\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n rules: nextPlugin.configs.recommended.rules,\n },\n {\n files: [\n \"**/app/**/{page,loading,layout}.{js,jsx,ts,tsx}\",\n \"**/pages/**/*.{js,jsx,ts,tsx}\",\n ],\n name: \"solvro/next/pages\",\n rules: {\n \"import/no-default-export\": \"off\",\n },\n },\n );\n }\n\n return [\n {\n name: \"solvro/react/setup\",\n plugins: {\n // @ts-expect-error ???\n react: pluginReact,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n \"react-hooks\": pluginReactHooks,\n },\n },\n ...nextjsConfig,\n {\n files: [\"**/*.{js,jsx,mjs,cjs,ts,tsx}\"],\n languageOptions: {\n parserOptions: {\n ecmaFeatures: {\n jsx: true,\n },\n },\n sourceType: \"module\",\n },\n settings: {\n react: {\n version: \"detect\",\n },\n },\n name: \"solvro/react/rules\",\n rules: {\n ...pluginReact.configs.flat?.recommended.rules,\n ...pluginReact.configs.flat?.[\"jsx-runtime\"].rules,\n \"react/no-danger\": \"warn\",\n \"react/jsx-no-leaked-render\": \"warn\",\n // recommended rules react-hooks\n \"react-hooks/exhaustive-deps\": \"warn\",\n \"react-hooks/rules-of-hooks\": \"error\",\n \"react/jsx-no-useless-fragment\": \"error\",\n \"react/function-component-definition\": [\n \"error\",\n {\n unnamedComponents: \"arrow-function\",\n namedComponents: \"function-declaration\",\n },\n ],\n \"react/hook-use-state\": [\n \"error\",\n {\n allowDestructuredState: true,\n },\n ],\n \"react/no-array-index-key\": \"warn\",\n \"@typescript-eslint/no-restricted-imports\": [\n \"error\",\n {\n paths: forbiddenLibraries.map((library) => ({\n name: library,\n message: `Please use ui.shadcn.com components instead.`,\n })),\n },\n ],\n },\n },\n {\n name: \"solvro/react/disables\",\n files: [\"**/components/ui/*.{jsx,tsx}\"],\n rules: {\n \"react/prop-types\": \"off\",\n \"no-shadow\": \"off\",\n \"@typescript-eslint/no-shadow\": \"off\",\n \"@typescript-eslint/restrict-template-expressions\": \"off\",\n \"unicorn/no-document-cookie\": \"off\",\n \"@typescript-eslint/no-redeclare\": \"off\",\n \"@typescript-eslint/no-deprecated\": \"off\",\n },\n },\n ];\n}\n","import tseslint from \"typescript-eslint\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nexport function typescriptRelaxed(): ConfigWithExtends[] {\n return [\n ...tseslint.configs.recommendedTypeChecked,\n ...tseslint.configs.stylisticTypeChecked,\n {\n name: \"solvro/typescript-relaxed/rules\",\n rules: {\n \"@typescript-eslint/no-unsafe-return\": \"off\",\n \"@typescript-eslint/require-await\": \"off\",\n \"@typescript-eslint/no-misused-promises\": [\n \"error\",\n {\n checksVoidReturn: false,\n },\n ],\n \"unused-imports/no-unused-vars\": \"off\",\n \"@typescript-eslint/no-unused-vars\": [\n \"error\",\n {\n args: \"all\",\n argsIgnorePattern: \"^_\",\n destructuredArrayIgnorePattern: \"^_\",\n varsIgnorePattern: \"^_\",\n ignoreRestSiblings: true,\n },\n ],\n \"@typescript-eslint/no-empty-object-type\": \"off\",\n \"@typescript-eslint/no-unnecessary-condition\": \"warn\",\n },\n },\n ];\n}\n","import tseslint from \"typescript-eslint\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginAntfu } from \"../plugins\";\n\nexport function typescriptStrict(): ConfigWithExtends[] {\n return [\n ...tseslint.configs.strictTypeChecked,\n ...tseslint.configs.stylisticTypeChecked,\n {\n name: \"solvro/typescript-strict/setup\",\n plugins: {\n antfu: pluginAntfu,\n },\n },\n {\n files: [\"**/*.{ts,tsx}\"],\n name: \"solvro/typescript-strict/rules\",\n rules: {\n \"@typescript-eslint/ban-ts-comment\": [\n \"error\",\n { \"ts-expect-error\": \"allow-with-description\" },\n ],\n \"@typescript-eslint/consistent-type-definitions\": [\n \"error\",\n \"interface\",\n ],\n \"@typescript-eslint/consistent-type-imports\": [\n \"error\",\n {\n disallowTypeAnnotations: false,\n prefer: \"type-imports\",\n },\n ],\n \"@typescript-eslint/method-signature-style\": [\"error\", \"property\"], // https://www.totaltypescript.com/method-shorthand-syntax-considered-harmful\n \"@typescript-eslint/no-dupe-class-members\": \"error\",\n \"@typescript-eslint/no-empty-object-type\": [\n \"error\",\n { allowInterfaces: \"always\" },\n ],\n \"@typescript-eslint/no-import-type-side-effects\": \"error\",\n \"@typescript-eslint/no-redeclare\": [\"error\", { builtinGlobals: false }],\n \"@typescript-eslint/no-require-imports\": \"error\",\n \"@typescript-eslint/no-unused-expressions\": [\n \"error\",\n {\n allowShortCircuit: true,\n allowTaggedTemplates: true,\n allowTernary: true,\n },\n ],\n \"@typescript-eslint/no-use-before-define\": [\n \"error\",\n { classes: false, functions: false, variables: true },\n ],\n \"@typescript-eslint/no-wrapper-object-types\": \"error\",\n // prevent unnecessary use of void operator\n \"@typescript-eslint/no-meaningless-void-operator\": \"error\",\n // \"using non-null assertions cancels the benefits of the strict\n // null-checking mode.\"\n // warn when one of the types in union / intersection overrides others\n \"@typescript-eslint/no-redundant-type-constituents\": \"warn\",\n // prevent variables shadowing\n \"no-shadow\": \"error\",\n \"@typescript-eslint/no-shadow\": \"error\",\n // prevent assignment of this, signals a wrong usage of it\n \"@typescript-eslint/no-this-alias\": \"error\",\n // prevent throwing non-error\n \"no-throw-literal\": \"off\",\n\n // prevent unnecessary explicitly adding a default type argument\n \"@typescript-eslint/no-unnecessary-type-arguments\": \"error\",\n // prevent unnecessary assertions that won't change the outcome\n \"@typescript-eslint/no-unnecessary-type-assertion\": \"error\",\n // prevent extending default types\n \"@typescript-eslint/no-unnecessary-type-constraint\": \"error\",\n // force typing out function arguments\n \"@typescript-eslint/no-unsafe-argument\": \"error\",\n // prevent usage of any via reassigning\n \"@typescript-eslint/no-unsafe-assignment\": \"error\",\n // prevent usage of any via calling it\n \"@typescript-eslint/no-unsafe-call\": \"error\",\n // prevent usage of any via using it's members\n \"@typescript-eslint/no-unsafe-member-access\": \"error\",\n // prevent reverting any from functions\n \"@typescript-eslint/no-unsafe-return\": \"error\",\n // prevent unused expressions\n \"no-unused-expressions\": \"off\",\n // var<'string'> = 'string' -> var = 'string' as const\n \"@typescript-eslint/prefer-as-const\": \"error\",\n // force initializing enums\n \"@typescript-eslint/prefer-enum-initializers\": \"error\",\n // prefer for x of obj to for let i = 0...\n \"@typescript-eslint/prefer-for-of\": \"error\",\n // prefer includes() to indexOf()\n \"@typescript-eslint/prefer-includes\": \"error\",\n // use literals for enum initialization\n \"@typescript-eslint/prefer-literal-enum-member\": \"error\",\n // prefer safe cascade of a value when dealing with undefined or null\n \"@typescript-eslint/prefer-nullish-coalescing\": \"error\",\n // prefer optional chaining (a?.b)\n \"@typescript-eslint/prefer-optional-chain\": \"error\",\n // prefer using type parameter for Array.reduce\n \"@typescript-eslint/prefer-reduce-type-parameter\": \"error\",\n // prefer RegExp#exec when no /g flag in regex\n \"@typescript-eslint/prefer-regexp-exec\": \"error\",\n // enforce `this` as a type when stating type for a method\n \"@typescript-eslint/prefer-return-this-type\": \"error\",\n // enforce startsWith to indexOf === 0\n \"@typescript-eslint/prefer-string-starts-ends-with\": \"error\",\n // prevents default behavior of .sort() - which is confusing\n \"@typescript-eslint/require-array-sort-compare\": \"error\",\n // no async functions without awaits in body\n \"require-await\": \"off\",\n \"@typescript-eslint/require-await\": \"error\",\n // prevent number + string\n \"@typescript-eslint/restrict-plus-operands\": \"error\",\n // only allow string in templates\n \"@typescript-eslint/restrict-template-expressions\": \"error\",\n // prevent returning await\n \"no-return-await\": \"off\",\n \"@typescript-eslint/return-await\": \"error\",\n // only booleans in ifs and whiles\n \"@typescript-eslint/strict-boolean-expressions\": \"error\",\n // check if all paths are followed in code\n \"@typescript-eslint/switch-exhaustiveness-check\": \"error\",\n \"dot-notation\": \"off\",\n \"no-implied-eval\": \"off\",\n \"@typescript-eslint/await-thenable\": \"error\",\n \"@typescript-eslint/dot-notation\": [\"error\", { allowKeywords: true }],\n \"@typescript-eslint/no-floating-promises\": \"error\",\n \"@typescript-eslint/no-for-in-array\": \"error\",\n \"@typescript-eslint/no-implied-eval\": \"error\",\n \"@typescript-eslint/no-misused-promises\": \"error\",\n \"@typescript-eslint/promise-function-async\": \"error\",\n \"@typescript-eslint/unbound-method\": \"error\",\n \"no-restricted-imports\": \"off\",\n },\n },\n ];\n}\n","import type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginUnicorn } from \"../plugins\";\n\nexport function unicorn(): ConfigWithExtends[] {\n return [\n {\n name: \"solvro/unicorn/rules\",\n plugins: {\n unicorn: pluginUnicorn,\n },\n rules: {\n ...pluginUnicorn.configs[\"flat/recommended\"].rules,\n \"unicorn/no-array-reduce\": \"off\",\n \"unicorn/no-null\": \"off\",\n \"unicorn/no-useless-switch-case\": \"off\",\n \"unicorn/prefer-global-this\": \"off\",\n \"unicorn/prevent-abbreviations\": [\n \"error\",\n {\n replacements: {\n env: false,\n envs: false,\n props: false,\n prop: false,\n ref: false,\n },\n },\n ],\n },\n },\n ];\n}\n"],"mappings":"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","names":["isPackageExists","tseslint","default","default","default","globals","globals","default","default","nextjsConfig","tseslint","tseslint","tseslint","default","default","isPackageExists","tseslint"]}
1
+ {"version":3,"sources":["../../src/eslint/index.ts","../../src/eslint/configs/a11y.ts","../../src/eslint/plugins.ts","../../src/eslint/configs/comments.ts","../../src/eslint/configs/disables.ts","../../src/eslint/globs.ts","../../src/eslint/configs/formatters.ts","../../src/eslint/configs/ignores.ts","../../src/eslint/configs/imports.ts","../../src/eslint/configs/javascript.ts","../../src/eslint/configs/jsdoc.ts","../../src/eslint/configs/node.ts","../../src/eslint/configs/react.ts","../../src/eslint/configs/typescript-relaxed.ts","../../src/eslint/configs/typescript-strict.ts","../../src/eslint/configs/unicorn.ts"],"sourcesContent":["import { findUpSync } from \"find-up-simple\";\nimport { isPackageExists } from \"local-pkg\";\nimport path from \"node:path\";\nimport tseslint from \"typescript-eslint\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { configApp } from \"@adonisjs/eslint-config\";\n\nimport { a11y } from \"./configs/a11y\";\nimport { comments } from \"./configs/comments\";\nimport { disables } from \"./configs/disables\";\nimport { formatters } from \"./configs/formatters\";\nimport { ignores } from \"./configs/ignores\";\nimport { imports } from \"./configs/imports\";\nimport { javascript } from \"./configs/javascript\";\nimport { jsdoc } from \"./configs/jsdoc\";\nimport { node } from \"./configs/node\";\nimport { react } from \"./configs/react\";\nimport { typescriptRelaxed } from \"./configs/typescript-relaxed\";\nimport { typescriptStrict } from \"./configs/typescript-strict\";\nimport { unicorn } from \"./configs/unicorn\";\n\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call\nconst builtinAdonisConfig: ConfigWithExtends[] = configApp();\n\nconst adonisConfig: ConfigWithExtends[] = [\n ...builtinAdonisConfig,\n ...node(),\n ...imports(),\n {\n rules: {\n \"@typescript-eslint/naming-convention\": [\n \"error\",\n {\n selector: [\"enum\", \"enumMember\", \"class\", \"interface\", \"typeLike\"],\n format: [\"PascalCase\"],\n },\n {\n selector: [\"classProperty\", \"classMethod\", \"method\", \"variableLike\"],\n format: [\"camelCase\"],\n },\n {\n selector: \"variable\",\n format: [\"camelCase\", \"UPPER_CASE\", \"PascalCase\"],\n leadingUnderscore: \"allow\",\n trailingUnderscore: \"allow\",\n },\n ],\n },\n },\n];\n\nconst nextjsConfig: ConfigWithExtends[] = [\n ...a11y(),\n ...unicorn(),\n ...typescriptStrict(),\n ...react(),\n ...imports({ forbidDefaultExport: true }),\n];\n\nconst configs: ConfigWithExtends[] = [\n ...javascript(),\n ...jsdoc(),\n ...comments(),\n ...typescriptRelaxed(),\n];\n\nconst defaultOverrides = [...ignores(), ...formatters(), ...disables()];\n\nexport const solvro = (...overrides: ConfigWithExtends[]) => {\n const isAdonis = isPackageExists(\"@adonisjs/core\");\n const isNext = isPackageExists(\"next\");\n\n if (isNext && isAdonis) {\n throw new Error(\n \"You can't use both Adonis and Next.js in the same project\",\n );\n }\n\n const newConfig: ConfigWithExtends[] = [];\n\n if (isAdonis) {\n newConfig.push(...adonisConfig);\n }\n\n if (isNext) {\n newConfig.push(...nextjsConfig);\n }\n\n const tsConfigPath = findUpSync(\"tsconfig.json\", {\n cwd: process.cwd(),\n });\n\n if (tsConfigPath == null) {\n throw new Error(\"No tsconfig.json found\");\n }\n\n const rootDirectory = path.dirname(tsConfigPath);\n\n configs.push({\n languageOptions: {\n parserOptions: {\n projectService: true,\n tsconfigRootDir: rootDirectory,\n },\n },\n });\n\n return tseslint.config(\n ...configs,\n ...newConfig,\n ...defaultOverrides,\n ...overrides,\n );\n};\n","import jsxA11y from \"eslint-plugin-jsx-a11y\";\nimport globals from \"globals\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nexport function a11y(): ConfigWithExtends[] {\n return [\n {\n files: [\"**/*.{js,mjs,cjs,jsx,mjsx,ts,tsx,mtsx}\"],\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n ...jsxA11y.flatConfigs.recommended,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n languageOptions: {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n ...jsxA11y.flatConfigs.recommended.languageOptions,\n globals: {\n ...globals.serviceworker,\n ...globals.browser,\n },\n },\n settings: {\n \"jsx-a11y\": {\n components: {\n Input: \"input\",\n Button: \"button\",\n Link: \"a\",\n Label: \"label\",\n Select: \"select\",\n Textarea: \"textarea\",\n },\n attributes: {\n for: [\"htmlFor\", \"for\"],\n },\n },\n },\n },\n ];\n}\n","//@ts-expect-error not working\nexport { default as pluginComments } from \"@eslint-community/eslint-plugin-eslint-comments\";\nexport { default as pluginAntfu } from \"eslint-plugin-antfu\";\n//@ts-expect-error not working too\nexport { default as pluginImport } from \"eslint-plugin-import\";\nexport { default as pluginNode } from \"eslint-plugin-n\";\nexport { default as pluginUnicorn } from \"eslint-plugin-unicorn\";\nexport { default as pluginUnusedImports } from \"eslint-plugin-unused-imports\";\n","import type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginComments } from \"../plugins\";\n\nexport function comments(): ConfigWithExtends[] {\n return [\n {\n name: \"solvro/eslint-comments/rules\",\n plugins: {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n \"eslint-comments\": pluginComments,\n },\n rules: {\n \"eslint-comments/no-aggregating-enable\": \"error\",\n \"eslint-comments/no-duplicate-disable\": \"error\",\n \"eslint-comments/no-unlimited-disable\": \"error\",\n \"eslint-comments/no-unused-enable\": \"error\",\n },\n },\n ];\n}\n","import tseslint, { type ConfigWithExtends } from \"typescript-eslint\";\n\nimport { GLOB_SRC, GLOB_SRC_EXT } from \"../globs\";\n\nexport function disables(): ConfigWithExtends[] {\n return [\n {\n files: [`**/scripts/${GLOB_SRC}`],\n name: \"solvro/disables/scripts\",\n rules: {\n \"antfu/no-top-level-await\": \"off\",\n \"no-console\": \"off\",\n \"@typescript-eslint/explicit-function-return-type\": \"off\",\n },\n },\n {\n rules: {\n \"prettier/prettier\": \"off\",\n },\n },\n {\n files: [`**/cli/${GLOB_SRC}`, `**/cli.${GLOB_SRC_EXT}`],\n name: \"solvro/disables/cli\",\n rules: {\n \"antfu/no-top-level-await\": \"off\",\n \"no-console\": \"off\",\n },\n },\n {\n files: [\"**/bin/**/*\", `**/bin.${GLOB_SRC_EXT}`],\n name: \"solvro/disables/bin\",\n rules: {\n \"antfu/no-import-dist\": \"off\",\n \"antfu/no-import-node-modules-by-path\": \"off\",\n },\n },\n {\n files: [\"**/*.d.?([cm])ts\"],\n name: \"solvro/disables/dts\",\n rules: {\n \"eslint-comments/no-unlimited-disable\": \"off\",\n \"import-x/no-duplicates\": \"off\",\n \"no-restricted-syntax\": \"off\",\n \"unused-imports/no-unused-vars\": \"off\",\n },\n },\n {\n files: [\"**/*.js\", \"**/*.cjs\"],\n name: \"solvro/disables/cjs\",\n rules: {\n \"@typescript-eslint/no-require-imports\": \"off\",\n },\n },\n {\n files: [`**/*.config.${GLOB_SRC_EXT}`, `**/*.config.*.${GLOB_SRC_EXT}`],\n name: \"solvro/disables/config-files\",\n rules: {\n \"antfu/no-top-level-await\": \"off\",\n \"no-console\": \"off\",\n \"@typescript-eslint/explicit-function-return-type\": \"off\",\n },\n },\n {\n files: [\"**/*.js\"],\n extends: [tseslint.configs.disableTypeChecked],\n },\n ];\n}\n","export const GLOB_SRC_EXT = \"?([cm])[jt]s?(x)\";\nexport const GLOB_SRC = \"**/*.?([cm])[jt]s?(x)\";\n\nexport const GLOB_JS = \"**/*.?([cm])js\";\nexport const GLOB_JSX = \"**/*.?([cm])jsx\";\n\nexport const GLOB_TS = \"**/*.?([cm])ts\";\nexport const GLOB_TSX = \"**/*.?([cm])tsx\";\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 \"**/build\",\n \"**/output\",\n \"**/coverage\",\n \"**/temp\",\n \"**/.temp\",\n \"**/tmp\",\n \"**/.tmp\",\n \"**/.history\",\n \"**/.vitepress/cache\",\n \"**/.nuxt\",\n \"**/.next\",\n \"**/.svelte-kit\",\n \"**/.vercel\",\n \"**/.changeset\",\n \"**/.idea\",\n \"**/.cache\",\n \"**/.output\",\n \"**/.vite-inspect\",\n \"**/.yarn\",\n \"**/vite.config.*.timestamp-*\",\n\n \"**/CHANGELOG*.md\",\n \"**/*.min.*\",\n \"**/LICENSE*\",\n \"**/__snapshots__\",\n \"**/auto-import?(s).d.ts\",\n \"**/components.d.ts\",\n];\n","import prettierConfig from \"eslint-config-prettier\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nexport function formatters(): ConfigWithExtends[] {\n return [\n {\n name: \"solvro/prettier\",\n rules: {\n ...prettierConfig.rules,\n curly: \"error\",\n },\n },\n ];\n}\n","import type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { GLOB_EXCLUDE } from \"../globs\";\n\nexport function ignores(): ConfigWithExtends[] {\n return [\n {\n ignores: [...GLOB_EXCLUDE],\n name: \"solvro/ignores\",\n },\n ];\n}\n","import type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginAntfu, pluginImport } from \"../plugins\";\n\nexport function imports(\n options: { forbidDefaultExport: boolean } = { forbidDefaultExport: false },\n): ConfigWithExtends[] {\n const config = [\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n pluginImport.flatConfigs.typescript,\n {\n name: \"solvro/imports/rules\",\n plugins: {\n antfu: pluginAntfu,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n import: pluginImport,\n },\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n rules: {\n \"antfu/import-dedupe\": \"error\",\n \"antfu/no-import-dist\": \"error\",\n \"antfu/no-import-node-modules-by-path\": \"error\",\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n ...pluginImport.flatConfigs.recommended.rules,\n \"import/no-dynamic-require\": \"warn\",\n \"import/no-unresolved\": \"off\",\n \"import/consistent-type-specifier-style\": \"warn\",\n \"@typescript-eslint/no-restricted-imports\": [\n \"error\",\n {\n paths: [\n {\n name: \"axios\",\n message: \"Please use fetch instead\",\n },\n ],\n },\n ],\n },\n },\n ];\n\n if (options.forbidDefaultExport) {\n config.push(\n {\n \"import/no-default-export\": \"error\",\n },\n {\n files: [\n \"tsup.config.*\",\n \"eslint.config.*\",\n \".commitlintrc.*\",\n \"knip.*\",\n \"next.config.*\",\n \"commitlint.config.*\",\n \".releaserc.*\",\n ],\n rules: {\n \"import/no-default-export\": \"off\",\n },\n },\n );\n }\n\n return config;\n}\n","import eslint from \"@eslint/js\";\nimport globals from \"globals\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginAntfu, pluginUnusedImports } from \"../plugins\";\n\nexport function javascript(): ConfigWithExtends[] {\n return [\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 name: \"solvro/javascript/setup\",\n },\n {\n name: \"solvro/javascript/rules\",\n plugins: {\n antfu: pluginAntfu,\n \"unused-imports\": pluginUnusedImports,\n },\n rules: {\n ...eslint.configs.recommended.rules,\n \"accessor-pairs\": [\n \"error\",\n { enforceForClassMembers: true, setWithoutGet: true },\n ],\n curly: \"error\",\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\": [\n \"error\",\n { capIsNew: false, newIsCap: true, properties: true },\n ],\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-console\": [\"error\", { allow: [\"warn\", \"error\"] }],\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:\n \"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 \"TSEnumDeclaration[const=true]\",\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-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\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-useless-return\": \"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: false,\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 \"unused-imports/no-unused-imports\": \"error\",\n \"unused-imports/no-unused-vars\": [\n \"error\",\n {\n args: \"after-used\",\n argsIgnorePattern: \"^_\",\n ignoreRestSiblings: true,\n vars: \"all\",\n varsIgnorePattern: \"^_\",\n },\n ],\n \"use-isnan\": [\n \"error\",\n { enforceForIndexOf: true, enforceForSwitchCase: true },\n ],\n \"valid-typeof\": [\"error\", { requireStringLiterals: true }],\n \"vars-on-top\": \"error\",\n yoda: [\"error\", \"never\"],\n },\n },\n ];\n}\n","import jsdocPlugin from \"eslint-plugin-jsdoc\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nexport function jsdoc(): ConfigWithExtends[] {\n return [\n {\n name: \"solvro/jsdoc/rules\",\n plugins: {\n jsdoc: jsdocPlugin,\n },\n rules: {\n \"jsdoc/check-access\": \"warn\",\n \"jsdoc/check-param-names\": \"warn\",\n \"jsdoc/check-property-names\": \"warn\",\n \"jsdoc/check-types\": \"warn\",\n \"jsdoc/empty-tags\": \"warn\",\n \"jsdoc/implements-on-classes\": \"warn\",\n \"jsdoc/no-defaults\": \"warn\",\n \"jsdoc/no-multi-asterisks\": \"warn\",\n \"jsdoc/require-param-name\": \"warn\",\n \"jsdoc/require-property\": \"warn\",\n \"jsdoc/require-property-description\": \"warn\",\n \"jsdoc/require-property-name\": \"warn\",\n \"jsdoc/require-returns-check\": \"warn\",\n \"jsdoc/require-returns-description\": \"warn\",\n \"jsdoc/require-yields-check\": \"warn\",\n },\n },\n ];\n}\n","import type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginNode } from \"../plugins\";\n\nexport function node(): ConfigWithExtends[] {\n return [\n {\n name: \"solvro/node/rules\",\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/prefer-global/buffer\": [\"error\"],\n \"node/prefer-global/process\": [\"error\"],\n \"node/process-exit-as-throw\": \"error\",\n },\n },\n ];\n}\n","// @ts-expect-error ???\nimport nextPlugin from \"@next/eslint-plugin-next\";\nimport pluginReact from \"eslint-plugin-react\";\nimport pluginReactHooks from \"eslint-plugin-react-hooks\";\nimport { isPackageExists } from \"local-pkg\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nconst nextJsPackages = [\"next\"];\n\nconst forbiddenLibraries = [\n \"@headlessui/react\",\n \"@mui/material\",\n \"@chakra-ui/react\",\n \"@chakra-ui/core\",\n \"@nextui-org/react\",\n \"react-bootstrap\",\n \"antd\",\n];\n\nexport function react(): ConfigWithExtends[] {\n const isUsingNext = nextJsPackages.some((index) => isPackageExists(index));\n\n const nextjsConfig: ConfigWithExtends[] = [];\n\n if (isUsingNext) {\n nextjsConfig.push(\n {\n name: \"solvro/next/setup\",\n plugins: {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n \"@next/next\": nextPlugin,\n },\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n rules: nextPlugin.configs.recommended.rules,\n },\n {\n files: [\n \"**/app/**/{page,loading,layout}.{js,jsx,ts,tsx}\",\n \"**/pages/**/*.{js,jsx,ts,tsx}\",\n ],\n name: \"solvro/next/pages\",\n rules: {\n \"import/no-default-export\": \"off\",\n },\n },\n );\n }\n\n return [\n {\n name: \"solvro/react/setup\",\n plugins: {\n // @ts-expect-error ???\n react: pluginReact,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n \"react-hooks\": pluginReactHooks,\n },\n },\n ...nextjsConfig,\n {\n files: [\"**/*.{js,jsx,mjs,cjs,ts,tsx}\"],\n languageOptions: {\n parserOptions: {\n ecmaFeatures: {\n jsx: true,\n },\n },\n sourceType: \"module\",\n },\n settings: {\n react: {\n version: \"detect\",\n },\n },\n name: \"solvro/react/rules\",\n rules: {\n ...pluginReact.configs.flat?.recommended.rules,\n ...pluginReact.configs.flat?.[\"jsx-runtime\"].rules,\n \"react/no-danger\": \"warn\",\n \"react/jsx-no-leaked-render\": \"warn\",\n // recommended rules react-hooks\n \"react-hooks/exhaustive-deps\": \"warn\",\n \"react-hooks/rules-of-hooks\": \"error\",\n \"react/jsx-no-useless-fragment\": \"error\",\n \"react/function-component-definition\": [\n \"error\",\n {\n unnamedComponents: \"arrow-function\",\n namedComponents: \"function-declaration\",\n },\n ],\n \"react/hook-use-state\": [\n \"error\",\n {\n allowDestructuredState: true,\n },\n ],\n \"react/no-array-index-key\": \"warn\",\n \"@typescript-eslint/no-restricted-imports\": [\n \"error\",\n {\n paths: forbiddenLibraries.map((library) => ({\n name: library,\n message: `Please use ui.shadcn.com components instead.`,\n })),\n },\n ],\n },\n },\n {\n name: \"solvro/react/disables\",\n files: [\"**/components/ui/*.{jsx,tsx}\"],\n rules: {\n \"react/prop-types\": \"off\",\n \"no-shadow\": \"off\",\n \"@typescript-eslint/no-shadow\": \"off\",\n \"@typescript-eslint/restrict-template-expressions\": \"off\",\n \"unicorn/no-document-cookie\": \"off\",\n \"@typescript-eslint/no-redeclare\": \"off\",\n \"@typescript-eslint/no-deprecated\": \"off\",\n },\n },\n ];\n}\n","import tseslint from \"typescript-eslint\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nexport function typescriptRelaxed(): ConfigWithExtends[] {\n return [\n ...tseslint.configs.recommendedTypeChecked,\n ...tseslint.configs.stylisticTypeChecked,\n {\n name: \"solvro/typescript-relaxed/rules\",\n rules: {\n \"@typescript-eslint/no-unsafe-return\": \"off\",\n \"@typescript-eslint/require-await\": \"off\",\n \"@typescript-eslint/no-misused-promises\": [\n \"error\",\n {\n checksVoidReturn: false,\n },\n ],\n \"unused-imports/no-unused-vars\": \"off\",\n \"@typescript-eslint/no-unused-vars\": [\n \"error\",\n {\n args: \"all\",\n argsIgnorePattern: \"^_\",\n destructuredArrayIgnorePattern: \"^_\",\n varsIgnorePattern: \"^_\",\n ignoreRestSiblings: true,\n },\n ],\n \"@typescript-eslint/no-empty-object-type\": \"off\",\n \"@typescript-eslint/no-unnecessary-condition\": \"warn\",\n },\n },\n ];\n}\n","import tseslint from \"typescript-eslint\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginAntfu } from \"../plugins\";\n\nexport function typescriptStrict(): ConfigWithExtends[] {\n return [\n ...tseslint.configs.strictTypeChecked,\n ...tseslint.configs.stylisticTypeChecked,\n {\n name: \"solvro/typescript-strict/setup\",\n plugins: {\n antfu: pluginAntfu,\n },\n },\n {\n files: [\"**/*.{ts,tsx}\"],\n name: \"solvro/typescript-strict/rules\",\n rules: {\n \"@typescript-eslint/ban-ts-comment\": [\n \"error\",\n { \"ts-expect-error\": \"allow-with-description\" },\n ],\n \"@typescript-eslint/consistent-type-definitions\": [\n \"error\",\n \"interface\",\n ],\n \"@typescript-eslint/consistent-type-imports\": [\n \"error\",\n {\n disallowTypeAnnotations: false,\n prefer: \"type-imports\",\n },\n ],\n \"@typescript-eslint/method-signature-style\": [\"error\", \"property\"], // https://www.totaltypescript.com/method-shorthand-syntax-considered-harmful\n \"@typescript-eslint/no-dupe-class-members\": \"error\",\n \"@typescript-eslint/no-empty-object-type\": [\n \"error\",\n { allowInterfaces: \"always\" },\n ],\n \"@typescript-eslint/no-import-type-side-effects\": \"error\",\n \"@typescript-eslint/no-redeclare\": [\"error\", { builtinGlobals: false }],\n \"@typescript-eslint/no-require-imports\": \"error\",\n \"@typescript-eslint/no-unused-expressions\": [\n \"error\",\n {\n allowShortCircuit: true,\n allowTaggedTemplates: true,\n allowTernary: true,\n },\n ],\n \"@typescript-eslint/no-use-before-define\": [\n \"error\",\n { classes: false, functions: false, variables: true },\n ],\n \"@typescript-eslint/no-wrapper-object-types\": \"error\",\n // prevent unnecessary use of void operator\n \"@typescript-eslint/no-meaningless-void-operator\": \"error\",\n // \"using non-null assertions cancels the benefits of the strict\n // null-checking mode.\"\n // warn when one of the types in union / intersection overrides others\n \"@typescript-eslint/no-redundant-type-constituents\": \"warn\",\n // prevent variables shadowing\n \"no-shadow\": \"error\",\n \"@typescript-eslint/no-shadow\": \"error\",\n // prevent assignment of this, signals a wrong usage of it\n \"@typescript-eslint/no-this-alias\": \"error\",\n // prevent throwing non-error\n \"no-throw-literal\": \"off\",\n\n // prevent unnecessary explicitly adding a default type argument\n \"@typescript-eslint/no-unnecessary-type-arguments\": \"error\",\n // prevent unnecessary assertions that won't change the outcome\n \"@typescript-eslint/no-unnecessary-type-assertion\": \"error\",\n // prevent extending default types\n \"@typescript-eslint/no-unnecessary-type-constraint\": \"error\",\n // force typing out function arguments\n \"@typescript-eslint/no-unsafe-argument\": \"error\",\n // prevent usage of any via reassigning\n \"@typescript-eslint/no-unsafe-assignment\": \"error\",\n // prevent usage of any via calling it\n \"@typescript-eslint/no-unsafe-call\": \"error\",\n // prevent usage of any via using it's members\n \"@typescript-eslint/no-unsafe-member-access\": \"error\",\n // prevent reverting any from functions\n \"@typescript-eslint/no-unsafe-return\": \"error\",\n // prevent unused expressions\n \"no-unused-expressions\": \"off\",\n // var<'string'> = 'string' -> var = 'string' as const\n \"@typescript-eslint/prefer-as-const\": \"error\",\n // force initializing enums\n \"@typescript-eslint/prefer-enum-initializers\": \"error\",\n // prefer for x of obj to for let i = 0...\n \"@typescript-eslint/prefer-for-of\": \"error\",\n // prefer includes() to indexOf()\n \"@typescript-eslint/prefer-includes\": \"error\",\n // use literals for enum initialization\n \"@typescript-eslint/prefer-literal-enum-member\": \"error\",\n // prefer safe cascade of a value when dealing with undefined or null\n \"@typescript-eslint/prefer-nullish-coalescing\": \"error\",\n // prefer optional chaining (a?.b)\n \"@typescript-eslint/prefer-optional-chain\": \"error\",\n // prefer using type parameter for Array.reduce\n \"@typescript-eslint/prefer-reduce-type-parameter\": \"error\",\n // prefer RegExp#exec when no /g flag in regex\n \"@typescript-eslint/prefer-regexp-exec\": \"error\",\n // enforce `this` as a type when stating type for a method\n \"@typescript-eslint/prefer-return-this-type\": \"error\",\n // enforce startsWith to indexOf === 0\n \"@typescript-eslint/prefer-string-starts-ends-with\": \"error\",\n // prevents default behavior of .sort() - which is confusing\n \"@typescript-eslint/require-array-sort-compare\": \"error\",\n // no async functions without awaits in body\n \"require-await\": \"off\",\n \"@typescript-eslint/require-await\": \"error\",\n // prevent number + string\n \"@typescript-eslint/restrict-plus-operands\": \"error\",\n // only allow string in templates\n \"@typescript-eslint/restrict-template-expressions\": \"error\",\n // prevent returning await\n \"no-return-await\": \"off\",\n \"@typescript-eslint/return-await\": \"error\",\n // only booleans in ifs and whiles\n \"@typescript-eslint/strict-boolean-expressions\": \"error\",\n // check if all paths are followed in code\n \"@typescript-eslint/switch-exhaustiveness-check\": \"error\",\n \"dot-notation\": \"off\",\n \"no-implied-eval\": \"off\",\n \"@typescript-eslint/await-thenable\": \"error\",\n \"@typescript-eslint/dot-notation\": [\"error\", { allowKeywords: true }],\n \"@typescript-eslint/no-floating-promises\": \"error\",\n \"@typescript-eslint/no-for-in-array\": \"error\",\n \"@typescript-eslint/no-implied-eval\": \"error\",\n \"@typescript-eslint/no-misused-promises\": \"error\",\n \"@typescript-eslint/promise-function-async\": \"error\",\n \"@typescript-eslint/unbound-method\": \"error\",\n \"no-restricted-imports\": \"off\",\n },\n },\n ];\n}\n","import type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginUnicorn } from \"../plugins\";\n\nexport function unicorn(): ConfigWithExtends[] {\n return [\n {\n name: \"solvro/unicorn/rules\",\n plugins: {\n unicorn: pluginUnicorn,\n },\n rules: {\n ...pluginUnicorn.configs[\"flat/recommended\"].rules,\n \"unicorn/no-array-reduce\": \"off\",\n \"unicorn/no-null\": \"off\",\n \"unicorn/no-useless-switch-case\": \"off\",\n \"unicorn/prefer-global-this\": \"off\",\n \"unicorn/prevent-abbreviations\": [\n \"error\",\n {\n replacements: {\n env: false,\n envs: false,\n props: false,\n prop: false,\n ref: false,\n },\n },\n ],\n },\n },\n ];\n}\n"],"mappings":"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","names":["isPackageExists","tseslint","default","default","default","globals","globals","default","default","nextjsConfig","tseslint","tseslint","tseslint","default","default","isPackageExists","tseslint"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@solvro/config",
3
- "version": "1.8.2",
3
+ "version": "1.8.3",
4
4
  "description": "Solvro's engineering style guide",
5
5
  "keywords": [
6
6
  "eslint",