@shayanthenerd/eslint-config 0.36.0 → 0.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -302,10 +302,9 @@ You can also add the following to your _.vscode/settings.json_:
302
302
  { "rule": "*quotes", "severity": "off", "fixable": true },
303
303
  { "rule": "import*", "severity": "off", "fixable": true },
304
304
  { "rule": "*-spac*", "severity": "off", "fixable": true },
305
- { "rule": "*order-*", "severity": "off", "fixable": true },
305
+ { "rule": "*order*", "severity": "off", "fixable": true },
306
306
  { "rule": "*newline*", "severity": "off", "fixable": true },
307
307
  { "rule": "*attribute*", "severity": "off", "fixable": true },
308
- { "rule": "package-json/order-properties", "severity": "off", "fixable": true },
309
308
  { "rule": "vue/max-len", "severity": "off", "fixable": true },
310
309
  { "rule": "vue/comma-dangle", "severity": "off", "fixable": true },
311
310
  { "rule": "vue/space-in-parens", "severity": "off", "fixable": true }
@@ -1,7 +1,7 @@
1
1
  import { globs } from "../helpers/globs.mjs";
2
2
  import { defaultOptions } from "../helpers/options/defaultOptions.mjs";
3
- import { isEnabled } from "../utils/isEnabled.mjs";
4
3
  import { getAstroRules } from "../rules/astro.mjs";
4
+ import { isEnabled } from "../utils/isEnabled.mjs";
5
5
  import * as eslintParserAstro from "astro-eslint-parser";
6
6
  import { mergeConfigs } from "eslint-flat-config-utils";
7
7
  import eslintPluginAstro from "eslint-plugin-astro";
@@ -1,6 +1,6 @@
1
1
  import { globs } from "../helpers/globs.mjs";
2
- import { isEnabled } from "../utils/isEnabled.mjs";
3
2
  import { getBaselineRules } from "../rules/baseline.mjs";
3
+ import { isEnabled } from "../utils/isEnabled.mjs";
4
4
  import { isTruthy } from "../utils/isTruthy.mjs";
5
5
  import eslintPluginBaselineJs from "eslint-plugin-baseline-js";
6
6
  // src/configs/baseline.ts
@@ -1,7 +1,7 @@
1
1
  import { globs } from "../helpers/globs.mjs";
2
2
  import { defaultOptions } from "../helpers/options/defaultOptions.mjs";
3
- import { isEnabled } from "../utils/isEnabled.mjs";
4
3
  import { getCssRules } from "../rules/css.mjs";
4
+ import { isEnabled } from "../utils/isEnabled.mjs";
5
5
  import { mergeConfigs } from "eslint-flat-config-utils";
6
6
  import eslintPluginCssicorn from "eslint-cssicorn";
7
7
  import eslintPluginCss from "@eslint/css";
@@ -1,7 +1,7 @@
1
1
  import { globs } from "../helpers/globs.mjs";
2
2
  import { defaultOptions } from "../helpers/options/defaultOptions.mjs";
3
- import { isEnabled } from "../utils/isEnabled.mjs";
4
3
  import { getCypressRules } from "../rules/cypress.mjs";
4
+ import { isEnabled } from "../utils/isEnabled.mjs";
5
5
  import { mergeConfigs } from "eslint-flat-config-utils";
6
6
  import eslintPluginCypress from "eslint-plugin-cypress";
7
7
  // src/configs/cypress.ts
@@ -1,7 +1,7 @@
1
1
  import { globs } from "../helpers/globs.mjs";
2
2
  import { defaultOptions } from "../helpers/options/defaultOptions.mjs";
3
- import { isEnabled } from "../utils/isEnabled.mjs";
4
3
  import { getHtmlRules } from "../rules/html.mjs";
4
+ import { isEnabled } from "../utils/isEnabled.mjs";
5
5
  import { mergeConfigs } from "eslint-flat-config-utils";
6
6
  import eslintPluginUnicorn from "eslint-plugin-unicorn";
7
7
  import eslintPluginHtml from "@html-eslint/eslint-plugin";
@@ -1,8 +1,8 @@
1
1
  import { globs } from "../helpers/globs.mjs";
