@4mbl/lint 0.0.0-alpha.fdc5ba4 → 0.0.0-alpha.fec850c

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/dist/react.d.ts CHANGED
@@ -1,463 +1,7 @@
1
1
  import { defineConfig, type OxlintConfig } from 'oxlint';
2
2
  export type ReactOptions = {};
3
- declare function reactConfig(options?: Partial<ReactOptions>): {
4
- extends: {
5
- plugins: ("unicorn" | "typescript" | "import")[];
6
- jsPlugins: never[];
7
- categories: {
8
- correctness: "error";
9
- suspicious: "warn";
10
- pedantic: "off";
11
- perf: "warn";
12
- style: "warn";
13
- restriction: "warn";
14
- nursery: "off";
15
- };
16
- env: {
17
- builtin: true;
18
- };
19
- options: {
20
- typeAware: true;
21
- };
22
- rules: {
23
- 'eslint/no-var': "warn";
24
- 'eslint/prefer-const': "error";
25
- 'eslint/prefer-rest-params': "error";
26
- 'eslint/prefer-spread': "error";
27
- 'eslint/no-async-promise-executor': "error";
28
- 'eslint/no-case-declarations': "error";
29
- 'eslint/no-class-assign': "error";
30
- 'eslint/no-compare-neg-zero': "error";
31
- 'eslint/no-cond-assign': "error";
32
- 'eslint/no-const-assign': "error";
33
- 'eslint/no-constant-binary-expression': "error";
34
- 'eslint/no-constant-condition': "error";
35
- 'eslint/no-control-regex': "error";
36
- 'eslint/no-debugger': "error";
37
- 'eslint/no-delete-var': "error";
38
- 'eslint/no-dupe-else-if': "error";
39
- 'eslint/no-duplicate-case': "error";
40
- 'eslint/no-empty': "error";
41
- 'eslint/no-empty-character-class': "error";
42
- 'eslint/no-empty-pattern': "error";
43
- 'eslint/no-empty-static-block': "error";
44
- 'eslint/no-ex-assign': "error";
45
- 'eslint/no-extra-boolean-cast': "error";
46
- 'eslint/no-fallthrough': ["error", {
47
- allowEmptyCase: boolean;
48
- }];
49
- 'eslint/no-func-assign': "error";
50
- 'eslint/no-global-assign': "error";
51
- 'eslint/no-import-assign': "error";
52
- 'eslint/no-invalid-regexp': "error";
53
- 'eslint/no-irregular-whitespace': "error";
54
- 'eslint/no-loss-of-precision': "error";
55
- 'eslint/no-misleading-character-class': "error";
56
- 'eslint/no-nonoctal-decimal-escape': "error";
57
- 'eslint/no-obj-calls': "error";
58
- 'eslint/no-prototype-builtins': "error";
59
- 'eslint/no-redeclare': "error";
60
- 'eslint/no-regex-spaces': "error";
61
- 'eslint/no-self-assign': "error";
62
- 'eslint/no-shadow-restricted-names': "error";
63
- 'eslint/no-sparse-arrays': "error";
64
- 'eslint/no-unexpected-multiline': "error";
65
- 'eslint/no-unsafe-finally': "error";
66
- 'eslint/no-unsafe-negation': "error";
67
- 'eslint/no-unsafe-optional-chaining': "error";
68
- 'eslint/no-unused-labels': "error";
69
- 'eslint/no-unused-private-class-members': "error";
70
- 'eslint/no-unused-vars': "warn";
71
- 'eslint/no-useless-backreference': "error";
72
- 'eslint/no-useless-catch': "error";
73
- 'eslint/no-useless-escape': "error";
74
- 'eslint/require-yield': "error";
75
- 'eslint/use-isnan': "error";
76
- 'eslint/valid-typeof': "error";
77
- 'eslint/no-unused-expressions': "warn";
78
- 'typescript/ban-ts-comment': "error";
79
- 'typescript/no-duplicate-enum-values': "off";
80
- 'typescript/no-empty-object-type': "error";
81
- 'typescript/no-explicit-any': "error";
82
- 'typescript/no-extra-non-null-assertion': "error";
83
- 'typescript/no-misused-new': "error";
84
- 'typescript/no-namespace': "error";
85
- 'typescript/no-non-null-asserted-optional-chain': "error";
86
- 'typescript/no-require-imports': "error";
87
- 'typescript/no-this-alias': "error";
88
- 'typescript/no-unnecessary-type-constraint': "error";
89
- 'typescript/no-unsafe-declaration-merging': "error";
90
- 'typescript/no-unsafe-function-type': "error";
91
- 'typescript/no-wrapper-object-types': "error";
92
- 'typescript/prefer-as-const': "error";
93
- 'typescript/triple-slash-reference': "error";
94
- 'typescript/explicit-member-accessibility': ["warn", {
95
- accessibility: "no-public";
96
- }];
97
- 'eslint/id-length': "off";
98
- 'eslint/sort-keys': "off";
99
- 'eslint/capitalized-comments': "off";
100
- 'eslint/func-style': "off";
101
- 'eslint/complexity': "off";
102
- 'eslint/max-params': "off";
103
- 'eslint/no-ternary': "off";
104
- 'eslint/curly': "warn";
105
- 'typescript/consistent-type-definitions': ["warn", "type"];
106
- 'eslint/max-statements': "off";
107
- 'typescript/consistent-return': "off";
108
- 'unicorn/switch-case-braces': "warn";
109
- 'typescript/prefer-regexp-exec': "warn";
110
- 'eslint/init-declarations': "off";
111
- 'unicorn/no-null': "off";
112
- 'eslint/no-undefined': "off";
113
- 'eslint/no-console': "off";
114
- 'eslint/no-continue': "off";
115
- 'eslint/no-implicit-coercion': ["warn", {
116
- allow: string[];
117
- }];
118
- 'eslint/no-plusplus': "off";
119
- 'eslint/no-void': "off";
120
- 'eslint/no-nested-ternary': "off";
121
- 'eslint/no-empty-function': ["warn", {
122
- allow: string[];
123
- }];
124
- 'unicorn/no-instanceof-builtins': "off";
125
- 'unicorn/prefer-spread': "off";
126
- 'eslint/new-cap': "off";
127
- 'unicorn/no-await-expression-member': "off";
128
- 'eslint/no-duplicate-imports': ["warn", {
129
- allowSeparateTypeImports: boolean;
130
- }];
131
- 'import/no-named-export': "off";
132
- 'import/no-default-export': "off";
133
- 'import/prefer-default-export': "off";
134
- 'import/no-namespace': "off";
135
- 'import/exports-last': "off";
136
- 'import/no-unassigned-import': "off";
137
- 'import/group-exports': "off";
138
- 'import/consistent-type-specifier-style': "off";
139
- 'unicorn/no-new-array': "off";
140
- 'eslint/no-array-constructor': "warn";
141
- 'typescript/explicit-function-return-type': "off";
142
- 'typescript/explicit-module-boundary-types': "off";
143
- 'unicorn/no-anonymous-default-export': "off";
144
- 'eslint/sort-imports': "off";
145
- 'import/no-relative-parent-imports': "off";
146
- 'eslint/no-magic-numbers': "off";
147
- 'unicorn/prefer-modern-math-apis': "off";
148
- 'eslint/no-use-before-define': "off";
149
- 'eslint/constructor-super': "off";
150
- 'eslint/getter-return': "off";
151
- 'eslint/no-dupe-class-members': "off";
152
- 'eslint/no-dupe-keys': "off";
153
- 'eslint/no-new-native-nonconstructor': "off";
154
- 'eslint/no-setter-return': "off";
155
- 'eslint/no-this-before-super': "off";
156
- 'eslint/no-undef': "off";
157
- 'eslint/no-unreachable': "off";
158
- 'eslint/no-with': "off";
159
- 'unicorn/no-nested-ternary': "off";
160
- 'oxc/no-optional-chaining': "off";
161
- 'oxc/no-rest-spread-properties': "off";
162
- 'oxc/no-async-await': "off";
163
- };
164
- }[];
165
- plugins: ("react" | "unicorn" | "typescript" | "import")[];
166
- jsPlugins: {
167
- name: string;
168
- specifier: string;
169
- }[];
170
- rules: {
171
- 'react/rules-of-hooks': "error";
172
- 'react/exhaustive-deps': "warn";
173
- 'react-hooks-js/set-state-in-effect': "warn";
174
- 'react/only-export-components': "error";
175
- 'react-compiler-js/react-compiler': "error";
176
- 'react/jsx-filename-extension': "off";
177
- 'react/jsx-max-depth': "off";
178
- 'react/no-multi-comp': "off";
179
- 'react/jsx-props-no-spreading': "off";
180
- 'react/jsx-no-literals': "off";
181
- 'react/forbid-component-props': "off";
182
- 'react/forbid-dom-props': "off";
183
- };
184
- overrides: {
185
- files: string[];
186
- rules: {
187
- 'react/display-name': "error";
188
- 'react/jsx-key': "error";
189
- 'react/jsx-no-comment-textnodes': "error";
190
- 'react/jsx-no-duplicate-props': "error";
191
- 'react/jsx-no-target-blank': "off";
192
- 'react/jsx-no-undef': "error";
193
- 'react/no-children-prop': "error";
194
- 'react/no-danger-with-children': "error";
195
- 'react/no-direct-mutation-state': "error";
196
- 'react/no-find-dom-node': "error";
197
- 'react/no-is-mounted': "error";
198
- 'react/no-render-return-value': "error";
199
- 'react/no-string-refs': "error";
200
- 'react/no-unescaped-entities': "error";
201
- 'react/no-unknown-property': "off";
202
- 'react/no-unsafe': "off";
203
- 'react/react-in-jsx-scope': "off";
204
- 'react/require-render-return': "error";
205
- 'import/no-anonymous-default-export': "warn";
206
- 'jsx-a11y/alt-text': ["warn", {
207
- elements: "img"[];
208
- img: string[];
209
- }];
210
- 'jsx-a11y/aria-props': "warn";
211
- 'jsx-a11y/aria-proptypes': "warn";
212
- 'jsx-a11y/aria-unsupported-elements': "warn";
213
- 'jsx-a11y/role-has-required-aria-props': "warn";
214
- 'jsx-a11y/role-supports-aria-props': "warn";
215
- };
216
- globals: {
217
- AudioWorkletGlobalScope: "readonly";
218
- AudioWorkletProcessor: "readonly";
219
- currentFrame: "readonly";
220
- currentTime: "readonly";
221
- registerProcessor: "readonly";
222
- sampleRate: "readonly";
223
- WorkletGlobalScope: "readonly";
224
- };
225
- plugins: ("import" | "jsx-a11y")[];
226
- env: {
227
- browser: true;
228
- node: true;
229
- };
230
- }[];
231
- };
3
+ declare function reactConfig(options?: Partial<ReactOptions>): OxlintConfig;
232
4
  export { type OxlintConfig, defineConfig, reactConfig };
