@solvro/config 2.0.4 → 2.0.6

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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../node_modules/tsup/assets/cjs_shims.js","../../src/eslint/plugins.ts","../../src/eslint/configs/imports.ts","../../src/eslint/configs/node.ts","../../src/eslint/presets/adonis.ts","../../src/eslint/configs/typescript-strict.ts","../../src/eslint/configs/unicorn.ts","../../src/eslint/presets/nestjs.ts","../../src/eslint/configs/a11y.ts","../../src/eslint/configs/react.ts","../../src/eslint/presets/react.ts","../../src/eslint/presets/node.ts","../../src/eslint/index.ts","../../src/eslint/presets/base.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/javascript.ts","../../src/eslint/configs/jsdoc.ts","../../src/eslint/configs/typescript-relaxed.ts"],"sourcesContent":["// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () =>\n typeof document === 'undefined'\n ? new URL(`file:${__filename}`).href\n : (document.currentScript && document.currentScript.src) ||\n new URL('main.js', document.baseURI).href\n\nexport const importMetaUrl = /* @__PURE__ */ getImportMetaUrl()\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\";\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 { Config, ConfigWithExtends } from \"typescript-eslint\";\n\nimport { pluginAntfu, pluginImport } from \"../plugins\";\n\nconst forbiddenUiLibraries = [\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 imports({\n forbidDefaultExport = true,\n} = {}): ConfigWithExtends[] {\n const config: Config = [\n pluginImport.flatConfigs.typescript,\n {\n name: \"solvro/imports/rules\",\n plugins: {\n antfu: pluginAntfu,\n },\n\n rules: {\n \"antfu/import-dedupe\": \"error\",\n \"antfu/no-import-dist\": \"error\",\n \"antfu/no-import-node-modules-by-path\": \"error\",\n\n ...(pluginImport.flatConfigs.recommended\n .rules as ConfigWithExtends[\"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 ...forbiddenUiLibraries.map((library) => ({\n name: library,\n message: `Please use ui.shadcn.com components instead.`,\n })),\n ],\n },\n ],\n },\n },\n ] satisfies Config;\n\n if (forbidDefaultExport) {\n config.push(\n {\n rules: { \"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 \"vite.config.*\",\n \".releaserc.*\",\n \"vitest.config.*\",\n \"postcss.config.*\",\n \"playwright.config.*\",\n ],\n rules: {\n \"import/no-default-export\": \"off\",\n },\n },\n );\n }\n\n return config;\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","import type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { configApp } from \"@adonisjs/eslint-config\";\n\nimport { imports } from \"../configs/imports\";\nimport { node } from \"../configs/node\";\n\nexport const adonisPreset = (): ConfigWithExtends[] => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call\n const builtinAdonisConfig: ConfigWithExtends[] = configApp();\n\n return [\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 leadingUnderscore: \"allow\",\n trailingUnderscore: \"allow\",\n },\n {\n selector: [\n \"classProperty\",\n \"classMethod\",\n \"method\",\n \"variableLike\",\n ],\n format: [\"camelCase\"],\n leadingUnderscore: \"allow\",\n trailingUnderscore: \"allow\",\n },\n {\n selector: \"variable\",\n format: [\"camelCase\", \"UPPER_CASE\", \"PascalCase\"],\n leadingUnderscore: \"allow\",\n trailingUnderscore: \"allow\",\n },\n ],\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.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 utils: false,\n },\n allowList: {\n e2e: true,\n },\n ignore: [String.raw`e2e`],\n },\n ],\n },\n },\n ];\n}\n","import eslintNestJs from \"@darraghor/eslint-plugin-nestjs-typed\";\nimport { isPackageListed } from \"local-pkg\";\nimport type { ConfigArray, ConfigWithExtends } from \"typescript-eslint\";\n\nimport { imports } from \"../configs/imports\";\nimport { node } from \"../configs/node\";\nimport { typescriptStrict } from \"../configs/typescript-strict\";\nimport { unicorn } from \"../configs/unicorn\";\n\nexport const nestjsPreset = async (): Promise<ConfigWithExtends[]> => {\n const hasSwagger = await isPackageListed(\"@nestjs/swagger\");\n\n const nestjsConfig = hasSwagger\n ? ([\n ...eslintNestJs.configs.flatRecommended,\n {\n rules: {\n \"@darraghor/nestjs-typed/api-property-matches-property-optionality\":\n \"warn\",\n \"@darraghor/nestjs-typed/controllers-should-supply-api-tags\":\n \"warn\",\n \"@darraghor/nestjs-typed/api-method-should-specify-api-response\":\n \"warn\",\n \"@darraghor/nestjs-typed/api-method-should-specify-api-operation\":\n \"warn\",\n \"@darraghor/nestjs-typed/api-enum-property-best-practices\": \"warn\",\n \"@darraghor/nestjs-typed/api-property-returning-array-should-set-array\":\n \"warn\",\n },\n },\n ] satisfies ConfigArray)\n : eslintNestJs.configs.flatNoSwagger;\n\n return [\n ...node(),\n ...unicorn(),\n ...typescriptStrict(),\n ...imports({ forbidDefaultExport: true }),\n ...nestjsConfig,\n {\n rules: {\n \"no-implicit-coercion\": [\n \"error\",\n {\n allow: [\"+\"],\n },\n ],\n \"unicorn/prefer-top-level-await\": \"off\",\n // flaky as hell\n \"@darraghor/nestjs-typed/injectable-should-be-provided\": \"off\",\n },\n },\n {\n rules: {\n \"@typescript-eslint/no-extraneous-class\": [\n \"error\",\n {\n allowEmpty: true,\n },\n ],\n },\n files: [\"**/*.module.ts\"],\n },\n {\n rules: {\n \"@typescript-eslint/no-floating-promises\": \"off\",\n },\n files: [\"./src/main.ts\"],\n },\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 ...jsxA11y.flatConfigs.recommended,\n languageOptions: {\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","import pluginQuery from \"@tanstack/eslint-plugin-query\";\nimport pluginReact from \"eslint-plugin-react\";\nimport pluginReactHooks from \"eslint-plugin-react-hooks\";\nimport pluginReactRefresh from \"eslint-plugin-react-refresh\";\nimport reactYouMightNotNeedAnEffect from \"eslint-plugin-react-you-might-not-need-an-effect\";\nimport { isPackageListedSync } from \"local-pkg\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nconst nextJsPackages = [\"next\"];\nconst vitePackages = [\"vite\"];\n\nexport async function react(): Promise<ConfigWithExtends[]> {\n const isUsingNext = nextJsPackages.some((index) =>\n isPackageListedSync(index),\n );\n const isUsingVite = vitePackages.some((index) => isPackageListedSync(index));\n\n const nextjsConfig: ConfigWithExtends[] = [];\n\n if (isUsingNext) {\n const nextPlugin = await import(\"@next/eslint-plugin-next\").then(\n (d) => d.default,\n );\n\n nextjsConfig.push(\n {\n name: \"solvro/next/setup\",\n plugins: {\n \"@next/next\": nextPlugin,\n },\n\n rules: nextPlugin.configs.recommended.rules,\n },\n {\n files: [\n \"**/app/**/{page,loading,layout,template,error,not-found,unauthorized,forbidden,default,robots,sitemap}.{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 const viteConfig: ConfigWithExtends[] = [];\n\n if (isUsingVite) {\n viteConfig.push(pluginReactRefresh.configs.vite);\n }\n\n return [\n {\n name: \"solvro/react/setup\",\n plugins: {\n react: pluginReact,\n\n \"react-hooks\": pluginReactHooks,\n },\n },\n ...nextjsConfig,\n ...viteConfig,\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 },\n },\n ...pluginQuery.configs[\"flat/recommended\"],\n reactYouMightNotNeedAnEffect.configs.recommended,\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 type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { a11y } from \"../configs/a11y\";\nimport { imports } from \"../configs/imports\";\nimport { react } from \"../configs/react\";\nimport { typescriptStrict } from \"../configs/typescript-strict\";\nimport { unicorn } from \"../configs/unicorn\";\n\nexport const reactPreset = async (): Promise<ConfigWithExtends[]> => [\n ...a11y(),\n ...unicorn(),\n ...typescriptStrict(),\n ...imports({ forbidDefaultExport: true }),\n ...(await react()),\n];\n","import type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { imports } from \"../configs/imports\";\nimport { node } from \"../configs/node\";\nimport { typescriptStrict } from \"../configs/typescript-strict\";\nimport { unicorn } from \"../configs/unicorn\";\n\nexport const nodePreset = (): ConfigWithExtends[] => [\n ...node(),\n ...unicorn(),\n ...typescriptStrict(),\n ...imports({ forbidDefaultExport: true }),\n];\n","import { findUpSync } from \"find-up-simple\";\nimport { isPackageListed } from \"local-pkg\";\nimport path from \"node:path\";\nimport tseslint from \"typescript-eslint\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { basePreset, defaultOverridesPreset } from \"./presets/base\";\n\nexport const solvro = async (...overrides: ConfigWithExtends[]) => {\n const isAdonis = await isPackageListed(\"@adonisjs/core\");\n const isReact = await isPackageListed(\"react\");\n const isNestJs = await isPackageListed(\"@nestjs/core\");\n\n if (isReact && isAdonis) {\n throw new Error(\"You can't use both Adonis and React in the same project\");\n }\n\n const configs = basePreset();\n const projectConfigs: ConfigWithExtends[] = [];\n\n if (isAdonis) {\n const { adonisPreset } = await import(\"./presets/adonis.js\");\n projectConfigs.push(...adonisPreset());\n } else if (isNestJs) {\n const { nestjsPreset } = await import(\"./presets/nestjs.js\");\n projectConfigs.push(...(await nestjsPreset()));\n } else if (isReact) {\n const { reactPreset } = await import(\"./presets/react.js\");\n projectConfigs.push(...(await reactPreset()));\n } else {\n const { nodePreset } = await import(\"./presets/node.js\");\n projectConfigs.push(...nodePreset());\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 const tsConfig: ConfigWithExtends = {\n languageOptions: {\n parserOptions: {\n projectService: true,\n tsconfigRootDir: rootDirectory,\n },\n },\n };\n\n const defaultOverrides = defaultOverridesPreset();\n\n return tseslint.config(\n ...configs,\n tsConfig,\n ...projectConfigs,\n ...defaultOverrides,\n ...overrides,\n );\n};\n","import gitignore from \"eslint-config-flat-gitignore\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { comments } from \"../configs/comments\";\nimport { disables } from \"../configs/disables\";\nimport { formatters } from \"../configs/formatters\";\nimport { ignores } from \"../configs/ignores\";\nimport { javascript } from \"../configs/javascript\";\nimport { jsdoc } from \"../configs/jsdoc\";\nimport { typescriptRelaxed } from \"../configs/typescript-relaxed\";\n\nexport const basePreset = (): ConfigWithExtends[] => [\n gitignore(),\n ...javascript(),\n ...jsdoc(),\n ...comments(),\n ...typescriptRelaxed(),\n];\n\nexport const defaultOverridesPreset = (): ConfigWithExtends[] => [\n ...ignores(),\n ...formatters(),\n ...disables(),\n];\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 from \"typescript-eslint\";\nimport type { ConfigWithExtends } from \"typescript-eslint\";\n\nimport { GLOB_JS, 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: [GLOB_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\";\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 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-implicit-coercion\": \"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 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 \"no-useless-constructor\": \"off\",\n \"@typescript-eslint/no-useless-constructor\": \"error\",\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 \"@typescript-eslint/no-non-null-assertion\": \"error\",\n \"@typescript-eslint/no-unnecessary-template-expression\": \"error\",\n \"@typescript-eslint/strict-boolean-expressions\": [\n \"error\",\n {\n allowNullableObject: false,\n },\n ],\n },\n },\n ];\n}\n"],"mappings":"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","names":["tseslint","import_typescript_eslint","eslintNestJs","jsxA11y","globals","import_globals","pluginReactRefresh","pluginReact","pluginReactHooks","pluginQuery","reactYouMightNotNeedAnEffect","import_local_pkg","init_react","init_node","import_local_pkg","import_typescript_eslint","tseslint","prettierConfig","globals","eslint","jsdocPlugin","import_typescript_eslint","tseslint","gitignore","adonisPreset","nestjsPreset","reactPreset","nodePreset","path","tseslint"]}
@@ -0,0 +1,6 @@
1
+ import * as _typescript_eslint_utils_ts_eslint from '@typescript-eslint/utils/ts-eslint';
2
+ import { ConfigWithExtends } from 'typescript-eslint';
3
+
4
+ declare const solvro: (...overrides: ConfigWithExtends[]) => Promise<_typescript_eslint_utils_ts_eslint.FlatConfig.ConfigArray>;
5
+
6
+ export { solvro };
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/prettier/index.ts
21
+ var prettier_exports = {};
22
+ __export(prettier_exports, {
23
+ default: () => prettier_default
24
+ });
25
+ module.exports = __toCommonJS(prettier_exports);
26
+ var overridableDefaults = {
27
+ arrowParens: "always",
28
+ endOfLine: "lf",
29
+ printWidth: 80,
30
+ quoteProps: "as-needed",
31
+ semi: true,
32
+ tabWidth: 2,
33
+ trailingComma: "all",
34
+ useTabs: false
35
+ };
36
+ var prettier_default = {
37
+ ...overridableDefaults,
38
+ importOrder: [
39
+ "^@assets/(.*)$",
40
+ "<THIRD_PARTY_MODULES>",
41
+ "^@japa/(.*)$",
42
+ "^@adonisjs/(.*)$",
43
+ "^@nestjs/(.*)$",
44
+ "^@/(.*)$",
45
+ "^#(.*)$",
46
+ "^[./]"
47
+ ],
48
+ importOrderSeparation: true,
49
+ importOrderSortSpecifiers: true,
50
+ importOrderParserPlugins: ["typescript", "jsx", "decorators-legacy"],
51
+ plugins: [
52
+ "prettier-plugin-packagejson",
53
+ "@trivago/prettier-plugin-sort-imports",
54
+ "prettier-plugin-tailwindcss"
55
+ ],
56
+ singleQuote: false
57
+ };
58
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/prettier/index.ts"],"sourcesContent":["import type { Options } from \"prettier\";\n\n/**\n * Some of Prettier's defaults can be overridden by an EditorConfig file. We\n * define those here to ensure that doesn't happen.\n *\n * See: https://github.com/prettier/prettier/blob/main/docs/configuration.md#editorconfig\n */\n\nconst overridableDefaults = {\n arrowParens: \"always\",\n endOfLine: \"lf\",\n printWidth: 80,\n quoteProps: \"as-needed\",\n semi: true,\n tabWidth: 2,\n trailingComma: \"all\",\n useTabs: false,\n} as const;\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n ...overridableDefaults,\n importOrder: [\n \"^@assets/(.*)$\",\n \"<THIRD_PARTY_MODULES>\",\n \"^@japa/(.*)$\",\n \"^@adonisjs/(.*)$\",\n \"^@nestjs/(.*)$\",\n \"^@/(.*)$\",\n \"^#(.*)$\",\n \"^[./]\",\n ],\n importOrderSeparation: true,\n importOrderSortSpecifiers: true,\n importOrderParserPlugins: [\"typescript\", \"jsx\", \"decorators-legacy\"],\n plugins: [\n \"prettier-plugin-packagejson\",\n \"@trivago/prettier-plugin-sort-imports\",\n \"prettier-plugin-tailwindcss\",\n ],\n singleQuote: false,\n} as const satisfies Options;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,IAAM,sBAAsB;AAAA,EAC1B,aAAa;AAAA,EACb,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,MAAM;AAAA,EACN,UAAU;AAAA,EACV,eAAe;AAAA,EACf,SAAS;AACX;AAGA,IAAO,mBAAQ;AAAA,EACb,GAAG;AAAA,EACH,aAAa;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,uBAAuB;AAAA,EACvB,2BAA2B;AAAA,EAC3B,0BAA0B,CAAC,cAAc,OAAO,mBAAmB;AAAA,EACnE,SAAS;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,aAAa;AACf;","names":[]}
@@ -0,0 +1,18 @@
1
+ declare const _default: {
2
+ readonly importOrder: readonly ["^@assets/(.*)$", "<THIRD_PARTY_MODULES>", "^@japa/(.*)$", "^@adonisjs/(.*)$", "^@nestjs/(.*)$", "^@/(.*)$", "^#(.*)$", "^[./]"];
3
+ readonly importOrderSeparation: true;
4
+ readonly importOrderSortSpecifiers: true;
5
+ readonly importOrderParserPlugins: readonly ["typescript", "jsx", "decorators-legacy"];
6
+ readonly plugins: ["prettier-plugin-packagejson", "@trivago/prettier-plugin-sort-imports", "prettier-plugin-tailwindcss"];
7
+ readonly singleQuote: false;
8
+ readonly arrowParens: "always";
9
+ readonly endOfLine: "lf";
10
+ readonly printWidth: 80;
11
+ readonly quoteProps: "as-needed";
12
+ readonly semi: true;
13
+ readonly tabWidth: 2;
14
+ readonly trailingComma: "all";
15
+ readonly useTabs: false;
16
+ };
17
+
18
+ export { _default as default };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@solvro/config",
3
- "version": "2.0.4",
3
+ "version": "2.0.6",
4
4
  "description": "Solvro's engineering style guide",
