@apst/oxlint 0.2.0 → 0.4.0

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 (112) hide show
  1. package/README.md +0 -34
  2. package/dist/constants/default.d.ts +1 -1
  3. package/dist/constants/ignore-patterns.d.ts +16 -2
  4. package/dist/constants/ignore-patterns.js +58 -16
  5. package/dist/constants/ignore-patterns.js.map +1 -1
  6. package/dist/constants/ignore-patterns.mjs +49 -17
  7. package/dist/constants/ignore-patterns.mjs.map +1 -1
  8. package/dist/functions/define.js +2 -2
  9. package/dist/functions/define.js.map +1 -1
  10. package/dist/functions/define.mjs +4 -4
  11. package/dist/functions/define.mjs.map +1 -1
  12. package/dist/functions/merge.js +20 -4
  13. package/dist/functions/merge.js.map +1 -1
  14. package/dist/functions/merge.mjs +19 -4
  15. package/dist/functions/merge.mjs.map +1 -1
  16. package/dist/presets/common/index.d.ts +3 -3
  17. package/dist/presets/common/index.js +2 -0
  18. package/dist/presets/common/index.mjs +3 -3
  19. package/dist/presets/common/preset/index.js +3 -4
  20. package/dist/presets/common/preset/index.js.map +1 -1
  21. package/dist/presets/common/preset/index.mjs +3 -4
  22. package/dist/presets/common/preset/index.mjs.map +1 -1
  23. package/dist/presets/common/rules/eslint.d.ts +8 -4
  24. package/dist/presets/common/rules/eslint.js +4 -4
  25. package/dist/presets/common/rules/eslint.js.map +1 -1
  26. package/dist/presets/common/rules/eslint.mjs +4 -4
  27. package/dist/presets/common/rules/eslint.mjs.map +1 -1
  28. package/dist/presets/common/rules/import.d.ts +10 -0
  29. package/dist/presets/common/rules/import.js +5 -0
  30. package/dist/presets/common/rules/import.js.map +1 -1
  31. package/dist/presets/common/rules/import.mjs +5 -0
  32. package/dist/presets/common/rules/import.mjs.map +1 -1
  33. package/dist/presets/common/rules/oxc.d.ts +6 -1
  34. package/dist/presets/common/rules/oxc.js +1 -0
  35. package/dist/presets/common/rules/oxc.js.map +1 -1
  36. package/dist/presets/common/rules/oxc.mjs +1 -1
  37. package/dist/presets/common/rules/oxc.mjs.map +1 -1
  38. package/dist/presets/common/rules/typescript.d.ts +56 -42
  39. package/dist/presets/common/rules/typescript.js +19 -14
  40. package/dist/presets/common/rules/typescript.js.map +1 -1
  41. package/dist/presets/common/rules/typescript.mjs +19 -14
  42. package/dist/presets/common/rules/typescript.mjs.map +1 -1
  43. package/dist/presets/common/rules/unicorn.d.ts +11 -3
  44. package/dist/presets/common/rules/unicorn.js +7 -2
  45. package/dist/presets/common/rules/unicorn.js.map +1 -1
  46. package/dist/presets/common/rules/unicorn.mjs +7 -3
  47. package/dist/presets/common/rules/unicorn.mjs.map +1 -1
  48. package/dist/presets/jsx/preset/index.js +3 -4
  49. package/dist/presets/jsx/preset/index.js.map +1 -1
  50. package/dist/presets/jsx/preset/index.mjs +3 -4
  51. package/dist/presets/jsx/preset/index.mjs.map +1 -1
  52. package/dist/presets/jsx/rules/jsx-a11y.d.ts +16 -0
  53. package/dist/presets/jsx/rules/jsx-a11y.js +15 -0
  54. package/dist/presets/jsx/rules/jsx-a11y.js.map +1 -1
  55. package/dist/presets/jsx/rules/jsx-a11y.mjs +15 -0
  56. package/dist/presets/jsx/rules/jsx-a11y.mjs.map +1 -1
  57. package/dist/presets/next/index.d.ts +2 -1
  58. package/dist/presets/next/index.js +3 -0
  59. package/dist/presets/next/index.mjs +2 -1
  60. package/dist/presets/next/preset/index.js +3 -4
  61. package/dist/presets/next/preset/index.js.map +1 -1
  62. package/dist/presets/next/preset/index.mjs +3 -4
  63. package/dist/presets/next/preset/index.mjs.map +1 -1
  64. package/dist/presets/next/rules/nextjs.d.ts +48 -0
  65. package/dist/presets/next/rules/nextjs.js +4 -1
  66. package/dist/presets/next/rules/nextjs.js.map +1 -1
  67. package/dist/presets/next/rules/nextjs.mjs +4 -2
  68. package/dist/presets/next/rules/nextjs.mjs.map +1 -1
  69. package/dist/presets/node/preset/index.js +3 -4
  70. package/dist/presets/node/preset/index.js.map +1 -1
  71. package/dist/presets/node/preset/index.mjs +3 -4
  72. package/dist/presets/node/preset/index.mjs.map +1 -1
  73. package/dist/presets/react/index.d.ts +2 -2
  74. package/dist/presets/react/index.js +1 -0
  75. package/dist/presets/react/index.mjs +2 -2
  76. package/dist/presets/react/preset/index.js +3 -4
  77. package/dist/presets/react/preset/index.js.map +1 -1
  78. package/dist/presets/react/preset/index.mjs +3 -4
  79. package/dist/presets/react/preset/index.mjs.map +1 -1
  80. package/dist/presets/react/rules/react.d.ts +32 -1
  81. package/dist/presets/react/rules/react.js +15 -2
  82. package/dist/presets/react/rules/react.js.map +1 -1
  83. package/dist/presets/react/rules/react.mjs +15 -3
  84. package/dist/presets/react/rules/react.mjs.map +1 -1
  85. package/dist/presets/vitest/preset/index.js +3 -4
  86. package/dist/presets/vitest/preset/index.js.map +1 -1
  87. package/dist/presets/vitest/preset/index.mjs +3 -4
  88. package/dist/presets/vitest/preset/index.mjs.map +1 -1
  89. package/dist/presets/vitest/rules/vitest.d.ts +4 -0
  90. package/dist/presets/vitest/rules/vitest.js +3 -1
  91. package/dist/presets/vitest/rules/vitest.js.map +1 -1
  92. package/dist/presets/vitest/rules/vitest.mjs +3 -1
  93. package/dist/presets/vitest/rules/vitest.mjs.map +1 -1
  94. package/dist/presets/vue/index.d.ts +4 -0
  95. package/dist/presets/vue/index.js +12 -0
  96. package/dist/presets/vue/index.mjs +5 -0
  97. package/dist/presets/vue/plugin/index.d.ts +3 -0
  98. package/dist/presets/vue/plugin/index.js +5 -0
  99. package/dist/presets/vue/plugin/index.js.map +1 -0
  100. package/dist/presets/vue/plugin/index.mjs +4 -0
  101. package/dist/presets/vue/plugin/index.mjs.map +1 -0
  102. package/dist/presets/vue/preset/index.d.ts +4 -0
  103. package/dist/presets/vue/preset/index.js +14 -0
  104. package/dist/presets/vue/preset/index.js.map +1 -0
  105. package/dist/presets/vue/preset/index.mjs +14 -0
  106. package/dist/presets/vue/preset/index.mjs.map +1 -0
  107. package/dist/presets/vue/rules/vue.d.ts +47 -0
  108. package/dist/presets/vue/rules/vue.js +32 -0
  109. package/dist/presets/vue/rules/vue.js.map +1 -0
  110. package/dist/presets/vue/rules/vue.mjs +27 -0
  111. package/dist/presets/vue/rules/vue.mjs.map +1 -0
  112. package/package.json +11 -41
