@vp-tw/eslint-config 1.0.5 → 2.0.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
@@ -28,15 +28,7 @@ Similar to [antfu/eslint-config](https://github.com/antfu/eslint-config) but wit
28
28
 
29
29
  ```ts
30
30
  // eslint.config.ts
31
- import { fileURLToPath } from "node:url";
32
-
33
- import { includeIgnoreFile } from "@eslint/compat";
34
31
  import { vdustr } from "@vp-tw/eslint-config";
35
- import path from "pathe";
36
-
37
- const __filename = fileURLToPath(import.meta.url);
38
- const __dirname = path.dirname(__filename);
39
- const eslintignorePath = path.resolve(__dirname, ".eslintignore");
40
32
 
41
33
  export default vdustr(
42
34
  {
@@ -60,7 +52,9 @@ export default vdustr(
60
52
  },
61
53
  },
62
54
  },
63
- includeIgnoreFile(eslintignorePath),
55
+ {
56
+ ignores: ["**/dist/**", "**/CHANGELOG.md", ".changeset/**"],
57
+ },
64
58
  );
65
59
  ```
66
60
 
@@ -8,6 +8,11 @@ var _eslintConfig = require("@antfu/eslint-config");
8
8
  var _esToolkit = require("es-toolkit");
9
9
  var _mergeConfig = require("../utils/mergeConfig");
10
10
  var _renameRules = require("../utils/renameRules");
11
+ const storybookPluginRenaming = {
12
+ ..._eslintConfig.defaultPluginRenaming,
13
+ "react-hooks": "react"
14
+ };
15
+ const renameStorybookRules = rules => (0, _eslintConfig.renameRules)(rules ?? {}, storybookPluginRenaming);
11
16
  const storybook = async options => {
12
17
  await (0, _eslintConfig.ensurePackages)(["eslint-plugin-storybook", "storybook"]);
13
18
  const storybookPlugin = await (0, _eslintConfig.interopDefault)(Promise.resolve().then(() => require("eslint-plugin-storybook")));
@@ -37,7 +42,7 @@ const storybook = async options => {
37
42
  }, {
38
43
  ...originalStoryRulesConfig,
39
44
  ...originalCsfStrictConfig,
40
- rules: (0, _renameRules.renameRules)({
45
+ rules: renameStorybookRules({
41
46
  ...originalStoryRulesConfig.rules,
42
47
  ...originalCsfStrictConfig.rules
43
48
  })
@@ -37,7 +37,7 @@ export interface RuleOptions {
37
37
  * Exhaustive deps rule for useQuery
38
38
  * @see https://tanstack.com/query/latest/docs/eslint/exhaustive-deps
39
39
  */
40
- '@tanstack/query/exhaustive-deps'?: Linter.RuleEntry<[]>
40
+ '@tanstack/query/exhaustive-deps'?: Linter.RuleEntry<TanstackQueryExhaustiveDeps>
41
41
  /**
42
42
  * Ensure correct order of inference sensitive properties for infinite queries
43
43
  * @see https://tanstack.com/query/latest/docs/eslint/infinite-query-property-order
@@ -63,6 +63,11 @@ export interface RuleOptions {
63
63
  * @see https://tanstack.com/query/latest/docs/eslint/no-void-query-fn
64
64
  */
65
65
  '@tanstack/query/no-void-query-fn'?: Linter.RuleEntry<[]>
66
+ /**
67
+ * Prefer using queryOptions() to co-locate queryKey and queryFn
68
+ * @see https://tanstack.com/query/latest/docs/eslint/prefer-query-options
69
+ */
70
+ '@tanstack/query/prefer-query-options'?: Linter.RuleEntry<[]>
66
71
  /**
67
72
  * Makes sure that QueryClient is stable
68
73
  * @see https://tanstack.com/query/latest/docs/eslint/stable-query-client
@@ -166,6 +171,13 @@ type EmotionJsxImport = (string | {
166
171
  })[]
167
172
  // ----- @emotion/syntax-preference -----
168
173
  type EmotionSyntaxPreference = []|[("string" | "object")]
174
+ // ----- @tanstack/query/exhaustive-deps -----
175
+ type TanstackQueryExhaustiveDeps = []|[{
176
+ allowlist?: {
177
+ variables?: string[]
178
+ types?: string[]
179
+ }
180
+ }]
169
181
  // ----- react-compiler/react-compiler -----
170
182
  type ReactCompilerReactCompiler = []|[{
171
183
  [k: string]: unknown | undefined
@@ -178,7 +190,6 @@ type StorybookMetaInlineProperties = []|[{
178
190
  type StorybookNoUninstalledAddons = []|[{
179
191
  packageJsonLocation?: string
180
192
  ignore?: string[]
181
- [k: string]: unknown | undefined
182
193
  }]
183
194
  // Names of all the configs
184
195
  export type ConfigNames = 'vdustr/emotion/setup' | 'vdustr/emotion/rules' | 'vdustr/tanstack-query/setup' | 'vdustr/tanstack-query/rules' | 'vdustr/mdx/setup' | 'vdustr/mdx/processor' | 'vdustr/mdx/rules' | 'vdustr/mdx/code-blocks' | 'vdustr/prettier/rules' | 'vdustr/react/react-compiler/setup' | 'vdustr/react/react-compiler/rules' | 'vdustr/stroybook/setup' | 'vdustr/storybook/stories/rules' | 'vdustr/storybook/main/rules' | 'vdustr/javascript/rules' | 'vdustr/imports/rules' | 'vdustr/imports/no-default-export/rules' | 'vdustr/typescript/rules' | 'vdustr/react/rules' | 'vdustr/react/react-compiler/setup' | 'vdustr/react/react-compiler/rules' | 'vdustr/react/md/rules' | 'vdustr/jsonc/rules' | 'vdustr/sort/json-keys' | 'vdustr/sort/json-array-values' | 'vdustr/sort/tsconfig-json' | 'vdustr/pnpm/pnpm-workspace-yaml-sort' | 'vdustr/yaml/rules'
@@ -1,7 +1,17 @@
1
- import { ensurePackages, interopDefault } from "@antfu/eslint-config";
1
+ import {
2
+ renameRules as antfuRenameRules,
3
+ defaultPluginRenaming,
4
+ ensurePackages,
5
+ interopDefault
6
+ } from "@antfu/eslint-config";
2
7
  import { pick } from "es-toolkit";
3
8
  import { mergeConfig } from "../utils/mergeConfig.mjs";
4
9
  import { renameRules } from "../utils/renameRules.mjs";
10
+ const storybookPluginRenaming = {
11
+ ...defaultPluginRenaming,
12
+ "react-hooks": "react"
13
+ };
14
+ const renameStorybookRules = (rules) => antfuRenameRules(rules ?? {}, storybookPluginRenaming);
5
15
  const storybook = async (options) => {
6
16
  await ensurePackages(["eslint-plugin-storybook", "storybook"]);
7
17
  const storybookPlugin = await interopDefault(import("eslint-plugin-storybook"));
@@ -34,7 +44,7 @@ const storybook = async (options) => {
34
44
  {
35
45
  ...originalStoryRulesConfig,
36
46
  ...originalCsfStrictConfig,
37
- rules: renameRules({
47
+ rules: renameStorybookRules({
38
48
  ...originalStoryRulesConfig.rules,
39
49
  ...originalCsfStrictConfig.rules
40
50
  })
@@ -37,7 +37,7 @@ export interface RuleOptions {
37
37
  * Exhaustive deps rule for useQuery
38
38
  * @see https://tanstack.com/query/latest/docs/eslint/exhaustive-deps
39
39
  */
40
- '@tanstack/query/exhaustive-deps'?: Linter.RuleEntry<[]>
40
+ '@tanstack/query/exhaustive-deps'?: Linter.RuleEntry<TanstackQueryExhaustiveDeps>
41
41
  /**
42
42
  * Ensure correct order of inference sensitive properties for infinite queries
43
43
  * @see https://tanstack.com/query/latest/docs/eslint/infinite-query-property-order
@@ -63,6 +63,11 @@ export interface RuleOptions {
63
63
  * @see https://tanstack.com/query/latest/docs/eslint/no-void-query-fn
64
64
  */
65
65
  '@tanstack/query/no-void-query-fn'?: Linter.RuleEntry<[]>
66
+ /**
67
+ * Prefer using queryOptions() to co-locate queryKey and queryFn
68
+ * @see https://tanstack.com/query/latest/docs/eslint/prefer-query-options
69
+ */
70
+ '@tanstack/query/prefer-query-options'?: Linter.RuleEntry<[]>
66
71
  /**
67
72
  * Makes sure that QueryClient is stable
68
73
  * @see https://tanstack.com/query/latest/docs/eslint/stable-query-client
@@ -166,6 +171,13 @@ type EmotionJsxImport = (string | {
166
171
  })[]
167
172
  // ----- @emotion/syntax-preference -----
168
173
  type EmotionSyntaxPreference = []|[("string" | "object")]
174
+ // ----- @tanstack/query/exhaustive-deps -----
175
+ type TanstackQueryExhaustiveDeps = []|[{
176
+ allowlist?: {
177
+ variables?: string[]
178
+ types?: string[]
179
+ }
180
+ }]
169
181
  // ----- react-compiler/react-compiler -----
170
182
  type ReactCompilerReactCompiler = []|[{
171
183
  [k: string]: unknown | undefined
@@ -178,7 +190,6 @@ type StorybookMetaInlineProperties = []|[{
178
190
  type StorybookNoUninstalledAddons = []|[{
179
191
  packageJsonLocation?: string
180
192
  ignore?: string[]
181
- [k: string]: unknown | undefined
182
193
  }]
183
194
  // Names of all the configs
184
195
  export type ConfigNames = 'vdustr/emotion/setup' | 'vdustr/emotion/rules' | 'vdustr/tanstack-query/setup' | 'vdustr/tanstack-query/rules' | 'vdustr/mdx/setup' | 'vdustr/mdx/processor' | 'vdustr/mdx/rules' | 'vdustr/mdx/code-blocks' | 'vdustr/prettier/rules' | 'vdustr/react/react-compiler/setup' | 'vdustr/react/react-compiler/rules' | 'vdustr/stroybook/setup' | 'vdustr/storybook/stories/rules' | 'vdustr/storybook/main/rules' | 'vdustr/javascript/rules' | 'vdustr/imports/rules' | 'vdustr/imports/no-default-export/rules' | 'vdustr/typescript/rules' | 'vdustr/react/rules' | 'vdustr/react/react-compiler/setup' | 'vdustr/react/react-compiler/rules' | 'vdustr/react/md/rules' | 'vdustr/jsonc/rules' | 'vdustr/sort/json-keys' | 'vdustr/sort/json-array-values' | 'vdustr/sort/tsconfig-json' | 'vdustr/pnpm/pnpm-workspace-yaml-sort' | 'vdustr/yaml/rules'
@@ -1,2 +1,2 @@
1
- declare const ignoreKeys: ("plugins" | "rules" | "name" | "processor")[];
1
+ declare const ignoreKeys: ("name" | "processor" | "plugins" | "rules")[];
2
2
  export { ignoreKeys };
@@ -1,4 +1,4 @@
1
- import { GLOB_MARKDOWN_CODE } from "@antfu/eslint-config";
1
+ import { GLOB_MARKDOWN_CODE, interopDefault } from "@antfu/eslint-config";
2
2
  import { omit, pick } from "es-toolkit";
3
3
  import { reactCompiler } from "../configs/reactCompiler.mjs";
4
4
  import { GLOB_MDX_CODE } from "../globs.mjs";
@@ -31,6 +31,18 @@ function renameReactRules(rules) {
31
31
  }
32
32
  const react = (composer, options) => {
33
33
  const typescriptEnabled = options?.typescript ?? true;
34
+ extendsConfig(composer, "antfu/react/setup", async (config) => {
35
+ const eslintReact = await importEslintReact();
36
+ const reactPlugin = eslintReact.configs.all.plugins?.["@eslint-react"];
37
+ const reactRefresh = await interopDefault(import("eslint-plugin-react-refresh"));
38
+ return {
39
+ ...config,
40
+ plugins: {
41
+ react: reactPlugin,
42
+ "react-refresh": reactRefresh
43
+ }
44
+ };
45
+ });
34
46
  extendsConfig(composer, "antfu/react/rules", async (config) => {
35
47
  const eslintReact = await importEslintReact();
36
48
  const modifiedConfig = mergeConfig(pick(options?.react ?? {}, ["files", "ignores"]), config);
@@ -63,7 +75,7 @@ const react = (composer, options) => {
63
75
  files: [GLOB_MARKDOWN_CODE, GLOB_MDX_CODE],
64
76
  rules: {
65
77
  "react-compiler/react-compiler": "off",
66
- "react-hooks/rules-of-hooks": "off",
78
+ "react/rules-of-hooks": "off",
67
79
  "react-refresh/only-export-components": "off"
68
80
  }
69
81
  }
@@ -4,12 +4,14 @@ import type { DistributiveOmit, Overwrite } from "@mui/types";
4
4
  import type { Linter } from "eslint";
5
5
  import type { FlatConfigComposer } from "eslint-flat-config-utils";
6
6
  import type { RuleOptions, ConfigNames as VpEslintConfigNames } from "./eslint-typegen";
7
+ declare module "@antfu/eslint-config" {
8
+ interface RuleOptions extends VpRuleOptions {
9
+ }
10
+ }
11
+ interface VpRuleOptions extends RuleOptions {
12
+ }
7
13
  type AnyObject = Record<PropertyKey, any>;
8
- type ObjectReplaceAntfuEslintRulesWithRulesDeeply<T extends AnyObject> = (Extract<T, AntfuEslintRules> extends never ? never : Rules) | {
9
- [K in keyof T]: ReplaceAntfuEslintRulesWithVpRulesDeeply<T[K]>;
10
- };
11
- type ReplaceAntfuEslintRulesWithVpRulesDeeply<T> = (Extract<T, AntfuEslintRules> extends never ? never : Rules) | (ObjectReplaceAntfuEslintRulesWithRulesDeeply<Extract<T, AnyObject>> | Exclude<T, AnyObject>);
12
- type Config = ReplaceAntfuEslintRulesWithVpRulesDeeply<NonNullable<Parameters<typeof antfu>[1]>>;
14
+ type Config = NonNullable<Parameters<typeof antfu>[1]>;
13
15
  type Rules = RuleOptions & AntfuEslintRules;
14
16
  type ConfigNames = VpEslintConfigNames | AntfuEslintConfigNames;
15
17
  /**
@@ -30,4 +32,4 @@ interface ConfigOverrides extends Overwrite<DistributiveOmit<TypedFlatConfigItem
30
32
  * Typed composer.
31
33
  */
32
34
  type VpComposer = FlatConfigComposer<TypedFlatConfigItem, ConfigNames>;
33
- export type { AnyObject, Config, ConfigNames, ConfigOverrides, ReplaceAntfuEslintRulesWithVpRulesDeeply, Rules, TypedFlatConfigItem, VpComposer, };
35
+ export type { AnyObject, Config, ConfigNames, ConfigOverrides, Rules, TypedFlatConfigItem, VpComposer, };
@@ -1,5 +1,5 @@
1
1
  import type { sort } from "./extends/sort";
2
- import type { Config, ReplaceAntfuEslintRulesWithVpRulesDeeply, VpComposer } from "./types";
2
+ import type { Config, VpComposer } from "./types";
3
3
  import antfu from "@antfu/eslint-config";
4
4
  import { emotion } from "./configs/emotion";
5
5
  import { mdx } from "./configs/mdx";
@@ -14,7 +14,7 @@ import { pnpm } from "./extends/pnpm";
14
14
  import { react } from "./extends/react";
15
15
  import { typescript } from "./extends/typescript";
16
16
  import { yaml } from "./extends/yaml";
17
- type Options = ReplaceAntfuEslintRulesWithVpRulesDeeply<NonNullable<Parameters<typeof antfu>[0]>> & {
17
+ interface VpOptions {
18
18
  extends?: {
19
19
  javascript?: javascript.Options;
20
20
  imports?: imports.Options;
@@ -31,6 +31,7 @@ type Options = ReplaceAntfuEslintRulesWithVpRulesDeeply<NonNullable<Parameters<t
31
31
  mdx?: boolean | mdx.Options;
32
32
  storybook?: boolean | storybook.Options;
33
33
  prettier?: boolean | prettier.Options;
34
- };
34
+ }
35
+ type Options = NonNullable<Parameters<typeof antfu>[0]> & VpOptions;
35
36
  declare const vdustr: (options?: Options, ...userConfigs: Array<Config>) => VpComposer;
36
37
  export { vdustr };
@@ -29,11 +29,9 @@ const ownedConfigNames = [
29
29
  "prettier"
30
30
  ];
31
31
  const vdustr = (options, ...userConfigs) => {
32
- const antfuOptions = omit(
33
- options ?? {},
34
- ownedConfigNames
35
- );
36
- const vpOptions = pick(options ?? {}, ownedConfigNames);
32
+ const rawOptions = options ?? {};
33
+ const antfuOptions = omit(rawOptions, ownedConfigNames);
34
+ const vpOptions = pick(rawOptions, ownedConfigNames);
37
35
  const packageJsonEnabled = Boolean(vpOptions?.packageJson ?? true);
38
36
  const emotionEnabled = Boolean(vpOptions?.emotion ?? false);
39
37
  const tanstackQueryEnabled = Boolean(vpOptions?.tanstackQuery ?? false);
@@ -1,2 +1,2 @@
1
- declare const ignoreKeys: ("plugins" | "rules" | "name" | "processor")[];
1
+ declare const ignoreKeys: ("name" | "processor" | "plugins" | "rules")[];
2
2
  export { ignoreKeys };
@@ -35,6 +35,18 @@ function renameReactRules(rules) {
35
35
  }
36
36
  const react = (composer, options) => {
37
37
  const typescriptEnabled = options?.typescript ?? true;
38
+ (0, _extendsConfig.extendsConfig)(composer, "antfu/react/setup", async config => {
39
+ const eslintReact = await (0, _eslintReact.eslintReact)();
40
+ const reactPlugin = eslintReact.configs.all.plugins?.["@eslint-react"];
41
+ const reactRefresh = await (0, _eslintConfig.interopDefault)(Promise.resolve().then(() => require("eslint-plugin-react-refresh")));
42
+ return {
43
+ ...config,
44
+ plugins: {
45
+ react: reactPlugin,
46
+ "react-refresh": reactRefresh
47
+ }
48
+ };
49
+ });
38
50
  (0, _extendsConfig.extendsConfig)(composer, "antfu/react/rules", async config => {
39
51
  const eslintReact = await (0, _eslintReact.eslintReact)();
40
52
  const modifiedConfig = (0, _mergeConfig.mergeConfig)((0, _esToolkit.pick)(options?.react ?? {}, ["files", "ignores"]), config);
@@ -61,7 +73,7 @@ const react = (composer, options) => {
61
73
  files: [_eslintConfig.GLOB_MARKDOWN_CODE, _globs.GLOB_MDX_CODE],
62
74
  rules: {
63
75
  "react-compiler/react-compiler": "off",
64
- "react-hooks/rules-of-hooks": "off",
76
+ "react/rules-of-hooks": "off",
65
77
  "react-refresh/only-export-components": "off"
66
78
  }
67
79
  });
package/dist/types.d.ts CHANGED
@@ -4,12 +4,14 @@ import type { DistributiveOmit, Overwrite } from "@mui/types";
4
4
  import type { Linter } from "eslint";
5
5
  import type { FlatConfigComposer } from "eslint-flat-config-utils";
6
6
  import type { RuleOptions, ConfigNames as VpEslintConfigNames } from "./eslint-typegen";
7
+ declare module "@antfu/eslint-config" {
8
+ interface RuleOptions extends VpRuleOptions {
9
+ }
10
+ }
11
+ interface VpRuleOptions extends RuleOptions {
12
+ }
7
13
  type AnyObject = Record<PropertyKey, any>;
8
- type ObjectReplaceAntfuEslintRulesWithRulesDeeply<T extends AnyObject> = (Extract<T, AntfuEslintRules> extends never ? never : Rules) | {
9
- [K in keyof T]: ReplaceAntfuEslintRulesWithVpRulesDeeply<T[K]>;
10
- };
11
- type ReplaceAntfuEslintRulesWithVpRulesDeeply<T> = (Extract<T, AntfuEslintRules> extends never ? never : Rules) | (ObjectReplaceAntfuEslintRulesWithRulesDeeply<Extract<T, AnyObject>> | Exclude<T, AnyObject>);
12
- type Config = ReplaceAntfuEslintRulesWithVpRulesDeeply<NonNullable<Parameters<typeof antfu>[1]>>;
14
+ type Config = NonNullable<Parameters<typeof antfu>[1]>;
13
15
  type Rules = RuleOptions & AntfuEslintRules;
14
16
  type ConfigNames = VpEslintConfigNames | AntfuEslintConfigNames;
15
17
  /**
@@ -30,4 +32,4 @@ interface ConfigOverrides extends Overwrite<DistributiveOmit<TypedFlatConfigItem
30
32
  * Typed composer.
31
33
  */
32
34
  type VpComposer = FlatConfigComposer<TypedFlatConfigItem, ConfigNames>;
33
- export type { AnyObject, Config, ConfigNames, ConfigOverrides, ReplaceAntfuEslintRulesWithVpRulesDeeply, Rules, TypedFlatConfigItem, VpComposer, };
35
+ export type { AnyObject, Config, ConfigNames, ConfigOverrides, Rules, TypedFlatConfigItem, VpComposer, };
package/dist/vdustr.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { sort } from "./extends/sort";
2
- import type { Config, ReplaceAntfuEslintRulesWithVpRulesDeeply, VpComposer } from "./types";
2
+ import type { Config, VpComposer } from "./types";
3
3
  import antfu from "@antfu/eslint-config";
4
4
  import { emotion } from "./configs/emotion";
5
5
  import { mdx } from "./configs/mdx";
@@ -14,7 +14,7 @@ import { pnpm } from "./extends/pnpm";
14
14
  import { react } from "./extends/react";
15
15
  import { typescript } from "./extends/typescript";
16
16
  import { yaml } from "./extends/yaml";
17
- type Options = ReplaceAntfuEslintRulesWithVpRulesDeeply<NonNullable<Parameters<typeof antfu>[0]>> & {
17
+ interface VpOptions {
18
18
  extends?: {
19
19
  javascript?: javascript.Options;
20
20
  imports?: imports.Options;
@@ -31,6 +31,7 @@ type Options = ReplaceAntfuEslintRulesWithVpRulesDeeply<NonNullable<Parameters<t
31
31
  mdx?: boolean | mdx.Options;
32
32
  storybook?: boolean | storybook.Options;
33
33
  prettier?: boolean | prettier.Options;
34
- };
34
+ }
35
+ type Options = NonNullable<Parameters<typeof antfu>[0]> & VpOptions;
35
36
  declare const vdustr: (options?: Options, ...userConfigs: Array<Config>) => VpComposer;
36
37
  export { vdustr };
package/dist/vdustr.js CHANGED
@@ -23,8 +23,9 @@ var _yaml = require("./extends/yaml");
23
23
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
24
24
  const ownedConfigNames = ["extends", "packageJson", "emotion", "tanstackQuery", "mdx", "storybook", "prettier"];
25
25
  const vdustr = (options, ...userConfigs) => {
26
- const antfuOptions = (0, _esToolkit.omit)(options ?? {}, ownedConfigNames);
27
- const vpOptions = (0, _esToolkit.pick)(options ?? {}, ownedConfigNames);
26
+ const rawOptions = options ?? {};
27
+ const antfuOptions = (0, _esToolkit.omit)(rawOptions, ownedConfigNames);
28
+ const vpOptions = (0, _esToolkit.pick)(rawOptions, ownedConfigNames);
28
29
  const packageJsonEnabled = Boolean(vpOptions?.packageJson ?? true);
29
30
  const emotionEnabled = Boolean(vpOptions?.emotion ?? false);
30
31
  const tanstackQueryEnabled = Boolean(vpOptions?.tanstackQuery ?? false);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vp-tw/eslint-config",
3
- "version": "1.0.5",
3
+ "version": "2.0.0",
4
4
  "description": "ViPro's ESLint configuration",
5
5
  "homepage": "https://github.com/vdustr/eslint-config",
6
6
  "license": "MIT",
@@ -8,10 +8,16 @@
8
8
  "name": "ViPro",
9
9
  "url": "https://vdustr.dev"
10
10
  },
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "git+https://github.com/vdustr/eslint-config.git",
14
+ "directory": "packages/eslint-config"
15
+ },
11
16
  "files": [
12
17
  "dist"
13
18
  ],
14
19
  "type": "module",
20
+ "sideEffects": false,
15
21
  "main": "./dist/index.js",
16
22
  "module": "./dist/esm/index.mjs",
17
23
  "types": "./dist/index.d.ts",
@@ -45,38 +51,38 @@
45
51
  },
46
52
  "dependencies": {
47
53
  "@mui/types": "^7.4.2",
48
- "@typescript-eslint/utils": "^8.54.0",
54
+ "@typescript-eslint/utils": "^8.59.0",
49
55
  "es-toolkit": "^1.44.0",
50
- "eslint-flat-config-utils": "^3.0.0",
56
+ "eslint-flat-config-utils": "^3.1.0",
51
57
  "local-pkg": "^1.1.2"
52
58
  },
53
59
  "devDependencies": {
54
- "@antfu/eslint-config": "^7.2.0",
60
+ "@antfu/eslint-config": "^8.2.0",
55
61
  "@emotion/eslint-plugin": "^11.12.0",
56
- "@tanstack/eslint-plugin-query": "^5.91.3",
62
+ "@tanstack/eslint-plugin-query": "^5.99.2",
57
63
  "@types/eslint-config-prettier": "^6.11.3",
58
- "eslint": "^9.39.2",
64
+ "eslint": "^10.2.1",
59
65
  "eslint-config-prettier": "^10.1.8",
60
- "eslint-plugin-mdx": "^3.6.2",
61
- "eslint-plugin-package-json": "^0.88.2",
66
+ "eslint-plugin-mdx": "^3.7.0",
67
+ "eslint-plugin-package-json": "^0.91.1",
62
68
  "eslint-plugin-react-compiler": "19.1.0-rc.2",
63
- "eslint-plugin-storybook": "^10.2.1",
64
- "eslint-plugin-yml": "^3.0.0",
65
- "eslint-typegen": "^2.2.0",
69
+ "eslint-plugin-storybook": "^10.3.5",
70
+ "eslint-plugin-yml": "^3.3.1",
71
+ "eslint-typegen": "^2.3.1",
66
72
  "storybook": "^10.2.1",
67
73
  "unbuild": "^3.5.0"
68
74
  },
69
75
  "peerDependencies": {
70
76
  "@emotion/eslint-plugin": "^11.12.0",
71
- "@tanstack/eslint-plugin-query": "^5.91.3",
77
+ "@tanstack/eslint-plugin-query": "^5.99.2",
72
78
  "@types/eslint-config-prettier": "^6.11.3",
73
- "eslint": "^9.39.2",
79
+ "eslint": "^10.2.1",
74
80
  "eslint-config-prettier": "^10.1.8",
75
- "eslint-plugin-mdx": "^3.6.2",
76
- "eslint-plugin-package-json": "^0.88.2",
81
+ "eslint-plugin-mdx": "^3.7.0",
82
+ "eslint-plugin-package-json": "^0.91.1",
77
83
  "eslint-plugin-react-compiler": "19.1.0-rc.2",
78
- "eslint-plugin-storybook": "^10.2.1",
79
- "eslint-plugin-yml": "^3.0.0",
84
+ "eslint-plugin-storybook": "^10.3.5",
85
+ "eslint-plugin-yml": "^3.3.1",
80
86
  "storybook": "^10.2.1"
81
87
  },
82
88
  "peerDependenciesMeta": {
@@ -111,6 +117,9 @@
111
117
  "optional": true
112
118
  }
113
119
  },
120
+ "engines": {
121
+ "node": "^20.19.0 || ^22.13.0 || >=24"
122
+ },
114
123
  "scripts": {
115
124
  "build": "unbuild",
116
125
  "copy": "tsx scripts/copy",