@ocavue/eslint-config 4.3.3 → 4.3.5

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,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,KAiLxB,CAAA;AAED,wBAAgB,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM,EAAE,CA4CtD"}
package/dist/react.js CHANGED
@@ -1,9 +1,130 @@
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-children-count
49
+ '@eslint-react/no-children-count': 'warn',
50
+ // https://eslint-react.xyz/docs/rules/no-children-for-each
51
+ '@eslint-react/no-children-for-each': 'warn',
52
+ // https://eslint-react.xyz/docs/rules/no-children-map
53
+ '@eslint-react/no-children-map': 'warn',
54
+ // https://eslint-react.xyz/docs/rules/no-children-only
55
+ '@eslint-react/no-children-only': 'warn',
56
+ // https://eslint-react.xyz/docs/rules/no-children-to-array
57
+ '@eslint-react/no-children-to-array': 'warn',
58
+ // https://eslint-react.xyz/docs/rules/no-clone-element
59
+ '@eslint-react/no-clone-element': 'warn',
60
+ // https://eslint-react.xyz/docs/rules/no-component-will-mount
61
+ '@eslint-react/no-component-will-mount': 'error',
62
+ // https://eslint-react.xyz/docs/rules/no-component-will-receive-props
63
+ '@eslint-react/no-component-will-receive-props': 'error',
64
+ // https://eslint-react.xyz/docs/rules/no-component-will-update
65
+ '@eslint-react/no-component-will-update': 'error',
66
+ // https://eslint-react.xyz/docs/rules/no-context-provider
67
+ '@eslint-react/no-context-provider': 'warn',
68
+ // https://eslint-react.xyz/docs/rules/no-create-ref
69
+ '@eslint-react/no-create-ref': 'error',
70
+ // https://eslint-react.xyz/docs/rules/no-direct-mutation-state
71
+ '@eslint-react/no-direct-mutation-state': 'error',
72
+ // https://eslint-react.xyz/docs/rules/no-forward-ref
73
+ '@eslint-react/no-forward-ref': 'warn',
74
+ // https://eslint-react.xyz/docs/rules/no-missing-key
75
+ '@eslint-react/no-missing-key': 'warn',
76
+ // https://eslint-react.xyz/docs/rules/no-nested-component-definitions
77
+ '@eslint-react/no-nested-component-definitions': 'error',
78
+ // https://eslint-react.xyz/docs/rules/no-nested-lazy-component-declarations
79
+ '@eslint-react/no-nested-lazy-component-declarations': 'error',
80
+ // https://eslint-react.xyz/docs/rules/no-redundant-should-component-update
81
+ '@eslint-react/no-redundant-should-component-update': 'error',
82
+ // https://eslint-react.xyz/docs/rules/no-set-state-in-component-did-mount
83
+ '@eslint-react/no-set-state-in-component-did-mount': 'warn',
84
+ // https://eslint-react.xyz/docs/rules/no-set-state-in-component-did-update
85
+ '@eslint-react/no-set-state-in-component-did-update': 'warn',
86
+ // https://eslint-react.xyz/docs/rules/no-set-state-in-component-will-update
87
+ '@eslint-react/no-set-state-in-component-will-update': 'warn',
88
+ // https://eslint-react.xyz/docs/rules/no-unnecessary-use-prefix
89
+ '@eslint-react/no-unnecessary-use-prefix': 'warn',
90
+ // https://eslint-react.xyz/docs/rules/no-unsafe-component-will-mount
91
+ '@eslint-react/no-unsafe-component-will-mount': 'warn',
92
+ // https://eslint-react.xyz/docs/rules/no-unsafe-component-will-receive-props
93
+ '@eslint-react/no-unsafe-component-will-receive-props': 'warn',
94
+ // https://eslint-react.xyz/docs/rules/no-unsafe-component-will-update
95
+ '@eslint-react/no-unsafe-component-will-update': 'warn',
96
+ // https://eslint-react.xyz/docs/rules/no-unused-class-component-members
97
+ '@eslint-react/no-unused-class-component-members': 'warn',
98
+ // https://eslint-react.xyz/docs/rules/no-use-context
99
+ '@eslint-react/no-use-context': 'warn',
100
+ // https://eslint-react.xyz/docs/rules/purity
101
+ '@eslint-react/purity': 'warn',
102
+ // https://eslint-react.xyz/docs/rules/function-definition
103
+ '@eslint-react/rsc/function-definition': 'error',
104
+ // https://react.dev/reference/rules/rules-of-hooks
105
+ '@eslint-react/rules-of-hooks': 'error',
106
+ // https://eslint-react.xyz/docs/rules/set-state-in-effect
107
+ '@eslint-react/set-state-in-effect': 'warn',
108
+ // https://eslint-react.xyz/docs/rules/set-state-in-render
109
+ '@eslint-react/set-state-in-render': 'error',
110
+ // https://eslint-react.xyz/docs/rules/unsupported-syntax
111
+ '@eslint-react/unsupported-syntax': 'error',
112
+ // https://eslint-react.xyz/docs/rules/use-memo
113
+ '@eslint-react/use-memo': 'warn',
114
+ // https://eslint-react.xyz/docs/rules/use-state
115
+ '@eslint-react/use-state': 'warn',
116
+ // https://eslint-react.xyz/docs/rules/web-api-no-leaked-event-listener
117
+ '@eslint-react/web-api/no-leaked-event-listener': 'warn',
118
+ // https://eslint-react.xyz/docs/rules/web-api-no-leaked-interval
119
+ '@eslint-react/web-api/no-leaked-interval': 'warn',
120
+ // https://eslint-react.xyz/docs/rules/web-api-no-leaked-resize-observer
121
+ '@eslint-react/web-api/no-leaked-resize-observer': 'warn',
122
+ // https://eslint-react.xyz/docs/rules/web-api-no-leaked-timeout
123
+ '@eslint-react/web-api/no-leaked-timeout': 'warn',
124
+ };
4
125
  export function react(options) {
5
126
  const { files, reactCompiler, version } = resolveReactOptions(options);
6
- const reactConfig = eslintReact.configs['recommended-typescript'];
127
+ const reactRecommendedConfig = eslintReact.configs['recommended-typescript'];
7
128
  const reactHooksRecommendedConfig = reactHooksPlugin.configs.flat['recommended'];
8
129
  const reactHooksRecommendedCompilerConfig = reactHooksPlugin.configs.flat['recommended-latest'];
9
130
  const reactHooksConfig = reactCompiler
@@ -11,7 +132,7 @@ export function react(options) {
11
132
  : reactHooksRecommendedConfig;
12
133
  const configs = [
13
134
  {
14
- ...reactConfig,
135
+ ...reactRecommendedConfig,
15
136
  name: 'react',
16
137
  files: files,
17
138
  settings: {
@@ -20,14 +141,7 @@ export function react(options) {
20
141
  },
21
142
  },
22
143
  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',
144
+ ...reactRules,
31
145
  },
32
146
  },
33
147
  {
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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"test-utils.d.ts","sourceRoot":"","sources":["../src/test-utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAE/C,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,EAAE,CAYvE;AAED,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,MAAM,GAAG,SAAS,CAcpB;AA8BD;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,KAAK,CAAA;IACnB,gBAAgB,EAAE,KAAK,CAAA;IACvB,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,YAAY,EAAE,MAAM,EAAE,CAAA;CACvB,GAAG,IAAI,CA6EP"}
1
+ {"version":3,"file":"test-utils.d.ts","sourceRoot":"","sources":["../src/test-utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAE/C,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,EAAE,CAYvE;AAED,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,MAAM,GAAG,SAAS,CAcpB;AA8BD;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,KAAK,CAAA;IACnB,gBAAgB,EAAE,KAAK,CAAA;IACvB,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,YAAY,EAAE,MAAM,EAAE,CAAA;CACvB,GAAG,IAAI,CA8EP"}
@@ -60,9 +60,10 @@ export function checkRules(options) {
60
60
  const recommendedRuleNames = collectEnabledRuleNames(recommendedRules);
61
61
  const currentRuleNames = collectEnabledRuleNames(currentRules);
62
62
  const recommendedSet = new Set(recommendedRuleNames);
63
+ const currentSet = new Set(currentRuleNames);
63
64
  // 1. Check missing recommended rules (should be in disabledRules)
64
65
  for (const ruleName of recommendedRuleNames) {
65
- if (!(ruleName in currentRules) && !normalizedDisabled.has(ruleName)) {
66
+ if (!currentSet.has(ruleName) && !normalizedDisabled.has(ruleName)) {
66
67
  const link = getRuleLink(plugin, ruleName);
67
68
  violations.push(formatRuleViolation('Missing Disabled Declaration', ruleName, {
68
69
  message: 'This rule is recommended but not in your config.',
@@ -1 +1 @@
1
- {"version":3,"file":"test-utils.js","sourceRoot":"","sources":["../src/test-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-utils.js","sourceRoot":"","sources":["../src/test-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAI/B,MAAM,UAAU,uBAAuB,CAAC,KAAqB;IAC3D,MAAM,gBAAgB,GAAa,EAAE,CAAA;IACrC,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3D,IAAI,UAAU,IAAI,IAAI;YAAE,SAAQ;QAChC,IAAI,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,CAAC;YAAE,SAAQ;QACtD,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;YAC9B,IAAI,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,CAAC;gBAAE,SAAQ;QACpD,CAAC;QACD,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACjC,CAAC;IACD,OAAO,gBAAgB,CAAA;AACzB,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,MAAc,EACd,QAAgB;IAEhB,MAAM,SAAS,GAAa,CAAC,QAAQ,CAAC,CAAA;IAEtC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3C,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAA;QAClD,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAC1B,IAAY,EACZ,QAAgB,EAChB,OAIC;IAED,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAEhC,IAAI,MAAM,GAAG,GAAG,SAAS,IAAI,CAAA;IAC7B,MAAM,IAAI,KAAK,IAAI,KAAK,QAAQ,MAAM,CAAA;IACtC,MAAM,IAAI,KAAK,OAAO,CAAC,OAAO,IAAI,CAAA;IAElC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,IAAI,yBAAyB,OAAO,CAAC,IAAI,IAAI,CAAA;IACrD,CAAC;IAED,MAAM,IAAI,eAAe,OAAO,CAAC,GAAG,IAAI,CAAA;IACxC,MAAM,IAAI,SAAS,CAAA;IAEnB,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,OAM1B;IACC,MAAM,EACJ,MAAM,EACN,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,YAAY,GACb,GAAG,OAAO,CAAA;IACX,MAAM,UAAU,GAAa,EAAE,CAAA;IAE/B,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAA;IACjD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAA;IAE/C,MAAM,oBAAoB,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,CAAA;IACtE,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAA;IAE9D,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,CAAA;IACpD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAA;IAE5C,kEAAkE;IAClE,KAAK,MAAM,QAAQ,IAAI,oBAAoB,EAAE,CAAC;QAC5C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;YAE1C,UAAU,CAAC,IAAI,CACb,mBAAmB,CAAC,8BAA8B,EAAE,QAAQ,EAAE;gBAC5D,OAAO,EAAE,kDAAkD;gBAC3D,GAAG,EAAE,mCAAmC,QAAQ,IAAI;gBACpD,IAAI;aACL,CAAC,CACH,CAAA;QACH,CAAC;IACH,CAAC;IAED,iEAAiE;IACjE,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;QACrC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,UAAU,CAAC,IAAI,CACb,mBAAmB,CAAC,kCAAkC,EAAE,QAAQ,EAAE;gBAChE,OAAO,EAAE,sDAAsD;gBAC/D,GAAG,EAAE,WAAW,QAAQ,4BAA4B;aACrD,CAAC,CACH,CAAA;QACH,CAAC;IACH,CAAC;IAED,8DAA8D;IAC9D,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;QACxC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtE,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;YAE1C,UAAU,CAAC,IAAI,CACb,mBAAmB,CAAC,uBAAuB,EAAE,QAAQ,EAAE;gBACrD,OAAO,EAAE,kDAAkD;gBAC3D,GAAG,EAAE,kCAAkC,QAAQ,IAAI;gBACnD,IAAI;aACL,CAAC,CACH,CAAA;QACH,CAAC;IACH,CAAC;IAED,4DAA4D;IAC5D,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;QACpC,IAAI,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,UAAU,CAAC,IAAI,CACb,mBAAmB,CAAC,iCAAiC,EAAE,QAAQ,EAAE;gBAC/D,OAAO,EACL,kEAAkE;gBACpE,GAAG,EAAE,WAAW,QAAQ,2BAA2B;aACpD,CAAC,CACH,CAAA;QACH,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IAC/C,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ocavue/eslint-config",
3
3
  "type": "module",
4
- "version": "4.3.3",
4
+ "version": "4.3.5",
5
5
  "description": "Opinionated ESLint config preset",
6
6
  "author": "ocavue <ocavue@gmail.com>",
7
7
  "license": "MIT",
@@ -39,7 +39,7 @@
39
39
  "eslint-plugin-no-only-tests": "^3.3.0",
40
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 || 7.1.0-canary-c80a0750-20260312",
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",