2
2
  import { defaultOptions } from "../helpers/options/defaultOptions.mjs";
3
+ import { getImportXRules } from "../rules/importX.mjs";
3
4
  import { isEnabled } from "../utils/isEnabled.mjs";
4
5
  import { isTruthy } from "../utils/isTruthy.mjs";
5
- import { getImportXRules } from "../rules/importX.mjs";
6
6
  import { mergeConfigs } from "eslint-flat-config-utils";
7
7
  import eslintPluginImportX from "eslint-plugin-import-x";
8
8
  // src/configs/importX.ts
@@ -1,7 +1,7 @@
1
1
  import { globs } from "../helpers/globs.mjs";
2
+ import { getJavaScriptRules } from "../rules/javascript.mjs";
2
3
  import { isEnabled } from "../utils/isEnabled.mjs";
3
4
  import { isTruthy } from "../utils/isTruthy.mjs";
4
- import { getJavaScriptRules } from "../rules/javascript.mjs";
5
5
  import { mergeConfigs } from "eslint-flat-config-utils";
6
6
  import { parser } from "typescript-eslint";
7
7
  import globals from "globals";
@@ -1,7 +1,7 @@
1
1
  import { globs } from "../helpers/globs.mjs";
2
2
  import { defaultOptions } from "../helpers/options/defaultOptions.mjs";
3
- import { isEnabled } from "../utils/isEnabled.mjs";
4
3
  import { getMarkdownRules } from "../rules/markdown.mjs";
4
+ import { isEnabled } from "../utils/isEnabled.mjs";
5
5
  import { mergeConfigs } from "eslint-flat-config-utils";
6
6
  import eslintPluginUnicorn from "eslint-plugin-unicorn";
7
7
  import eslintPluginMarkdown from "@eslint/markdown";
@@ -1,7 +1,7 @@
1
1
  import { globs } from "../helpers/globs.mjs";
2
2
  import { defaultOptions } from "../helpers/options/defaultOptions.mjs";
3
- import { isEnabled } from "../utils/isEnabled.mjs";
4
3
  import { getNextRules } from "../rules/next.mjs";
4
+ import { isEnabled } from "../utils/isEnabled.mjs";
5
5
  import { mergeConfigs } from "eslint-flat-config-utils";
6
6
  import eslintPluginNext from "@next/eslint-plugin-next";
7
7
  // src/configs/next.ts
@@ -1,8 +1,8 @@
1
1
  import { globs } from "../helpers/globs.mjs";
2
2
  import { defaultOptions } from "../helpers/options/defaultOptions.mjs";
3
+ import { getNodeRules } from "../rules/node.mjs";
3
4
  import { isEnabled } from "../utils/isEnabled.mjs";
4
5
  import { isTruthy } from "../utils/isTruthy.mjs";
5
- import { getNodeRules } from "../rules/node.mjs";
6
6
  import { mergeConfigs } from "eslint-flat-config-utils";
7
7
  import path from "node:path";
8
8
  import eslintPluginNode from "eslint-plugin-n";
@@ -1,7 +1,7 @@
1
1
  import { globs } from "../helpers/globs.mjs";
2
2
  import { defaultOptions } from "../helpers/options/defaultOptions.mjs";
3
- import { isEnabled } from "../utils/isEnabled.mjs";
4
3
  import { getNuxtRules } from "../rules/nuxt.mjs";
4
+ import { isEnabled } from "../utils/isEnabled.mjs";
5
5
  import { mergeConfigs } from "eslint-flat-config-utils";
6
6
  import { parser } from "typescript-eslint";
7
7
  import eslintPluginVue from "eslint-plugin-vue";
@@ -1,7 +1,7 @@
1
1
  import { globs } from "../helpers/globs.mjs";
2
2
  import { defaultOptions } from "../helpers/options/defaultOptions.mjs";
3
- import { isEnabled } from "../utils/isEnabled.mjs";
4
3
  import { getPackageJsonRules } from "../rules/packageJson.mjs";
4
+ import { isEnabled } from "../utils/isEnabled.mjs";
5
5
  import { mergeConfigs } from "eslint-flat-config-utils";