@@ -0,0 +1,48 @@
1
+ declare const RULES_NEXTJS_CORRECTNESS: {
2
+ readonly "nextjs/google-font-display": "error";
3
+ readonly "nextjs/google-font-preconnect": "error";
4
+ readonly "nextjs/inline-script-id": "error";
5
+ readonly "nextjs/next-script-for-ga": "error";
6
+ readonly "nextjs/no-assign-module-variable": "error";
7
+ readonly "nextjs/no-async-client-component": "error";
8
+ readonly "nextjs/no-before-interactive-script-outside-document": "error";
9
+ readonly "nextjs/no-css-tags": "error";
10
+ readonly "nextjs/no-document-import-in-page": "error";
11
+ readonly "nextjs/no-duplicate-head": "error";
12
+ readonly "nextjs/no-head-element": "error";
13
+ readonly "nextjs/no-head-import-in-document": "error";
14
+ readonly "nextjs/no-html-link-for-pages": "error";
15
+ readonly "nextjs/no-img-element": "allow";
16
+ readonly "nextjs/no-page-custom-font": "error";
17
+ readonly "nextjs/no-script-component-in-head": "error";
18
+ readonly "nextjs/no-styled-jsx-in-document": "error";
19
+ readonly "nextjs/no-sync-scripts": "error";
20
+ readonly "nextjs/no-title-in-document-head": "error";
21
+ readonly "nextjs/no-typos": "error";
22
+ readonly "nextjs/no-unwanted-polyfillio": "error";
23
+ };
24
+ declare const RULES_NEXTJS: {
25
+ readonly "nextjs/google-font-display": "error";
26
+ readonly "nextjs/google-font-preconnect": "error";
27
+ readonly "nextjs/inline-script-id": "error";
28
+ readonly "nextjs/next-script-for-ga": "error";
29
+ readonly "nextjs/no-assign-module-variable": "error";
30
+ readonly "nextjs/no-async-client-component": "error";
31
+ readonly "nextjs/no-before-interactive-script-outside-document": "error";
32
+ readonly "nextjs/no-css-tags": "error";
33
+ readonly "nextjs/no-document-import-in-page": "error";
34
+ readonly "nextjs/no-duplicate-head": "error";
35
+ readonly "nextjs/no-head-element": "error";
36
+ readonly "nextjs/no-head-import-in-document": "error";
37
+ readonly "nextjs/no-html-link-for-pages": "error";
38
+ readonly "nextjs/no-img-element": "allow";
39
+ readonly "nextjs/no-page-custom-font": "error";
40
+ readonly "nextjs/no-script-component-in-head": "error";
41
+ readonly "nextjs/no-styled-jsx-in-document": "error";
42
+ readonly "nextjs/no-sync-scripts": "error";
43
+ readonly "nextjs/no-title-in-document-head": "error";
44
+ readonly "nextjs/no-typos": "error";
45
+ readonly "nextjs/no-unwanted-polyfillio": "error";
46
+ };
47
+ export { RULES_NEXTJS, RULES_NEXTJS_CORRECTNESS };
48
+ //# sourceMappingURL=nextjs.d.ts.map
@@ -1,5 +1,5 @@
1
1
 
