@apst/oxlint 0.0.0-dev.20260324.f9d48c4e → 0.0.0-dev.20260624.019efa3b

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.
Files changed (61) hide show
  1. package/README.md +7 -0
  2. package/dist/presets/common/index.d.ts +3 -4
  3. package/dist/presets/common/index.js +1 -3
  4. package/dist/presets/common/index.mjs +3 -4
  5. package/dist/presets/common/plugin/index.d.ts +1 -2
  6. package/dist/presets/common/plugin/index.js +0 -2
  7. package/dist/presets/common/plugin/index.js.map +1 -1
  8. package/dist/presets/common/plugin/index.mjs +1 -2
  9. package/dist/presets/common/plugin/index.mjs.map +1 -1
  10. package/dist/presets/common/preset/index.js +1 -4
  11. package/dist/presets/common/preset/index.js.map +1 -1
  12. package/dist/presets/common/preset/index.mjs +2 -5
  13. package/dist/presets/common/preset/index.mjs.map +1 -1
  14. package/dist/presets/common/rules/eslint.d.ts +8 -4
  15. package/dist/presets/common/rules/eslint.js +4 -4
  16. package/dist/presets/common/rules/eslint.js.map +1 -1
  17. package/dist/presets/common/rules/eslint.mjs +4 -4
  18. package/dist/presets/common/rules/eslint.mjs.map +1 -1
  19. package/dist/presets/common/rules/import.d.ts +10 -0
  20. package/dist/presets/common/rules/import.js +5 -0
  21. package/dist/presets/common/rules/import.js.map +1 -1
  22. package/dist/presets/common/rules/import.mjs +5 -0
  23. package/dist/presets/common/rules/import.mjs.map +1 -1
  24. package/dist/presets/common/rules/typescript.d.ts +58 -44
  25. package/dist/presets/common/rules/typescript.js +20 -15
  26. package/dist/presets/common/rules/typescript.js.map +1 -1
  27. package/dist/presets/common/rules/typescript.mjs +20 -15
  28. package/dist/presets/common/rules/typescript.mjs.map +1 -1
  29. package/dist/presets/common/rules/unicorn.d.ts +13 -9
  30. package/dist/presets/common/rules/unicorn.js +7 -4
  31. package/dist/presets/common/rules/unicorn.js.map +1 -1
  32. package/dist/presets/common/rules/unicorn.mjs +7 -5
  33. package/dist/presets/common/rules/unicorn.mjs.map +1 -1
  34. package/dist/presets/jsx/rules/jsx-a11y.d.ts +16 -0
  35. package/dist/presets/jsx/rules/jsx-a11y.js +15 -0
  36. package/dist/presets/jsx/rules/jsx-a11y.js.map +1 -1
  37. package/dist/presets/jsx/rules/jsx-a11y.mjs +15 -0
  38. package/dist/presets/jsx/rules/jsx-a11y.mjs.map +1 -1
  39. package/dist/presets/next/rules/nextjs.js +1 -0
  40. package/dist/presets/next/rules/nextjs.js.map +1 -1
  41. package/dist/presets/next/rules/nextjs.mjs +1 -0
  42. package/dist/presets/next/rules/nextjs.mjs.map +1 -1
  43. package/dist/presets/react/index.d.ts +2 -2
  44. package/dist/presets/react/index.js +1 -0
  45. package/dist/presets/react/index.mjs +2 -2
  46. package/dist/presets/react/rules/react.d.ts +32 -1
  47. package/dist/presets/react/rules/react.js +15 -2
  48. package/dist/presets/react/rules/react.js.map +1 -1
  49. package/dist/presets/react/rules/react.mjs +15 -3
  50. package/dist/presets/react/rules/react.mjs.map +1 -1
  51. package/dist/presets/vitest/rules/vitest.d.ts +4 -0
  52. package/dist/presets/vitest/rules/vitest.js +3 -1
  53. package/dist/presets/vitest/rules/vitest.js.map +1 -1
  54. package/dist/presets/vitest/rules/vitest.mjs +3 -1
  55. package/dist/presets/vitest/rules/vitest.mjs.map +1 -1
  56. package/package.json +12 -44
  57. package/dist/presets/common/rules/stylistic.d.ts +0 -14
  58. package/dist/presets/common/rules/stylistic.js +0 -14
  59. package/dist/presets/common/rules/stylistic.js.map +0 -1
  60. package/dist/presets/common/rules/stylistic.mjs +0 -13
  61. package/dist/presets/common/rules/stylistic.mjs.map +0 -1
