@xylabs/eslint-config-react-flat 7.4.25 → 7.4.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,6 @@
1
1
  import type { Linter } from 'eslint';
2
2
  export declare const config: Linter.Config[];
3
3
  export { reactConfig } from './react/index.ts';
4
+ export { reactImportConfig } from './reactImport/index.ts';
5
+ export { storybookConfig } from './storybook/index.ts';
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAIpC,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAA+B,CAAA;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAMpC,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAsE,CAAA;AAExG,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA"}
@@ -4,7 +4,7 @@ import { config as xyConfig } from "@xylabs/eslint-config-flat";
4
4
  // src/react/index.ts
5
5
  import tsParser from "@typescript-eslint/parser";
6
6
  import reactDomPlugin from "eslint-plugin-react-dom";
7
- import reactHooksExtraPlugin from "eslint-plugin-react-hooks-extra";
7
+ import reactHooksPlugin from "eslint-plugin-react-hooks";
8
8
  import reactNamingConventionPlugin from "eslint-plugin-react-naming-convention";
9
9
  import eslintReactRefreshPlugin from "eslint-plugin-react-refresh";
10
10
  import reactWebApiPlugin from "eslint-plugin-react-web-api";
@@ -15,7 +15,6 @@ var reactConfig = {
15
15
  ...reactPlugin.configs.recommended,
16
16
  ...reactDomPlugin.configs.recommended,
17
17
  ...reactWebApiPlugin.configs.recommended,
18
- ...reactHooksExtraPlugin.configs.recommended,
19
18
  ...reactNamingConventionPlugin.configs.recommended,
20
19
  ...eslintReactRefreshPlugin.configs.recommended,
21
20
  plugins: {
@@ -23,7 +22,7 @@ var reactConfig = {
23
22
  "react-dom": reactDomPlugin,
24
23
  "react-web-api": reactWebApiPlugin,
25
24
  "react-refresh": eslintReactRefreshPlugin,
26
- "react-hooks-extra": reactHooksExtraPlugin,
25
+ "react-hooks": reactHooksPlugin,
27
26
  "react-naming-convention": reactNamingConventionPlugin
28
27
  },
29
28
  languageOptions: {
@@ -35,17 +34,40 @@ var reactConfig = {
35
34
  ...reactPlugin.configs["strict-typescript"].rules,
36
35
  ...reactDomPlugin.configs.strict.rules,
37
36
  ...reactWebApiPlugin.configs.recommended.rules,
38
- ...reactHooksExtraPlugin.configs.recommended.rules,
37
+ ...reactHooksPlugin.configs.recommended.rules,
39
38
  ...reactNamingConventionPlugin.configs.recommended.rules,
40
39
  ...eslintReactRefreshPlugin.configs.recommended.rules,
41
40
  "react-refresh/only-export-components": ["warn", { allowConstantExport: true }]
42
41
  }
43
42
  };
44
43
 
44
+ // src/reactImport/index.ts
45
+ import { importConfig } from "@xylabs/eslint-config-flat";
46
+ var reactImportConfig = {
47
+ rules: {
48
+ "import-x/no-internal-modules": [
49
+ "warn",
50
+ {
51
+ allow: [
52
+ "react-dom/*",
53
+ "react-icons/*",
54
+ ...importConfig.rules?.["import-x/no-internal-modules"]?.[1]?.allow ?? []
55
+ ]
56
+ }
57
+ ]
58
+ }
59
+ };
60
+
61
+ // src/storybook/index.ts
62
+ import storybook from "eslint-plugin-storybook";
63
+ var storybookConfig = storybook.configs["flat/recommended"];
64
+
45
65
  // src/index.ts
46
- var config = [...xyConfig, reactConfig];
66
+ var config = [...xyConfig, reactConfig, reactImportConfig, ...storybookConfig];
47
67
  export {
48
68
  config,
49
- reactConfig
69
+ reactConfig,
70
+ reactImportConfig,
71
+ storybookConfig
50
72
  };
51
73
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/react/index.ts"],"sourcesContent":["import { config as xyConfig } from '@xylabs/eslint-config-flat'\nimport type { Linter } from 'eslint'\n\nimport { reactConfig } from './react/index.ts'\n\nexport const config: Linter.Config[] = [...xyConfig, reactConfig]\n\nexport { reactConfig } from './react/index.ts'\n","import tsParser from '@typescript-eslint/parser'\nimport type { Linter } from 'eslint'\nimport reactDomPlugin from 'eslint-plugin-react-dom'\nimport reactHooksExtraPlugin from 'eslint-plugin-react-hooks-extra'\nimport reactNamingConventionPlugin from 'eslint-plugin-react-naming-convention'\nimport eslintReactRefreshPlugin from 'eslint-plugin-react-refresh'\nimport reactWebApiPlugin from 'eslint-plugin-react-web-api'\nimport reactPlugin from 'eslint-plugin-react-x'\nimport globals from 'globals'\n\nexport const reactConfig = {\n files: ['**/*.{ts,tsx}'],\n ...reactPlugin.configs.recommended,\n ...reactDomPlugin.configs.recommended,\n ...reactWebApiPlugin.configs.recommended,\n ...reactHooksExtraPlugin.configs.recommended,\n ...reactNamingConventionPlugin.configs.recommended,\n ...eslintReactRefreshPlugin.configs.recommended,\n plugins: {\n 'react-x': reactPlugin,\n 'react-dom': reactDomPlugin,\n 'react-web-api': reactWebApiPlugin,\n 'react-refresh': eslintReactRefreshPlugin,\n 'react-hooks-extra': reactHooksExtraPlugin,\n 'react-naming-convention': reactNamingConventionPlugin,\n },\n languageOptions: {\n parser: tsParser,\n parserOptions: { ecmaFeatures: { jsx: true } },\n globals: { ...globals.browser },\n },\n rules: {\n ...reactPlugin.configs['strict-typescript'].rules,\n ...reactDomPlugin.configs.strict.rules,\n ...reactWebApiPlugin.configs.recommended.rules,\n ...reactHooksExtraPlugin.configs.recommended.rules,\n ...reactNamingConventionPlugin.configs.recommended.rules,\n ...eslintReactRefreshPlugin.configs.recommended.rules,\n 'react-refresh/only-export-components': ['warn', { allowConstantExport: true }],\n },\n} as unknown as Linter.Config\n"],"mappings":";AAAA,SAAS,UAAU,gBAAgB;;;ACAnC,OAAO,cAAc;AAErB,OAAO,oBAAoB;AAC3B,OAAO,2BAA2B;AAClC,OAAO,iCAAiC;AACxC,OAAO,8BAA8B;AACrC,OAAO,uBAAuB;AAC9B,OAAO,iBAAiB;AACxB,OAAO,aAAa;AAEb,IAAM,cAAc;AAAA,EACzB,OAAO,CAAC,eAAe;AAAA,EACvB,GAAG,YAAY,QAAQ;AAAA,EACvB,GAAG,eAAe,QAAQ;AAAA,EAC1B,GAAG,kBAAkB,QAAQ;AAAA,EAC7B,GAAG,sBAAsB,QAAQ;AAAA,EACjC,GAAG,4BAA4B,QAAQ;AAAA,EACvC,GAAG,yBAAyB,QAAQ;AAAA,EACpC,SAAS;AAAA,IACP,WAAW;AAAA,IACX,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,IACrB,2BAA2B;AAAA,EAC7B;AAAA,EACA,iBAAiB;AAAA,IACf,QAAQ;AAAA,IACR,eAAe,EAAE,cAAc,EAAE,KAAK,KAAK,EAAE;AAAA,IAC7C,SAAS,EAAE,GAAG,QAAQ,QAAQ;AAAA,EAChC;AAAA,EACA,OAAO;AAAA,IACL,GAAG,YAAY,QAAQ,mBAAmB,EAAE;AAAA,IAC5C,GAAG,eAAe,QAAQ,OAAO;AAAA,IACjC,GAAG,kBAAkB,QAAQ,YAAY;AAAA,IACzC,GAAG,sBAAsB,QAAQ,YAAY;AAAA,IAC7C,GAAG,4BAA4B,QAAQ,YAAY;AAAA,IACnD,GAAG,yBAAyB,QAAQ,YAAY;AAAA,IAChD,wCAAwC,CAAC,QAAQ,EAAE,qBAAqB,KAAK,CAAC;AAAA,EAChF;AACF;;;ADnCO,IAAM,SAA0B,CAAC,GAAG,UAAU,WAAW;","names":[]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/react/index.ts","../../src/reactImport/index.ts","../../src/storybook/index.ts"],"sourcesContent":["import { config as xyConfig } from '@xylabs/eslint-config-flat'\nimport type { Linter } from 'eslint'\n\nimport { reactConfig } from './react/index.ts'\nimport { reactImportConfig } from './reactImport/index.ts'\nimport { storybookConfig } from './storybook/index.ts'\n\nexport const config: Linter.Config[] = [...xyConfig, reactConfig, reactImportConfig, ...storybookConfig]\n\nexport { reactConfig } from './react/index.ts'\nexport { reactImportConfig } from './reactImport/index.ts'\nexport { storybookConfig } from './storybook/index.ts'\n","import tsParser from '@typescript-eslint/parser'\nimport type { Linter } from 'eslint'\nimport reactDomPlugin from 'eslint-plugin-react-dom'\nimport reactHooksPlugin from 'eslint-plugin-react-hooks'\nimport reactNamingConventionPlugin from 'eslint-plugin-react-naming-convention'\nimport eslintReactRefreshPlugin from 'eslint-plugin-react-refresh'\nimport reactWebApiPlugin from 'eslint-plugin-react-web-api'\nimport reactPlugin from 'eslint-plugin-react-x'\nimport globals from 'globals'\n\nexport const reactConfig = {\n files: ['**/*.{ts,tsx}'],\n ...reactPlugin.configs.recommended,\n ...reactDomPlugin.configs.recommended,\n ...reactWebApiPlugin.configs.recommended,\n ...reactNamingConventionPlugin.configs.recommended,\n ...eslintReactRefreshPlugin.configs.recommended,\n plugins: {\n 'react-x': reactPlugin,\n 'react-dom': reactDomPlugin,\n 'react-web-api': reactWebApiPlugin,\n 'react-refresh': eslintReactRefreshPlugin,\n 'react-hooks': reactHooksPlugin,\n 'react-naming-convention': reactNamingConventionPlugin,\n },\n languageOptions: {\n parser: tsParser,\n parserOptions: { ecmaFeatures: { jsx: true } },\n globals: { ...globals.browser },\n },\n rules: {\n ...reactPlugin.configs['strict-typescript'].rules,\n ...reactDomPlugin.configs.strict.rules,\n ...reactWebApiPlugin.configs.recommended.rules,\n ...reactHooksPlugin.configs.recommended.rules,\n ...reactNamingConventionPlugin.configs.recommended.rules,\n ...eslintReactRefreshPlugin.configs.recommended.rules,\n 'react-refresh/only-export-components': ['warn', { allowConstantExport: true }],\n },\n} as unknown as Linter.Config\n","import { importConfig } from '@xylabs/eslint-config-flat'\nimport type { Linter } from 'eslint'\n\nexport const reactImportConfig: Linter.Config = {\n rules: {\n 'import-x/no-internal-modules': [\n 'warn',\n {\n allow: [\n 'react-dom/*',\n 'react-icons/*',\n ...((importConfig.rules?.['import-x/no-internal-modules'] as [string, { allow: string[] }])?.[1]?.allow ?? []),\n ],\n },\n ],\n },\n}\n","import type { Linter } from 'eslint'\nimport storybook from 'eslint-plugin-storybook'\n\nexport const storybookConfig: Linter.Config[] = storybook.configs['flat/recommended'] as Linter.Config[]\n"],"mappings":";AAAA,SAAS,UAAU,gBAAgB;;;ACAnC,OAAO,cAAc;AAErB,OAAO,oBAAoB;AAC3B,OAAO,sBAAsB;AAC7B,OAAO,iCAAiC;AACxC,OAAO,8BAA8B;AACrC,OAAO,uBAAuB;AAC9B,OAAO,iBAAiB;AACxB,OAAO,aAAa;AAEb,IAAM,cAAc;AAAA,EACzB,OAAO,CAAC,eAAe;AAAA,EACvB,GAAG,YAAY,QAAQ;AAAA,EACvB,GAAG,eAAe,QAAQ;AAAA,EAC1B,GAAG,kBAAkB,QAAQ;AAAA,EAC7B,GAAG,4BAA4B,QAAQ;AAAA,EACvC,GAAG,yBAAyB,QAAQ;AAAA,EACpC,SAAS;AAAA,IACP,WAAW;AAAA,IACX,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,iBAAiB;AAAA,IACjB,eAAe;AAAA,IACf,2BAA2B;AAAA,EAC7B;AAAA,EACA,iBAAiB;AAAA,IACf,QAAQ;AAAA,IACR,eAAe,EAAE,cAAc,EAAE,KAAK,KAAK,EAAE;AAAA,IAC7C,SAAS,EAAE,GAAG,QAAQ,QAAQ;AAAA,EAChC;AAAA,EACA,OAAO;AAAA,IACL,GAAG,YAAY,QAAQ,mBAAmB,EAAE;AAAA,IAC5C,GAAG,eAAe,QAAQ,OAAO;AAAA,IACjC,GAAG,kBAAkB,QAAQ,YAAY;AAAA,IACzC,GAAG,iBAAiB,QAAQ,YAAY;AAAA,IACxC,GAAG,4BAA4B,QAAQ,YAAY;AAAA,IACnD,GAAG,yBAAyB,QAAQ,YAAY;AAAA,IAChD,wCAAwC,CAAC,QAAQ,EAAE,qBAAqB,KAAK,CAAC;AAAA,EAChF;AACF;;;ACvCA,SAAS,oBAAoB;AAGtB,IAAM,oBAAmC;AAAA,EAC9C,OAAO;AAAA,IACL,gCAAgC;AAAA,MAC9B;AAAA,MACA;AAAA,QACE,OAAO;AAAA,UACL;AAAA,UACA;AAAA,UACA,GAAK,aAAa,QAAQ,8BAA8B,IAAsC,CAAC,GAAG,SAAS,CAAC;AAAA,QAC9G;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;ACfA,OAAO,eAAe;AAEf,IAAM,kBAAmC,UAAU,QAAQ,kBAAkB;;;AHI7E,IAAM,SAA0B,CAAC,GAAG,UAAU,aAAa,mBAAmB,GAAG,eAAe;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AASpC,eAAO,MAAM,WAAW,EA8BR,MAAM,CAAC,MAAM,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AASpC,eAAO,MAAM,WAAW,EA6BR,MAAM,CAAC,MAAM,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { Linter } from 'eslint';
2
+ export declare const reactImportConfig: Linter.Config;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/reactImport/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAEpC,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAatC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { Linter } from 'eslint';
2
+ export declare const storybookConfig: Linter.Config[];
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storybook/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAGpC,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAA6D,CAAA"}
@@ -1,4 +1,6 @@
1
1
  import type { Linter } from 'eslint';
2
2
  export declare const config: Linter.Config[];
3
3
  export { reactConfig } from './react/index.ts';
4
+ export { reactImportConfig } from './reactImport/index.ts';
5
+ export { storybookConfig } from './storybook/index.ts';
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAIpC,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAA+B,CAAA;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAMpC,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAsE,CAAA;AAExG,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA"}
@@ -4,7 +4,7 @@ import { config as xyConfig } from "@xylabs/eslint-config-flat";
4
4
  // src/react/index.ts
5
5
  import tsParser from "@typescript-eslint/parser";
6
6
  import reactDomPlugin from "eslint-plugin-react-dom";
7
- import reactHooksExtraPlugin from "eslint-plugin-react-hooks-extra";
7
+ import reactHooksPlugin from "eslint-plugin-react-hooks";
8
8
  import reactNamingConventionPlugin from "eslint-plugin-react-naming-convention";
9
9
  import eslintReactRefreshPlugin from "eslint-plugin-react-refresh";
10
10
  import reactWebApiPlugin from "eslint-plugin-react-web-api";
@@ -15,7 +15,6 @@ var reactConfig = {
15
15
  ...reactPlugin.configs.recommended,
16
16
  ...reactDomPlugin.configs.recommended,
17
17
  ...reactWebApiPlugin.configs.recommended,
18
- ...reactHooksExtraPlugin.configs.recommended,
19
18
  ...reactNamingConventionPlugin.configs.recommended,
20
19
  ...eslintReactRefreshPlugin.configs.recommended,
21
20
  plugins: {
@@ -23,7 +22,7 @@ var reactConfig = {
23
22
  "react-dom": reactDomPlugin,
24
23
  "react-web-api": reactWebApiPlugin,
25
24
  "react-refresh": eslintReactRefreshPlugin,
26
- "react-hooks-extra": reactHooksExtraPlugin,
25
+ "react-hooks": reactHooksPlugin,
27
26
  "react-naming-convention": reactNamingConventionPlugin
28
27
  },
29
28
  languageOptions: {
@@ -35,17 +34,40 @@ var reactConfig = {
35
34
  ...reactPlugin.configs["strict-typescript"].rules,
36
35
  ...reactDomPlugin.configs.strict.rules,
37
36
  ...reactWebApiPlugin.configs.recommended.rules,
38
- ...reactHooksExtraPlugin.configs.recommended.rules,
37
+ ...reactHooksPlugin.configs.recommended.rules,
39
38
  ...reactNamingConventionPlugin.configs.recommended.rules,
40
39
  ...eslintReactRefreshPlugin.configs.recommended.rules,
41
40
  "react-refresh/only-export-components": ["warn", { allowConstantExport: true }]
42
41
  }
43
42
  };
44
43
 
44
+ // src/reactImport/index.ts
45
+ import { importConfig } from "@xylabs/eslint-config-flat";
46
+ var reactImportConfig = {
47
+ rules: {
48
+ "import-x/no-internal-modules": [
49
+ "warn",
50
+ {
51
+ allow: [
52
+ "react-dom/*",
53
+ "react-icons/*",
54
+ ...importConfig.rules?.["import-x/no-internal-modules"]?.[1]?.allow ?? []
55
+ ]
56
+ }
57
+ ]
58
+ }
59
+ };
60
+
61
+ // src/storybook/index.ts
62
+ import storybook from "eslint-plugin-storybook";
63
+ var storybookConfig = storybook.configs["flat/recommended"];
64
+
45
65
  // src/index.ts
46
- var config = [...xyConfig, reactConfig];
66
+ var config = [...xyConfig, reactConfig, reactImportConfig, ...storybookConfig];
47
67
  export {
48
68
  config,
49
- reactConfig
69
+ reactConfig,
70
+ reactImportConfig,
71
+ storybookConfig
50
72
  };
51
73
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/react/index.ts"],"sourcesContent":["import { config as xyConfig } from '@xylabs/eslint-config-flat'\nimport type { Linter } from 'eslint'\n\nimport { reactConfig } from './react/index.ts'\n\nexport const config: Linter.Config[] = [...xyConfig, reactConfig]\n\nexport { reactConfig } from './react/index.ts'\n","import tsParser from '@typescript-eslint/parser'\nimport type { Linter } from 'eslint'\nimport reactDomPlugin from 'eslint-plugin-react-dom'\nimport reactHooksExtraPlugin from 'eslint-plugin-react-hooks-extra'\nimport reactNamingConventionPlugin from 'eslint-plugin-react-naming-convention'\nimport eslintReactRefreshPlugin from 'eslint-plugin-react-refresh'\nimport reactWebApiPlugin from 'eslint-plugin-react-web-api'\nimport reactPlugin from 'eslint-plugin-react-x'\nimport globals from 'globals'\n\nexport const reactConfig = {\n files: ['**/*.{ts,tsx}'],\n ...reactPlugin.configs.recommended,\n ...reactDomPlugin.configs.recommended,\n ...reactWebApiPlugin.configs.recommended,\n ...reactHooksExtraPlugin.configs.recommended,\n ...reactNamingConventionPlugin.configs.recommended,\n ...eslintReactRefreshPlugin.configs.recommended,\n plugins: {\n 'react-x': reactPlugin,\n 'react-dom': reactDomPlugin,\n 'react-web-api': reactWebApiPlugin,\n 'react-refresh': eslintReactRefreshPlugin,\n 'react-hooks-extra': reactHooksExtraPlugin,\n 'react-naming-convention': reactNamingConventionPlugin,\n },\n languageOptions: {\n parser: tsParser,\n parserOptions: { ecmaFeatures: { jsx: true } },\n globals: { ...globals.browser },\n },\n rules: {\n ...reactPlugin.configs['strict-typescript'].rules,\n ...reactDomPlugin.configs.strict.rules,\n ...reactWebApiPlugin.configs.recommended.rules,\n ...reactHooksExtraPlugin.configs.recommended.rules,\n ...reactNamingConventionPlugin.configs.recommended.rules,\n ...eslintReactRefreshPlugin.configs.recommended.rules,\n 'react-refresh/only-export-components': ['warn', { allowConstantExport: true }],\n },\n} as unknown as Linter.Config\n"],"mappings":";AAAA,SAAS,UAAU,gBAAgB;;;ACAnC,OAAO,cAAc;AAErB,OAAO,oBAAoB;AAC3B,OAAO,2BAA2B;AAClC,OAAO,iCAAiC;AACxC,OAAO,8BAA8B;AACrC,OAAO,uBAAuB;AAC9B,OAAO,iBAAiB;AACxB,OAAO,aAAa;AAEb,IAAM,cAAc;AAAA,EACzB,OAAO,CAAC,eAAe;AAAA,EACvB,GAAG,YAAY,QAAQ;AAAA,EACvB,GAAG,eAAe,QAAQ;AAAA,EAC1B,GAAG,kBAAkB,QAAQ;AAAA,EAC7B,GAAG,sBAAsB,QAAQ;AAAA,EACjC,GAAG,4BAA4B,QAAQ;AAAA,EACvC,GAAG,yBAAyB,QAAQ;AAAA,EACpC,SAAS;AAAA,IACP,WAAW;AAAA,IACX,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,IACrB,2BAA2B;AAAA,EAC7B;AAAA,EACA,iBAAiB;AAAA,IACf,QAAQ;AAAA,IACR,eAAe,EAAE,cAAc,EAAE,KAAK,KAAK,EAAE;AAAA,IAC7C,SAAS,EAAE,GAAG,QAAQ,QAAQ;AAAA,EAChC;AAAA,EACA,OAAO;AAAA,IACL,GAAG,YAAY,QAAQ,mBAAmB,EAAE;AAAA,IAC5C,GAAG,eAAe,QAAQ,OAAO;AAAA,IACjC,GAAG,kBAAkB,QAAQ,YAAY;AAAA,IACzC,GAAG,sBAAsB,QAAQ,YAAY;AAAA,IAC7C,GAAG,4BAA4B,QAAQ,YAAY;AAAA,IACnD,GAAG,yBAAyB,QAAQ,YAAY;AAAA,IAChD,wCAAwC,CAAC,QAAQ,EAAE,qBAAqB,KAAK,CAAC;AAAA,EAChF;AACF;;;ADnCO,IAAM,SAA0B,CAAC,GAAG,UAAU,WAAW;","names":[]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/react/index.ts","../../src/reactImport/index.ts","../../src/storybook/index.ts"],"sourcesContent":["import { config as xyConfig } from '@xylabs/eslint-config-flat'\nimport type { Linter } from 'eslint'\n\nimport { reactConfig } from './react/index.ts'\nimport { reactImportConfig } from './reactImport/index.ts'\nimport { storybookConfig } from './storybook/index.ts'\n\nexport const config: Linter.Config[] = [...xyConfig, reactConfig, reactImportConfig, ...storybookConfig]\n\nexport { reactConfig } from './react/index.ts'\nexport { reactImportConfig } from './reactImport/index.ts'\nexport { storybookConfig } from './storybook/index.ts'\n","import tsParser from '@typescript-eslint/parser'\nimport type { Linter } from 'eslint'\nimport reactDomPlugin from 'eslint-plugin-react-dom'\nimport reactHooksPlugin from 'eslint-plugin-react-hooks'\nimport reactNamingConventionPlugin from 'eslint-plugin-react-naming-convention'\nimport eslintReactRefreshPlugin from 'eslint-plugin-react-refresh'\nimport reactWebApiPlugin from 'eslint-plugin-react-web-api'\nimport reactPlugin from 'eslint-plugin-react-x'\nimport globals from 'globals'\n\nexport const reactConfig = {\n files: ['**/*.{ts,tsx}'],\n ...reactPlugin.configs.recommended,\n ...reactDomPlugin.configs.recommended,\n ...reactWebApiPlugin.configs.recommended,\n ...reactNamingConventionPlugin.configs.recommended,\n ...eslintReactRefreshPlugin.configs.recommended,\n plugins: {\n 'react-x': reactPlugin,\n 'react-dom': reactDomPlugin,\n 'react-web-api': reactWebApiPlugin,\n 'react-refresh': eslintReactRefreshPlugin,\n 'react-hooks': reactHooksPlugin,\n 'react-naming-convention': reactNamingConventionPlugin,\n },\n languageOptions: {\n parser: tsParser,\n parserOptions: { ecmaFeatures: { jsx: true } },\n globals: { ...globals.browser },\n },\n rules: {\n ...reactPlugin.configs['strict-typescript'].rules,\n ...reactDomPlugin.configs.strict.rules,\n ...reactWebApiPlugin.configs.recommended.rules,\n ...reactHooksPlugin.configs.recommended.rules,\n ...reactNamingConventionPlugin.configs.recommended.rules,\n ...eslintReactRefreshPlugin.configs.recommended.rules,\n 'react-refresh/only-export-components': ['warn', { allowConstantExport: true }],\n },\n} as unknown as Linter.Config\n","import { importConfig } from '@xylabs/eslint-config-flat'\nimport type { Linter } from 'eslint'\n\nexport const reactImportConfig: Linter.Config = {\n rules: {\n 'import-x/no-internal-modules': [\n 'warn',\n {\n allow: [\n 'react-dom/*',\n 'react-icons/*',\n ...((importConfig.rules?.['import-x/no-internal-modules'] as [string, { allow: string[] }])?.[1]?.allow ?? []),\n ],\n },\n ],\n },\n}\n","import type { Linter } from 'eslint'\nimport storybook from 'eslint-plugin-storybook'\n\nexport const storybookConfig: Linter.Config[] = storybook.configs['flat/recommended'] as Linter.Config[]\n"],"mappings":";AAAA,SAAS,UAAU,gBAAgB;;;ACAnC,OAAO,cAAc;AAErB,OAAO,oBAAoB;AAC3B,OAAO,sBAAsB;AAC7B,OAAO,iCAAiC;AACxC,OAAO,8BAA8B;AACrC,OAAO,uBAAuB;AAC9B,OAAO,iBAAiB;AACxB,OAAO,aAAa;AAEb,IAAM,cAAc;AAAA,EACzB,OAAO,CAAC,eAAe;AAAA,EACvB,GAAG,YAAY,QAAQ;AAAA,EACvB,GAAG,eAAe,QAAQ;AAAA,EAC1B,GAAG,kBAAkB,QAAQ;AAAA,EAC7B,GAAG,4BAA4B,QAAQ;AAAA,EACvC,GAAG,yBAAyB,QAAQ;AAAA,EACpC,SAAS;AAAA,IACP,WAAW;AAAA,IACX,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,iBAAiB;AAAA,IACjB,eAAe;AAAA,IACf,2BAA2B;AAAA,EAC7B;AAAA,EACA,iBAAiB;AAAA,IACf,QAAQ;AAAA,IACR,eAAe,EAAE,cAAc,EAAE,KAAK,KAAK,EAAE;AAAA,IAC7C,SAAS,EAAE,GAAG,QAAQ,QAAQ;AAAA,EAChC;AAAA,EACA,OAAO;AAAA,IACL,GAAG,YAAY,QAAQ,mBAAmB,EAAE;AAAA,IAC5C,GAAG,eAAe,QAAQ,OAAO;AAAA,IACjC,GAAG,kBAAkB,QAAQ,YAAY;AAAA,IACzC,GAAG,iBAAiB,QAAQ,YAAY;AAAA,IACxC,GAAG,4BAA4B,QAAQ,YAAY;AAAA,IACnD,GAAG,yBAAyB,QAAQ,YAAY;AAAA,IAChD,wCAAwC,CAAC,QAAQ,EAAE,qBAAqB,KAAK,CAAC;AAAA,EAChF;AACF;;;ACvCA,SAAS,oBAAoB;AAGtB,IAAM,oBAAmC;AAAA,EAC9C,OAAO;AAAA,IACL,gCAAgC;AAAA,MAC9B;AAAA,MACA;AAAA,QACE,OAAO;AAAA,UACL;AAAA,UACA;AAAA,UACA,GAAK,aAAa,QAAQ,8BAA8B,IAAsC,CAAC,GAAG,SAAS,CAAC;AAAA,QAC9G;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;ACfA,OAAO,eAAe;AAEf,IAAM,kBAAmC,UAAU,QAAQ,kBAAkB;;;AHI7E,IAAM,SAA0B,CAAC,GAAG,UAAU,aAAa,mBAAmB,GAAG,eAAe;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AASpC,eAAO,MAAM,WAAW,EA8BR,MAAM,CAAC,MAAM,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AASpC,eAAO,MAAM,WAAW,EA6BR,MAAM,CAAC,MAAM,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { Linter } from 'eslint';
2
+ export declare const reactImportConfig: Linter.Config;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/reactImport/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAEpC,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAatC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { Linter } from 'eslint';
2
+ export declare const storybookConfig: Linter.Config[];
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storybook/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAGpC,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAA6D,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,6 @@
1
1
  {
2
- "$schema": "http://json.schemastore.org/package.json",
3
2
  "name": "@xylabs/eslint-config-react-flat",
4
- "version": "7.4.25",
3
+ "version": "7.4.27",
5
4
  "description": "ESLint Config used throughout XY Labs TypeScript/JavaScript libraries and react projects",
6
5
  "keywords": [
7
6
  "xylabs",
@@ -39,18 +38,19 @@
39
38
  ],
40
39
  "dependencies": {
41
40
  "@typescript-eslint/parser": "~8.57.2",
42
- "@xylabs/eslint-config-flat": "~7.4.25",
41
+ "@xylabs/eslint-config-flat": "~7.4.27",
43
42
  "eslint-plugin-react-dom": "^3.0.0",
44
- "eslint-plugin-react-hooks-extra": "^2.13.0",
43
+ "eslint-plugin-react-hooks": "^7.0.1",
45
44
  "eslint-plugin-react-naming-convention": "^3.0.0",
46
45
  "eslint-plugin-react-refresh": "^0.5.2",
47
46
  "eslint-plugin-react-web-api": "^3.0.0",
48
47
  "eslint-plugin-react-x": "^3.0.0",
48
+ "eslint-plugin-storybook": "^10.3.3",
49
49
  "globals": "~17.4.0"
50
50
  },
51
51
  "devDependencies": {
52
- "@xylabs/ts-scripts-yarn3": "~7.4.25",
53
- "@xylabs/tsconfig": "~7.4.25",
52
+ "@xylabs/ts-scripts-yarn3": "~7.4.27",
53
+ "@xylabs/tsconfig": "~7.4.27",
54
54
  "eslint": "^10.1.0",
55
55
  "typescript": "^5.9.3",
56
56
  "vitest": "~4.1.1"