2
- const RULES_NEXTJS = {
2
+ const RULES_NEXTJS_CORRECTNESS = {
3
3
  "nextjs/google-font-display": "error",
4
4
  "nextjs/google-font-preconnect": "error",
5
5
  "nextjs/inline-script-id": "error",
@@ -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",
@@ -21,6 +22,8 @@ const RULES_NEXTJS = {
21
22
  "nextjs/no-typos": "error",
22
23
  "nextjs/no-unwanted-polyfillio": "error"
23
24
  };
25
+ const RULES_NEXTJS = { ...RULES_NEXTJS_CORRECTNESS };
24
26
 
25
27
  exports.RULES_NEXTJS = RULES_NEXTJS;
28
+ exports.RULES_NEXTJS_CORRECTNESS = RULES_NEXTJS_CORRECTNESS;
26
29
  //# sourceMappingURL=nextjs.js.map
@@ -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, RULES_NEXTJS_CORRECTNESS };\n"],"mappings":";AAEA,MAAM,2BAA2B;CAC7B,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;AACrC;AAEA,MAAM,eAAe,EACjB,GAAG,yBACP"}
@@ -1,4 +1,4 @@
1
- const RULES_NEXTJS = {
1
+ const RULES_NEXTJS_CORRECTNESS = {
2
2
  "nextjs/google-font-display": "error",
3
3
  "nextjs/google-font-preconnect": "error",
4
4
  "nextjs/inline-script-id": "error",
@@ -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",
@@ -20,6 +21,7 @@ const RULES_NEXTJS = {
20
21
  "nextjs/no-typos": "error",
21
22
  "nextjs/no-unwanted-polyfillio": "error"
22
23
  };
24
+ const RULES_NEXTJS = { ...RULES_NEXTJS_CORRECTNESS };
23
25
 
24
- export { RULES_NEXTJS };
26
+ export { RULES_NEXTJS, RULES_NEXTJS_CORRECTNESS };
25
27
  //# sourceMappingURL=nextjs.mjs.map
@@ -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, RULES_NEXTJS_CORRECTNESS };\n"],"mappings":"AAEA,MAAM,2BAA2B;CAC7B,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;AACrC;AAEA,MAAM,eAAe,EACjB,GAAG,yBACP"}
@@ -1,13 +1,12 @@
1
1
  const require_index = require('../plugin/index.js');
2
2
  const require_node = require('../rules/node.js');
3
- let es_toolkit = require("es-toolkit");
4
3
 
5
4
  const nodePreset = () => {
6
- return ({ config: internalConfig }) => {
7
- return { config: (0, es_toolkit.toMerged)(internalConfig, {
5
+ return () => {
6
+ return { config: {
8
7
  plugins: [...require_index.PLUGIN_NODE],
9
8
  rules: { ...require_node.RULES_NODE }
10
- }) };
9
+ } };
11
10
  };
12
11
  };
13
12
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["PLUGIN_NODE","RULES_NODE"],"sources":["../../../../src/presets/node/preset/index.ts"],"sourcesContent":["import type { OxlintConfig } from \"oxlint\";\n\nimport type { Preset, PresetResult } from \"#/@types/preset\";\n\nimport { toMerged } from \"es-toolkit\";\n\nimport { PLUGIN_NODE } from \"#/presets/node/plugin\";\nimport { RULES_NODE } from \"#/presets/node/rules/node\";\n\nconst nodePreset = (): Preset => {\n return ({ config: internalConfig }): PresetResult => {\n const config: OxlintConfig = toMerged(internalConfig, {\n plugins: [\n ...PLUGIN_NODE,\n ],\n rules: {\n ...RULES_NODE,\n },\n } satisfies OxlintConfig);\n\n return {\n config,\n };\n };\n};\n\nexport { nodePreset };\n"],"mappings":";;;;AASA,MAAM,mBAA2B;CAC7B,QAAQ,EAAE,QAAQ,qBAAmC;EAUjD,OAAO,EACH,iCAVkC,gBAAgB;GAClD,SAAS,CACL,GAAGA,yBACP;GACA,OAAO,EACH,GAAGC,wBACP;EACJ,CAGS,EACT;CACJ;AACJ"}
1
+ {"version":3,"file":"index.js","names":["PLUGIN_NODE","RULES_NODE"],"sources":["../../../../src/presets/node/preset/index.ts"],"sourcesContent":["import type { Preset, PresetResult } from \"#/@types/preset\";\n\nimport { PLUGIN_NODE } from \"#/presets/node/plugin\";\nimport { RULES_NODE } from \"#/presets/node/rules/node\";\n\nconst nodePreset = (): Preset => {\n return (): PresetResult => {\n return {\n config: {\n plugins: [\n ...PLUGIN_NODE,\n ],\n rules: {\n ...RULES_NODE,\n },\n },\n };\n };\n};\n\nexport { nodePreset };\n"],"mappings":";;;AAKA,MAAM,mBAA2B;CAC7B,aAA2B;EACvB,OAAO,EACH,QAAQ;GACJ,SAAS,CACL,GAAGA,yBACP;GACA,OAAO,EACH,GAAGC,wBACP;EACJ,EACJ;CACJ;AACJ"}
@@ -1,13 +1,12 @@
1
1
  import { PLUGIN_NODE } from "../plugin/index.mjs";
2
2
  import { RULES_NODE } from "../rules/node.mjs";
3
- import { toMerged } from "es-toolkit";
4
3
 
5
4
  const nodePreset = () => {
6
- return ({ config: internalConfig }) => {
7
- return { config: toMerged(internalConfig, {
5
+ return () => {
6
+ return { config: {
8
7
  plugins: [...PLUGIN_NODE],
9
8
  rules: { ...RULES_NODE }
10
- }) };
9
+ } };
11
10
  };
12
11
  };
13
12
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/presets/node/preset/index.ts"],"sourcesContent":["import type { OxlintConfig } from \"oxlint\";\n\nimport type { Preset, PresetResult } from \"#/@types/preset\";\n\nimport { toMerged } from \"es-toolkit\";\n\nimport { PLUGIN_NODE } from \"#/presets/node/plugin\";\nimport { RULES_NODE } from \"#/presets/node/rules/node\";\n\nconst nodePreset = (): Preset => {\n return ({ config: internalConfig }): PresetResult => {\n const config: OxlintConfig = toMerged(internalConfig, {\n plugins: [\n ...PLUGIN_NODE,\n ],\n rules: {\n ...RULES_NODE,\n },\n } satisfies OxlintConfig);\n\n return {\n config,\n };\n };\n};\n\nexport { nodePreset };\n"],"mappings":";;;;AASA,MAAM,mBAA2B;CAC7B,QAAQ,EAAE,QAAQ,qBAAmC;EAUjD,OAAO,EACH,QAVyB,SAAS,gBAAgB;GAClD,SAAS,CACL,GAAG,WACP;GACA,OAAO,EACH,GAAG,WACP;EACJ,CAGS,EACT;CACJ;AACJ"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/presets/node/preset/index.ts"],"sourcesContent":["import type { Preset, PresetResult } from \"#/@types/preset\";\n\nimport { PLUGIN_NODE } from \"#/presets/node/plugin\";\nimport { RULES_NODE } from \"#/presets/node/rules/node\";\n\nconst nodePreset = (): Preset => {\n return (): PresetResult => {\n return {\n config: {\n plugins: [\n ...PLUGIN_NODE,\n ],\n rules: {\n ...RULES_NODE,\n },\n },\n };\n };\n};\n\nexport { nodePreset };\n"],"mappings":";;;AAKA,MAAM,mBAA2B;CAC7B,aAA2B;EACvB,OAAO,EACH,QAAQ;GACJ,SAAS,CACL,GAAG,WACP;GACA,OAAO,EACH,GAAG,WACP;EACJ,EACJ;CACJ;AACJ"}
@@ -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,13 +1,12 @@
1
1
  const require_index = require('../plugin/index.js');