233
- declare const _default: {
234
- extends: {
235
- plugins: ("unicorn" | "typescript" | "import")[];
236
- jsPlugins: never[];
237
- categories: {
238
- correctness: "error";
239
- suspicious: "warn";
240
- pedantic: "off";
241
- perf: "warn";
242
- style: "warn";
243
- restriction: "warn";
244
- nursery: "off";
245
- };
246
- env: {
247
- builtin: true;
248
- };
249
- options: {
250
- typeAware: true;
251
- };
252
- rules: {
253
- 'eslint/no-var': "warn";
254
- 'eslint/prefer-const': "error";
255
- 'eslint/prefer-rest-params': "error";
256
- 'eslint/prefer-spread': "error";
257
- 'eslint/no-async-promise-executor': "error";
258
- 'eslint/no-case-declarations': "error";
259
- 'eslint/no-class-assign': "error";
260
- 'eslint/no-compare-neg-zero': "error";
261
- 'eslint/no-cond-assign': "error";
262
- 'eslint/no-const-assign': "error";
263
- 'eslint/no-constant-binary-expression': "error";
264
- 'eslint/no-constant-condition': "error";
265
- 'eslint/no-control-regex': "error";
266
- 'eslint/no-debugger': "error";
267
- 'eslint/no-delete-var': "error";
268
- 'eslint/no-dupe-else-if': "error";
269
- 'eslint/no-duplicate-case': "error";
270
- 'eslint/no-empty': "error";
271
- 'eslint/no-empty-character-class': "error";
272
- 'eslint/no-empty-pattern': "error";
273
- 'eslint/no-empty-static-block': "error";
274
- 'eslint/no-ex-assign': "error";
275
- 'eslint/no-extra-boolean-cast': "error";
276
- 'eslint/no-fallthrough': ["error", {
277
- allowEmptyCase: boolean;
278
- }];
279
- 'eslint/no-func-assign': "error";
280
- 'eslint/no-global-assign': "error";
281
- 'eslint/no-import-assign': "error";
282
- 'eslint/no-invalid-regexp': "error";
283
- 'eslint/no-irregular-whitespace': "error";
284
- 'eslint/no-loss-of-precision': "error";
285
- 'eslint/no-misleading-character-class': "error";
286
- 'eslint/no-nonoctal-decimal-escape': "error";
287
- 'eslint/no-obj-calls': "error";
288
- 'eslint/no-prototype-builtins': "error";
289
- 'eslint/no-redeclare': "error";
290
- 'eslint/no-regex-spaces': "error";
291
- 'eslint/no-self-assign': "error";
292
- 'eslint/no-shadow-restricted-names': "error";
293
- 'eslint/no-sparse-arrays': "error";
294
- 'eslint/no-unexpected-multiline': "error";
295
- 'eslint/no-unsafe-finally': "error";
296
- 'eslint/no-unsafe-negation': "error";
297
- 'eslint/no-unsafe-optional-chaining': "error";
298
- 'eslint/no-unused-labels': "error";
299
- 'eslint/no-unused-private-class-members': "error";
300
- 'eslint/no-unused-vars': "warn";
301
- 'eslint/no-useless-backreference': "error";
302
- 'eslint/no-useless-catch': "error";
303
- 'eslint/no-useless-escape': "error";
304
- 'eslint/require-yield': "error";
305
- 'eslint/use-isnan': "error";
306
- 'eslint/valid-typeof': "error";
307
- 'eslint/no-unused-expressions': "warn";
308
- 'typescript/ban-ts-comment': "error";
309
- 'typescript/no-duplicate-enum-values': "off";
310
- 'typescript/no-empty-object-type': "error";
311
- 'typescript/no-explicit-any': "error";
312
- 'typescript/no-extra-non-null-assertion': "error";
313
- 'typescript/no-misused-new': "error";
314
- 'typescript/no-namespace': "error";
315
- 'typescript/no-non-null-asserted-optional-chain': "error";
316
- 'typescript/no-require-imports': "error";
317
- 'typescript/no-this-alias': "error";
318
- 'typescript/no-unnecessary-type-constraint': "error";
319
- 'typescript/no-unsafe-declaration-merging': "error";
320
- 'typescript/no-unsafe-function-type': "error";
321
- 'typescript/no-wrapper-object-types': "error";
322
- 'typescript/prefer-as-const': "error";
323
- 'typescript/triple-slash-reference': "error";
324
- 'typescript/explicit-member-accessibility': ["warn", {
325
- accessibility: "no-public";
326
- }];
327
- 'eslint/id-length': "off";
328
- 'eslint/sort-keys': "off";
329
- 'eslint/capitalized-comments': "off";
330
- 'eslint/func-style': "off";
331
- 'eslint/complexity': "off";
332
- 'eslint/max-params': "off";
333
- 'eslint/no-ternary': "off";
334
- 'eslint/curly': "warn";
335
- 'typescript/consistent-type-definitions': ["warn", "type"];
336
- 'eslint/max-statements': "off";
337
- 'typescript/consistent-return': "off";
338
- 'unicorn/switch-case-braces': "warn";
339
- 'typescript/prefer-regexp-exec': "warn";
340
- 'eslint/init-declarations': "off";
341
- 'unicorn/no-null': "off";
342
- 'eslint/no-undefined': "off";
343
- 'eslint/no-console': "off";
344
- 'eslint/no-continue': "off";
345
- 'eslint/no-implicit-coercion': ["warn", {
346
- allow: string[];
347
- }];
348
- 'eslint/no-plusplus': "off";
349
- 'eslint/no-void': "off";
350
- 'eslint/no-nested-ternary': "off";
351
- 'eslint/no-empty-function': ["warn", {
352
- allow: string[];
353
- }];
354
- 'unicorn/no-instanceof-builtins': "off";
355
- 'unicorn/prefer-spread': "off";
356
- 'eslint/new-cap': "off";
357
- 'unicorn/no-await-expression-member': "off";
358
- 'eslint/no-duplicate-imports': ["warn", {
359
- allowSeparateTypeImports: boolean;
360
- }];
361
- 'import/no-named-export': "off";
362
- 'import/no-default-export': "off";
363
- 'import/prefer-default-export': "off";
364
- 'import/no-namespace': "off";
365
- 'import/exports-last': "off";
366
- 'import/no-unassigned-import': "off";
367
- 'import/group-exports': "off";
368
- 'import/consistent-type-specifier-style': "off";
369
- 'unicorn/no-new-array': "off";
370
- 'eslint/no-array-constructor': "warn";
371
- 'typescript/explicit-function-return-type': "off";
372
- 'typescript/explicit-module-boundary-types': "off";
373
- 'unicorn/no-anonymous-default-export': "off";
374
- 'eslint/sort-imports': "off";
375
- 'import/no-relative-parent-imports': "off";
376
- 'eslint/no-magic-numbers': "off";
377
- 'unicorn/prefer-modern-math-apis': "off";
378
- 'eslint/no-use-before-define': "off";
379
- 'eslint/constructor-super': "off";
380
- 'eslint/getter-return': "off";
381
- 'eslint/no-dupe-class-members': "off";
382
- 'eslint/no-dupe-keys': "off";
383
- 'eslint/no-new-native-nonconstructor': "off";
384
- 'eslint/no-setter-return': "off";
385
- 'eslint/no-this-before-super': "off";
386
- 'eslint/no-undef': "off";
387
- 'eslint/no-unreachable': "off";
388
- 'eslint/no-with': "off";
389
- 'unicorn/no-nested-ternary': "off";
390
- 'oxc/no-optional-chaining': "off";
391
- 'oxc/no-rest-spread-properties': "off";
392
- 'oxc/no-async-await': "off";
393
- };
394
- }[];
395
- plugins: ("react" | "unicorn" | "typescript" | "import")[];
396
- jsPlugins: {
397
- name: string;
398
- specifier: string;
399
- }[];
400
- rules: {
401
- 'react/rules-of-hooks': "error";
402
- 'react/exhaustive-deps': "warn";
403
- 'react-hooks-js/set-state-in-effect': "warn";
404
- 'react/only-export-components': "error";
405
- 'react-compiler-js/react-compiler': "error";
406
- 'react/jsx-filename-extension': "off";
407
- 'react/jsx-max-depth': "off";
408
- 'react/no-multi-comp': "off";
409
- 'react/jsx-props-no-spreading': "off";
410
- 'react/jsx-no-literals': "off";
411
- 'react/forbid-component-props': "off";
412
- 'react/forbid-dom-props': "off";
413
- };
414
- overrides: {
415
- files: string[];
416
- rules: {
417
- 'react/display-name': "error";
418
- 'react/jsx-key': "error";
419
- 'react/jsx-no-comment-textnodes': "error";
420
- 'react/jsx-no-duplicate-props': "error";
421
- 'react/jsx-no-target-blank': "off";
422
- 'react/jsx-no-undef': "error";
423
- 'react/no-children-prop': "error";
424
- 'react/no-danger-with-children': "error";
425
- 'react/no-direct-mutation-state': "error";
426
- 'react/no-find-dom-node': "error";
427
- 'react/no-is-mounted': "error";
428
- 'react/no-render-return-value': "error";
429
- 'react/no-string-refs': "error";
430
- 'react/no-unescaped-entities': "error";
431
- 'react/no-unknown-property': "off";
432
- 'react/no-unsafe': "off";
433
- 'react/react-in-jsx-scope': "off";
434
- 'react/require-render-return': "error";
435
- 'import/no-anonymous-default-export': "warn";
436
- 'jsx-a11y/alt-text': ["warn", {
437
- elements: "img"[];
438
- img: string[];
439
- }];
440
- 'jsx-a11y/aria-props': "warn";
441
- 'jsx-a11y/aria-proptypes': "warn";
442
- 'jsx-a11y/aria-unsupported-elements': "warn";
443
- 'jsx-a11y/role-has-required-aria-props': "warn";
444
- 'jsx-a11y/role-supports-aria-props': "warn";
445
- };
446
- globals: {
447
- AudioWorkletGlobalScope: "readonly";
448
- AudioWorkletProcessor: "readonly";
449
- currentFrame: "readonly";
450
- currentTime: "readonly";
451
- registerProcessor: "readonly";
452
- sampleRate: "readonly";
453
- WorkletGlobalScope: "readonly";
454
- };
455
- plugins: ("import" | "jsx-a11y")[];
456
- env: {
457
- browser: true;
458
- node: true;
459
- };
460
- }[];
461
- };
5
+ declare const _default: OxlintConfig;
462
6
  export default _default;
