@eslint-react/eslint-plugin 1.9.1-next.1 → 1.9.1-next.3

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
@@ -8,11 +8,6 @@
8
8
 
9
9
  A series of composable ESLint rules rewritten from scratch for libraries and frameworks that use React as a UI runtime.
10
10
 
11
- ## Roadmap
12
-
13
- - [Milestone 2.0 ↗](https://eslint-react.xyz/roadmap#milestone-20)
14
- - [Milestone 3.0 ↗](https://eslint-react.xyz/roadmap#milestone-30-draft)
15
-
16
11
  ## Features
17
12
 
18
13
  - **Universal** rules for libraries and frameworks that use React as a UI runtime.
@@ -39,6 +34,7 @@ A series of composable ESLint rules rewritten from scratch for libraries and fra
39
34
  - [`christopher-buss/roblox-ts-eslint-config`](https://github.com/christopher-buss/roblox-ts-eslint-config) - iSentinel's ESLint config preset for Roblox-TS.
40
35
  - [`DimensionDev/Maskbook`](https://github.com/DimensionDev/Maskbook) - The portal to the new, open Internet. ([I:b]).
41
36
  - [`dream-num/univer`](https://github.com/dream-num/univer) - Univer is an open-source alternative to Google Sheets, Slides, and Docs.
37
+ - [`electric-sql/pglite`](https://github.com/electric-sql/pglite) - Lightweight Postgres packaged as WASM into a TypeScript library for the browser, Node.js, Bun and Deno.
42
38
  - [`ensdomains/ensdomains-landing`](https://github.com/ensdomains/ensdomains-landing) - ENS Homepage V2, the main homepage of the ENS protocol.
43
39
  - [`hairyf/overlastic`](https://github.com/hairyf/overlastic) - A universal overlays utils, support react, vue, vanilla, svelte.
44
40
  - [`johannschopplich/unlazy`](https://github.com/johannschopplich/unlazy) - Universal lazy loading library for placeholder images leveraging native browser APIs.
@@ -155,6 +151,11 @@ Add the plugin to your `.eslintrc.json`:
155
151
 
156
152
  [Frequently Asked Questions ↗](https://eslint-react.xyz/docs/faq)
157
153
 
154
+ ## Roadmap
155
+
156
+ - [Milestone 2.0 ↗](https://eslint-react.xyz/roadmap#milestone-20)
157
+ - [Milestone 3.0 ↗](https://eslint-react.xyz/roadmap#milestone-30-draft)
158
+
158
159
  ## Contributing
159
160
 
160
161
  Before you start working on something, it's best to check if there is an existing issue first. It's also a good idea to reach the maintainer and confirm if it makes sense or if someone else is already working on it.
@@ -163,6 +164,32 @@ Please make sure to read the [Contributing Guide](./.github/CONTRIBUTING.md) bef
163
164
 
164
165
  Thank you to everyone contributing to ESLint React!
165
166
 
167
+ ### Contribution Stats
168
+
169
+ <!-- Copy-paste in your Readme.md file -->
170
+
171
+ <a href="https://next.ossinsight.io/widgets/official/compose-last-28-days-stats?repo_id=680315614" target="_blank" style="display: block" align="center">
172
+ <picture>
173
+ <source media="(prefers-color-scheme: dark)" srcset="https://next.ossinsight.io/widgets/official/compose-last-28-days-stats/thumbnail.png?repo_id=680315614&image_size=auto&color_scheme=dark" width="655" height="auto">
174
+ <img alt="Performance Stats of Rel1cx/eslint-react - Last 28 days" src="https://next.ossinsight.io/widgets/official/compose-last-28-days-stats/thumbnail.png?repo_id=680315614&image_size=auto&color_scheme=light" width="655" height="auto">
175
+ </picture>
176
+ </a>
177
+
178
+ <!-- Made with [OSS Insight](https://ossinsight.io/) -->
179
+
180
+ ### Active Contributors
181
+
182
+ <!-- Copy-paste in your Readme.md file -->
183
+
184
+ <a href="https://next.ossinsight.io/widgets/official/compose-recent-active-contributors?limit=30&repo_id=680315614" target="_blank" style="display: block" align="center">
185
+ <picture>
186
+ <source media="(prefers-color-scheme: dark)" srcset="https://next.ossinsight.io/widgets/official/compose-recent-active-contributors/thumbnail.png?limit=30&repo_id=680315614&image_size=auto&color_scheme=dark" width="655" height="auto">
187
+ <img alt="Active Contributors of Rel1cx/eslint-react - Last 28 days" src="https://next.ossinsight.io/widgets/official/compose-recent-active-contributors/thumbnail.png?limit=30&repo_id=680315614&image_size=auto&color_scheme=light" width="655" height="auto">
188
+ </picture>
189
+ </a>
190
+
191
+ <!-- Made with [OSS Insight](https://ossinsight.io/) -->
192
+
166
193
  ## License
167
194
 
168
195
  This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
package/dist/index.d.mts CHANGED
@@ -42,6 +42,7 @@ declare const _default: {
42
42
  readonly "@eslint-react/no-default-props": "error";
43
43
  readonly "@eslint-react/no-direct-mutation-state": "error";
44
44
  readonly "@eslint-react/no-duplicate-key": "error";
45
+ readonly "@eslint-react/no-implicit-key": "warn";
45
46
  readonly "@eslint-react/no-missing-component-display-name": "warn";
46
47
  readonly "@eslint-react/no-missing-key": "error";
47
48
  readonly "@eslint-react/no-nested-components": "warn";
@@ -73,6 +74,12 @@ declare const _default: {
73
74
  readonly "@eslint-react/dom/no-script-url": "warn";
74
75
  readonly "@eslint-react/dom/no-unsafe-iframe-sandbox": "warn";
75
76
  readonly "@eslint-react/dom/no-unsafe-target-blank": "warn";
77
+ readonly "@eslint-react/hooks-extra/ensure-custom-hooks-using-other-hooks": "warn";
78
+ readonly "@eslint-react/hooks-extra/ensure-use-callback-has-non-empty-deps": "warn";
79
+ readonly "@eslint-react/hooks-extra/ensure-use-memo-has-non-empty-deps": "warn";
80
+ readonly "@eslint-react/hooks-extra/no-direct-set-state-in-use-effect": "warn";
81
+ readonly "@eslint-react/hooks-extra/no-direct-set-state-in-use-layout-effect": "warn";
82
+ readonly "@eslint-react/hooks-extra/prefer-use-state-lazy-initialization": "warn";
76
83
  readonly "@eslint-react/naming-convention/component-name": "warn";
77
84
  readonly "@eslint-react/naming-convention/filename": "warn";
78
85
  readonly "@eslint-react/naming-convention/filename-extension": "warn";
@@ -114,6 +121,7 @@ declare const _default: {
114
121
  readonly "@eslint-react/no-default-props": "error";
115
122
  readonly "@eslint-react/no-direct-mutation-state": "error";
116
123
  readonly "@eslint-react/no-duplicate-key": "error";
124
+ readonly "@eslint-react/no-implicit-key": "warn";
117
125
  readonly "@eslint-react/no-missing-component-display-name": "warn";
118
126
  readonly "@eslint-react/no-missing-key": "error";
119
127
  readonly "@eslint-react/no-nested-components": "warn";
@@ -145,6 +153,12 @@ declare const _default: {
145
153
  readonly "@eslint-react/dom/no-script-url": "warn";
146
154
  readonly "@eslint-react/dom/no-unsafe-iframe-sandbox": "warn";
147
155
  readonly "@eslint-react/dom/no-unsafe-target-blank": "warn";
156
+ readonly "@eslint-react/hooks-extra/ensure-custom-hooks-using-other-hooks": "warn";
157
+ readonly "@eslint-react/hooks-extra/ensure-use-callback-has-non-empty-deps": "warn";
158
+ readonly "@eslint-react/hooks-extra/ensure-use-memo-has-non-empty-deps": "warn";
159
+ readonly "@eslint-react/hooks-extra/no-direct-set-state-in-use-effect": "warn";
160
+ readonly "@eslint-react/hooks-extra/no-direct-set-state-in-use-layout-effect": "warn";
161
+ readonly "@eslint-react/hooks-extra/prefer-use-state-lazy-initialization": "warn";
148
162
  readonly "@eslint-react/naming-convention/component-name": "warn";
149
163
  readonly "@eslint-react/naming-convention/filename": "warn";
150
164
  readonly "@eslint-react/naming-convention/filename-extension": "warn";
@@ -392,6 +406,7 @@ declare const _default: {
392
406
  "@eslint-react/no-default-props": never;
393
407
  "@eslint-react/no-direct-mutation-state": never;
394
408
  "@eslint-react/no-duplicate-key": never;
409
+ "@eslint-react/no-implicit-key": never;
395
410
  "@eslint-react/no-missing-component-display-name": never;
396
411
  "@eslint-react/no-missing-key": never;
397
412
  "@eslint-react/no-nested-components": never;
@@ -423,6 +438,12 @@ declare const _default: {
423
438
  "@eslint-react/dom/no-script-url": never;
424
439
  "@eslint-react/dom/no-unsafe-iframe-sandbox": never;
425
440
  "@eslint-react/dom/no-unsafe-target-blank": never;
441
+ "@eslint-react/hooks-extra/ensure-custom-hooks-using-other-hooks": never;
442
+ "@eslint-react/hooks-extra/ensure-use-callback-has-non-empty-deps": never;
443
+ "@eslint-react/hooks-extra/ensure-use-memo-has-non-empty-deps": never;
444
+ "@eslint-react/hooks-extra/no-direct-set-state-in-use-effect": never;
445
+ "@eslint-react/hooks-extra/no-direct-set-state-in-use-layout-effect": never;
446
+ "@eslint-react/hooks-extra/prefer-use-state-lazy-initialization": never;
426
447
  "@eslint-react/naming-convention/component-name": never;
427
448
  "@eslint-react/naming-convention/filename": never;
428
449
  "@eslint-react/naming-convention/filename-extension": never;
@@ -522,6 +543,7 @@ declare const _default: {
522
543
  "@eslint-react/no-default-props": never;
523
544
  "@eslint-react/no-direct-mutation-state": never;
524
545
  "@eslint-react/no-duplicate-key": never;
546
+ "@eslint-react/no-implicit-key": never;
525
547
  "@eslint-react/no-missing-component-display-name": never;
526
548
  "@eslint-react/no-missing-key": never;
527
549
  "@eslint-react/no-nested-components": never;
@@ -553,6 +575,12 @@ declare const _default: {
553
575
  "@eslint-react/dom/no-script-url": never;
554
576
  "@eslint-react/dom/no-unsafe-iframe-sandbox": never;
555
577
  "@eslint-react/dom/no-unsafe-target-blank": never;
578
+ "@eslint-react/hooks-extra/ensure-custom-hooks-using-other-hooks": never;
579
+ "@eslint-react/hooks-extra/ensure-use-callback-has-non-empty-deps": never;
580
+ "@eslint-react/hooks-extra/ensure-use-memo-has-non-empty-deps": never;
581
+ "@eslint-react/hooks-extra/no-direct-set-state-in-use-effect": never;
582
+ "@eslint-react/hooks-extra/no-direct-set-state-in-use-layout-effect": never;
583
+ "@eslint-react/hooks-extra/prefer-use-state-lazy-initialization": never;
556
584
  "@eslint-react/naming-convention/component-name": never;
557
585
  "@eslint-react/naming-convention/filename": never;
558
586
  "@eslint-react/naming-convention/filename-extension": never;
package/dist/index.d.ts CHANGED
@@ -42,6 +42,7 @@ declare const _default: {
42
42
  readonly "@eslint-react/no-default-props": "error";
43
43
  readonly "@eslint-react/no-direct-mutation-state": "error";
44
44
  readonly "@eslint-react/no-duplicate-key": "error";
45
+ readonly "@eslint-react/no-implicit-key": "warn";
45
46
  readonly "@eslint-react/no-missing-component-display-name": "warn";
46
47
  readonly "@eslint-react/no-missing-key": "error";
47
48
  readonly "@eslint-react/no-nested-components": "warn";
@@ -73,6 +74,12 @@ declare const _default: {
73
74
  readonly "@eslint-react/dom/no-script-url": "warn";
74
75
  readonly "@eslint-react/dom/no-unsafe-iframe-sandbox": "warn";
75
76
  readonly "@eslint-react/dom/no-unsafe-target-blank": "warn";
77
+ readonly "@eslint-react/hooks-extra/ensure-custom-hooks-using-other-hooks": "warn";
78
+ readonly "@eslint-react/hooks-extra/ensure-use-callback-has-non-empty-deps": "warn";
79
+ readonly "@eslint-react/hooks-extra/ensure-use-memo-has-non-empty-deps": "warn";
80
+ readonly "@eslint-react/hooks-extra/no-direct-set-state-in-use-effect": "warn";
81
+ readonly "@eslint-react/hooks-extra/no-direct-set-state-in-use-layout-effect": "warn";
82
+ readonly "@eslint-react/hooks-extra/prefer-use-state-lazy-initialization": "warn";
76
83
  readonly "@eslint-react/naming-convention/component-name": "warn";
77
84
  readonly "@eslint-react/naming-convention/filename": "warn";
78
85
  readonly "@eslint-react/naming-convention/filename-extension": "warn";
@@ -114,6 +121,7 @@ declare const _default: {
114
121
  readonly "@eslint-react/no-default-props": "error";
115
122
  readonly "@eslint-react/no-direct-mutation-state": "error";
116
123
  readonly "@eslint-react/no-duplicate-key": "error";
124
+ readonly "@eslint-react/no-implicit-key": "warn";
117
125
  readonly "@eslint-react/no-missing-component-display-name": "warn";
118
126
  readonly "@eslint-react/no-missing-key": "error";
119
127
  readonly "@eslint-react/no-nested-components": "warn";
@@ -145,6 +153,12 @@ declare const _default: {
145
153
  readonly "@eslint-react/dom/no-script-url": "warn";
146
154
  readonly "@eslint-react/dom/no-unsafe-iframe-sandbox": "warn";
147
155
  readonly "@eslint-react/dom/no-unsafe-target-blank": "warn";
156
+ readonly "@eslint-react/hooks-extra/ensure-custom-hooks-using-other-hooks": "warn";
157
+ readonly "@eslint-react/hooks-extra/ensure-use-callback-has-non-empty-deps": "warn";
158
+ readonly "@eslint-react/hooks-extra/ensure-use-memo-has-non-empty-deps": "warn";
159
+ readonly "@eslint-react/hooks-extra/no-direct-set-state-in-use-effect": "warn";
160
+ readonly "@eslint-react/hooks-extra/no-direct-set-state-in-use-layout-effect": "warn";
161
+ readonly "@eslint-react/hooks-extra/prefer-use-state-lazy-initialization": "warn";
148
162
  readonly "@eslint-react/naming-convention/component-name": "warn";
149
163
  readonly "@eslint-react/naming-convention/filename": "warn";
150
164
  readonly "@eslint-react/naming-convention/filename-extension": "warn";
@@ -392,6 +406,7 @@ declare const _default: {
392
406
  "@eslint-react/no-default-props": never;
393
407
  "@eslint-react/no-direct-mutation-state": never;
394
408
  "@eslint-react/no-duplicate-key": never;
409
+ "@eslint-react/no-implicit-key": never;
395
410
  "@eslint-react/no-missing-component-display-name": never;
396
411
  "@eslint-react/no-missing-key": never;
397
412
  "@eslint-react/no-nested-components": never;
@@ -423,6 +438,12 @@ declare const _default: {
423
438
  "@eslint-react/dom/no-script-url": never;
424
439
  "@eslint-react/dom/no-unsafe-iframe-sandbox": never;
425
440
  "@eslint-react/dom/no-unsafe-target-blank": never;
441
+ "@eslint-react/hooks-extra/ensure-custom-hooks-using-other-hooks": never;
442
+ "@eslint-react/hooks-extra/ensure-use-callback-has-non-empty-deps": never;
443
+ "@eslint-react/hooks-extra/ensure-use-memo-has-non-empty-deps": never;
444
+ "@eslint-react/hooks-extra/no-direct-set-state-in-use-effect": never;
445
+ "@eslint-react/hooks-extra/no-direct-set-state-in-use-layout-effect": never;
446
+ "@eslint-react/hooks-extra/prefer-use-state-lazy-initialization": never;
426
447
  "@eslint-react/naming-convention/component-name": never;
427
448
  "@eslint-react/naming-convention/filename": never;
428
449
  "@eslint-react/naming-convention/filename-extension": never;
@@ -522,6 +543,7 @@ declare const _default: {
522
543
  "@eslint-react/no-default-props": never;
523
544
  "@eslint-react/no-direct-mutation-state": never;
524
545
  "@eslint-react/no-duplicate-key": never;
546
+ "@eslint-react/no-implicit-key": never;
525
547
  "@eslint-react/no-missing-component-display-name": never;
526
548
  "@eslint-react/no-missing-key": never;
527
549
  "@eslint-react/no-nested-components": never;
@@ -553,6 +575,12 @@ declare const _default: {
553
575
  "@eslint-react/dom/no-script-url": never;
554
576
  "@eslint-react/dom/no-unsafe-iframe-sandbox": never;
555
577
  "@eslint-react/dom/no-unsafe-target-blank": never;
578
+ "@eslint-react/hooks-extra/ensure-custom-hooks-using-other-hooks": never;
579
+ "@eslint-react/hooks-extra/ensure-use-callback-has-non-empty-deps": never;
580
+ "@eslint-react/hooks-extra/ensure-use-memo-has-non-empty-deps": never;
581
+ "@eslint-react/hooks-extra/no-direct-set-state-in-use-effect": never;
582
+ "@eslint-react/hooks-extra/no-direct-set-state-in-use-layout-effect": never;
583
+ "@eslint-react/hooks-extra/prefer-use-state-lazy-initialization": never;
556
584
  "@eslint-react/naming-convention/component-name": never;
557
585
  "@eslint-react/naming-convention/filename": never;
558
586
  "@eslint-react/naming-convention/filename-extension": never;
package/dist/index.js CHANGED
@@ -36,7 +36,7 @@ var react__namespace = /*#__PURE__*/_interopNamespace(react);
36
36
 
37
37
  // package.json
38
38
  var name = "@eslint-react/eslint-plugin";
39
- var version = "1.9.1-next.1";
39
+ var version = "1.9.1-next.3";
40
40
  function transformKeys(obj, transform) {
41
41
  if (tools.typeOf(obj) !== "object") return obj;
42
42
  const res = {};
@@ -75,7 +75,7 @@ var allPreset = {
75
75
  "no-default-props": "error",
76
76
  "no-direct-mutation-state": "error",
77
77
  "no-duplicate-key": "error",
78
- // "no-implicit-key": "error",
78
+ "no-implicit-key": "warn",
79
79
  // "no-leaked-conditional-rendering": "warn", // This rule requires type information
80
80
  "no-missing-component-display-name": "warn",
81
81
  "no-missing-key": "error",
@@ -110,6 +110,12 @@ var allPreset = {
110
110
  "dom/no-script-url": "warn",
111
111
  "dom/no-unsafe-iframe-sandbox": "warn",
112
112
  "dom/no-unsafe-target-blank": "warn",
113
+ "hooks-extra/ensure-custom-hooks-using-other-hooks": "warn",
114
+ "hooks-extra/ensure-use-callback-has-non-empty-deps": "warn",
115
+ "hooks-extra/ensure-use-memo-has-non-empty-deps": "warn",
116
+ "hooks-extra/no-direct-set-state-in-use-effect": "warn",
117
+ "hooks-extra/no-direct-set-state-in-use-layout-effect": "warn",
118
+ "hooks-extra/prefer-use-state-lazy-initialization": "warn",
113
119
  "naming-convention/component-name": "warn",
114
120
  "naming-convention/filename": "warn",
115
121
  "naming-convention/filename-extension": "warn",
package/dist/index.mjs CHANGED
@@ -10,7 +10,7 @@ import * as react from 'eslint-plugin-react-x';
10
10
 
11
11
  // package.json
12
12
  var name = "@eslint-react/eslint-plugin";
13
- var version = "1.9.1-next.1";
13
+ var version = "1.9.1-next.3";
14
14
  function transformKeys(obj, transform) {
15
15
  if (typeOf(obj) !== "object") return obj;
16
16
  const res = {};
@@ -49,7 +49,7 @@ var allPreset = {
49
49
  "no-default-props": "error",
50
50
  "no-direct-mutation-state": "error",
51
51
  "no-duplicate-key": "error",
52
- // "no-implicit-key": "error",
52
+ "no-implicit-key": "warn",
53
53
  // "no-leaked-conditional-rendering": "warn", // This rule requires type information
54
54
  "no-missing-component-display-name": "warn",
55
55
  "no-missing-key": "error",
@@ -84,6 +84,12 @@ var allPreset = {
84
84
  "dom/no-script-url": "warn",
85
85
  "dom/no-unsafe-iframe-sandbox": "warn",
86
86
  "dom/no-unsafe-target-blank": "warn",
87
+ "hooks-extra/ensure-custom-hooks-using-other-hooks": "warn",
88
+ "hooks-extra/ensure-use-callback-has-non-empty-deps": "warn",
89
+ "hooks-extra/ensure-use-memo-has-non-empty-deps": "warn",
90
+ "hooks-extra/no-direct-set-state-in-use-effect": "warn",
91
+ "hooks-extra/no-direct-set-state-in-use-layout-effect": "warn",
92
+ "hooks-extra/prefer-use-state-lazy-initialization": "warn",
87
93
  "naming-convention/component-name": "warn",
88
94
  "naming-convention/filename": "warn",
89
95
  "naming-convention/filename-extension": "warn",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eslint-react/eslint-plugin",
3
- "version": "1.9.1-next.1",
3
+ "version": "1.9.1-next.3",
4
4
  "description": "The main ESLint plugin of ESLint React. Contains all the rules and presets of ESLint React.",
5
5
  "keywords": [
6
6
  "eslint",
@@ -47,14 +47,14 @@
47
47
  "@typescript-eslint/type-utils": "^8.0.1",
48
48
  "@typescript-eslint/types": "^8.0.1",
49
49
  "@typescript-eslint/utils": "^8.0.1",
50
- "@eslint-react/shared": "1.9.1-next.1",
51
- "@eslint-react/tools": "1.9.1-next.1",
52
- "@eslint-react/types": "1.9.1-next.1",
53
- "eslint-plugin-react-dom": "1.9.1-next.1",
54
- "eslint-plugin-react-debug": "1.9.1-next.1",
55
- "eslint-plugin-react-hooks-extra": "1.9.1-next.1",
56
- "eslint-plugin-react-naming-convention": "1.9.1-next.1",
57
- "eslint-plugin-react-x": "1.9.1-next.1"
50
+ "@eslint-react/shared": "1.9.1-next.3",
51
+ "@eslint-react/tools": "1.9.1-next.3",
52
+ "eslint-plugin-react-debug": "1.9.1-next.3",
53
+ "eslint-plugin-react-dom": "1.9.1-next.3",
54
+ "eslint-plugin-react-hooks-extra": "1.9.1-next.3",
55
+ "eslint-plugin-react-x": "1.9.1-next.3",
56
+ "eslint-plugin-react-naming-convention": "1.9.1-next.3",
57
+ "@eslint-react/types": "1.9.1-next.3"
58
58
  },
59
59
  "devDependencies": {
60
60
  "tsup": "^8.2.4"