2
2
  const require_react = require('../rules/react.js');
3
- let es_toolkit = require("es-toolkit");
4
3
 
5
4
  const reactPreset = () => {
6
- return ({ config: internalConfig }) => {
7
- return { config: (0, es_toolkit.toMerged)(internalConfig, {
5
+ return () => {
6
+ return { config: {
8
7
  plugins: [...require_index.PLUGIN_REACT],
9
8
  rules: { ...require_react.RULES_REACT }
10
- }) };
9
+ } };
11
10
  };
12
11
  };
13
12
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["PLUGIN_REACT","RULES_REACT"],"sources":["../../../../src/presets/react/preset/index.ts"],"sourcesContent":["import type { OxlintConfig } from \"oxlint\";\n\nimport type { Preset, PresetResult } from \"#/@types/preset\";\n\nimport { toMerged } from \"es-toolkit\";\n\nimport { PLUGIN_REACT } from \"#/presets/react/plugin\";\nimport { RULES_REACT } from \"#/presets/react/rules/react\";\n\nconst reactPreset = (): Preset => {\n return ({ config: internalConfig }): PresetResult => {\n const config: OxlintConfig = toMerged(internalConfig, {\n plugins: [\n ...PLUGIN_REACT,\n ],\n rules: {\n ...RULES_REACT,\n },\n } satisfies OxlintConfig);\n\n return {\n config,\n };\n };\n};\n\nexport { reactPreset };\n"],"mappings":";;;;AASA,MAAM,oBAA4B;CAC9B,QAAQ,EAAE,QAAQ,qBAAmC;EAUjD,OAAO,EACH,iCAVkC,gBAAgB;GAClD,SAAS,CACL,GAAGA,0BACP;GACA,OAAO,EACH,GAAGC,0BACP;EACJ,CAGS,EACT;CACJ;AACJ"}
1
+ {"version":3,"file":"index.js","names":["PLUGIN_REACT","RULES_REACT"],"sources":["../../../../src/presets/react/preset/index.ts"],"sourcesContent":["import type { Preset, PresetResult } from \"#/@types/preset\";\n\nimport { PLUGIN_REACT } from \"#/presets/react/plugin\";\nimport { RULES_REACT } from \"#/presets/react/rules/react\";\n\nconst reactPreset = (): Preset => {\n return (): PresetResult => {\n return {\n config: {\n plugins: [\n ...PLUGIN_REACT,\n ],\n rules: {\n ...RULES_REACT,\n },\n },\n };\n };\n};\n\nexport { reactPreset };\n"],"mappings":";;;AAKA,MAAM,oBAA4B;CAC9B,aAA2B;EACvB,OAAO,EACH,QAAQ;GACJ,SAAS,CACL,GAAGA,0BACP;GACA,OAAO,EACH,GAAGC,0BACP;EACJ,EACJ;CACJ;AACJ"}
@@ -1,13 +1,12 @@
1
1
  import { PLUGIN_REACT } from "../plugin/index.mjs";