6
6
  import eslintPluginPackageJson from "eslint-plugin-package-json";
7
7
  // src/configs/packageJson.ts
@@ -1,8 +1,8 @@
1
1
  import { globs } from "../helpers/globs.mjs";
2
2
  import { defaultOptions } from "../helpers/options/defaultOptions.mjs";
3
+ import { getPerfectionistRules } from "../rules/perfectionist.mjs";
3
4
  import { isEnabled } from "../utils/isEnabled.mjs";
4
5
  import { isTruthy } from "../utils/isTruthy.mjs";
5
- import { getPerfectionistRules } from "../rules/perfectionist.mjs";
6
6
  import { mergeConfigs } from "eslint-flat-config-utils";
7
7
  import eslintPluginPerfectionist from "eslint-plugin-perfectionist";
8
8
  // src/configs/perfectionist.ts
@@ -1,7 +1,7 @@
1
1
  import { globs } from "../helpers/globs.mjs";
2
2
  import { defaultOptions } from "../helpers/options/defaultOptions.mjs";
3
- import { isEnabled } from "../utils/isEnabled.mjs";
4
3
  import { getPlaywrightRules } from "../rules/playwright.mjs";
4
+ import { isEnabled } from "../utils/isEnabled.mjs";
5
5
  import { mergeConfigs } from "eslint-flat-config-utils";
6
6
  import eslintPluginPlaywright from "eslint-plugin-playwright";
7
7
  // src/configs/playwright.ts
@@ -1,8 +1,8 @@
1
1
  import { globs } from "../helpers/globs.mjs";
2
2
  import { defaultOptions } from "../helpers/options/defaultOptions.mjs";
3
+ import { getPromiseRules } from "../rules/promise.mjs";
3
4
  import { isEnabled } from "../utils/isEnabled.mjs";
4
5
  import { isTruthy } from "../utils/isTruthy.mjs";
5
- import { getPromiseRules } from "../rules/promise.mjs";
6
6
  import { mergeConfigs } from "eslint-flat-config-utils";
7
7
  import eslintPluginPromise from "eslint-plugin-promise";
8
8
  // src/configs/promise.ts
@@ -1,7 +1,7 @@
1
1
  import { globs } from "../helpers/globs.mjs";
2
2
  import { defaultOptions } from "../helpers/options/defaultOptions.mjs";
3
- import { isEnabled } from "../utils/isEnabled.mjs";
4
3
  import { getReactRules } from "../rules/react.mjs";
4
+ import { isEnabled } from "../utils/isEnabled.mjs";
5
5
  import { mergeConfigs } from "eslint-flat-config-utils";
6
6
  import eslintPluginUnicorn from "eslint-plugin-unicorn";
7
7
  import eslintPluginJsxA11yX from "eslint-plugin-jsx-a11y-x";
@@ -1,7 +1,7 @@
1
1
  import { globs } from "../helpers/globs.mjs";
2
2
  import { defaultOptions } from "../helpers/options/defaultOptions.mjs";
3
- import { isEnabled } from "../utils/isEnabled.mjs";
4
3
  import { getStorybookRules } from "../rules/storybook.mjs";
4
+ import { isEnabled } from "../utils/isEnabled.mjs";
5
5
  import { mergeConfigs } from "eslint-flat-config-utils";
6
6
  import eslintPluginStorybook from "eslint-plugin-storybook";
7
7
  // src/configs/storybook.ts
@@ -1,8 +1,8 @@
1
1
  import { globs } from "../helpers/globs.mjs";
2
2
  import { defaultOptions } from "../helpers/options/defaultOptions.mjs";
3
+ import { getStylisticRules } from "../rules/stylistic.mjs";
3
4
  import { isEnabled } from "../utils/isEnabled.mjs";
4
5
  import { isTruthy } from "../utils/isTruthy.mjs";
5
- import { getStylisticRules } from "../rules/stylistic.mjs";
6
6
  import { mergeConfigs } from "eslint-flat-config-utils";
7
7
  import eslintPluginStylistic from "@stylistic/eslint-plugin";
8
8
  // src/configs/stylistic.ts
