@ocavue/eslint-config 4.3.2 → 4.3.4

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 +1 @@
1
- {"version":3,"file":"package-json.d.ts","sourceRoot":"","sources":["../src/package-json.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAG/C,eAAO,MAAM,gBAAgB,EAAE,KA0M9B,CAAA;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,EAAE,CAStC"}
1
+ {"version":3,"file":"package-json.d.ts","sourceRoot":"","sources":["../src/package-json.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAG/C,eAAO,MAAM,gBAAgB,EAAE,KA6M9B,CAAA;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,EAAE,CAStC"}
@@ -105,6 +105,8 @@ export const packageJsonRules = {
105
105
  'package-json/valid-description': 'error',
106
106
  // https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/blob/v0.88.1/docs/rules/valid-devDependencies.md
107
107
  'package-json/valid-devDependencies': 'error',
108
+ // https://github.com/michaelfaith/eslint-plugin-package-json/blob/v0.91.0/docs/rules/valid-devEngines.md
109
+ 'package-json/valid-devEngines': 'error',
108
110
  // https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/blob/v0.88.1/docs/rules/valid-directories.md
109
111
  'package-json/valid-directories': 'error',
110
112
  // https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/blob/v0.88.1/docs/rules/valid-engines.md
@@ -1 +1 @@
1
- {"version":3,"file":"package-json.js","sourceRoot":"","sources":["../src/package-json.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"package-json.js","sourceRoot":"","sources":["../src/package-json.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,3 @@
1
1
  import type { Config } from './types.ts';
2
- /**
3
- * Turns off all rules that are unnecessary or might conflict with Prettier.
4
- *
5
- * Notice that this config does not run `prettier` as an ESLint rule, so you
6
- * have to run `pretter` separately for formatting.
7
- */
8
2
  export declare function perfectionist(): Config[];
9
3
  //# sourceMappingURL=perfectionist.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"perfectionist.d.ts","sourceRoot":"","sources":["../src/perfectionist.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC;;;;;GAKG;AACH,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAyBxC"}
1
+ {"version":3,"file":"perfectionist.d.ts","sourceRoot":"","sources":["../src/perfectionist.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAyBxC"}
@@ -1,10 +1,4 @@
1
1
  import perfectionistPlugin from 'eslint-plugin-perfectionist';
2
- /**
3
- * Turns off all rules that are unnecessary or might conflict with Prettier.
4
- *
5
- * Notice that this config does not run `prettier` as an ESLint rule, so you
6
- * have to run `pretter` separately for formatting.
7
- */
8
2
  export function perfectionist() {
9
3
  return [
10
4
  {
@@ -1 +1 @@
1
- {"version":3,"file":"perfectionist.js","sourceRoot":"","sources":["../src/perfectionist.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,MAAM,6BAA6B,CAAA;AAI7D;;;;;GAKG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO;QACL;YACE,OAAO,EAAE;gBACP,aAAa,EAAE,mBAAmB;aACnC;YACD,KAAK,EAAE;gBACL,4BAA4B,EAAE;oBAC5B,MAAM;oBACN;wBACE,MAAM,EAAE;4BACN,mBAAmB;4BACnB,aAAa;4BACb,SAAS;4BACT,UAAU;4BACV,UAAU;4BACV,QAAQ;4BACR,SAAS;4BACT,OAAO;yBACR;qBACF;iBACF;aACF;SACF;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"perfectionist.js","sourceRoot":"","sources":["../src/perfectionist.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,MAAM,6BAA6B,CAAA;AAI7D,MAAM,UAAU,aAAa;IAC3B,OAAO;QACL;YACE,OAAO,EAAE;gBACP,aAAa,EAAE,mBAAmB;aACnC;YACD,KAAK,EAAE;gBACL,4BAA4B,EAAE;oBAC5B,MAAM;oBACN;wBACE,MAAM,EAAE;4BACN,mBAAmB;4BACnB,aAAa;4BACb,SAAS;4BACT,UAAU;4BACV,UAAU;4BACV,QAAQ;4BACR,SAAS;4BACT,OAAO;yBACR;qBACF;iBACF;aACF;SACF;KACF,CAAA;AACH,CAAC"}
package/dist/react.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { type ReactOptions } from './options.js';
2
- import type { Config } from './types.js';
2
+ import type { Config, Rules } from './types.js';
3
+ export declare const reactRules: Rules;
3
4
  export declare function react(options?: ReactOptions): Config[];
4
5
  //# sourceMappingURL=react.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAGA,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAA;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC,wBAAgB,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM,EAAE,CAmDtD"}
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAGA,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAA;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAG/C,eAAO,MAAM,UAAU,EAAE,KAoLxB,CAAA;AAED,wBAAgB,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM,EAAE,CA4CtD"}
package/dist/react.js CHANGED
@@ -1,9 +1,132 @@
1
1
  import eslintReact from '@eslint-react/eslint-plugin';
2
2
  import reactHooksPlugin from 'eslint-plugin-react-hooks';
3
3
  import { resolveReactOptions } from './options.js';
4
+ // @keep-sorted
5
+ export const reactRules = {
6
+ // https://eslint-react.xyz/docs/rules/component-hook-factories
7
+ '@eslint-react/component-hook-factories': 'warn',
8
+ // https://eslint-react.xyz/docs/rules/dom-no-dangerously-set-innerhtml-with-children
9
+ '@eslint-react/dom/no-dangerously-set-innerhtml-with-children': 'error',
10
+ // https://eslint-react.xyz/docs/rules/dom-no-dangerously-set-innerhtml
11
+ '@eslint-react/dom/no-dangerously-set-innerhtml': 'warn',
12
+ // https://eslint-react.xyz/docs/rules/dom-no-find-dom-node
13
+ '@eslint-react/dom/no-find-dom-node': 'warn',
14
+ // https://eslint-react.xyz/docs/rules/dom-no-flush-sync
15
+ '@eslint-react/dom/no-flush-sync': 'warn',
16
+ // https://eslint-react.xyz/docs/rules/dom-no-hydrate
17
+ '@eslint-react/dom/no-hydrate': 'error',
18
+ // https://eslint-react.xyz/docs/rules/dom-no-namespace
19
+ '@eslint-react/dom/no-namespace': 'error',
20
+ // https://eslint-react.xyz/docs/rules/dom-no-render-return-value
21
+ '@eslint-react/dom/no-render-return-value': 'error',
22
+ // https://eslint-react.xyz/docs/rules/dom-no-render
23
+ '@eslint-react/dom/no-render': 'warn',
24
+ // https://eslint-react.xyz/docs/rules/dom-no-script-url
25
+ '@eslint-react/dom/no-script-url': 'warn',
26
+ // https://eslint-react.xyz/docs/rules/dom-no-unsafe-iframe-sandbox
27
+ '@eslint-react/dom/no-unsafe-iframe-sandbox': 'warn',
28
+ // https://eslint-react.xyz/docs/rules/dom-no-use-form-state
29
+ '@eslint-react/dom/no-use-form-state': 'error',
30
+ // https://eslint-react.xyz/docs/rules/dom-no-void-elements-with-children
31
+ '@eslint-react/dom/no-void-elements-with-children': 'error',
32
+ // https://eslint-react.xyz/docs/rules/error-boundaries
33
+ '@eslint-react/error-boundaries': 'error',
34
+ // https://github.com/facebook/react/issues/14920
35
+ '@eslint-react/exhaustive-deps': 'warn',
36
+ // https://eslint-react.xyz/docs/rules/jsx-key-before-spread
37
+ '@eslint-react/jsx-key-before-spread': 'warn',
38
+ // https://eslint-react.xyz/docs/rules/jsx-no-comment-textnodes
39
+ '@eslint-react/jsx-no-comment-textnodes': 'warn',
40
+ // https://eslint-react.xyz/docs/rules/naming-convention-context-name
41
+ '@eslint-react/naming-convention/context-name': 'warn',
42
+ // https://eslint-react.xyz/docs/rules/naming-convention-id-name
43
+ '@eslint-react/naming-convention/id-name': 'warn',
44
+ // https://eslint-react.xyz/docs/rules/naming-convention-ref-name
45
+ '@eslint-react/naming-convention/ref-name': 'warn',
46
+ // https://eslint-react.xyz/docs/rules/no-access-state-in-setstate
47
+ '@eslint-react/no-access-state-in-setstate': 'warn',
48
+ // https://eslint-react.xyz/docs/rules/no-array-index-key
49
+ '@eslint-react/no-array-index-key': 'warn',
50
+ // https://eslint-react.xyz/docs/rules/no-children-count
51
+ '@eslint-react/no-children-count': 'warn',
52
+ // https://eslint-react.xyz/docs/rules/no-children-for-each
53
+ '@eslint-react/no-children-for-each': 'warn',
54
+ // https://eslint-react.xyz/docs/rules/no-children-map
55
+ '@eslint-react/no-children-map': 'warn',
56
+ // https://eslint-react.xyz/docs/rules/no-children-only
57
+ '@eslint-react/no-children-only': 'warn',
58
+ // https://eslint-react.xyz/docs/rules/no-children-to-array
59
+ '@eslint-react/no-children-to-array': 'warn',
60
+ // https://eslint-react.xyz/docs/rules/no-clone-element
61
+ '@eslint-react/no-clone-element': 'warn',
62
+ // https://eslint-react.xyz/docs/rules/no-component-will-mount
63
+ '@eslint-react/no-component-will-mount': 'error',
64
+ // https://eslint-react.xyz/docs/rules/no-component-will-receive-props
65
+ '@eslint-react/no-component-will-receive-props': 'error',
66
+ // https://eslint-react.xyz/docs/rules/no-component-will-update
67
+ '@eslint-react/no-component-will-update': 'error',
68
+ // https://eslint-react.xyz/docs/rules/no-context-provider
69
+ '@eslint-react/no-context-provider': 'warn',
70
+ // https://eslint-react.xyz/docs/rules/no-create-ref
71
+ '@eslint-react/no-create-ref': 'error',
72
+ // https://eslint-react.xyz/docs/rules/no-direct-mutation-state
73
+ '@eslint-react/no-direct-mutation-state': 'error',
74
+ // https://eslint-react.xyz/docs/rules/no-forward-ref
75
+ '@eslint-react/no-forward-ref': 'warn',
76
+ // https://eslint-react.xyz/docs/rules/no-missing-key
77
+ '@eslint-react/no-missing-key': 'warn',
78
+ // https://eslint-react.xyz/docs/rules/no-nested-component-definitions
79
+ '@eslint-react/no-nested-component-definitions': 'error',
80
+ // https://eslint-react.xyz/docs/rules/no-nested-lazy-component-declarations
81
+ '@eslint-react/no-nested-lazy-component-declarations': 'error',
82
+ // https://eslint-react.xyz/docs/rules/no-redundant-should-component-update
83
+ '@eslint-react/no-redundant-should-component-update': 'error',
84
+ // https://eslint-react.xyz/docs/rules/no-set-state-in-component-did-mount
85
+ '@eslint-react/no-set-state-in-component-did-mount': 'warn',
86
+ // https://eslint-react.xyz/docs/rules/no-set-state-in-component-did-update
87
+ '@eslint-react/no-set-state-in-component-did-update': 'warn',
88
+ // https://eslint-react.xyz/docs/rules/no-set-state-in-component-will-update
89
+ '@eslint-react/no-set-state-in-component-will-update': 'warn',
90
+ // https://eslint-react.xyz/docs/rules/no-unnecessary-use-prefix
91
+ '@eslint-react/no-unnecessary-use-prefix': 'warn',
92
+ // https://eslint-react.xyz/docs/rules/no-unsafe-component-will-mount
93
+ '@eslint-react/no-unsafe-component-will-mount': 'warn',
94
+ // https://eslint-react.xyz/docs/rules/no-unsafe-component-will-receive-props
95
+ '@eslint-react/no-unsafe-component-will-receive-props': 'warn',
96
+ // https://eslint-react.xyz/docs/rules/no-unsafe-component-will-update
97
+ '@eslint-react/no-unsafe-component-will-update': 'warn',
98
+ // https://eslint-react.xyz/docs/rules/no-unused-class-component-members
99
+ '@eslint-react/no-unused-class-component-members': 'warn',
100
+ // https://eslint-react.xyz/docs/rules/no-use-context
101
+ '@eslint-react/no-use-context': 'warn',
102
+ // https://eslint-react.xyz/docs/rules/purity
103
+ '@eslint-react/purity': 'warn',
104
+ // https://eslint-react.xyz/docs/rules/function-definition
105
+ '@eslint-react/rsc/function-definition': 'error',
106
+ // https://react.dev/reference/rules/rules-of-hooks
107
+ '@eslint-react/rules-of-hooks': 'error',
108
+ // https://eslint-react.xyz/docs/rules/set-state-in-effect
109
+ '@eslint-react/set-state-in-effect': 'warn',
110
+ // https://eslint-react.xyz/docs/rules/set-state-in-render
111
+ '@eslint-react/set-state-in-render': 'error',
112
+ // https://eslint-react.xyz/docs/rules/unsupported-syntax
113
+ '@eslint-react/unsupported-syntax': 'error',
114
+ // https://eslint-react.xyz/docs/rules/use-memo
115
+ '@eslint-react/use-memo': 'warn',
116
+ // https://eslint-react.xyz/docs/rules/use-state
117
+ '@eslint-react/use-state': 'warn',
118
+ // https://eslint-react.xyz/docs/rules/web-api-no-leaked-event-listener
119
+ '@eslint-react/web-api/no-leaked-event-listener': 'warn',
120
+ // https://eslint-react.xyz/docs/rules/web-api-no-leaked-interval
121
+ '@eslint-react/web-api/no-leaked-interval': 'warn',
122
+ // https://eslint-react.xyz/docs/rules/web-api-no-leaked-resize-observer
123
+ '@eslint-react/web-api/no-leaked-resize-observer': 'warn',
124
+ // https://eslint-react.xyz/docs/rules/web-api-no-leaked-timeout
125
+ '@eslint-react/web-api/no-leaked-timeout': 'warn',
126
+ };
4
127
  export function react(options) {
5
128
  const { files, reactCompiler, version } = resolveReactOptions(options);
6
- const reactConfig = eslintReact.configs['recommended-typescript'];
129
+ const reactRecommendedConfig = eslintReact.configs['recommended-typescript'];
7
130
  const reactHooksRecommendedConfig = reactHooksPlugin.configs.flat['recommended'];
8
131
  const reactHooksRecommendedCompilerConfig = reactHooksPlugin.configs.flat['recommended-latest'];
9
132
  const reactHooksConfig = reactCompiler
@@ -11,7 +134,7 @@ export function react(options) {
11
134
  : reactHooksRecommendedConfig;
12
135
  const configs = [
13
136
  {
14
- ...reactConfig,
137
+ ...reactRecommendedConfig,
15
138
  name: 'react',
16
139
  files: files,
17
140
  settings: {
@@ -20,14 +143,7 @@ export function react(options) {
20
143
  },
21
144
  },
22
145
  rules: {
23
- ...reactConfig.rules,
24
- '@eslint-react/web-api/no-leaked-event-listener': 'off',
25
- // I know these patterns are dangerous, but they are useful in some cases.
26
- '@eslint-react/no-children-map': 'off',
27
- '@eslint-react/no-clone-element': 'off',
28
- '@eslint-react/no-dangerously-set-innerhtml': 'off',
29
- '@eslint-react/dom/no-flush-sync': 'off',
30
- '@eslint-react/no-array-index-key': 'off',
146
+ ...reactRules,
31
147
  },
32
148
  },
33
149
  {
package/dist/react.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,6BAA6B,CAAA;AACrD,OAAO,gBAAgB,MAAM,2BAA2B,CAAA;AAExD,OAAO,EAAE,mBAAmB,EAAqB,MAAM,cAAc,CAAA;AAGrE,MAAM,UAAU,KAAK,CAAC,OAAsB;IAC1C,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAA;IAEtE,MAAM,WAAW,GAAW,WAAW,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAA;IAEzE,MAAM,2BAA2B,GAC/B,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAC9C,MAAM,mCAAmC,GACvC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;IACrD,MAAM,gBAAgB,GAAW,aAAa;QAC5C,CAAC,CAAC,mCAAmC;QACrC,CAAC,CAAC,2BAA2B,CAAA;IAE/B,MAAM,OAAO,GAAa;QACxB;YACE,GAAG,WAAW;YACd,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE;gBACR,SAAS,EAAE;oBACT,OAAO,EAAE,OAAO;iBACjB;aACF;YACD,KAAK,EAAE;gBACL,GAAG,WAAW,CAAC,KAAK;gBAEpB,gDAAgD,EAAE,KAAK;gBAEvD,0EAA0E;gBAC1E,+BAA+B,EAAE,KAAK;gBACtC,gCAAgC,EAAE,KAAK;gBACvC,4CAA4C,EAAE,KAAK;gBACnD,iCAAiC,EAAE,KAAK;gBACxC,kCAAkC,EAAE,KAAK;aAC1C;SACF;QAED;YACE,GAAG,gBAAgB;YACnB,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE;gBACL,GAAG,gBAAgB,CAAC,KAAK;gBACzB,8EAA8E;gBAC9E,6CAA6C;gBAC7C,kBAAkB,EAAE,KAAK;aAC1B;SACF;KACF,CAAA;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ocavue/eslint-config",
3
3
  "type": "module",
4
- "version": "4.3.2",
4
+ "version": "4.3.4",
5
5
  "description": "Opinionated ESLint config preset",
6
6
  "author": "ocavue <ocavue@gmail.com>",
7
7
  "license": "MIT",
@@ -29,7 +29,7 @@
29
29
  ],
30
30
  "dependencies": {
31
31
  "@eslint-community/eslint-plugin-eslint-comments": "^4.7.1",
32
- "@eslint-react/eslint-plugin": "^2.13.0",
32
+ "@eslint-react/eslint-plugin": "^3.0.0",
33
33
  "@eslint/markdown": "^7.5.1",
34
34
  "@unocss/eslint-config": "^66.6.6",
35
35
  "eslint-config-flat-gitignore": "^2.2.1",
@@ -37,9 +37,9 @@
37
37
  "eslint-plugin-antfu": "^3.2.2",
38
38
  "eslint-plugin-command": "^3.5.2",
39
39
  "eslint-plugin-no-only-tests": "^3.3.0",
40
- "eslint-plugin-package-json": "^0.90.0",
40
+ "eslint-plugin-package-json": "^0.91.0",
41
41
  "eslint-plugin-perfectionist": "^5.6.0",
42
- "eslint-plugin-react-hooks": "^7.1.0 || 7.1.0-canary-2ba30655-20260219 || 7.1.0-canary-ab18f33d-20260220 || 7.1.0-canary-4cc5b7a9-20260303 || 7.1.0-canary-46103596-20260305",
42
+ "eslint-plugin-react-hooks": "^7.1.0 || 7.1.0-canary-c80a0750-20260312",
43
43
  "eslint-plugin-unicorn": "^63.0.0",
44
44
  "eslint-plugin-vue": "^10.8.0",
45
45
  "globals": "^17.4.0",
@@ -51,10 +51,10 @@
51
51
  "@types/node": "^20.19.27",
52
52
  "eslint": "^10.0.3",
53
53
  "jiti": "^2.6.1",
54
- "pkg-pr-new": "^0.0.65",
54
+ "pkg-pr-new": "^0.0.66",
55
55
  "prettier": "^3.8.1",
56
56
  "typescript": "^5.9.3",
57
- "vitest": "^4.1.0-beta.6"
57
+ "vitest": "^4.1.0"
58
58
  },
59
59
  "scripts": {
60
60
  "test": "vitest",