463
7
  //# sourceMappingURL=react.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGzD,MAAM,MAAM,YAAY,GAAG,EAAE,CAAC;AAI9B,iBAAS,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmFnD;AAED,OAAO,EAAE,KAAK,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAExD,wBAA6B"}
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,QAAQ,CAAC;AAIzD,MAAM,MAAM,YAAY,GAAG,EAAE,CAAC;AAI9B,iBAAS,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,gBA6FnD;AAED,OAAO,EAAE,KAAK,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC"}
package/dist/react.js CHANGED
@@ -1,28 +1,54 @@
1
1
  import { defineConfig } from 'oxlint';
2
2
  import { baseConfig } from './base.js';
3
+ import { extendConfig } from './config.js';
3
4
  // const DEFAULT_OPTIONS: ReactOptions = {};
4
5
  function reactConfig(options) {
5
6
  // const opts = { ...DEFAULT_OPTIONS, ...options };
6
7
  const base = baseConfig(options);
7
- return defineConfig({
8
- extends: [base],
9
- plugins: [...base.plugins, 'react'],
10
- jsPlugins: [
11
- // react compiler is not yet supported by oxc
12
- // https://github.com/oxc-project/oxc/issues/10048
13
- // this means compiler related rules are not yet supported
14
- // https://github.com/oxc-project/oxc/issues/1022
15
- // react compiler port to rust may enable compiler related rules
16
- // https://github.com/facebook/react/pull/36173
17
- { name: 'react-hooks-js', specifier: 'eslint-plugin-react-hooks' },
18
- { name: 'react-compiler-js', specifier: 'eslint-plugin-react-compiler' },
19
- ],
8
+ return extendConfig(base, {
9
+ plugins: ['react', 'jsx-a11y'],
10
+ jsPlugins: [],
11
+ env: {
12
+ browser: true,
13
+ node: true,
14
+ },
15
+ globals: {
16
+ AudioWorkletGlobalScope: 'readonly',
17
+ AudioWorkletProcessor: 'readonly',
18
+ currentFrame: 'readonly',
19
+ currentTime: 'readonly',
20
+ registerProcessor: 'readonly',
21
+ sampleRate: 'readonly',
22
+ WorkletGlobalScope: 'readonly',
23
+ },
20
24
  rules: {
21
25
  'react/rules-of-hooks': 'error',
22
26
  'react/exhaustive-deps': 'warn',
23
- 'react-hooks-js/set-state-in-effect': 'warn',
27
+ // react compiler rules
28
+ 'react/error-boundaries': 'error',
29
+ 'react/globals': 'error',
30
+ 'react/immutability': 'error',
31
+ 'react/incompatible-library': 'error',
32
+ 'react/preserve-manual-memoization': 'error',
33
+ 'react/purity': 'error',
34
+ 'react/refs': 'error',
35
+ 'react/set-state-in-effect': 'error',
36
+ 'react/set-state-in-render': 'error',
37
+ 'react/static-components': 'error',
38
+ 'react/use-memo': 'error',
39
+ 'react/void-use-memo': 'error',
40
+ 'react/capitalized-calls': 'error',
41
+ 'react/exhaustive-effect-dependencies': 'error',
42
+ 'react/hooks': 'error',
43
+ 'react/memo-dependencies': 'error',
44
+ 'react/no-deriving-state-in-effects': 'error',
45
+ 'react/invariant': 'error',
46
+ 'react/rule-suppression': 'error',
47
+ 'react/syntax': 'error',
48
+ 'react/todo': 'error',
49
+ 'react/unsupported-syntax': 'error',
24
50
  'react/only-export-components': 'error',
25
- 'react-compiler-js/react-compiler': 'error',
51
+ 'import/no-anonymous-default-export': 'warn',
26
52
  'react/jsx-filename-extension': 'off',
27
53
  'react/jsx-max-depth': 'off',
28
54
  'react/no-multi-comp': 'off',
@@ -34,7 +60,7 @@ function reactConfig(options) {
34
60
  },
35
61
  overrides: [
36
62
  {
37
- files: ['**/*.{js,jsx,mjs,ts,tsx,mts,cts}'],
63
+ files: ['**/*.{jsx,tsx}'],
38
64
  rules: {
39
65
  'react/display-name': 'error',
40
66
  'react/jsx-key': 'error',
@@ -44,7 +70,6 @@ function reactConfig(options) {
44
70
  'react/jsx-no-undef': 'error',
45
71
  'react/no-children-prop': 'error',
46
72
  'react/no-danger-with-children': 'error',
47
- // "react/no-deprecated": "error", // not implemented yet in oxlint
48
73
  'react/no-direct-mutation-state': 'error',
49
74
  'react/no-find-dom-node': 'error',
50
75
  'react/no-is-mounted': 'error',
@@ -55,7 +80,6 @@ function reactConfig(options) {
55
80
  'react/no-unsafe': 'off',
56
81
  'react/react-in-jsx-scope': 'off',
57
82
  'react/require-render-return': 'error',
58
- 'import/no-anonymous-default-export': 'warn',
59
83
  'jsx-a11y/alt-text': ['warn', { elements: ['img'], img: ['Image'] }],
60
84
  'jsx-a11y/aria-props': 'warn',
61
85
  'jsx-a11y/aria-proptypes': 'warn',
@@ -63,20 +87,6 @@ function reactConfig(options) {
63
87
  'jsx-a11y/role-has-required-aria-props': 'warn',
64
88
  'jsx-a11y/role-supports-aria-props': 'warn',
65
89
  },
66
- globals: {
67
- AudioWorkletGlobalScope: 'readonly',
68
- AudioWorkletProcessor: 'readonly',
69
- currentFrame: 'readonly',
70
- currentTime: 'readonly',
71
- registerProcessor: 'readonly',
72
- sampleRate: 'readonly',
73
- WorkletGlobalScope: 'readonly',
74
- },
75
- plugins: ['import', 'jsx-a11y'],
76
- env: {
77
- browser: true,
78
- node: true,
79
- },
80
90
  },
81
91
  ],
82
92
  });
package/dist/react.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAqB,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAIvC,4CAA4C;AAE5C,SAAS,WAAW,CAAC,OAA+B;IAClD,mDAAmD;IAEnD,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAEjC,OAAO,YAAY,CAAC;QAClB,OAAO,EAAE,CAAC,IAAI,CAAC;QACf,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;QACnC,SAAS,EAAE;YACT,6CAA6C;YAC7C,kDAAkD;YAClD,0DAA0D;YAC1D,iDAAiD;YACjD,gEAAgE;YAChE,+CAA+C;YAC/C,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,2BAA2B,EAAE;YAClE,EAAE,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,8BAA8B,EAAE;SACzE;QACD,KAAK,EAAE;YACL,sBAAsB,EAAE,OAAO;YAC/B,uBAAuB,EAAE,MAAM;YAC/B,oCAAoC,EAAE,MAAM;YAC5C,8BAA8B,EAAE,OAAO;YACvC,kCAAkC,EAAE,OAAO;YAE3C,8BAA8B,EAAE,KAAK;YACrC,qBAAqB,EAAE,KAAK;YAC5B,qBAAqB,EAAE,KAAK;YAC5B,8BAA8B,EAAE,KAAK;YACrC,uBAAuB,EAAE,KAAK;YAE9B,0BAA0B;YAC1B,8BAA8B,EAAE,KAAK;YACrC,wBAAwB,EAAE,KAAK;SAChC;QACD,SAAS,EAAE;YACT;gBACE,KAAK,EAAE,CAAC,kCAAkC,CAAC;gBAC3C,KAAK,EAAE;oBACL,oBAAoB,EAAE,OAAO;oBAC7B,eAAe,EAAE,OAAO;oBACxB,gCAAgC,EAAE,OAAO;oBACzC,8BAA8B,EAAE,OAAO;oBACvC,2BAA2B,EAAE,KAAK;oBAClC,oBAAoB,EAAE,OAAO;oBAC7B,wBAAwB,EAAE,OAAO;oBACjC,+BAA+B,EAAE,OAAO;oBACxC,mEAAmE;oBACnE,gCAAgC,EAAE,OAAO;oBACzC,wBAAwB,EAAE,OAAO;oBACjC,qBAAqB,EAAE,OAAO;oBAC9B,8BAA8B,EAAE,OAAO;oBACvC,sBAAsB,EAAE,OAAO;oBAC/B,6BAA6B,EAAE,OAAO;oBACtC,2BAA2B,EAAE,KAAK;oBAClC,iBAAiB,EAAE,KAAK;oBACxB,0BAA0B,EAAE,KAAK;oBACjC,6BAA6B,EAAE,OAAO;oBACtC,oCAAoC,EAAE,MAAM;oBAC5C,mBAAmB,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;oBACpE,qBAAqB,EAAE,MAAM;oBAC7B,yBAAyB,EAAE,MAAM;oBACjC,oCAAoC,EAAE,MAAM;oBAC5C,uCAAuC,EAAE,MAAM;oBAC/C,mCAAmC,EAAE,MAAM;iBAC5C;gBACD,OAAO,EAAE;oBACP,uBAAuB,EAAE,UAAU;oBACnC,qBAAqB,EAAE,UAAU;oBACjC,YAAY,EAAE,UAAU;oBACxB,WAAW,EAAE,UAAU;oBACvB,iBAAiB,EAAE,UAAU;oBAC7B,UAAU,EAAE,UAAU;oBACtB,kBAAkB,EAAE,UAAU;iBAC/B;gBACD,OAAO,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;gBAC/B,GAAG,EAAE;oBACH,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE,IAAI;iBACX;aACF;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EAAqB,YAAY,EAAE,WAAW,EAAE,CAAC;AAExD,eAAe,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@4mbl/lint",
3
- "version": "0.0.0-alpha.fdc5ba4",
3
+ "version": "0.0.0-alpha.fec850c",
4
4
  "description": "Linting configuration for various environments.",
5
5
  "type": "module",
6
6
  "author": "4mbl",
@@ -31,14 +31,12 @@
31
31
  "lint"
32
32
  ],
33
33
  "dependencies": {
34
- "eslint-plugin-react-compiler": "19.1.0-rc.2",
35
- "eslint-plugin-react-hooks": "7.1.1",
36
- "oxlint": "1.70.x",
37
- "oxlint-tsgolint": "0.23.x"
34
+ "oxlint": "1.79.x",
35
+ "oxlint-tsgolint": "7.0.x"
38
36
  },
39
37
  "devDependencies": {
40
- "@types/node": "^24.13.2",
41
- "@4mbl/tsconfig": "0.0.0-alpha.fdc5ba4"
38
+ "@types/node": "^24.13.3",
39
+ "@4mbl/tsconfig": "0.0.0-alpha.fec850c"
42
40
  },
43
41
  "scripts": {
44
42
  "build": "tsc"