5
5
  "keywords": [
6
6
  "eslint",
@@ -59,66 +59,67 @@
59
59
  },
60
60
  "prettier": "./dist/prettier/index.js",
61
61
  "dependencies": {
62
- "@adonisjs/eslint-config": "^2.1.0",
62
+ "@adonisjs/eslint-config": "^2.1.2",
63
63
  "@clack/prompts": "^0.11.0",
64
64
  "@commitlint/config-conventional": "^19.8.1",
65
- "@darraghor/eslint-plugin-nestjs-typed": "^6.7.0",
65
+ "@darraghor/eslint-plugin-nestjs-typed": "^6.7.1",
66
66
  "@eslint-community/eslint-plugin-eslint-comments": "^4.5.0",
67
- "@eslint/js": "^9.30.1",
68
- "@tanstack/eslint-plugin-query": "^5.81.2",
67
+ "@eslint/js": "^9.34.0",
68
+ "@tanstack/eslint-plugin-query": "^5.83.1",
69
69
  "@trivago/prettier-plugin-sort-imports": "^5.2.2",
70
- "@typescript-eslint/eslint-plugin": "^8.35.1",
70
+ "@typescript-eslint/eslint-plugin": "^8.41.0",
71
71
  "commander": "^14.0.0",
72
72
  "eslint-config-flat-gitignore": "^2.1.0",
73
- "eslint-config-prettier": "^10.1.5",
73
+ "eslint-config-prettier": "^10.1.8",
74
74
  "eslint-plugin-antfu": "^3.1.1",
75
75
  "eslint-plugin-import": "^2.32.0",
76
- "eslint-plugin-jsdoc": "^51.3.3",
76
+ "eslint-plugin-jsdoc": "^54.1.1",
77
77
  "eslint-plugin-jsx-a11y": "^6.10.2",
78
- "eslint-plugin-n": "^17.21.0",
78
+ "eslint-plugin-n": "^17.21.3",
79
79
  "eslint-plugin-react": "^7.37.5",
80
80
  "eslint-plugin-react-hooks": "^5.2.0",
81
- "eslint-plugin-react-refresh": "^0.4.16",
82
- "eslint-plugin-react-you-might-not-need-an-effect": "^0.4.1",
83
- "eslint-plugin-unicorn": "^59.0.1",
84
- "eslint-plugin-unused-imports": "^4.1.4",
81
+ "eslint-plugin-react-refresh": "^0.4.20",
82
+ "eslint-plugin-react-you-might-not-need-an-effect": "^0.4.4",
83
+ "eslint-plugin-unicorn": "^60.0.0",
84
+ "eslint-plugin-unused-imports": "^4.2.0",
85
85
  "execa": "^9.6.0",
86
86
  "find-up-simple": "^1.0.1",
87
87
  "globals": "^16.3.0",
88
88
  "is-interactive": "^2.0.0",
89
- "local-pkg": "^1.1.1",
89
+ "local-pkg": "^1.1.2",
90
90
  "package-manager-detector": "^1.3.0",
91
91
  "picocolors": "^1.1.1",
92
- "prettier-plugin-packagejson": "^2.5.18",
93
- "prettier-plugin-tailwindcss": "^0.6.13",
92
+ "prettier-plugin-packagejson": "^2.5.19",
93
+ "prettier-plugin-tailwindcss": "^0.6.14",
94
94
  "semver": "^7.7.2",
95
- "typescript-eslint": "^8.35.1"
95
+ "typescript-eslint": "^8.41.0"
96
96
  },