2
2
  import { RULES_REACT } from "../rules/react.mjs";
3
- import { toMerged } from "es-toolkit";
4
3
 
5
4
  const reactPreset = () => {
6
- return ({ config: internalConfig }) => {
7
- return { config: toMerged(internalConfig, {
5
+ return () => {
6
+ return { config: {
8
7
  plugins: [...PLUGIN_REACT],
9
8
  rules: { ...RULES_REACT }
10
- }) };
9
+ } };
11
10
  };
12
11
  };
13
12
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/presets/react/preset/index.ts"],"sourcesContent":["import type { OxlintConfig } from \"oxlint\";\n\nimport type { Preset, PresetResult } from \"#/@types/preset\";\n\nimport { toMerged } from \"es-toolkit\";\n\nimport { PLUGIN_REACT } from \"#/presets/react/plugin\";\nimport { RULES_REACT } from \"#/presets/react/rules/react\";\n\nconst reactPreset = (): Preset => {\n return ({ config: internalConfig }): PresetResult => {\n const config: OxlintConfig = toMerged(internalConfig, {\n plugins: [\n ...PLUGIN_REACT,\n ],\n rules: {\n ...RULES_REACT,\n },\n } satisfies OxlintConfig);\n\n return {\n config,\n };\n };\n};\n\nexport { reactPreset };\n"],"mappings":";;;;AASA,MAAM,oBAA4B;CAC9B,QAAQ,EAAE,QAAQ,qBAAmC;EAUjD,OAAO,EACH,QAVyB,SAAS,gBAAgB;GAClD,SAAS,CACL,GAAG,YACP;GACA,OAAO,EACH,GAAG,YACP;EACJ,CAGS,EACT;CACJ;AACJ"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/presets/react/preset/index.ts"],"sourcesContent":["import type { Preset, PresetResult } from \"#/@types/preset\";\n\nimport { PLUGIN_REACT } from \"#/presets/react/plugin\";\nimport { RULES_REACT } from \"#/presets/react/rules/react\";\n\nconst reactPreset = (): Preset => {\n return (): PresetResult => {\n return {\n config: {\n plugins: [\n ...PLUGIN_REACT,\n ],\n rules: {\n ...RULES_REACT,\n },\n },\n };\n };\n};\n\nexport { reactPreset };\n"],"mappings":";;;AAKA,MAAM,oBAA4B;CAC9B,aAA2B;EACvB,OAAO,EACH,QAAQ;GACJ,SAAS,CACL,GAAG,YACP;GACA,OAAO,EACH,GAAG,YACP;EACJ,EACJ;CACJ;AACJ"}
@@ -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: false;
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: false;
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: false
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: false,\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: false
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: false,\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"}
@@ -1,13 +1,12 @@
1
1
  const require_index = require('../plugin/index.js');