@@ -1,8 +1,8 @@
1
1
  import { globs } from "../helpers/globs.mjs";
2
2
  import { defaultOptions } from "../helpers/options/defaultOptions.mjs";
3
+ import { getTailwindRules } from "../rules/tailwind.mjs";
3
4
  import { isEnabled } from "../utils/isEnabled.mjs";
4
5
  import { isTruthy } from "../utils/isTruthy.mjs";
5
- import { getTailwindRules } from "../rules/tailwind.mjs";
6
6
  import { mergeConfigs } from "eslint-flat-config-utils";
7
7
  import path from "node:path";
8
8
  import eslintPluginTailwind from "eslint-plugin-better-tailwindcss";
@@ -1,7 +1,7 @@
1
1
  import { globs } from "../helpers/globs.mjs";
2
2
  import { defaultOptions } from "../helpers/options/defaultOptions.mjs";
3
- import { isEnabled } from "../utils/isEnabled.mjs";
4
3
  import { getTanstackRules } from "../rules/tanstack.mjs";
4
+ import { isEnabled } from "../utils/isEnabled.mjs";
5
5
  import { mergeConfigs } from "eslint-flat-config-utils";
6
6
  import eslintPluginTanstackQuery from "@tanstack/eslint-plugin-query";
7
7
  import eslintPluginTanstackRouter from "@tanstack/eslint-plugin-router";
@@ -1,8 +1,8 @@
1
1
  import { globs } from "../helpers/globs.mjs";
2
2
  import { defaultOptions } from "../helpers/options/defaultOptions.mjs";
3
+ import { getTypescriptRules } from "../rules/typescript.mjs";
3
4
  import { isEnabled } from "../utils/isEnabled.mjs";
4
5
  import { isTruthy } from "../utils/isTruthy.mjs";
5
- import { getTypescriptRules } from "../rules/typescript.mjs";
6
6
  import { mergeConfigs } from "eslint-flat-config-utils";
7
7
  import { parser, plugin } from "typescript-eslint";
8
8
  import path from "node:path";
@@ -1,8 +1,8 @@
1
1
  import { globs } from "../helpers/globs.mjs";
2
2
  import { defaultOptions } from "../helpers/options/defaultOptions.mjs";
3
+ import { getUnicornRules } from "../rules/unicorn.mjs";
3
4
  import { isEnabled } from "../utils/isEnabled.mjs";
4
5
  import { isTruthy } from "../utils/isTruthy.mjs";
5
- import { getUnicornRules } from "../rules/unicorn.mjs";
6
6
  import { mergeConfigs } from "eslint-flat-config-utils";
7
7
  import eslintPluginUnicorn from "eslint-plugin-unicorn";
8
8
  // src/configs/unicorn.ts
@@ -1,7 +1,7 @@
1
1
  import { globs } from "../helpers/globs.mjs";
2
2
  import { defaultOptions } from "../helpers/options/defaultOptions.mjs";
3
- import { isEnabled } from "../utils/isEnabled.mjs";
4
3
  import { getVitestRules } from "../rules/vitest.mjs";
4
+ import { isEnabled } from "../utils/isEnabled.mjs";
5
5
  import { mergeConfigs } from "eslint-flat-config-utils";
6
6
  import eslintPluginVitest from "@vitest/eslint-plugin";
7
7
  // src/configs/vitest.ts
@@ -1,7 +1,7 @@
1
1
  import { globs } from "../helpers/globs.mjs";
2
2
  import { defaultOptions } from "../helpers/options/defaultOptions.mjs";
3
- import { isEnabled } from "../utils/isEnabled.mjs";
4
3
  import { getVueRules } from "../rules/vue.mjs";
4
+ import { isEnabled } from "../utils/isEnabled.mjs";
5
5
  import { mergeConfigs } from "eslint-flat-config-utils";
6
6
  import { parser } from "typescript-eslint";
7
7
  import eslintPluginVue from "eslint-plugin-vue";
@@ -1,8 +1,8 @@
1
1
  import { globs } from "../helpers/globs.mjs";
2
2
  import { defaultOptions } from "../helpers/options/defaultOptions.mjs";