@@ -1,3 +1,4 @@
1
+ const RULES_UNICORN_NURSERY = { "unicorn/no-useless-iterator-to-array": "error" };
1
2
  const RULES_UNICORN_PEDANTIC = {
2
3
  "unicorn/consistent-empty-array-spread": "error",
3
4
  "unicorn/explicit-length-check": ["error", { "non-zero": "greater-than" }],
@@ -24,6 +25,8 @@ const RULES_UNICORN_RESTRICTION = {
24
25
  const RULES_UNICORN_STYLE = {
25
26
  "unicorn/consistent-date-clone": "error",
26
27
  "unicorn/consistent-existence-index-check": "error",
28
+ "unicorn/consistent-template-literal-escape": "error",
29
+ "unicorn/custom-error-definition": "error",
27
30
  "unicorn/empty-brace-spaces": "error",
28
31
  "unicorn/error-message": "error",
29
32
  "unicorn/no-array-method-this-argument": "error",
@@ -60,6 +63,7 @@ const RULES_UNICORN_STYLE = {
60
63
  "unicorn/relative-url-style": ["error", "always"],
61
64
  "unicorn/require-module-attributes": "error",
62
65
  "unicorn/switch-case-braces": "error",
66
+ "unicorn/switch-case-break-position": "error",
63
67
  "unicorn/text-encoding-identifier-case": ["error", { withDash: true }],
64
68
  "unicorn/throw-new-error": "error"
65
69
  };
@@ -68,17 +72,15 @@ const RULES_UNICORN_SUSPICIOUS = {
68
72
  "unicorn/no-accessor-recursion": "error",
69
73
  "unicorn/no-array-reverse": "error",
70
74
  "unicorn/no-array-sort": ["error", { allowExpressionStatement: true }],
71
- "unicorn/no-instanceof-builtins": ["error", {
72
- strategy: "strict",
73
- useErrorIsError: false
74
- }]
75
+ "unicorn/no-instanceof-builtins": ["allow"]
75
76
  };
76
77
  const RULES_UNICORN = {
78
+ ...RULES_UNICORN_NURSERY,
77
79
  ...RULES_UNICORN_PEDANTIC,
78
80
  ...RULES_UNICORN_RESTRICTION,
79
81
  ...RULES_UNICORN_STYLE,
80
82
  ...RULES_UNICORN_SUSPICIOUS
81
83
  };
82
84
 
83
- export { RULES_UNICORN, RULES_UNICORN_PEDANTIC, RULES_UNICORN_RESTRICTION, RULES_UNICORN_STYLE, RULES_UNICORN_SUSPICIOUS };
85
+ export { RULES_UNICORN, RULES_UNICORN_NURSERY, RULES_UNICORN_PEDANTIC, RULES_UNICORN_RESTRICTION, RULES_UNICORN_STYLE, RULES_UNICORN_SUSPICIOUS };
84
86
  //# sourceMappingURL=unicorn.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"unicorn.mjs","names":[],"sources":["../../../../src/presets/common/rules/unicorn.ts"],"sourcesContent":["import type { LintRules } from \"#/@types/oxlint\";\n\nconst RULES_UNICORN_PEDANTIC = {\n \"unicorn/consistent-empty-array-spread\": \"error\",\n \"unicorn/explicit-length-check\": [\n \"error\",\n {\n \"non-zero\": \"greater-than\",\n },\n ],\n \"unicorn/new-for-builtins\": \"error\",\n \"unicorn/no-instanceof-array\": \"error\",\n \"unicorn/no-new-buffer\": \"error\",\n \"unicorn/no-unnecessary-array-flat-depth\": \"error\",\n \"unicorn/no-unnecessary-array-splice-count\": \"error\",\n \"unicorn/no-unnecessary-slice-end\": \"error\",\n \"unicorn/no-useless-promise-resolve-reject\": [\n \"error\",\n {\n allowReject: false,\n },\n ],\n \"unicorn/prefer-date-now\": \"error\",\n \"unicorn/prefer-math-min-max\": \"error\",\n \"unicorn/prefer-type-error\": \"error\",\n \"unicorn/require-number-to-fixed-digits-argument\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_UNICORN_RESTRICTION = {\n \"unicorn/no-length-as-slice-end\": \"error\",\n \"unicorn/prefer-node-protocol\": \"error\",\n \"unicorn/prefer-number-properties\": [\n \"error\",\n {\n checkInfinity: true,\n checkNaN: true,\n },\n ],\n} as const satisfies LintRules;\n\nconst RULES_UNICORN_STYLE = {\n \"unicorn/consistent-date-clone\": \"error\",\n \"unicorn/consistent-existence-index-check\": \"error\",\n \"unicorn/empty-brace-spaces\": \"error\",\n \"unicorn/error-message\": \"error\",\n \"unicorn/no-array-method-this-argument\": \"error\",\n \"unicorn/no-unreadable-array-destructuring\": \"error\",\n \"unicorn/no-useless-collection-argument\": \"error\",\n \"unicorn/numeric-separators-style\": [\n \"error\",\n {\n binary: {\n groupLength: 3,\n minimumDigits: 5,\n },\n hexadecimal: {\n groupLength: 3,\n minimumDigits: 5,\n },\n number: {\n groupLength: 3,\n minimumDigits: 5,\n },\n octal: {\n groupLength: 3,\n minimumDigits: 5,\n },\n onlyIfContainsSeparator: false,\n },\n ],\n \"unicorn/prefer-classlist-toggle\": \"error\",\n \"unicorn/prefer-dom-node-text-content\": \"error\",\n \"unicorn/prefer-global-this\": \"error\",\n \"unicorn/prefer-includes\": \"error\",\n \"unicorn/prefer-keyboard-event-key\": \"error\",\n \"unicorn/prefer-modern-dom-apis\": \"error\",\n \"unicorn/prefer-object-from-entries\": \"error\",\n \"unicorn/prefer-response-static-json\": \"error\",\n \"unicorn/prefer-string-trim-start-end\": \"error\",\n \"unicorn/relative-url-style\": [\n \"error\",\n \"always\",\n ],\n \"unicorn/require-module-attributes\": \"error\",\n \"unicorn/switch-case-braces\": \"error\",\n \"unicorn/text-encoding-identifier-case\": [\n \"error\",\n {\n withDash: true,\n },\n ],\n \"unicorn/throw-new-error\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_UNICORN_SUSPICIOUS = {\n \"unicorn/consistent-function-scoping\": \"error\",\n \"unicorn/no-accessor-recursion\": \"error\",\n \"unicorn/no-array-reverse\": \"error\",\n \"unicorn/no-array-sort\": [\n \"error\",\n {\n allowExpressionStatement: true,\n },\n ],\n \"unicorn/no-instanceof-builtins\": [\n \"error\",\n {\n strategy: \"strict\",\n useErrorIsError: false,\n },\n ],\n} as const satisfies LintRules;\n\nconst RULES_UNICORN = {\n ...RULES_UNICORN_PEDANTIC,\n ...RULES_UNICORN_RESTRICTION,\n ...RULES_UNICORN_STYLE,\n ...RULES_UNICORN_SUSPICIOUS,\n} as const satisfies LintRules;\n\nexport {\n RULES_UNICORN,\n RULES_UNICORN_PEDANTIC,\n RULES_UNICORN_RESTRICTION,\n RULES_UNICORN_STYLE,\n RULES_UNICORN_SUSPICIOUS,\n};\n"],"mappings":"AAEA,MAAM,yBAAyB;CAC3B,yCAAyC;CACzC,iCAAiC,CAC7B,SACA,EACI,YAAY,eAChB,CACJ;CACA,4BAA4B;CAC5B,+BAA+B;CAC/B,yBAAyB;CACzB,2CAA2C;CAC3C,6CAA6C;CAC7C,oCAAoC;CACpC,6CAA6C,CACzC,SACA,EACI,aAAa,MACjB,CACJ;CACA,2BAA2B;CAC3B,+BAA+B;CAC/B,6BAA6B;CAC7B,mDAAmD;AACvD;AAEA,MAAM,4BAA4B;CAC9B,kCAAkC;CAClC,gCAAgC;CAChC,oCAAoC,CAChC,SACA;EACI,eAAe;EACf,UAAU;CACd,CACJ;AACJ;AAEA,MAAM,sBAAsB;CACxB,iCAAiC;CACjC,4CAA4C;CAC5C,8BAA8B;CAC9B,yBAAyB;CACzB,yCAAyC;CACzC,6CAA6C;CAC7C,0CAA0C;CAC1C,oCAAoC,CAChC,SACA;EACI,QAAQ;GACJ,aAAa;GACb,eAAe;EACnB;EACA,aAAa;GACT,aAAa;GACb,eAAe;EACnB;EACA,QAAQ;GACJ,aAAa;GACb,eAAe;EACnB;EACA,OAAO;GACH,aAAa;GACb,eAAe;EACnB;EACA,yBAAyB;CAC7B,CACJ;CACA,mCAAmC;CACnC,wCAAwC;CACxC,8BAA8B;CAC9B,2BAA2B;CAC3B,qCAAqC;CACrC,kCAAkC;CAClC,sCAAsC;CACtC,uCAAuC;CACvC,wCAAwC;CACxC,8BAA8B,CAC1B,SACA,QACJ;CACA,qCAAqC;CACrC,8BAA8B;CAC9B,yCAAyC,CACrC,SACA,EACI,UAAU,KACd,CACJ;CACA,2BAA2B;AAC/B;AAEA,MAAM,2BAA2B;CAC7B,uCAAuC;CACvC,iCAAiC;CACjC,4BAA4B;CAC5B,yBAAyB,CACrB,SACA,EACI,0BAA0B,KAC9B,CACJ;CACA,kCAAkC,CAC9B,SACA;EACI,UAAU;EACV,iBAAiB;CACrB,CACJ;AACJ;AAEA,MAAM,gBAAgB;CAClB,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;AACP"}
1
+ {"version":3,"file":"unicorn.mjs","names":[],"sources":["../../../../src/presets/common/rules/unicorn.ts"],"sourcesContent":["import type { LintRules } from \"#/@types/oxlint\";\n\nconst RULES_UNICORN_NURSERY = {\n \"unicorn/no-useless-iterator-to-array\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_UNICORN_PEDANTIC = {\n \"unicorn/consistent-empty-array-spread\": \"error\",\n \"unicorn/explicit-length-check\": [\n \"error\",\n {\n \"non-zero\": \"greater-than\",\n },\n ],\n \"unicorn/new-for-builtins\": \"error\",\n \"unicorn/no-instanceof-array\": \"error\",\n \"unicorn/no-new-buffer\": \"error\",\n \"unicorn/no-unnecessary-array-flat-depth\": \"error\",\n \"unicorn/no-unnecessary-array-splice-count\": \"error\",\n \"unicorn/no-unnecessary-slice-end\": \"error\",\n \"unicorn/no-useless-promise-resolve-reject\": [\n \"error\",\n {\n allowReject: false,\n },\n ],\n \"unicorn/prefer-date-now\": \"error\",\n \"unicorn/prefer-math-min-max\": \"error\",\n \"unicorn/prefer-type-error\": \"error\",\n \"unicorn/require-number-to-fixed-digits-argument\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_UNICORN_RESTRICTION = {\n \"unicorn/no-length-as-slice-end\": \"error\",\n \"unicorn/prefer-node-protocol\": \"error\",\n \"unicorn/prefer-number-properties\": [\n \"error\",\n {\n checkInfinity: true,\n checkNaN: true,\n },\n ],\n} as const satisfies LintRules;\n\nconst RULES_UNICORN_STYLE = {\n \"unicorn/consistent-date-clone\": \"error\",\n \"unicorn/consistent-existence-index-check\": \"error\",\n \"unicorn/consistent-template-literal-escape\": \"error\",\n \"unicorn/custom-error-definition\": \"error\",\n \"unicorn/empty-brace-spaces\": \"error\",\n \"unicorn/error-message\": \"error\",\n \"unicorn/no-array-method-this-argument\": \"error\",\n \"unicorn/no-unreadable-array-destructuring\": \"error\",\n \"unicorn/no-useless-collection-argument\": \"error\",\n \"unicorn/numeric-separators-style\": [\n \"error\",\n {\n binary: {\n groupLength: 3,\n minimumDigits: 5,\n },\n hexadecimal: {\n groupLength: 3,\n minimumDigits: 5,\n },\n number: {\n groupLength: 3,\n minimumDigits: 5,\n },\n octal: {\n groupLength: 3,\n minimumDigits: 5,\n },\n onlyIfContainsSeparator: false,\n },\n ],\n \"unicorn/prefer-classlist-toggle\": \"error\",\n \"unicorn/prefer-dom-node-text-content\": \"error\",\n \"unicorn/prefer-global-this\": \"error\",\n \"unicorn/prefer-includes\": \"error\",\n \"unicorn/prefer-keyboard-event-key\": \"error\",\n \"unicorn/prefer-modern-dom-apis\": \"error\",\n \"unicorn/prefer-object-from-entries\": \"error\",\n \"unicorn/prefer-response-static-json\": \"error\",\n \"unicorn/prefer-string-trim-start-end\": \"error\",\n \"unicorn/relative-url-style\": [\n \"error\",\n \"always\",\n ],\n \"unicorn/require-module-attributes\": \"error\",\n \"unicorn/switch-case-braces\": \"error\",\n \"unicorn/switch-case-break-position\": \"error\",\n \"unicorn/text-encoding-identifier-case\": [\n \"error\",\n {\n withDash: true,\n },\n ],\n \"unicorn/throw-new-error\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_UNICORN_SUSPICIOUS = {\n \"unicorn/consistent-function-scoping\": \"error\",\n \"unicorn/no-accessor-recursion\": \"error\",\n \"unicorn/no-array-reverse\": \"error\",\n \"unicorn/no-array-sort\": [\n \"error\",\n {\n allowExpressionStatement: true,\n },\n ],\n \"unicorn/no-instanceof-builtins\": [\n \"allow\",\n ],\n} as const satisfies LintRules;\n\nconst RULES_UNICORN = {\n ...RULES_UNICORN_NURSERY,\n ...RULES_UNICORN_PEDANTIC,\n ...RULES_UNICORN_RESTRICTION,\n ...RULES_UNICORN_STYLE,\n ...RULES_UNICORN_SUSPICIOUS,\n} as const satisfies LintRules;\n\nexport {\n RULES_UNICORN,\n RULES_UNICORN_NURSERY,\n RULES_UNICORN_PEDANTIC,\n RULES_UNICORN_RESTRICTION,\n RULES_UNICORN_STYLE,\n RULES_UNICORN_SUSPICIOUS,\n};\n"],"mappings":"AAEA,MAAM,wBAAwB,EAC1B,wCAAwC,QAC5C;AAEA,MAAM,yBAAyB;CAC3B,yCAAyC;CACzC,iCAAiC,CAC7B,SACA,EACI,YAAY,eAChB,CACJ;CACA,4BAA4B;CAC5B,+BAA+B;CAC/B,yBAAyB;CACzB,2CAA2C;CAC3C,6CAA6C;CAC7C,oCAAoC;CACpC,6CAA6C,CACzC,SACA,EACI,aAAa,MACjB,CACJ;CACA,2BAA2B;CAC3B,+BAA+B;CAC/B,6BAA6B;CAC7B,mDAAmD;AACvD;AAEA,MAAM,4BAA4B;CAC9B,kCAAkC;CAClC,gCAAgC;CAChC,oCAAoC,CAChC,SACA;EACI,eAAe;EACf,UAAU;CACd,CACJ;AACJ;AAEA,MAAM,sBAAsB;CACxB,iCAAiC;CACjC,4CAA4C;CAC5C,8CAA8C;CAC9C,mCAAmC;CACnC,8BAA8B;CAC9B,yBAAyB;CACzB,yCAAyC;CACzC,6CAA6C;CAC7C,0CAA0C;CAC1C,oCAAoC,CAChC,SACA;EACI,QAAQ;GACJ,aAAa;GACb,eAAe;EACnB;EACA,aAAa;GACT,aAAa;GACb,eAAe;EACnB;EACA,QAAQ;GACJ,aAAa;GACb,eAAe;EACnB;EACA,OAAO;GACH,aAAa;GACb,eAAe;EACnB;EACA,yBAAyB;CAC7B,CACJ;CACA,mCAAmC;CACnC,wCAAwC;CACxC,8BAA8B;CAC9B,2BAA2B;CAC3B,qCAAqC;CACrC,kCAAkC;CAClC,sCAAsC;CACtC,uCAAuC;CACvC,wCAAwC;CACxC,8BAA8B,CAC1B,SACA,QACJ;CACA,qCAAqC;CACrC,8BAA8B;CAC9B,sCAAsC;CACtC,yCAAyC,CACrC,SACA,EACI,UAAU,KACd,CACJ;CACA,2BAA2B;AAC/B;AAEA,MAAM,2BAA2B;CAC7B,uCAAuC;CACvC,iCAAiC;CACjC,4BAA4B;CAC5B,yBAAyB,CACrB,SACA,EACI,0BAA0B,KAC9B,CACJ;CACA,kCAAkC,CAC9B,OACJ;AACJ;AAEA,MAAM,gBAAgB;CAClB,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;AACP"}
@@ -9,9 +9,17 @@ declare const RULES_JSX_A11Y_CORRECTNESS: {
9
9
  readonly "jsx-a11y/heading-has-content": "error";
10
10
  readonly "jsx-a11y/html-has-lang": "error";
11
11
  readonly "jsx-a11y/iframe-has-title": "error";
12
+ readonly "jsx-a11y/interactive-supports-focus": "error";
12
13
  readonly "jsx-a11y/lang": "error";
13
14
  readonly "jsx-a11y/mouse-events-have-key-events": "error";
14
15
  readonly "jsx-a11y/no-aria-hidden-on-focusable": "error";
16
+ readonly "jsx-a11y/no-interactive-element-to-noninteractive-role": "error";
17
+ readonly "jsx-a11y/no-noninteractive-element-interactions": "error";
18
+ readonly "jsx-a11y/no-noninteractive-element-to-interactive-role": "error";
19
+ readonly "jsx-a11y/no-static-element-interactions": ["error", {
20
+ readonly allowExpressionValues: true;
21
+ readonly handlers: ["onClick", "onKeyPress", "onKeyDown", "onKeyUp", "onMouseDown", "onMouseUp"];
22
+ }];
15
23
  readonly "jsx-a11y/prefer-tag-over-role": "error";
16
24
  readonly "jsx-a11y/tabindex-no-positive": "error";
17
25
  };
@@ -26,9 +34,17 @@ declare const RULES_JSX_A11Y: {
26
34
  readonly "jsx-a11y/heading-has-content": "error";
27
35
  readonly "jsx-a11y/html-has-lang": "error";
28
36
  readonly "jsx-a11y/iframe-has-title": "error";
37
+ readonly "jsx-a11y/interactive-supports-focus": "error";
29
38
  readonly "jsx-a11y/lang": "error";
30
39
  readonly "jsx-a11y/mouse-events-have-key-events": "error";
31
40
  readonly "jsx-a11y/no-aria-hidden-on-focusable": "error";
41
+ readonly "jsx-a11y/no-interactive-element-to-noninteractive-role": "error";
42
+ readonly "jsx-a11y/no-noninteractive-element-interactions": "error";
43
+ readonly "jsx-a11y/no-noninteractive-element-to-interactive-role": "error";
44
+ readonly "jsx-a11y/no-static-element-interactions": ["error", {
45
+ readonly allowExpressionValues: true;
46
+ readonly handlers: ["onClick", "onKeyPress", "onKeyDown", "onKeyUp", "onMouseDown", "onMouseUp"];
47
+ }];
32
48
  readonly "jsx-a11y/prefer-tag-over-role": "error";
33
49
  readonly "jsx-a11y/tabindex-no-positive": "error";
34
50
  };
@@ -10,9 +10,24 @@ const RULES_JSX_A11Y_CORRECTNESS = {
10
10
  "jsx-a11y/heading-has-content": "error",
11
11
  "jsx-a11y/html-has-lang": "error",
12
12
  "jsx-a11y/iframe-has-title": "error",
13
+ "jsx-a11y/interactive-supports-focus": "error",
13
14
  "jsx-a11y/lang": "error",
14
15
  "jsx-a11y/mouse-events-have-key-events": "error",
15
16
  "jsx-a11y/no-aria-hidden-on-focusable": "error",
17
+ "jsx-a11y/no-interactive-element-to-noninteractive-role": "error",
18
+ "jsx-a11y/no-noninteractive-element-interactions": "error",
19
+ "jsx-a11y/no-noninteractive-element-to-interactive-role": "error",
20
+ "jsx-a11y/no-static-element-interactions": ["error", {
21
+ allowExpressionValues: true,
22
+ handlers: [
23
+ "onClick",
24
+ "onKeyPress",
25
+ "onKeyDown",
26
+ "onKeyUp",
27
+ "onMouseDown",
28
+ "onMouseUp"
29
+ ]
30
+ }],
16
31
  "jsx-a11y/prefer-tag-over-role": "error",
17
32
  "jsx-a11y/tabindex-no-positive": "error"
18
33
  };
@@ -1 +1 @@
1
- {"version":3,"file":"jsx-a11y.js","names":[],"sources":["../../../../src/presets/jsx/rules/jsx-a11y.ts"],"sourcesContent":["import type { LintRules } from \"#/@types/oxlint\";\n\nconst RULES_JSX_A11Y_CORRECTNESS = {\n \"jsx-a11y/alt-text\": \"error\",\n \"jsx-a11y/anchor-has-content\": \"error\",\n \"jsx-a11y/anchor-is-valid\": \"error\",\n \"jsx-a11y/aria-props\": \"error\",\n \"jsx-a11y/aria-proptypes\": \"error\",\n \"jsx-a11y/aria-unsupported-elements\": \"error\",\n \"jsx-a11y/click-events-have-key-events\": \"error\",\n \"jsx-a11y/heading-has-content\": \"error\",\n \"jsx-a11y/html-has-lang\": \"error\",\n \"jsx-a11y/iframe-has-title\": \"error\",\n \"jsx-a11y/lang\": \"error\",\n \"jsx-a11y/mouse-events-have-key-events\": \"error\",\n \"jsx-a11y/no-aria-hidden-on-focusable\": \"error\",\n \"jsx-a11y/prefer-tag-over-role\": \"error\",\n \"jsx-a11y/tabindex-no-positive\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_JSX_A11Y = {\n ...RULES_JSX_A11Y_CORRECTNESS,\n} as const satisfies LintRules;\n\nexport { RULES_JSX_A11Y, RULES_JSX_A11Y_CORRECTNESS };\n"],"mappings":";AAEA,MAAM,6BAA6B;CAC/B,qBAAqB;CACrB,+BAA+B;CAC/B,4BAA4B;CAC5B,uBAAuB;CACvB,2BAA2B;CAC3B,sCAAsC;CACtC,yCAAyC;CACzC,gCAAgC;CAChC,0BAA0B;CAC1B,6BAA6B;CAC7B,iBAAiB;CACjB,yCAAyC;CACzC,wCAAwC;CACxC,iCAAiC;CACjC,iCAAiC;AACrC;AAEA,MAAM,iBAAiB,EACnB,GAAG,2BACP"}
1
+ {"version":3,"file":"jsx-a11y.js","names":[],"sources":["../../../../src/presets/jsx/rules/jsx-a11y.ts"],"sourcesContent":["import type { LintRules } from \"#/@types/oxlint\";\n\nconst RULES_JSX_A11Y_CORRECTNESS = {\n \"jsx-a11y/alt-text\": \"error\",\n \"jsx-a11y/anchor-has-content\": \"error\",\n \"jsx-a11y/anchor-is-valid\": \"error\",\n \"jsx-a11y/aria-props\": \"error\",\n \"jsx-a11y/aria-proptypes\": \"error\",\n \"jsx-a11y/aria-unsupported-elements\": \"error\",\n \"jsx-a11y/click-events-have-key-events\": \"error\",\n \"jsx-a11y/heading-has-content\": \"error\",\n \"jsx-a11y/html-has-lang\": \"error\",\n \"jsx-a11y/iframe-has-title\": \"error\",\n \"jsx-a11y/interactive-supports-focus\": \"error\",\n \"jsx-a11y/lang\": \"error\",\n \"jsx-a11y/mouse-events-have-key-events\": \"error\",\n \"jsx-a11y/no-aria-hidden-on-focusable\": \"error\",\n \"jsx-a11y/no-interactive-element-to-noninteractive-role\": \"error\",\n \"jsx-a11y/no-noninteractive-element-interactions\": \"error\",\n \"jsx-a11y/no-noninteractive-element-to-interactive-role\": \"error\",\n \"jsx-a11y/no-static-element-interactions\": [\n \"error\",\n {\n allowExpressionValues: true,\n handlers: [\n \"onClick\",\n // key\n \"onKeyPress\",\n \"onKeyDown\",\n \"onKeyUp\",\n // mouse\n \"onMouseDown\",\n \"onMouseUp\",\n ],\n },\n ],\n \"jsx-a11y/prefer-tag-over-role\": \"error\",\n \"jsx-a11y/tabindex-no-positive\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_JSX_A11Y = {\n ...RULES_JSX_A11Y_CORRECTNESS,\n} as const satisfies LintRules;\n\nexport { RULES_JSX_A11Y, RULES_JSX_A11Y_CORRECTNESS };\n"],"mappings":";AAEA,MAAM,6BAA6B;CAC/B,qBAAqB;CACrB,+BAA+B;CAC/B,4BAA4B;CAC5B,uBAAuB;CACvB,2BAA2B;CAC3B,sCAAsC;CACtC,yCAAyC;CACzC,gCAAgC;CAChC,0BAA0B;CAC1B,6BAA6B;CAC7B,uCAAuC;CACvC,iBAAiB;CACjB,yCAAyC;CACzC,wCAAwC;CACxC,0DAA0D;CAC1D,mDAAmD;CACnD,0DAA0D;CAC1D,2CAA2C,CACvC,SACA;EACI,uBAAuB;EACvB,UAAU;GACN;GAEA;GACA;GACA;GAEA;GACA;EACJ;CACJ,CACJ;CACA,iCAAiC;CACjC,iCAAiC;AACrC;AAEA,MAAM,iBAAiB,EACnB,GAAG,2BACP"}
@@ -9,9 +9,24 @@ const RULES_JSX_A11Y_CORRECTNESS = {
9
9
  "jsx-a11y/heading-has-content": "error",
10
10
  "jsx-a11y/html-has-lang": "error",
11
11
  "jsx-a11y/iframe-has-title": "error",
12
+ "jsx-a11y/interactive-supports-focus": "error",
12
13
  "jsx-a11y/lang": "error",
13
14
  "jsx-a11y/mouse-events-have-key-events": "error",
14
15
  "jsx-a11y/no-aria-hidden-on-focusable": "error",
16
+ "jsx-a11y/no-interactive-element-to-noninteractive-role": "error",
17
+ "jsx-a11y/no-noninteractive-element-interactions": "error",
18
+ "jsx-a11y/no-noninteractive-element-to-interactive-role": "error",
19
+ "jsx-a11y/no-static-element-interactions": ["error", {
20
+ allowExpressionValues: true,
21
+ handlers: [
22
+ "onClick",
23
+ "onKeyPress",
24
+ "onKeyDown",
25
+ "onKeyUp",
26
+ "onMouseDown",
27
+ "onMouseUp"
28
+ ]
29
+ }],
15
30
  "jsx-a11y/prefer-tag-over-role": "error",
16
31
  "jsx-a11y/tabindex-no-positive": "error"
17
32
  };
@@ -1 +1 @@
1
- {"version":3,"file":"jsx-a11y.mjs","names":[],"sources":["../../../../src/presets/jsx/rules/jsx-a11y.ts"],"sourcesContent":["import type { LintRules } from \"#/@types/oxlint\";\n\nconst RULES_JSX_A11Y_CORRECTNESS = {\n \"jsx-a11y/alt-text\": \"error\",\n \"jsx-a11y/anchor-has-content\": \"error\",\n \"jsx-a11y/anchor-is-valid\": \"error\",\n \"jsx-a11y/aria-props\": \"error\",\n \"jsx-a11y/aria-proptypes\": \"error\",\n \"jsx-a11y/aria-unsupported-elements\": \"error\",\n \"jsx-a11y/click-events-have-key-events\": \"error\",\n \"jsx-a11y/heading-has-content\": \"error\",\n \"jsx-a11y/html-has-lang\": \"error\",\n \"jsx-a11y/iframe-has-title\": \"error\",\n \"jsx-a11y/lang\": \"error\",\n \"jsx-a11y/mouse-events-have-key-events\": \"error\",\n \"jsx-a11y/no-aria-hidden-on-focusable\": \"error\",\n \"jsx-a11y/prefer-tag-over-role\": \"error\",\n \"jsx-a11y/tabindex-no-positive\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_JSX_A11Y = {\n ...RULES_JSX_A11Y_CORRECTNESS,\n} as const satisfies LintRules;\n\nexport { RULES_JSX_A11Y, RULES_JSX_A11Y_CORRECTNESS };\n"],"mappings":"AAEA,MAAM,6BAA6B;CAC/B,qBAAqB;CACrB,+BAA+B;CAC/B,4BAA4B;CAC5B,uBAAuB;CACvB,2BAA2B;CAC3B,sCAAsC;CACtC,yCAAyC;CACzC,gCAAgC;CAChC,0BAA0B;CAC1B,6BAA6B;CAC7B,iBAAiB;CACjB,yCAAyC;CACzC,wCAAwC;CACxC,iCAAiC;CACjC,iCAAiC;AACrC;AAEA,MAAM,iBAAiB,EACnB,GAAG,2BACP"}
1
+ {"version":3,"file":"jsx-a11y.mjs","names":[],"sources":["../../../../src/presets/jsx/rules/jsx-a11y.ts"],"sourcesContent":["import type { LintRules } from \"#/@types/oxlint\";\n\nconst RULES_JSX_A11Y_CORRECTNESS = {\n \"jsx-a11y/alt-text\": \"error\",\n \"jsx-a11y/anchor-has-content\": \"error\",\n \"jsx-a11y/anchor-is-valid\": \"error\",\n \"jsx-a11y/aria-props\": \"error\",\n \"jsx-a11y/aria-proptypes\": \"error\",\n \"jsx-a11y/aria-unsupported-elements\": \"error\",\n \"jsx-a11y/click-events-have-key-events\": \"error\",\n \"jsx-a11y/heading-has-content\": \"error\",\n \"jsx-a11y/html-has-lang\": \"error\",\n \"jsx-a11y/iframe-has-title\": \"error\",\n \"jsx-a11y/interactive-supports-focus\": \"error\",\n \"jsx-a11y/lang\": \"error\",\n \"jsx-a11y/mouse-events-have-key-events\": \"error\",\n \"jsx-a11y/no-aria-hidden-on-focusable\": \"error\",\n \"jsx-a11y/no-interactive-element-to-noninteractive-role\": \"error\",\n \"jsx-a11y/no-noninteractive-element-interactions\": \"error\",\n \"jsx-a11y/no-noninteractive-element-to-interactive-role\": \"error\",\n \"jsx-a11y/no-static-element-interactions\": [\n \"error\",\n {\n allowExpressionValues: true,\n handlers: [\n \"onClick\",\n // key\n \"onKeyPress\",\n \"onKeyDown\",\n \"onKeyUp\",\n // mouse\n \"onMouseDown\",\n \"onMouseUp\",\n ],\n },\n ],\n \"jsx-a11y/prefer-tag-over-role\": \"error\",\n \"jsx-a11y/tabindex-no-positive\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_JSX_A11Y = {\n ...RULES_JSX_A11Y_CORRECTNESS,\n} as const satisfies LintRules;\n\nexport { RULES_JSX_A11Y, RULES_JSX_A11Y_CORRECTNESS };\n"],"mappings":"AAEA,MAAM,6BAA6B;CAC/B,qBAAqB;CACrB,+BAA+B;CAC/B,4BAA4B;CAC5B,uBAAuB;CACvB,2BAA2B;CAC3B,sCAAsC;CACtC,yCAAyC;CACzC,gCAAgC;CAChC,0BAA0B;CAC1B,6BAA6B;CAC7B,uCAAuC;CACvC,iBAAiB;CACjB,yCAAyC;CACzC,wCAAwC;CACxC,0DAA0D;CAC1D,mDAAmD;CACnD,0DAA0D;CAC1D,2CAA2C,CACvC,SACA;EACI,uBAAuB;EACvB,UAAU;GACN;GAEA;GACA;GACA;GAEA;GACA;EACJ;CACJ,CACJ;CACA,iCAAiC;CACjC,iCAAiC;AACrC;AAEA,MAAM,iBAAiB,EACnB,GAAG,2BACP"}
@@ -13,6 +13,7 @@ const RULES_NEXTJS = {
13
13
  "nextjs/no-head-element": "error",
14
14
  "nextjs/no-head-import-in-document": "error",
15
15
  "nextjs/no-html-link-for-pages": "error",
16
+ "nextjs/no-img-element": "allow",
16
17
  "nextjs/no-page-custom-font": "error",
17
18
  "nextjs/no-script-component-in-head": "error",
18
19
  "nextjs/no-styled-jsx-in-document": "error",
@@ -1 +1 @@
1
- {"version":3,"file":"nextjs.js","names":[],"sources":["../../../../src/presets/next/rules/nextjs.ts"],"sourcesContent":["import type { LintRules } from \"#/@types/oxlint\";\n\nconst RULES_NEXTJS_CORRECTNESS = {\n \"nextjs/google-font-display\": \"error\",\n \"nextjs/google-font-preconnect\": \"error\",\n \"nextjs/inline-script-id\": \"error\",\n \"nextjs/next-script-for-ga\": \"error\",\n \"nextjs/no-assign-module-variable\": \"error\",\n \"nextjs/no-async-client-component\": \"error\",\n \"nextjs/no-before-interactive-script-outside-document\": \"error\",\n \"nextjs/no-css-tags\": \"error\",\n \"nextjs/no-document-import-in-page\": \"error\",\n \"nextjs/no-duplicate-head\": \"error\",\n \"nextjs/no-head-element\": \"error\",\n \"nextjs/no-head-import-in-document\": \"error\",\n \"nextjs/no-html-link-for-pages\": \"error\",\n \"nextjs/no-page-custom-font\": \"error\",\n \"nextjs/no-script-component-in-head\": \"error\",\n \"nextjs/no-styled-jsx-in-document\": \"error\",\n \"nextjs/no-sync-scripts\": \"error\",\n \"nextjs/no-title-in-document-head\": \"error\",\n \"nextjs/no-typos\": \"error\",\n \"nextjs/no-unwanted-polyfillio\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_NEXTJS = {\n ...RULES_NEXTJS_CORRECTNESS,\n} as const satisfies LintRules;\n\nexport { RULES_NEXTJS };\n"],"mappings":";AAyBA,MAAM,eAAe;CAtBjB,8BAA8B;CAC9B,iCAAiC;CACjC,2BAA2B;CAC3B,6BAA6B;CAC7B,oCAAoC;CACpC,oCAAoC;CACpC,wDAAwD;CACxD,sBAAsB;CACtB,qCAAqC;CACrC,4BAA4B;CAC5B,0BAA0B;CAC1B,qCAAqC;CACrC,iCAAiC;CACjC,8BAA8B;CAC9B,sCAAsC;CACtC,oCAAoC;CACpC,0BAA0B;CAC1B,oCAAoC;CACpC,mBAAmB;CACnB,iCAAiC;AAKrC"}
1
+ {"version":3,"file":"nextjs.js","names":[],"sources":["../../../../src/presets/next/rules/nextjs.ts"],"sourcesContent":["import type { LintRules } from \"#/@types/oxlint\";\n\nconst RULES_NEXTJS_CORRECTNESS = {\n \"nextjs/google-font-display\": \"error\",\n \"nextjs/google-font-preconnect\": \"error\",\n \"nextjs/inline-script-id\": \"error\",\n \"nextjs/next-script-for-ga\": \"error\",\n \"nextjs/no-assign-module-variable\": \"error\",\n \"nextjs/no-async-client-component\": \"error\",\n \"nextjs/no-before-interactive-script-outside-document\": \"error\",\n \"nextjs/no-css-tags\": \"error\",\n \"nextjs/no-document-import-in-page\": \"error\",\n \"nextjs/no-duplicate-head\": \"error\",\n \"nextjs/no-head-element\": \"error\",\n \"nextjs/no-head-import-in-document\": \"error\",\n \"nextjs/no-html-link-for-pages\": \"error\",\n \"nextjs/no-img-element\": \"allow\",\n \"nextjs/no-page-custom-font\": \"error\",\n \"nextjs/no-script-component-in-head\": \"error\",\n \"nextjs/no-styled-jsx-in-document\": \"error\",\n \"nextjs/no-sync-scripts\": \"error\",\n \"nextjs/no-title-in-document-head\": \"error\",\n \"nextjs/no-typos\": \"error\",\n \"nextjs/no-unwanted-polyfillio\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_NEXTJS = {\n ...RULES_NEXTJS_CORRECTNESS,\n} as const satisfies LintRules;\n\nexport { RULES_NEXTJS };\n"],"mappings":";AA0BA,MAAM,eAAe;CAvBjB,8BAA8B;CAC9B,iCAAiC;CACjC,2BAA2B;CAC3B,6BAA6B;CAC7B,oCAAoC;CACpC,oCAAoC;CACpC,wDAAwD;CACxD,sBAAsB;CACtB,qCAAqC;CACrC,4BAA4B;CAC5B,0BAA0B;CAC1B,qCAAqC;CACrC,iCAAiC;CACjC,yBAAyB;CACzB,8BAA8B;CAC9B,sCAAsC;CACtC,oCAAoC;CACpC,0BAA0B;CAC1B,oCAAoC;CACpC,mBAAmB;CACnB,iCAAiC;AAKrC"}
@@ -12,6 +12,7 @@ const RULES_NEXTJS = {
12
12
  "nextjs/no-head-element": "error",
13
13
  "nextjs/no-head-import-in-document": "error",
14
14
  "nextjs/no-html-link-for-pages": "error",
15
+ "nextjs/no-img-element": "allow",
15
16
  "nextjs/no-page-custom-font": "error",
16
17
  "nextjs/no-script-component-in-head": "error",
17
18
  "nextjs/no-styled-jsx-in-document": "error",
@@ -1 +1 @@
1
- {"version":3,"file":"nextjs.mjs","names":[],"sources":["../../../../src/presets/next/rules/nextjs.ts"],"sourcesContent":["import type { LintRules } from \"#/@types/oxlint\";\n\nconst RULES_NEXTJS_CORRECTNESS = {\n \"nextjs/google-font-display\": \"error\",\n \"nextjs/google-font-preconnect\": \"error\",\n \"nextjs/inline-script-id\": \"error\",\n \"nextjs/next-script-for-ga\": \"error\",\n \"nextjs/no-assign-module-variable\": \"error\",\n \"nextjs/no-async-client-component\": \"error\",\n \"nextjs/no-before-interactive-script-outside-document\": \"error\",\n \"nextjs/no-css-tags\": \"error\",\n \"nextjs/no-document-import-in-page\": \"error\",\n \"nextjs/no-duplicate-head\": \"error\",\n \"nextjs/no-head-element\": \"error\",\n \"nextjs/no-head-import-in-document\": \"error\",\n \"nextjs/no-html-link-for-pages\": \"error\",\n \"nextjs/no-page-custom-font\": \"error\",\n \"nextjs/no-script-component-in-head\": \"error\",\n \"nextjs/no-styled-jsx-in-document\": \"error\",\n \"nextjs/no-sync-scripts\": \"error\",\n \"nextjs/no-title-in-document-head\": \"error\",\n \"nextjs/no-typos\": \"error\",\n \"nextjs/no-unwanted-polyfillio\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_NEXTJS = {\n ...RULES_NEXTJS_CORRECTNESS,\n} as const satisfies LintRules;\n\nexport { RULES_NEXTJS };\n"],"mappings":"AAyBA,MAAM,eAAe;CAtBjB,8BAA8B;CAC9B,iCAAiC;CACjC,2BAA2B;CAC3B,6BAA6B;CAC7B,oCAAoC;CACpC,oCAAoC;CACpC,wDAAwD;CACxD,sBAAsB;CACtB,qCAAqC;CACrC,4BAA4B;CAC5B,0BAA0B;CAC1B,qCAAqC;CACrC,iCAAiC;CACjC,8BAA8B;CAC9B,sCAAsC;CACtC,oCAAoC;CACpC,0BAA0B;CAC1B,oCAAoC;CACpC,mBAAmB;CACnB,iCAAiC;AAKrC"}
1
+ {"version":3,"file":"nextjs.mjs","names":[],"sources":["../../../../src/presets/next/rules/nextjs.ts"],"sourcesContent":["import type { LintRules } from \"#/@types/oxlint\";\n\nconst RULES_NEXTJS_CORRECTNESS = {\n \"nextjs/google-font-display\": \"error\",\n \"nextjs/google-font-preconnect\": \"error\",\n \"nextjs/inline-script-id\": \"error\",\n \"nextjs/next-script-for-ga\": \"error\",\n \"nextjs/no-assign-module-variable\": \"error\",\n \"nextjs/no-async-client-component\": \"error\",\n \"nextjs/no-before-interactive-script-outside-document\": \"error\",\n \"nextjs/no-css-tags\": \"error\",\n \"nextjs/no-document-import-in-page\": \"error\",\n \"nextjs/no-duplicate-head\": \"error\",\n \"nextjs/no-head-element\": \"error\",\n \"nextjs/no-head-import-in-document\": \"error\",\n \"nextjs/no-html-link-for-pages\": \"error\",\n \"nextjs/no-img-element\": \"allow\",\n \"nextjs/no-page-custom-font\": \"error\",\n \"nextjs/no-script-component-in-head\": \"error\",\n \"nextjs/no-styled-jsx-in-document\": \"error\",\n \"nextjs/no-sync-scripts\": \"error\",\n \"nextjs/no-title-in-document-head\": \"error\",\n \"nextjs/no-typos\": \"error\",\n \"nextjs/no-unwanted-polyfillio\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_NEXTJS = {\n ...RULES_NEXTJS_CORRECTNESS,\n} as const satisfies LintRules;\n\nexport { RULES_NEXTJS };\n"],"mappings":"AA0BA,MAAM,eAAe;CAvBjB,8BAA8B;CAC9B,iCAAiC;CACjC,2BAA2B;CAC3B,6BAA6B;CAC7B,oCAAoC;CACpC,oCAAoC;CACpC,wDAAwD;CACxD,sBAAsB;CACtB,qCAAqC;CACrC,4BAA4B;CAC5B,0BAA0B;CAC1B,qCAAqC;CACrC,iCAAiC;CACjC,yBAAyB;CACzB,8BAA8B;CAC9B,sCAAsC;CACtC,oCAAoC;CACpC,0BAA0B;CAC1B,oCAAoC;CACpC,mBAAmB;CACnB,iCAAiC;AAKrC"}
@@ -1,4 +1,4 @@
1
1
  import { PLUGIN_REACT } from "./plugin/index.js";
2
2
  import { reactPreset } from "./preset/index.js";
3
- import { RULES_REACT, RULES_REACT_CORRECTNESS, RULES_REACT_PEDANTIC, RULES_REACT_PERF, RULES_REACT_RESTRICTION, RULES_REACT_STYLE, RULES_REACT_SUSPICIOUS } from "./rules/react.js";
4
- export { PLUGIN_REACT, RULES_REACT, RULES_REACT_CORRECTNESS, RULES_REACT_PEDANTIC, RULES_REACT_PERF, RULES_REACT_RESTRICTION, RULES_REACT_STYLE, RULES_REACT_SUSPICIOUS, reactPreset };
3
+ import { RULES_REACT, RULES_REACT_CORRECTNESS, RULES_REACT_NURSERY, RULES_REACT_PEDANTIC, RULES_REACT_PERF, RULES_REACT_RESTRICTION, RULES_REACT_STYLE, RULES_REACT_SUSPICIOUS } from "./rules/react.js";
4
+ export { PLUGIN_REACT, RULES_REACT, RULES_REACT_CORRECTNESS, RULES_REACT_NURSERY, RULES_REACT_PEDANTIC, RULES_REACT_PERF, RULES_REACT_RESTRICTION, RULES_REACT_STYLE, RULES_REACT_SUSPICIOUS, reactPreset };
@@ -6,6 +6,7 @@ const require_index$1 = require('./preset/index.js');
6
6
  exports.PLUGIN_REACT = require_index.PLUGIN_REACT;
7
7
  exports.RULES_REACT = require_react.RULES_REACT;
8
8
  exports.RULES_REACT_CORRECTNESS = require_react.RULES_REACT_CORRECTNESS;
9
+ exports.RULES_REACT_NURSERY = require_react.RULES_REACT_NURSERY;
9
10
  exports.RULES_REACT_PEDANTIC = require_react.RULES_REACT_PEDANTIC;
10
11
  exports.RULES_REACT_PERF = require_react.RULES_REACT_PERF;
11
12
  exports.RULES_REACT_RESTRICTION = require_react.RULES_REACT_RESTRICTION;
@@ -1,5 +1,5 @@
1
1
  import { PLUGIN_REACT } from "./plugin/index.mjs";
2
- import { RULES_REACT, RULES_REACT_CORRECTNESS, RULES_REACT_PEDANTIC, RULES_REACT_PERF, RULES_REACT_RESTRICTION, RULES_REACT_STYLE, RULES_REACT_SUSPICIOUS } from "./rules/react.mjs";
2
+ import { RULES_REACT, RULES_REACT_CORRECTNESS, RULES_REACT_NURSERY, RULES_REACT_PEDANTIC, RULES_REACT_PERF, RULES_REACT_RESTRICTION, RULES_REACT_STYLE, RULES_REACT_SUSPICIOUS } from "./rules/react.mjs";
3
3
  import { reactPreset } from "./preset/index.mjs";
4
4
 
5
- export { PLUGIN_REACT, RULES_REACT, RULES_REACT_CORRECTNESS, RULES_REACT_PEDANTIC, RULES_REACT_PERF, RULES_REACT_RESTRICTION, RULES_REACT_STYLE, RULES_REACT_SUSPICIOUS, reactPreset };
5
+ export { PLUGIN_REACT, RULES_REACT, RULES_REACT_CORRECTNESS, RULES_REACT_NURSERY, RULES_REACT_PEDANTIC, RULES_REACT_PERF, RULES_REACT_RESTRICTION, RULES_REACT_STYLE, RULES_REACT_SUSPICIOUS, reactPreset };
@@ -1,3 +1,6 @@
1
+ /**
2
+ * No lint rules have been configured for class components.
3
+ */
1
4
  declare const RULES_REACT_CORRECTNESS: {
2
5
  readonly "react/exhaustive-deps": "error";
3
6
  readonly "react/forward-ref-uses-ref": "error";
@@ -18,6 +21,9 @@ declare const RULES_REACT_CORRECTNESS: {
18
21
  readonly "react/no-this-in-sfc": "error";
19
22
  readonly "react/void-dom-elements-no-children": "error";
20
23
  };
24
+ declare const RULES_REACT_NURSERY: {
25
+ readonly "react/react-compiler": "error";
26
+ };
21
27
  declare const RULES_REACT_PEDANTIC: {
22
28
  readonly "react/checked-requires-onchange-or-readonly": ["error", {
23
29
  readonly ignoreExclusiveCheckedAttribute: false;
@@ -46,7 +52,16 @@ declare const RULES_REACT_RESTRICTION: {
46
52
  readonly reset: true;
47
53
  readonly submit: true;
48
54
  }];
55
+ readonly "react/jsx-no-literals": ["error", {
56
+ readonly ignoreProps: false;
57
+ readonly noAttributeStrings: true;
58
+ readonly noStrings: true;
59
+ }];
49
60
  readonly "react/no-react-children": "error";
61
+ readonly "react/prefer-function-component": ["error", {
62
+ readonly allowErrorBoundary: true;
63
+ readonly allowJsxUtilityClass: true;
64
+ }];
50
65
  };
51
66
  declare const RULES_REACT_STYLE: {
52
67
  readonly "react/jsx-boolean-value": ["error", "never"];
@@ -66,11 +81,17 @@ declare const RULES_REACT_SUSPICIOUS: {
66
81
  readonly "react/iframe-missing-sandbox": "error";
67
82
  readonly "react/jsx-no-comment-textnodes": "error";
68
83
  readonly "react/no-namespace": "error";
84
+ readonly "react/no-unstable-nested-components": ["error", {
85
+ readonly allowAsProps: true;
86
+ }];
69
87
  };
70
88
  declare const RULES_REACT: {
71
89
  readonly "react/iframe-missing-sandbox": "error";
72
90
  readonly "react/jsx-no-comment-textnodes": "error";
73
91
  readonly "react/no-namespace": "error";
92
+ readonly "react/no-unstable-nested-components": ["error", {
93
+ readonly allowAsProps: true;
94
+ }];
74
95
  readonly "react/jsx-boolean-value": ["error", "never"];
75
96
  readonly "react/jsx-curly-brace-presence": ["error", "always"];
76
97
  readonly "react/jsx-fragments": ["error", "syntax"];
@@ -88,7 +109,16 @@ declare const RULES_REACT: {
88
109
  readonly reset: true;
89
110
  readonly submit: true;
90
111
  }];
112
+ readonly "react/jsx-no-literals": ["error", {
113
+ readonly ignoreProps: false;
114
+ readonly noAttributeStrings: true;
115
+ readonly noStrings: true;
116
+ }];
91
117
  readonly "react/no-react-children": "error";
118
+ readonly "react/prefer-function-component": ["error", {
119
+ readonly allowErrorBoundary: true;
120
+ readonly allowJsxUtilityClass: true;
121
+ }];
92
122
  readonly "react/jsx-no-constructed-context-values": "error";
93
123
  readonly "react/no-array-index-key": "error";
94
124
  readonly "react/checked-requires-onchange-or-readonly": ["error", {
@@ -107,6 +137,7 @@ declare const RULES_REACT: {
107
137
  }];
108
138
  readonly "react/no-unescaped-entities": "error";
109
139
  readonly "react/rules-of-hooks": "error";
140
+ readonly "react/react-compiler": "error";
110
141
  readonly "react/exhaustive-deps": "error";
111
142
  readonly "react/forward-ref-uses-ref": "error";
112
143
  readonly "react/jsx-key": ["error", {
@@ -126,5 +157,5 @@ declare const RULES_REACT: {
126
157
  readonly "react/no-this-in-sfc": "error";
127
158
  readonly "react/void-dom-elements-no-children": "error";
128
159
  };
129
- export { RULES_REACT, RULES_REACT_CORRECTNESS, RULES_REACT_PEDANTIC, RULES_REACT_PERF, RULES_REACT_RESTRICTION, RULES_REACT_STYLE, RULES_REACT_SUSPICIOUS };
160
+ export { RULES_REACT, RULES_REACT_CORRECTNESS, RULES_REACT_NURSERY, RULES_REACT_PEDANTIC, RULES_REACT_PERF, RULES_REACT_RESTRICTION, RULES_REACT_STYLE, RULES_REACT_SUSPICIOUS };
130
161
  //# sourceMappingURL=react.d.ts.map
@@ -17,6 +17,7 @@ const RULES_REACT_CORRECTNESS = {
17
17
  "react/no-this-in-sfc": "error",
18
18
  "react/void-dom-elements-no-children": "error"
19
19
  };
20
+ const RULES_REACT_NURSERY = { "react/react-compiler": "error" };
20
21
  const RULES_REACT_PEDANTIC = {
21
22
  "react/checked-requires-onchange-or-readonly": ["error", {
22
23
  ignoreExclusiveCheckedAttribute: false,
@@ -43,7 +44,16 @@ const RULES_REACT_RESTRICTION = {
43
44
  reset: true,
44
45
  submit: true
45
46
  }],
46
- "react/no-react-children": "error"
47
+ "react/jsx-no-literals": ["error", {
48
+ ignoreProps: false,
49
+ noAttributeStrings: true,
50
+ noStrings: true
51
+ }],
52
+ "react/no-react-children": "error",
53
+ "react/prefer-function-component": ["error", {
54
+ allowErrorBoundary: true,
55
+ allowJsxUtilityClass: true
56
+ }]
47
57
  };
48
58
  const RULES_REACT_STYLE = {
49
59
  "react/jsx-boolean-value": ["error", "never"],
@@ -62,10 +72,12 @@ const RULES_REACT_STYLE = {
62
72
  const RULES_REACT_SUSPICIOUS = {
63
73
  "react/iframe-missing-sandbox": "error",
64
74
  "react/jsx-no-comment-textnodes": "error",
65
- "react/no-namespace": "error"
75
+ "react/no-namespace": "error",
76
+ "react/no-unstable-nested-components": ["error", { allowAsProps: true }]
66
77
  };
67
78
  const RULES_REACT = {
68
79
  ...RULES_REACT_CORRECTNESS,
80
+ ...RULES_REACT_NURSERY,
69
81
  ...RULES_REACT_PEDANTIC,
70
82
  ...RULES_REACT_PERF,
71
83
  ...RULES_REACT_RESTRICTION,
@@ -75,6 +87,7 @@ const RULES_REACT = {
75
87
 
76
88
  exports.RULES_REACT = RULES_REACT;
77
89
  exports.RULES_REACT_CORRECTNESS = RULES_REACT_CORRECTNESS;
90
+ exports.RULES_REACT_NURSERY = RULES_REACT_NURSERY;
78
91
  exports.RULES_REACT_PEDANTIC = RULES_REACT_PEDANTIC;
79
92
  exports.RULES_REACT_PERF = RULES_REACT_PERF;
80
93
  exports.RULES_REACT_RESTRICTION = RULES_REACT_RESTRICTION;
@@ -1 +1 @@
1
- {"version":3,"file":"react.js","names":[],"sources":["../../../../src/presets/react/rules/react.ts"],"sourcesContent":["import type { LintRules } from \"#/@types/oxlint\";\n\nconst RULES_REACT_CORRECTNESS = {\n \"react/exhaustive-deps\": \"error\",\n \"react/forward-ref-uses-ref\": \"error\",\n \"react/jsx-key\": [\n \"error\",\n {\n checkFragmentShorthand: true,\n checkKeyMustBeforeSpread: false,\n warnOnDuplicates: true,\n },\n ],\n \"react/jsx-no-duplicate-props\": \"error\",\n \"react/jsx-no-undef\": \"error\",\n \"react/jsx-props-no-spread-multi\": \"error\",\n \"react/no-children-prop\": \"error\",\n \"react/no-danger-with-children\": \"error\",\n \"react/no-render-return-value\": \"error\",\n \"react/no-string-refs\": [\n \"error\",\n {\n noTemplateLiterals: true,\n },\n ],\n \"react/no-this-in-sfc\": \"error\",\n \"react/void-dom-elements-no-children\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_REACT_PEDANTIC = {\n \"react/checked-requires-onchange-or-readonly\": [\n \"error\",\n {\n ignoreExclusiveCheckedAttribute: false,\n ignoreMissingProperties: false,\n },\n ],\n \"react/jsx-no-target-blank\": [\n \"error\",\n {\n allowReferrer: false,\n enforceDynamicLinks: \"always\",\n forms: true,\n links: true,\n warnOnSpreadAttributes: false,\n },\n ],\n \"react/jsx-no-useless-fragment\": [\n \"error\",\n {\n allowExpressions: true,\n },\n ],\n \"react/no-unescaped-entities\": \"error\",\n \"react/rules-of-hooks\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_REACT_PERF = {\n \"react/jsx-no-constructed-context-values\": \"error\",\n \"react/no-array-index-key\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_REACT_RESTRICTION = {\n \"react/button-has-type\": [\n \"error\",\n {\n button: true,\n reset: true,\n submit: true,\n },\n ],\n \"react/no-react-children\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_REACT_STYLE = {\n \"react/jsx-boolean-value\": [\n \"error\",\n \"never\",\n ],\n \"react/jsx-curly-brace-presence\": [\n \"error\",\n \"always\",\n ],\n \"react/jsx-fragments\": [\n \"error\",\n \"syntax\",\n ],\n \"react/jsx-pascal-case\": [\n \"error\",\n {\n allowAllCaps: false,\n allowLeadingUnderscore: false,\n allowNamespace: true,\n },\n ],\n \"react/self-closing-comp\": [\n \"error\",\n {\n component: true,\n html: true,\n },\n ],\n} as const satisfies LintRules;\n\nconst RULES_REACT_SUSPICIOUS = {\n \"react/iframe-missing-sandbox\": \"error\",\n \"react/jsx-no-comment-textnodes\": \"error\",\n \"react/no-namespace\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_REACT = {\n ...RULES_REACT_CORRECTNESS,\n ...RULES_REACT_PEDANTIC,\n ...RULES_REACT_PERF,\n ...RULES_REACT_RESTRICTION,\n ...RULES_REACT_STYLE,\n ...RULES_REACT_SUSPICIOUS,\n} as const satisfies LintRules;\n\nexport {\n RULES_REACT,\n RULES_REACT_CORRECTNESS,\n RULES_REACT_PEDANTIC,\n RULES_REACT_PERF,\n RULES_REACT_RESTRICTION,\n RULES_REACT_STYLE,\n RULES_REACT_SUSPICIOUS,\n};\n"],"mappings":";AAEA,MAAM,0BAA0B;CAC5B,yBAAyB;CACzB,8BAA8B;CAC9B,iBAAiB,CACb,SACA;EACI,wBAAwB;EACxB,0BAA0B;EAC1B,kBAAkB;CACtB,CACJ;CACA,gCAAgC;CAChC,sBAAsB;CACtB,mCAAmC;CACnC,0BAA0B;CAC1B,iCAAiC;CACjC,gCAAgC;CAChC,wBAAwB,CACpB,SACA,EACI,oBAAoB,KACxB,CACJ;CACA,wBAAwB;CACxB,uCAAuC;AAC3C;AAEA,MAAM,uBAAuB;CACzB,+CAA+C,CAC3C,SACA;EACI,iCAAiC;EACjC,yBAAyB;CAC7B,CACJ;CACA,6BAA6B,CACzB,SACA;EACI,eAAe;EACf,qBAAqB;EACrB,OAAO;EACP,OAAO;EACP,wBAAwB;CAC5B,CACJ;CACA,iCAAiC,CAC7B,SACA,EACI,kBAAkB,KACtB,CACJ;CACA,+BAA+B;CAC/B,wBAAwB;AAC5B;AAEA,MAAM,mBAAmB;CACrB,2CAA2C;CAC3C,4BAA4B;AAChC;AAEA,MAAM,0BAA0B;CAC5B,yBAAyB,CACrB,SACA;EACI,QAAQ;EACR,OAAO;EACP,QAAQ;CACZ,CACJ;CACA,2BAA2B;AAC/B;AAEA,MAAM,oBAAoB;CACtB,2BAA2B,CACvB,SACA,OACJ;CACA,kCAAkC,CAC9B,SACA,QACJ;CACA,uBAAuB,CACnB,SACA,QACJ;CACA,yBAAyB,CACrB,SACA;EACI,cAAc;EACd,wBAAwB;EACxB,gBAAgB;CACpB,CACJ;CACA,2BAA2B,CACvB,SACA;EACI,WAAW;EACX,MAAM;CACV,CACJ;AACJ;AAEA,MAAM,yBAAyB;CAC3B,gCAAgC;CAChC,kCAAkC;CAClC,sBAAsB;AAC1B;AAEA,MAAM,cAAc;CAChB,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;AACP"}
1
+ {"version":3,"file":"react.js","names":[],"sources":["../../../../src/presets/react/rules/react.ts"],"sourcesContent":["/**\n * No lint rules have been configured for class components.\n */\n\nimport type { LintRules } from \"#/@types/oxlint\";\n\nconst RULES_REACT_CORRECTNESS = {\n \"react/exhaustive-deps\": \"error\",\n \"react/forward-ref-uses-ref\": \"error\",\n \"react/jsx-key\": [\n \"error\",\n {\n checkFragmentShorthand: true,\n checkKeyMustBeforeSpread: false,\n warnOnDuplicates: true,\n },\n ],\n \"react/jsx-no-duplicate-props\": \"error\",\n \"react/jsx-no-undef\": \"error\",\n \"react/jsx-props-no-spread-multi\": \"error\",\n \"react/no-children-prop\": \"error\",\n \"react/no-danger-with-children\": \"error\",\n \"react/no-render-return-value\": \"error\",\n \"react/no-string-refs\": [\n \"error\",\n {\n noTemplateLiterals: true,\n },\n ],\n \"react/no-this-in-sfc\": \"error\",\n \"react/void-dom-elements-no-children\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_REACT_NURSERY = {\n \"react/react-compiler\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_REACT_PEDANTIC = {\n \"react/checked-requires-onchange-or-readonly\": [\n \"error\",\n {\n ignoreExclusiveCheckedAttribute: false,\n ignoreMissingProperties: false,\n },\n ],\n \"react/jsx-no-target-blank\": [\n \"error\",\n {\n allowReferrer: false,\n enforceDynamicLinks: \"always\",\n forms: true,\n links: true,\n warnOnSpreadAttributes: false,\n },\n ],\n \"react/jsx-no-useless-fragment\": [\n \"error\",\n {\n allowExpressions: true,\n },\n ],\n \"react/no-unescaped-entities\": \"error\",\n \"react/rules-of-hooks\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_REACT_PERF = {\n \"react/jsx-no-constructed-context-values\": \"error\",\n \"react/no-array-index-key\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_REACT_RESTRICTION = {\n \"react/button-has-type\": [\n \"error\",\n {\n button: true,\n reset: true,\n submit: true,\n },\n ],\n \"react/jsx-no-literals\": [\n \"error\",\n {\n ignoreProps: false,\n noAttributeStrings: true,\n noStrings: true,\n },\n ],\n \"react/no-react-children\": \"error\",\n \"react/prefer-function-component\": [\n \"error\",\n {\n allowErrorBoundary: true,\n allowJsxUtilityClass: true,\n },\n ],\n} as const satisfies LintRules;\n\nconst RULES_REACT_STYLE = {\n \"react/jsx-boolean-value\": [\n \"error\",\n \"never\",\n ],\n \"react/jsx-curly-brace-presence\": [\n \"error\",\n \"always\",\n ],\n \"react/jsx-fragments\": [\n \"error\",\n \"syntax\",\n ],\n \"react/jsx-pascal-case\": [\n \"error\",\n {\n allowAllCaps: false,\n allowLeadingUnderscore: false,\n allowNamespace: true,\n },\n ],\n \"react/self-closing-comp\": [\n \"error\",\n {\n component: true,\n html: true,\n },\n ],\n} as const satisfies LintRules;\n\nconst RULES_REACT_SUSPICIOUS = {\n \"react/iframe-missing-sandbox\": \"error\",\n \"react/jsx-no-comment-textnodes\": \"error\",\n \"react/no-namespace\": \"error\",\n \"react/no-unstable-nested-components\": [\n \"error\",\n {\n allowAsProps: true,\n },\n ],\n} as const satisfies LintRules;\n\nconst RULES_REACT = {\n ...RULES_REACT_CORRECTNESS,\n ...RULES_REACT_NURSERY,\n ...RULES_REACT_PEDANTIC,\n ...RULES_REACT_PERF,\n ...RULES_REACT_RESTRICTION,\n ...RULES_REACT_STYLE,\n ...RULES_REACT_SUSPICIOUS,\n} as const satisfies LintRules;\n\nexport {\n RULES_REACT,\n RULES_REACT_CORRECTNESS,\n RULES_REACT_NURSERY,\n RULES_REACT_PEDANTIC,\n RULES_REACT_PERF,\n RULES_REACT_RESTRICTION,\n RULES_REACT_STYLE,\n RULES_REACT_SUSPICIOUS,\n};\n"],"mappings":";AAMA,MAAM,0BAA0B;CAC5B,yBAAyB;CACzB,8BAA8B;CAC9B,iBAAiB,CACb,SACA;EACI,wBAAwB;EACxB,0BAA0B;EAC1B,kBAAkB;CACtB,CACJ;CACA,gCAAgC;CAChC,sBAAsB;CACtB,mCAAmC;CACnC,0BAA0B;CAC1B,iCAAiC;CACjC,gCAAgC;CAChC,wBAAwB,CACpB,SACA,EACI,oBAAoB,KACxB,CACJ;CACA,wBAAwB;CACxB,uCAAuC;AAC3C;AAEA,MAAM,sBAAsB,EACxB,wBAAwB,QAC5B;AAEA,MAAM,uBAAuB;CACzB,+CAA+C,CAC3C,SACA;EACI,iCAAiC;EACjC,yBAAyB;CAC7B,CACJ;CACA,6BAA6B,CACzB,SACA;EACI,eAAe;EACf,qBAAqB;EACrB,OAAO;EACP,OAAO;EACP,wBAAwB;CAC5B,CACJ;CACA,iCAAiC,CAC7B,SACA,EACI,kBAAkB,KACtB,CACJ;CACA,+BAA+B;CAC/B,wBAAwB;AAC5B;AAEA,MAAM,mBAAmB;CACrB,2CAA2C;CAC3C,4BAA4B;AAChC;AAEA,MAAM,0BAA0B;CAC5B,yBAAyB,CACrB,SACA;EACI,QAAQ;EACR,OAAO;EACP,QAAQ;CACZ,CACJ;CACA,yBAAyB,CACrB,SACA;EACI,aAAa;EACb,oBAAoB;EACpB,WAAW;CACf,CACJ;CACA,2BAA2B;CAC3B,mCAAmC,CAC/B,SACA;EACI,oBAAoB;EACpB,sBAAsB;CAC1B,CACJ;AACJ;AAEA,MAAM,oBAAoB;CACtB,2BAA2B,CACvB,SACA,OACJ;CACA,kCAAkC,CAC9B,SACA,QACJ;CACA,uBAAuB,CACnB,SACA,QACJ;CACA,yBAAyB,CACrB,SACA;EACI,cAAc;EACd,wBAAwB;EACxB,gBAAgB;CACpB,CACJ;CACA,2BAA2B,CACvB,SACA;EACI,WAAW;EACX,MAAM;CACV,CACJ;AACJ;AAEA,MAAM,yBAAyB;CAC3B,gCAAgC;CAChC,kCAAkC;CAClC,sBAAsB;CACtB,uCAAuC,CACnC,SACA,EACI,cAAc,KAClB,CACJ;AACJ;AAEA,MAAM,cAAc;CAChB,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;AACP"}
@@ -16,6 +16,7 @@ const RULES_REACT_CORRECTNESS = {
16
16
  "react/no-this-in-sfc": "error",
17
17
  "react/void-dom-elements-no-children": "error"
18
18
  };
19
+ const RULES_REACT_NURSERY = { "react/react-compiler": "error" };
19
20
  const RULES_REACT_PEDANTIC = {
20
21
  "react/checked-requires-onchange-or-readonly": ["error", {
21
22
  ignoreExclusiveCheckedAttribute: false,
@@ -42,7 +43,16 @@ const RULES_REACT_RESTRICTION = {
42
43
  reset: true,
43
44
  submit: true
44
45
  }],
45
- "react/no-react-children": "error"
46
+ "react/jsx-no-literals": ["error", {
47
+ ignoreProps: false,
48
+ noAttributeStrings: true,
49
+ noStrings: true
50
+ }],
51
+ "react/no-react-children": "error",
52
+ "react/prefer-function-component": ["error", {
53
+ allowErrorBoundary: true,
54
+ allowJsxUtilityClass: true
55
+ }]
46
56
  };
47
57
  const RULES_REACT_STYLE = {
48
58
  "react/jsx-boolean-value": ["error", "never"],
@@ -61,10 +71,12 @@ const RULES_REACT_STYLE = {
61
71
  const RULES_REACT_SUSPICIOUS = {
62
72
  "react/iframe-missing-sandbox": "error",
63
73
  "react/jsx-no-comment-textnodes": "error",
64
- "react/no-namespace": "error"
74
+ "react/no-namespace": "error",
75
+ "react/no-unstable-nested-components": ["error", { allowAsProps: true }]
65
76
  };
66
77
  const RULES_REACT = {
67
78
  ...RULES_REACT_CORRECTNESS,
79
+ ...RULES_REACT_NURSERY,
68
80
  ...RULES_REACT_PEDANTIC,
69
81
  ...RULES_REACT_PERF,
70
82
  ...RULES_REACT_RESTRICTION,
@@ -72,5 +84,5 @@ const RULES_REACT = {
72
84
  ...RULES_REACT_SUSPICIOUS
73
85
  };
74
86
 
75
- export { RULES_REACT, RULES_REACT_CORRECTNESS, RULES_REACT_PEDANTIC, RULES_REACT_PERF, RULES_REACT_RESTRICTION, RULES_REACT_STYLE, RULES_REACT_SUSPICIOUS };
87
+ export { RULES_REACT, RULES_REACT_CORRECTNESS, RULES_REACT_NURSERY, RULES_REACT_PEDANTIC, RULES_REACT_PERF, RULES_REACT_RESTRICTION, RULES_REACT_STYLE, RULES_REACT_SUSPICIOUS };
76
88
  //# sourceMappingURL=react.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"react.mjs","names":[],"sources":["../../../../src/presets/react/rules/react.ts"],"sourcesContent":["import type { LintRules } from \"#/@types/oxlint\";\n\nconst RULES_REACT_CORRECTNESS = {\n \"react/exhaustive-deps\": \"error\",\n \"react/forward-ref-uses-ref\": \"error\",\n \"react/jsx-key\": [\n \"error\",\n {\n checkFragmentShorthand: true,\n checkKeyMustBeforeSpread: false,\n warnOnDuplicates: true,\n },\n ],\n \"react/jsx-no-duplicate-props\": \"error\",\n \"react/jsx-no-undef\": \"error\",\n \"react/jsx-props-no-spread-multi\": \"error\",\n \"react/no-children-prop\": \"error\",\n \"react/no-danger-with-children\": \"error\",\n \"react/no-render-return-value\": \"error\",\n \"react/no-string-refs\": [\n \"error\",\n {\n noTemplateLiterals: true,\n },\n ],\n \"react/no-this-in-sfc\": \"error\",\n \"react/void-dom-elements-no-children\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_REACT_PEDANTIC = {\n \"react/checked-requires-onchange-or-readonly\": [\n \"error\",\n {\n ignoreExclusiveCheckedAttribute: false,\n ignoreMissingProperties: false,\n },\n ],\n \"react/jsx-no-target-blank\": [\n \"error\",\n {\n allowReferrer: false,\n enforceDynamicLinks: \"always\",\n forms: true,\n links: true,\n warnOnSpreadAttributes: false,\n },\n ],\n \"react/jsx-no-useless-fragment\": [\n \"error\",\n {\n allowExpressions: true,\n },\n ],\n \"react/no-unescaped-entities\": \"error\",\n \"react/rules-of-hooks\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_REACT_PERF = {\n \"react/jsx-no-constructed-context-values\": \"error\",\n \"react/no-array-index-key\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_REACT_RESTRICTION = {\n \"react/button-has-type\": [\n \"error\",\n {\n button: true,\n reset: true,\n submit: true,\n },\n ],\n \"react/no-react-children\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_REACT_STYLE = {\n \"react/jsx-boolean-value\": [\n \"error\",\n \"never\",\n ],\n \"react/jsx-curly-brace-presence\": [\n \"error\",\n \"always\",\n ],\n \"react/jsx-fragments\": [\n \"error\",\n \"syntax\",\n ],\n \"react/jsx-pascal-case\": [\n \"error\",\n {\n allowAllCaps: false,\n allowLeadingUnderscore: false,\n allowNamespace: true,\n },\n ],\n \"react/self-closing-comp\": [\n \"error\",\n {\n component: true,\n html: true,\n },\n ],\n} as const satisfies LintRules;\n\nconst RULES_REACT_SUSPICIOUS = {\n \"react/iframe-missing-sandbox\": \"error\",\n \"react/jsx-no-comment-textnodes\": \"error\",\n \"react/no-namespace\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_REACT = {\n ...RULES_REACT_CORRECTNESS,\n ...RULES_REACT_PEDANTIC,\n ...RULES_REACT_PERF,\n ...RULES_REACT_RESTRICTION,\n ...RULES_REACT_STYLE,\n ...RULES_REACT_SUSPICIOUS,\n} as const satisfies LintRules;\n\nexport {\n RULES_REACT,\n RULES_REACT_CORRECTNESS,\n RULES_REACT_PEDANTIC,\n RULES_REACT_PERF,\n RULES_REACT_RESTRICTION,\n RULES_REACT_STYLE,\n RULES_REACT_SUSPICIOUS,\n};\n"],"mappings":"AAEA,MAAM,0BAA0B;CAC5B,yBAAyB;CACzB,8BAA8B;CAC9B,iBAAiB,CACb,SACA;EACI,wBAAwB;EACxB,0BAA0B;EAC1B,kBAAkB;CACtB,CACJ;CACA,gCAAgC;CAChC,sBAAsB;CACtB,mCAAmC;CACnC,0BAA0B;CAC1B,iCAAiC;CACjC,gCAAgC;CAChC,wBAAwB,CACpB,SACA,EACI,oBAAoB,KACxB,CACJ;CACA,wBAAwB;CACxB,uCAAuC;AAC3C;AAEA,MAAM,uBAAuB;CACzB,+CAA+C,CAC3C,SACA;EACI,iCAAiC;EACjC,yBAAyB;CAC7B,CACJ;CACA,6BAA6B,CACzB,SACA;EACI,eAAe;EACf,qBAAqB;EACrB,OAAO;EACP,OAAO;EACP,wBAAwB;CAC5B,CACJ;CACA,iCAAiC,CAC7B,SACA,EACI,kBAAkB,KACtB,CACJ;CACA,+BAA+B;CAC/B,wBAAwB;AAC5B;AAEA,MAAM,mBAAmB;CACrB,2CAA2C;CAC3C,4BAA4B;AAChC;AAEA,MAAM,0BAA0B;CAC5B,yBAAyB,CACrB,SACA;EACI,QAAQ;EACR,OAAO;EACP,QAAQ;CACZ,CACJ;CACA,2BAA2B;AAC/B;AAEA,MAAM,oBAAoB;CACtB,2BAA2B,CACvB,SACA,OACJ;CACA,kCAAkC,CAC9B,SACA,QACJ;CACA,uBAAuB,CACnB,SACA,QACJ;CACA,yBAAyB,CACrB,SACA;EACI,cAAc;EACd,wBAAwB;EACxB,gBAAgB;CACpB,CACJ;CACA,2BAA2B,CACvB,SACA;EACI,WAAW;EACX,MAAM;CACV,CACJ;AACJ;AAEA,MAAM,yBAAyB;CAC3B,gCAAgC;CAChC,kCAAkC;CAClC,sBAAsB;AAC1B;AAEA,MAAM,cAAc;CAChB,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;AACP"}
1
+ {"version":3,"file":"react.mjs","names":[],"sources":["../../../../src/presets/react/rules/react.ts"],"sourcesContent":["/**\n * No lint rules have been configured for class components.\n */\n\nimport type { LintRules } from \"#/@types/oxlint\";\n\nconst RULES_REACT_CORRECTNESS = {\n \"react/exhaustive-deps\": \"error\",\n \"react/forward-ref-uses-ref\": \"error\",\n \"react/jsx-key\": [\n \"error\",\n {\n checkFragmentShorthand: true,\n checkKeyMustBeforeSpread: false,\n warnOnDuplicates: true,\n },\n ],\n \"react/jsx-no-duplicate-props\": \"error\",\n \"react/jsx-no-undef\": \"error\",\n \"react/jsx-props-no-spread-multi\": \"error\",\n \"react/no-children-prop\": \"error\",\n \"react/no-danger-with-children\": \"error\",\n \"react/no-render-return-value\": \"error\",\n \"react/no-string-refs\": [\n \"error\",\n {\n noTemplateLiterals: true,\n },\n ],\n \"react/no-this-in-sfc\": \"error\",\n \"react/void-dom-elements-no-children\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_REACT_NURSERY = {\n \"react/react-compiler\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_REACT_PEDANTIC = {\n \"react/checked-requires-onchange-or-readonly\": [\n \"error\",\n {\n ignoreExclusiveCheckedAttribute: false,\n ignoreMissingProperties: false,\n },\n ],\n \"react/jsx-no-target-blank\": [\n \"error\",\n {\n allowReferrer: false,\n enforceDynamicLinks: \"always\",\n forms: true,\n links: true,\n warnOnSpreadAttributes: false,\n },\n ],\n \"react/jsx-no-useless-fragment\": [\n \"error\",\n {\n allowExpressions: true,\n },\n ],\n \"react/no-unescaped-entities\": \"error\",\n \"react/rules-of-hooks\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_REACT_PERF = {\n \"react/jsx-no-constructed-context-values\": \"error\",\n \"react/no-array-index-key\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_REACT_RESTRICTION = {\n \"react/button-has-type\": [\n \"error\",\n {\n button: true,\n reset: true,\n submit: true,\n },\n ],\n \"react/jsx-no-literals\": [\n \"error\",\n {\n ignoreProps: false,\n noAttributeStrings: true,\n noStrings: true,\n },\n ],\n \"react/no-react-children\": \"error\",\n \"react/prefer-function-component\": [\n \"error\",\n {\n allowErrorBoundary: true,\n allowJsxUtilityClass: true,\n },\n ],\n} as const satisfies LintRules;\n\nconst RULES_REACT_STYLE = {\n \"react/jsx-boolean-value\": [\n \"error\",\n \"never\",\n ],\n \"react/jsx-curly-brace-presence\": [\n \"error\",\n \"always\",\n ],\n \"react/jsx-fragments\": [\n \"error\",\n \"syntax\",\n ],\n \"react/jsx-pascal-case\": [\n \"error\",\n {\n allowAllCaps: false,\n allowLeadingUnderscore: false,\n allowNamespace: true,\n },\n ],\n \"react/self-closing-comp\": [\n \"error\",\n {\n component: true,\n html: true,\n },\n ],\n} as const satisfies LintRules;\n\nconst RULES_REACT_SUSPICIOUS = {\n \"react/iframe-missing-sandbox\": \"error\",\n \"react/jsx-no-comment-textnodes\": \"error\",\n \"react/no-namespace\": \"error\",\n \"react/no-unstable-nested-components\": [\n \"error\",\n {\n allowAsProps: true,\n },\n ],\n} as const satisfies LintRules;\n\nconst RULES_REACT = {\n ...RULES_REACT_CORRECTNESS,\n ...RULES_REACT_NURSERY,\n ...RULES_REACT_PEDANTIC,\n ...RULES_REACT_PERF,\n ...RULES_REACT_RESTRICTION,\n ...RULES_REACT_STYLE,\n ...RULES_REACT_SUSPICIOUS,\n} as const satisfies LintRules;\n\nexport {\n RULES_REACT,\n RULES_REACT_CORRECTNESS,\n RULES_REACT_NURSERY,\n RULES_REACT_PEDANTIC,\n RULES_REACT_PERF,\n RULES_REACT_RESTRICTION,\n RULES_REACT_STYLE,\n RULES_REACT_SUSPICIOUS,\n};\n"],"mappings":"AAMA,MAAM,0BAA0B;CAC5B,yBAAyB;CACzB,8BAA8B;CAC9B,iBAAiB,CACb,SACA;EACI,wBAAwB;EACxB,0BAA0B;EAC1B,kBAAkB;CACtB,CACJ;CACA,gCAAgC;CAChC,sBAAsB;CACtB,mCAAmC;CACnC,0BAA0B;CAC1B,iCAAiC;CACjC,gCAAgC;CAChC,wBAAwB,CACpB,SACA,EACI,oBAAoB,KACxB,CACJ;CACA,wBAAwB;CACxB,uCAAuC;AAC3C;AAEA,MAAM,sBAAsB,EACxB,wBAAwB,QAC5B;AAEA,MAAM,uBAAuB;CACzB,+CAA+C,CAC3C,SACA;EACI,iCAAiC;EACjC,yBAAyB;CAC7B,CACJ;CACA,6BAA6B,CACzB,SACA;EACI,eAAe;EACf,qBAAqB;EACrB,OAAO;EACP,OAAO;EACP,wBAAwB;CAC5B,CACJ;CACA,iCAAiC,CAC7B,SACA,EACI,kBAAkB,KACtB,CACJ;CACA,+BAA+B;CAC/B,wBAAwB;AAC5B;AAEA,MAAM,mBAAmB;CACrB,2CAA2C;CAC3C,4BAA4B;AAChC;AAEA,MAAM,0BAA0B;CAC5B,yBAAyB,CACrB,SACA;EACI,QAAQ;EACR,OAAO;EACP,QAAQ;CACZ,CACJ;CACA,yBAAyB,CACrB,SACA;EACI,aAAa;EACb,oBAAoB;EACpB,WAAW;CACf,CACJ;CACA,2BAA2B;CAC3B,mCAAmC,CAC/B,SACA;EACI,oBAAoB;EACpB,sBAAsB;CAC1B,CACJ;AACJ;AAEA,MAAM,oBAAoB;CACtB,2BAA2B,CACvB,SACA,OACJ;CACA,kCAAkC,CAC9B,SACA,QACJ;CACA,uBAAuB,CACnB,SACA,QACJ;CACA,yBAAyB,CACrB,SACA;EACI,cAAc;EACd,wBAAwB;EACxB,gBAAgB;CACpB,CACJ;CACA,2BAA2B,CACvB,SACA;EACI,WAAW;EACX,MAAM;CACV,CACJ;AACJ;AAEA,MAAM,yBAAyB;CAC3B,gCAAgC;CAChC,kCAAkC;CAClC,sBAAsB;CACtB,uCAAuC,CACnC,SACA,EACI,cAAc,KAClB,CACJ;AACJ;AAEA,MAAM,cAAc;CAChB,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;AACP"}
@@ -18,6 +18,8 @@ declare const RULES_VITEST_STYLE: {
18
18
  readonly "vitest/prefer-import-in-mock": ["error", {
19
19
  readonly fixable: true;
20
20
  }];
21
+ readonly "vitest/prefer-importing-vitest-globals": "error";
22
+ readonly "vitest/prefer-strict-boolean-matchers": "error";
21
23
  };
22
24
  declare const RULES_VITEST: {
23
25
  readonly "vitest/consistent-vitest-vi": ["error", {
@@ -28,6 +30,8 @@ declare const RULES_VITEST: {
28
30
  readonly "vitest/prefer-import-in-mock": ["error", {
29
31
  readonly fixable: true;
30
32
  }];
33
+ readonly "vitest/prefer-importing-vitest-globals": "error";
34
+ readonly "vitest/prefer-strict-boolean-matchers": "error";
31
35
  readonly "vitest/consistent-each-for": ["error", {
32
36
  readonly describe: "for";
33
37
  readonly it: "for";
@@ -14,7 +14,9 @@ const RULES_VITEST_STYLE = {
14
14
  "vitest/consistent-vitest-vi": ["error", { fn: "vi" }],
15
15
  "vitest/no-import-node-test": "error",
16
16
  "vitest/prefer-called-times": "error",
17
- "vitest/prefer-import-in-mock": ["error", { fixable: true }]
17
+ "vitest/prefer-import-in-mock": ["error", { fixable: true }],
18
+ "vitest/prefer-importing-vitest-globals": "error",
19
+ "vitest/prefer-strict-boolean-matchers": "error"
18
20
  };
19
21
  const RULES_VITEST = {
20
22
  ...RULES_VITEST_CORRECTNESS,
@@ -1 +1 @@
1
- {"version":3,"file":"vitest.js","names":[],"sources":["../../../../src/presets/vitest/rules/vitest.ts"],"sourcesContent":["import type { LintRules } from \"#/@types/oxlint\";\n\nconst RULES_VITEST_CORRECTNESS = {\n \"vitest/consistent-each-for\": [\n \"error\",\n {\n describe: \"for\",\n it: \"for\",\n suite: \"for\",\n test: \"for\",\n },\n ],\n \"vitest/hoisted-apis-on-top\": \"error\",\n \"vitest/no-conditional-tests\": \"error\",\n \"vitest/require-local-test-context-for-concurrent-snapshots\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_VITEST_STYLE = {\n \"vitest/consistent-vitest-vi\": [\n \"error\",\n {\n fn: \"vi\",\n },\n ],\n \"vitest/no-import-node-test\": \"error\",\n \"vitest/prefer-called-times\": \"error\",\n \"vitest/prefer-import-in-mock\": [\n \"error\",\n {\n fixable: true,\n },\n ],\n} as const satisfies LintRules;\n\nconst RULES_VITEST = {\n ...RULES_VITEST_CORRECTNESS,\n ...RULES_VITEST_STYLE,\n} as const satisfies LintRules;\n\nexport { RULES_VITEST, RULES_VITEST_CORRECTNESS, RULES_VITEST_STYLE };\n"],"mappings":";AAEA,MAAM,2BAA2B;CAC7B,8BAA8B,CAC1B,SACA;EACI,UAAU;EACV,IAAI;EACJ,OAAO;EACP,MAAM;CACV,CACJ;CACA,8BAA8B;CAC9B,+BAA+B;CAC/B,8DAA8D;AAClE;AAEA,MAAM,qBAAqB;CACvB,+BAA+B,CAC3B,SACA,EACI,IAAI,KACR,CACJ;CACA,8BAA8B;CAC9B,8BAA8B;CAC9B,gCAAgC,CAC5B,SACA,EACI,SAAS,KACb,CACJ;AACJ;AAEA,MAAM,eAAe;CACjB,GAAG;CACH,GAAG;AACP"}
1
+ {"version":3,"file":"vitest.js","names":[],"sources":["../../../../src/presets/vitest/rules/vitest.ts"],"sourcesContent":["import type { LintRules } from \"#/@types/oxlint\";\n\nconst RULES_VITEST_CORRECTNESS = {\n \"vitest/consistent-each-for\": [\n \"error\",\n {\n describe: \"for\",\n it: \"for\",\n suite: \"for\",\n test: \"for\",\n },\n ],\n \"vitest/hoisted-apis-on-top\": \"error\",\n \"vitest/no-conditional-tests\": \"error\",\n \"vitest/require-local-test-context-for-concurrent-snapshots\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_VITEST_STYLE = {\n \"vitest/consistent-vitest-vi\": [\n \"error\",\n {\n fn: \"vi\",\n },\n ],\n \"vitest/no-import-node-test\": \"error\",\n \"vitest/prefer-called-times\": \"error\",\n \"vitest/prefer-import-in-mock\": [\n \"error\",\n {\n fixable: true,\n },\n ],\n \"vitest/prefer-importing-vitest-globals\": \"error\",\n \"vitest/prefer-strict-boolean-matchers\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_VITEST = {\n ...RULES_VITEST_CORRECTNESS,\n ...RULES_VITEST_STYLE,\n} as const satisfies LintRules;\n\nexport { RULES_VITEST, RULES_VITEST_CORRECTNESS, RULES_VITEST_STYLE };\n"],"mappings":";AAEA,MAAM,2BAA2B;CAC7B,8BAA8B,CAC1B,SACA;EACI,UAAU;EACV,IAAI;EACJ,OAAO;EACP,MAAM;CACV,CACJ;CACA,8BAA8B;CAC9B,+BAA+B;CAC/B,8DAA8D;AAClE;AAEA,MAAM,qBAAqB;CACvB,+BAA+B,CAC3B,SACA,EACI,IAAI,KACR,CACJ;CACA,8BAA8B;CAC9B,8BAA8B;CAC9B,gCAAgC,CAC5B,SACA,EACI,SAAS,KACb,CACJ;CACA,0CAA0C;CAC1C,yCAAyC;AAC7C;AAEA,MAAM,eAAe;CACjB,GAAG;CACH,GAAG;AACP"}
@@ -13,7 +13,9 @@ const RULES_VITEST_STYLE = {
13
13
  "vitest/consistent-vitest-vi": ["error", { fn: "vi" }],
14
14
  "vitest/no-import-node-test": "error",
15
15
  "vitest/prefer-called-times": "error",
16
- "vitest/prefer-import-in-mock": ["error", { fixable: true }]
16
+ "vitest/prefer-import-in-mock": ["error", { fixable: true }],
17
+ "vitest/prefer-importing-vitest-globals": "error",
18
+ "vitest/prefer-strict-boolean-matchers": "error"
17
19
  };
18
20
  const RULES_VITEST = {
19
21
  ...RULES_VITEST_CORRECTNESS,
@@ -1 +1 @@
1
- {"version":3,"file":"vitest.mjs","names":[],"sources":["../../../../src/presets/vitest/rules/vitest.ts"],"sourcesContent":["import type { LintRules } from \"#/@types/oxlint\";\n\nconst RULES_VITEST_CORRECTNESS = {\n \"vitest/consistent-each-for\": [\n \"error\",\n {\n describe: \"for\",\n it: \"for\",\n suite: \"for\",\n test: \"for\",\n },\n ],\n \"vitest/hoisted-apis-on-top\": \"error\",\n \"vitest/no-conditional-tests\": \"error\",\n \"vitest/require-local-test-context-for-concurrent-snapshots\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_VITEST_STYLE = {\n \"vitest/consistent-vitest-vi\": [\n \"error\",\n {\n fn: \"vi\",\n },\n ],\n \"vitest/no-import-node-test\": \"error\",\n \"vitest/prefer-called-times\": \"error\",\n \"vitest/prefer-import-in-mock\": [\n \"error\",\n {\n fixable: true,\n },\n ],\n} as const satisfies LintRules;\n\nconst RULES_VITEST = {\n ...RULES_VITEST_CORRECTNESS,\n ...RULES_VITEST_STYLE,\n} as const satisfies LintRules;\n\nexport { RULES_VITEST, RULES_VITEST_CORRECTNESS, RULES_VITEST_STYLE };\n"],"mappings":"AAEA,MAAM,2BAA2B;CAC7B,8BAA8B,CAC1B,SACA;EACI,UAAU;EACV,IAAI;EACJ,OAAO;EACP,MAAM;CACV,CACJ;CACA,8BAA8B;CAC9B,+BAA+B;CAC/B,8DAA8D;AAClE;AAEA,MAAM,qBAAqB;CACvB,+BAA+B,CAC3B,SACA,EACI,IAAI,KACR,CACJ;CACA,8BAA8B;CAC9B,8BAA8B;CAC9B,gCAAgC,CAC5B,SACA,EACI,SAAS,KACb,CACJ;AACJ;AAEA,MAAM,eAAe;CACjB,GAAG;CACH,GAAG;AACP"}
1
+ {"version":3,"file":"vitest.mjs","names":[],"sources":["../../../../src/presets/vitest/rules/vitest.ts"],"sourcesContent":["import type { LintRules } from \"#/@types/oxlint\";\n\nconst RULES_VITEST_CORRECTNESS = {\n \"vitest/consistent-each-for\": [\n \"error\",\n {\n describe: \"for\",\n it: \"for\",\n suite: \"for\",\n test: \"for\",\n },\n ],\n \"vitest/hoisted-apis-on-top\": \"error\",\n \"vitest/no-conditional-tests\": \"error\",\n \"vitest/require-local-test-context-for-concurrent-snapshots\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_VITEST_STYLE = {\n \"vitest/consistent-vitest-vi\": [\n \"error\",\n {\n fn: \"vi\",\n },\n ],\n \"vitest/no-import-node-test\": \"error\",\n \"vitest/prefer-called-times\": \"error\",\n \"vitest/prefer-import-in-mock\": [\n \"error\",\n {\n fixable: true,\n },\n ],\n \"vitest/prefer-importing-vitest-globals\": \"error\",\n \"vitest/prefer-strict-boolean-matchers\": \"error\",\n} as const satisfies LintRules;\n\nconst RULES_VITEST = {\n ...RULES_VITEST_CORRECTNESS,\n ...RULES_VITEST_STYLE,\n} as const satisfies LintRules;\n\nexport { RULES_VITEST, RULES_VITEST_CORRECTNESS, RULES_VITEST_STYLE };\n"],"mappings":"AAEA,MAAM,2BAA2B;CAC7B,8BAA8B,CAC1B,SACA;EACI,UAAU;EACV,IAAI;EACJ,OAAO;EACP,MAAM;CACV,CACJ;CACA,8BAA8B;CAC9B,+BAA+B;CAC/B,8DAA8D;AAClE;AAEA,MAAM,qBAAqB;CACvB,+BAA+B,CAC3B,SACA,EACI,IAAI,KACR,CACJ;CACA,8BAA8B;CAC9B,8BAA8B;CAC9B,gCAAgC,CAC5B,SACA,EACI,SAAS,KACb,CACJ;CACA,0CAA0C;CAC1C,yCAAyC;AAC7C;AAEA,MAAM,eAAe;CACjB,GAAG;CACH,GAAG;AACP"}