2
2
  const require_vitest = require('../rules/vitest.js');
3
- let es_toolkit = require("es-toolkit");
4
3
 
5
4
  const vitestPreset = () => {
6
- return ({ config: internalConfig }) => {
7
- return { config: (0, es_toolkit.toMerged)(internalConfig, {
5
+ return () => {
6
+ return { config: {
8
7
  plugins: [...require_index.PLUGIN_VITEST],
9
8
  rules: { ...require_vitest.RULES_VITEST }
10
- }) };
9
+ } };
11
10
  };
12
11
  };
13
12
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["PLUGIN_VITEST","RULES_VITEST"],"sources":["../../../../src/presets/vitest/preset/index.ts"],"sourcesContent":["import type { OxlintConfig } from \"oxlint\";\n\nimport type { Preset, PresetResult } from \"#/@types/preset\";\n\nimport { toMerged } from \"es-toolkit\";\n\nimport { PLUGIN_VITEST } from \"#/presets/vitest/plugin\";\nimport { RULES_VITEST } from \"#/presets/vitest/rules/vitest\";\n\nconst vitestPreset = (): Preset => {\n return ({ config: internalConfig }): PresetResult => {\n const config: OxlintConfig = toMerged(internalConfig, {\n plugins: [\n ...PLUGIN_VITEST,\n ],\n rules: {\n ...RULES_VITEST,\n },\n } satisfies OxlintConfig);\n\n return {\n config,\n };\n };\n};\n\nexport { vitestPreset };\n"],"mappings":";;;;AASA,MAAM,qBAA6B;CAC/B,QAAQ,EAAE,QAAQ,qBAAmC;EAUjD,OAAO,EACH,iCAVkC,gBAAgB;GAClD,SAAS,CACL,GAAGA,2BACP;GACA,OAAO,EACH,GAAGC,4BACP;EACJ,CAGS,EACT;CACJ;AACJ"}
1
+ {"version":3,"file":"index.js","names":["PLUGIN_VITEST","RULES_VITEST"],"sources":["../../../../src/presets/vitest/preset/index.ts"],"sourcesContent":["import type { Preset, PresetResult } from \"#/@types/preset\";\n\nimport { PLUGIN_VITEST } from \"#/presets/vitest/plugin\";\nimport { RULES_VITEST } from \"#/presets/vitest/rules/vitest\";\n\nconst vitestPreset = (): Preset => {\n return (): PresetResult => {\n return {\n config: {\n plugins: [\n ...PLUGIN_VITEST,\n ],\n rules: {\n ...RULES_VITEST,\n },\n },\n };\n };\n};\n\nexport { vitestPreset };\n"],"mappings":";;;AAKA,MAAM,qBAA6B;CAC/B,aAA2B;EACvB,OAAO,EACH,QAAQ;GACJ,SAAS,CACL,GAAGA,2BACP;GACA,OAAO,EACH,GAAGC,4BACP;EACJ,EACJ;CACJ;AACJ"}
@@ -1,13 +1,12 @@
1
1
  import { PLUGIN_VITEST } from "../plugin/index.mjs";