3
+ import { getZodRules } from "../rules/zod.mjs";
3
4
  import { isEnabled } from "../utils/isEnabled.mjs";
4
5
  import { isTruthy } from "../utils/isTruthy.mjs";
5
- import { getZodRules } from "../rules/zod.mjs";
6
6
  import { mergeConfigs } from "eslint-flat-config-utils";
7
7
  import eslintPluginZod from "eslint-plugin-zod";
8
8
  import eslintPluginZodMini from "eslint-plugin-zod-mini";
@@ -1,6 +1,6 @@
1
+ import { isPackageDetected, logDetectedPackages } from "../isPackageDetected.mjs";
1
2
  import { defaultOptions } from "./defaultOptions.mjs";
2
3
  import { isEnabled } from "../../utils/isEnabled.mjs";
3
- import { isPackageDetected, logDetectedPackages } from "../isPackageDetected.mjs";
4
4
  // src/helpers/options/enableDetectedConfigs.ts
5
5
  function enableDetectedConfigs(options) {
6
6
  const explicitlyDisabledConfigs = {
package/dist/index.mjs CHANGED
@@ -1,6 +1,4 @@
1
- import { isEnabled } from "./utils/isEnabled.mjs";
2
1
  import { getAstroConfig } from "./configs/astro.mjs";
3
- import { isTruthy } from "./utils/isTruthy.mjs";
4
2
  import { getBaselineConfig } from "./configs/baseline.mjs";
5
3
  import { getCssConfig } from "./configs/css.mjs";
6
4
  import { getCypressConfig } from "./configs/cypress.mjs";
@@ -27,6 +25,8 @@ import { getVueConfig } from "./configs/vue.mjs";
27
25
  import { getZodConfig } from "./configs/zod.mjs";
28
26
  import { getIgnorePatterns } from "./helpers/ignores/getIgnorePatterns.mjs";
29
27
  import { mergeWithDefaults } from "./helpers/options/mergeWithDefaults.mjs";
28
+ import { isEnabled } from "./utils/isEnabled.mjs";
29
+ import { isTruthy } from "./utils/isTruthy.mjs";
30
30
  import { defineConfig as defineConfig$1, globalIgnores } from "eslint/config";
31
31
  // src/index.ts
32
32
  function defineConfig(...args) {
@@ -1,10 +1,6 @@
1
1
  import { defaultOptions } from "../helpers/options/defaultOptions.mjs";
2
2
  import { isEnabled } from "../utils/isEnabled.mjs";
3
3
  // src/rules/packageJson.ts
4
- /**
5
- Using a wildcard to target all objects within an array isn't supported yet.
6
- @see https://github.com/michaelfaith/eslint-plugin-package-json/issues/1967
7
- */
8
4
  const collectionSortPatterns = [
9
5
  {
10
6
  key: "author",
@@ -19,8 +15,24 @@ const collectionSortPatterns = [
19
15
  order: ["email", "url"]
20
16
  },
21
17
  "config",
18
+ {
19
+ key: "contributors.*",
20
+ order: [
21
+ "name",
22
+ "email",
23
+ "url"
24
+ ]
25
+ },
22
26
  "dependencies",
23
27
  "devEngines",
28
+ {
29
+ key: "devEngines.*",
30
+ order: [
31
+ "name",
32
+ "version",
33
+ "onFail"
34
+ ]
35
+ },
24
36
  "devDependencies",
25
37
  "directories",
26
38
  {
@@ -29,9 +41,25 @@ const collectionSortPatterns = [
29
41
  },
30
42
  "engines",
31
43
  "exports",
44
+ {
45
+ key: "funding.*",
46
+ order: ["type", "url"]
47
+ },
32
48
  "husky",
33
49
  "husky.hooks",
50
+ {
51
+ key: "licenses.*",
52
+ order: ["type", "url"]
53
+ },
34
54
  "lint-staged",
55
+ {
56
+ key: "maintainers.*",
57
+ order: [
58
+ "name",
59
+ "email",
60
+ "url"
61
+ ]
62
+ },
35
63
  "nano-staged",
36
64
  "optionalDependencies",
37
65
  "overrides",
@@ -46,7 +74,11 @@ const collectionSortPatterns = [
46
74
  ]
47
75
  },
48
76
  "release",
49
- "simple-git-hooks"
77
+ "simple-git-hooks",
78
+ {
79
+ key: "workspaces.*",
80
+ order: ["packages", "nohoist"]
81
+ }
50
82
  ];
51
83
  function getPackageJsonRules(options) {
52
84
  const { packageJson } = options.configs;
@@ -66,6 +98,7 @@ function getPackageJsonRules(options) {
66
98
  "package-json/order-properties": "warn",
67
99
  "package-json/repository-shorthand": "warn",
68
100
  "package-json/require-attribution": "warn",
101
+ "package-json/require-override-restrictions": "error",
69
102
  "package-json/require-package-json-export": "error",
70
103
  "package-json/require-bugs": "warn",
71
104
  "package-json/require-description": ["warn", { ignorePrivate: true }],
@@ -1,8 +1,8 @@
1
1
  import { defaultOptions } from "../helpers/options/defaultOptions.mjs";
2
- import { isEnabled } from "../utils/isEnabled.mjs";
3
- import { isTruthy } from "../utils/isTruthy.mjs";
4
2
  import { getRestrictedVueElements } from "../helpers/vue/getRestrictedVueElements.mjs";
5
3
  import { getRestrictedVueInputs } from "../helpers/vue/getRestrictedVueInputs.mjs";
4
+ import { isEnabled } from "../utils/isEnabled.mjs";
5
+ import { isTruthy } from "../utils/isTruthy.mjs";
6
6
  // src/rules/vue.ts
7
7
  function getVueRules(options) {
8
8
  const { typescript, stylistic, vue, nuxt } = options.configs;
@@ -270,12 +270,15 @@ function getVueRules(options) {
270
270
  }],
271
271
  "vue/match-component-import-name": "warn",
272
272
  "vue/next-tick-style": "warn",
273
+ "vue/no-content-outside-block": "error",
274
+ "vue/no-define-model-default": "warn",
273
275
  "vue/no-duplicate-attr-inheritance": "error",
274
276
  "vue/no-duplicate-class-names": "warn",
275
277
  "vue/no-empty-component-block": "error",
276
278
  "vue/no-import-compiler-macros": "error",
277
279
  "vue/no-multiple-objects-in-class": "warn",
278
280
  "vue/no-negated-v-if-condition": "warn",
281
+ "vue/no-props-shadow": "error",
279
282
  "vue/no-ref-object-reactivity-loss": "error",
280
283
  "vue/no-restricted-html-elements": [
281
284
  "error",
@@ -5520,6 +5520,11 @@ export interface ESLintSchema {
5520
5520
  * @see https://eslint-plugin-package-json.dev/rules/require-properties/require-os
5521
5521
  */
5522
5522
  'package-json/require-os'?: Linter.RuleEntry<PackageJsonRequireOs>;
5523
+ /**
5524
+ * Reports unrestricted npm override selectors that can affect multiple dependency versions.
5525
+ * @see https://eslint-plugin-package-json.dev/rules/require-override-restrictions
5526
+ */
5527
+ 'package-json/require-override-restrictions'?: Linter.RuleEntry<[]>;
5523
5528
  /**
5524
5529
  * Ensures that if a package specifies `exports` (or `publishConfig.exports`), an explicit `package.json` export is included.
5525
5530
  * @see https://eslint-plugin-package-json.dev/rules/require-package-json-export
@@ -9429,11 +9434,21 @@ export interface ESLintSchema {
9429
9434
  * @see https://eslint.vuejs.org/rules/no-constant-condition.html
9430
9435
  */
9431
9436
  'vue/no-constant-condition'?: Linter.RuleEntry<VueNoConstantCondition>;
9437
+ /**
9438
+ * disallow content outside of the top-level blocks
9439
+ * @see https://eslint.vuejs.org/rules/no-content-outside-block.html
9440
+ */
9441
+ 'vue/no-content-outside-block'?: Linter.RuleEntry<[]>;
9432
9442
  /**
9433
9443
  * disallow custom modifiers on v-model used on the component
9434
9444
  * @see https://eslint.vuejs.org/rules/no-custom-modifiers-on-v-model.html
9435
9445
  */
9436
9446
  'vue/no-custom-modifiers-on-v-model'?: Linter.RuleEntry<[]>;
9447
+ /**
9448
+ * disallow default values in `defineModel`
9449
+ * @see https://eslint.vuejs.org/rules/no-define-model-default.html
9450
+ */
9451
+ 'vue/no-define-model-default'?: Linter.RuleEntry<[]>;
9437
9452
  /**
9438
9453
  * disallow using deprecated object declaration on data (in Vue.js 3.0.0+)
9439
9454
  * @see https://eslint.vuejs.org/rules/no-deprecated-data-object-declaration.html
@@ -9669,6 +9684,11 @@ export interface ESLintSchema {
9669
9684
  * @see https://eslint.vuejs.org/rules/no-potential-component-option-typo.html
9670
9685
  */
9671
9686
  'vue/no-potential-component-option-typo'?: Linter.RuleEntry<VueNoPotentialComponentOptionTypo>;
9687
+ /**
9688
+ * disallow declarations that shadow props in `<script setup>`
9689
+ * @see https://eslint.vuejs.org/rules/no-props-shadow.html
9690
+ */
9691
+ 'vue/no-props-shadow'?: Linter.RuleEntry<[]>;
9672
9692
  /**
9673
9693
  * disallow use of value wrapped by `ref()` (Composition API) as an operand
9674
9694
  * @see https://eslint.vuejs.org/rules/no-ref-as-operand.html
@@ -22939,7 +22959,7 @@ type UnicornNameReplacements = [] | [{
22939
22959
  extendDefaultReplacements?: boolean;
22940
22960
  replacements?: _UnicornNameReplacements_NameReplacements;
22941
22961
  extendDefaultAllowList?: boolean;
22942
- allowList?: _UnicornNameReplacements_BooleanObject;
22962
+ allowList?: _UnicornNameReplacements_BooleanObject1;
22943
22963
  ignore?: (string | {
22944
22964
  [k: string]: unknown | undefined;
22945
22965
  })[];
@@ -22951,7 +22971,7 @@ interface _UnicornNameReplacements_NameReplacements {
22951
22971
  interface _UnicornNameReplacements_BooleanObject {
22952
22972
  [k: string]: boolean | undefined;
22953
22973
  }
22954
- interface _UnicornNameReplacements_BooleanObject {
22974
+ interface _UnicornNameReplacements_BooleanObject1 {
22955
22975
  [k: string]: boolean | undefined;
22956
22976
  }
22957
22977
  // ----- unicorn/no-array-callback-reference -----
@@ -23415,6 +23435,7 @@ type VueBlockLang = [] | [{
23415
23435
  [k: string]: {
23416
23436
  lang?: (string | string[]);
23417
23437
  allowNoLang?: boolean;
23438
+ required?: boolean;
23418
23439
  };
23419
23440
  }];
23420
23441
  // ----- vue/block-order -----
@@ -24527,6 +24548,7 @@ type VueRequireDirectExport = [] | [{
24527
24548
  // ----- vue/require-explicit-emits -----
24528
24549
  type VueRequireExplicitEmits = [] | [{
24529
24550
  allowProps?: boolean;
24551
+ ignoreMixins?: boolean;
24530
24552
  }];
24531
24553
  // ----- vue/require-macro-variable-name -----
24532
24554
  type VueRequireMacroVariableName = [] | [{
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shayanthenerd/eslint-config",
3
- "version": "0.36.0",
3
+ "version": "0.37.0",
4
4
  "description": "A modern, flexible ESLint configuration for enforcing best practices and maintaining a consistent coding style",
5
5
  "keywords": [
6
6
  "eslint",
@@ -59,10 +59,10 @@
59
59
  "@eslint/markdown": "8.0.3",
60
60
  "@html-eslint/eslint-plugin": "0.67.0",
61
61
  "@html-eslint/eslint-plugin-react": "0.67.0",
62
- "@next/eslint-plugin-next": "16.4.3",
62
+ "@next/eslint-plugin-next": "16.4.4",
63
63
  "@nuxt/eslint-plugin": "1.17.0",
64
64
  "@stylistic/eslint-plugin": "5.10.0",
65
- "@tanstack/eslint-plugin-query": "5.104.5",
65
+ "@tanstack/eslint-plugin-query": "5.105.2",
66
66
  "@tanstack/eslint-plugin-router": "1.162.0",
67
67
  "@tanstack/eslint-plugin-start": "0.1.0",
68
68
  "@vitest/eslint-plugin": "1.6.28",
@@ -72,41 +72,41 @@
72
72
  "eslint-flat-config-utils": "3.2.0",
73
73
  "eslint-import-resolver-typescript": "4.4.5",
74
74
  "eslint-plugin-astro": "3.2.1",
75
- "eslint-plugin-baseline-js": "0.7.5",
75
+ "eslint-plugin-baseline-js": "0.7.7",
76
76
  "eslint-plugin-better-tailwindcss": "4.10.0",
77
77
  "eslint-plugin-cypress": "7.0.2",
78
78
  "eslint-plugin-import-x": "4.17.1",
79
79
  "eslint-plugin-jsx-a11y-x": "0.2.0",
80
80
  "eslint-plugin-n": "18.5.0",
81
- "eslint-plugin-package-json": "1.11.0",
81
+ "eslint-plugin-package-json": "1.13.0",
82
82
  "eslint-plugin-perfectionist": "5.13.0",
83
- "eslint-plugin-playwright": "2.12.1",
83
+ "eslint-plugin-playwright": "2.12.2",
84
84
  "eslint-plugin-promise": "7.3.0",
85
- "eslint-plugin-storybook": "10.6.3",
85
+ "eslint-plugin-storybook": "10.6.5",
86
86
  "eslint-plugin-unicorn": "79.0.0",
87
- "eslint-plugin-vue": "10.11.1",
87
+ "eslint-plugin-vue": "10.12.0",
88
88
  "eslint-plugin-vuejs-accessibility": "2.6.3",
89
89
  "eslint-plugin-zod": "5.2.2",
90
90
  "eslint-plugin-zod-mini": "2.1.3",
91
- "globals": "17.13.0",
92
- "local-pkg": "1.2.1",
91
+ "globals": "17.14.0",
92
+ "local-pkg": "2.0.0",
93
93
  "nuxt-link-checker": "6.0.1",
94
- "tailwind-csstree": "0.4.1",
95
- "typescript-eslint": "8.72.0"
94
+ "tailwind-csstree": "0.4.2",
95
+ "typescript-eslint": "8.72.1"
96
96
  },
97
97
  "devDependencies": {
98
98
  "@arethetypeswrong/cli": "0.18.5",
99
99
  "@eslint/config-inspector": "3.5.0",
100
- "@types/node": "26.6.5",
101
- "eslint": "10.13.0",
102
- "eslint-typegen": "2.3.1",
100
+ "@types/node": "26.6.6",
101
+ "eslint": "10.14.0",
102
+ "eslint-typegen": "2.3.2",
103
103
  "nano-staged": "1.0.2",
104
104
  "prettier": "3.9.10",
105
105
  "publint": "0.3.25",
106
106
  "serve": "14.2.6",
107
107
  "simple-git-hooks": "2.14.0",
108
108
  "ts-morph": "28.0.0",
109
- "tsdown": "0.23.2",
109
+ "tsdown": "0.23.4",
110
110
  "typescript": "6.0.3",
111
111
  "unplugin-unused": "0.6.0"
112
112
  },
@@ -125,12 +125,12 @@
125
125
  "devEngines": {
126
126
  "packageManager": {
127
127
  "name": "pnpm",
128
- "version": "12.15.0",
128
+ "version": "12.17.0",
129
129
  "onFail": "warn"
130
130
  },
131
131
  "runtime": {
132
132
  "name": "node",
133
- "version": "^22.22.3 || ^24.15.0 || ^26.0.0",
133
+ "version": "26.13.0",
134
134
  "onFail": "warn"
135
135
  }
136
136
  },