97
97
  "devDependencies": {
98
98
  "@commitlint/cli": "^19.8.1",
99
- "@eslint/config-inspector": "^1.1.0",
100
- "@next/eslint-plugin-next": "^15.3.5",
99
+ "@eslint/config-inspector": "^1.2.0",
100
+ "@next/eslint-plugin-next": "^15.5.2",
101
101
  "@semantic-release/git": "^10.0.1",
102
- "@types/node": "^24.0.10",
102
+ "@types/node": "^24.3.0",
103
103
  "@types/semver": "^7.7.0",
104
104
  "@vitest/coverage-v8": "^3.2.4",
105
105
  "@vitest/ui": "^3.2.4",
106
- "eslint": "^9.30.1",
106
+ "eslint": "^9.34.0",
107
107
  "husky": "^9.1.7",
108
- "knip": "^5.61.3",
109
- "lint-staged": "^16.1.2",
108
+ "knip": "^5.63.0",
109
+ "lint-staged": "^16.1.5",
110
+ "pkg-pr-new": "^0.0.58",
110
111
  "prettier": "^3.6.2",
111
- "semantic-release": "^24.2.6",
112
+ "semantic-release": "^24.2.7",
112
113
  "tsup": "^8.5.0",
113
- "tsx": "^4.20.3",
114
- "typescript": "^5.8.3",
114
+ "tsx": "^4.20.5",
115
+ "typescript": "^5.9.2",
115
116
  "vitest": "^3.2.4"
116
117
  },
117
118
  "peerDependencies": {
118
119
  "@next/eslint-plugin-next": ">=12.3.0 <16.0.0-0",
119
120
  "eslint": ">=9.0.0 <10.0.0"
120
121
  },
121
- "packageManager": "npm@11.4.2",
122
+ "packageManager": "npm@11.5.2",
122
123
  "engines": {
123
124
  "node": "^20.19.0 || >=22.12.0"
124
125
  },