2
2
  import { RULES_VITEST } from "../rules/vitest.mjs";
3
- import { toMerged } from "es-toolkit";
4
3
 
5
4
  const vitestPreset = () => {
6
- return ({ config: internalConfig }) => {
7
- return { config: toMerged(internalConfig, {
5
+ return () => {
6
+ return { config: {
8
7
  plugins: [...PLUGIN_VITEST],
9
8
  rules: { ...RULES_VITEST }
10
- }) };
9
+ } };
11
10
  };
12
11
  };
13
12
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/presets/vitest/preset/index.ts"],"sourcesContent":["import type { OxlintConfig } from \"oxlint\";\n\nimport type { Preset, PresetResult } from \"#/@types/preset\";\n\nimport { toMerged } from \"es-toolkit\";\n\nimport { PLUGIN_VITEST } from \"#/presets/vitest/plugin\";\nimport { RULES_VITEST } from \"#/presets/vitest/rules/vitest\";\n\nconst vitestPreset = (): Preset => {\n return ({ config: internalConfig }): PresetResult => {\n const config: OxlintConfig = toMerged(internalConfig, {\n plugins: [\n ...PLUGIN_VITEST,\n ],\n rules: {\n ...RULES_VITEST,\n },\n } satisfies OxlintConfig);\n\n return {\n config,\n };\n };\n};\n\nexport { vitestPreset };\n"],"mappings":";;;;AASA,MAAM,qBAA6B;CAC/B,QAAQ,EAAE,QAAQ,qBAAmC;EAUjD,OAAO,EACH,QAVyB,SAAS,gBAAgB;GAClD,SAAS,CACL,GAAG,aACP;GACA,OAAO,EACH,GAAG,aACP;EACJ,CAGS,EACT;CACJ;AACJ"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/presets/vitest/preset/index.ts"],"sourcesContent":["import type { Preset, PresetResult } from \"#/@types/preset\";\n\nimport { PLUGIN_VITEST } from \"#/presets/vitest/plugin\";\nimport { RULES_VITEST } from \"#/presets/vitest/rules/vitest\";\n\nconst vitestPreset = (): Preset => {\n return (): PresetResult => {\n return {\n config: {\n plugins: [\n ...PLUGIN_VITEST,\n ],\n rules: {\n ...RULES_VITEST,\n },\n },\n };\n };\n};\n\nexport { vitestPreset };\n"],"mappings":";;;AAKA,MAAM,qBAA6B;CAC/B,aAA2B;EACvB,OAAO,EACH,QAAQ;GACJ,SAAS,CACL,GAAG,aACP;GACA,OAAO,EACH,GAAG,aACP;EACJ,EACJ;CACJ;AACJ"}
@@ -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,