@dethdkn/ox-config 1.0.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 (49) hide show
  1. package/.oxfmtrc.json +32 -0
  2. package/.oxlintrc.json +68 -0
  3. package/README.md +0 -0
  4. package/package.json +51 -0
  5. package/rules/correctness/eslint.json +55 -0
  6. package/rules/correctness/import.json +6 -0
  7. package/rules/correctness/jsdoc.json +13 -0
  8. package/rules/correctness/oxc.json +17 -0
  9. package/rules/correctness/promise.json +7 -0
  10. package/rules/correctness/typescript.json +29 -0
  11. package/rules/correctness/unicorn.json +17 -0
  12. package/rules/correctness/vitest.json +6 -0
  13. package/rules/correctness/vue.json +8 -0
  14. package/rules/nursery/eslint.json +9 -0
  15. package/rules/nursery/import.json +6 -0
  16. package/rules/nursery/oxc.json +6 -0
  17. package/rules/nursery/promise.json +5 -0
  18. package/rules/pedantic/eslint.json +30 -0
  19. package/rules/pedantic/import.json +5 -0
  20. package/rules/pedantic/jsdoc.json +11 -0
  21. package/rules/pedantic/typescript.json +32 -0
  22. package/rules/pedantic/unicorn.json +47 -0
  23. package/rules/perf/eslint.json +6 -0
  24. package/rules/perf/oxc.json +5 -0
  25. package/rules/perf/unicorn.json +7 -0
  26. package/rules/restriction/eslint.json +54 -0
  27. package/rules/restriction/import.json +17 -0
  28. package/rules/restriction/jsdoc.json +6 -0
  29. package/rules/restriction/node.json +6 -0
  30. package/rules/restriction/oxc.json +10 -0
  31. package/rules/restriction/promise.json +6 -0
  32. package/rules/restriction/typescript.json +20 -0
  33. package/rules/restriction/unicorn.json +16 -0
  34. package/rules/restriction/vue.json +7 -0
  35. package/rules/style/eslint.json +61 -0
  36. package/rules/style/import.json +15 -0
  37. package/rules/style/node.json +5 -0
  38. package/rules/style/promise.json +11 -0
  39. package/rules/style/typescript.json +18 -0
  40. package/rules/style/unicorn.json +42 -0
  41. package/rules/style/vitest.json +8 -0
  42. package/rules/style/vue.json +13 -0
  43. package/rules/suspicious/eslint.json +13 -0
  44. package/rules/suspicious/import.json +10 -0
  45. package/rules/suspicious/oxc.json +7 -0
  46. package/rules/suspicious/promise.json +7 -0
  47. package/rules/suspicious/typescript.json +13 -0
  48. package/rules/suspicious/unicorn.json +12 -0
  49. package/rules/suspicious/vue.json +6 -0
package/.oxfmtrc.json ADDED
@@ -0,0 +1,32 @@
1
+ {
2
+ "$schema": "./node_modules/oxfmt/configuration_schema.json",
3
+ "arrowParens": "always",
4
+ "bracketSameLine": true,
5
+ "bracketSpacing": true,
6
+ "embeddedLanguageFormatting": "auto",
7
+ "endOfLine": "lf",
8
+ "experimentalSortImports": {
9
+ "order": "asc",
10
+ "ignoreCase": true,
11
+ "newlinesBetween": true,
12
+ "groups": [
13
+ ["side-effect"],
14
+ ["builtin"],
15
+ ["external"],
16
+ ["internal"],
17
+ ["parent", "sibling"],
18
+ ["index"]
19
+ ],
20
+ "sortSideEffects": true
21
+ },
22
+ "jsxSingleQuote": false,
23
+ "objectWrap": "preserve",
24
+ "printWidth": 100,
25
+ "quoteProps": "as-needed",
26
+ "semi": false,
27
+ "singleAttributePerLine": false,
28
+ "singleQuote": true,
29
+ "tabWidth": 2,
30
+ "trailingComma": "all",
31
+ "useTabs": false
32
+ }
package/.oxlintrc.json ADDED
@@ -0,0 +1,68 @@
1
+ {
2
+ "$schema": "./node_modules/oxlint/configuration_schema.json",
3
+ "env": {
4
+ "browser": true,
5
+ "node": true,
6
+ "es2024": true
7
+ },
8
+ "plugins": [
9
+ "eslint",
10
+ "typescript",
11
+ "unicorn",
12
+ "oxc",
13
+ "import",
14
+ "jsdoc",
15
+ "node",
16
+ "promise",
17
+ "vitest",
18
+ "vue"
19
+ ],
20
+ "jsPlugins": [],
21
+ "extends": [
22
+ "./rules/correctness/eslint.json",
23
+ "./rules/correctness/typescript.json",
24
+ "./rules/correctness/unicorn.json",
25
+ "./rules/correctness/oxc.json",
26
+ "./rules/correctness/import.json",
27
+ "./rules/correctness/jsdoc.json",
28
+ "./rules/correctness/promise.json",
29
+ "./rules/correctness/vitest.json",
30
+ "./rules/correctness/vue.json",
31
+ "./rules/perf/eslint.json",
32
+ "./rules/perf/unicorn.json",
33
+ "./rules/perf/oxc.json",
34
+ "./rules/restriction/eslint.json",
35
+ "./rules/restriction/typescript.json",
36
+ "./rules/restriction/unicorn.json",
37
+ "./rules/restriction/oxc.json",
38
+ "./rules/restriction/import.json",
39
+ "./rules/restriction/jsdoc.json",
40
+ "./rules/restriction/node.json",
41
+ "./rules/restriction/promise.json",
42
+ "./rules/restriction/vue.json",
43
+ "./rules/suspicious/eslint.json",
44
+ "./rules/suspicious/typescript.json",
45
+ "./rules/suspicious/unicorn.json",
46
+ "./rules/suspicious/oxc.json",
47
+ "./rules/suspicious/import.json",
48
+ "./rules/suspicious/promise.json",
49
+ "./rules/suspicious/vue.json",
50
+ "./rules/pedantic/eslint.json",
51
+ "./rules/pedantic/typescript.json",
52
+ "./rules/pedantic/unicorn.json",
53
+ "./rules/pedantic/import.json",
54
+ "./rules/pedantic/jsdoc.json",
55
+ "./rules/style/eslint.json",
56
+ "./rules/style/typescript.json",
57
+ "./rules/style/unicorn.json",
58
+ "./rules/style/import.json",
59
+ "./rules/style/node.json",
60
+ "./rules/style/promise.json",
61
+ "./rules/style/vitest.json",
62
+ "./rules/style/vue.json",
63
+ "./rules/nursery/eslint.json",
64
+ "./rules/nursery/oxc.json",
65
+ "./rules/nursery/import.json",
66
+ "./rules/nursery/promise.json"
67
+ ]
68
+ }
package/README.md ADDED
File without changes
package/package.json ADDED
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "@dethdkn/ox-config",
3
+ "type": "module",
4
+ "version": "1.0.0",
5
+ "packageManager": "bun@1.3.3",
6
+ "description": "⚓ My Opinionated OX Config",
7
+ "author": {
8
+ "name": "Gabriel 'DethDKN' Rosa",
9
+ "email": "gabriel@rosa.dev.br",
10
+ "url": "https://rosa.dev.br"
11
+ },
12
+ "license": "MIT",
13
+ "funding": "https://github.com/sponsors/dethdkn",
14
+ "homepage": "https://github.com/dethdkn/ox-config",
15
+ "repository": {
16
+ "type": "git",
17
+ "url": "git+https://github.com/dethdkn/ox-config.git"
18
+ },
19
+ "bugs": "https://github.com/dethdkn/ox-config/issues",
20
+ "keywords": [
21
+ "oxfmt",
22
+ "oxfmt-config",
23
+ "oxlint",
24
+ "oxlint-config"
25
+ ],
26
+ "exports": {
27
+ "./.oxfmtrc.json": "./.oxfmtrc.json",
28
+ "./.oxlintrc.json": "./.oxlintrc.json"
29
+ },
30
+ "files": [
31
+ "rules",
32
+ ".oxfmtrc.json",
33
+ ".oxlintrc.json"
34
+ ],
35
+ "scripts": {
36
+ "fmt": "oxfmt",
37
+ "lint": "oxlint --type-aware",
38
+ "lint:fix": "oxlint --type-aware --fix",
39
+ "release": "bun fmt && bun lint && bumpp && sudo npm publish"
40
+ },
41
+ "devDependencies": {
42
+ "bumpp": "^10.3.2",
43
+ "typescript": "^5.9.3",
44
+ "vue": "^3.5.25"
45
+ },
46
+ "dependencies": {
47
+ "oxfmt": "^0.17.0",
48
+ "oxlint": "^1.32.0",
49
+ "oxlint-tsgolint": "^0.8.4"
50
+ }
51
+ }
@@ -0,0 +1,55 @@
1
+ {
2
+ "rules": {
3
+ "eslint/for-direction": ["error"],
4
+ "eslint/no-async-promise-executor": ["error"],
5
+ "eslint/no-caller": ["error"],
6
+ "eslint/no-class-assign": ["error"],
7
+ "eslint/no-compare-neg-zero": ["error"],
8
+ "eslint/no-cond-assign": ["error"],
9
+ "eslint/no-const-assign": ["error"],
10
+ "eslint/no-constant-binary-expression": ["error"],
11
+ "eslint/no-constant-condition": ["error"],
12
+ "eslint/no-control-regex": ["error"],
13
+ "eslint/no-debugger": ["error"],
14
+ "eslint/no-delete-var": ["error"],
15
+ "eslint/no-dupe-class-members": ["error"],
16
+ "eslint/no-dupe-else-if": ["error"],
17
+ "eslint/no-dupe-keys": ["error"],
18
+ "eslint/no-duplicate-case": ["error"],
19
+ "eslint/no-empty-character-class": ["error"],
20
+ "eslint/no-empty-pattern": ["error"],
21
+ "eslint/no-empty-static-block": ["error"],
22
+ "eslint/no-eval": ["error"],
23
+ "eslint/no-ex-assign": ["error"],
24
+ "eslint/no-extra-boolean-cast": ["error"],
25
+ "eslint/no-func-assign": ["error"],
26
+ "eslint/no-global-assign": ["error"],
27
+ "eslint/no-import-assign": ["error"],
28
+ "eslint/no-invalid-regexp": ["error"],
29
+ "eslint/no-irregular-whitespace": ["error"],
30
+ "eslint/no-loss-of-precision": ["error"],
31
+ "eslint/no-new-native-nonconstructor": ["error"],
32
+ "eslint/no-nonoctal-decimal-escape": ["error"],
33
+ "eslint/no-obj-calls": ["error"],
34
+ "eslint/no-self-assign": ["error"],
35
+ "eslint/no-setter-return": ["error"],
36
+ "eslint/no-shadow-restricted-names": ["error"],
37
+ "eslint/no-sparse-arrays": ["error"],
38
+ "eslint/no-this-before-super": ["error"],
39
+ "eslint/no-unsafe-finally": ["error"],
40
+ "eslint/no-unsafe-negation": ["error"],
41
+ "eslint/no-unsafe-optional-chaining": ["error"],
42
+ "eslint/no-unused-expressions": ["error"],
43
+ "eslint/no-unused-labels": ["error"],
44
+ "eslint/no-unused-private-class-members": ["error"],
45
+ "eslint/no-unused-vars": ["error"],
46
+ "eslint/no-useless-backreference": ["error"],
47
+ "eslint/no-useless-catch": ["error"],
48
+ "eslint/no-useless-escape": ["error"],
49
+ "eslint/no-useless-rename": ["error"],
50
+ "eslint/no-with": ["error"],
51
+ "eslint/require-yield": ["error"],
52
+ "eslint/use-isnan": ["error"],
53
+ "eslint/valid-typeof": ["error"]
54
+ }
55
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "rules": {
3
+ "import/default": ["error"],
4
+ "import/namespace": ["error"]
5
+ }
6
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "rules": {
3
+ "jsdoc/check-property-names": ["error"],
4
+ "jsdoc/check-tag-names": ["error"],
5
+ "jsdoc/implements-on-classes": ["error"],
6
+ "jsdoc/no-defaults": ["error"],
7
+ "jsdoc/require-property": ["error"],
8
+ "jsdoc/require-property-description": ["error"],
9
+ "jsdoc/require-property-name": ["error"],
10
+ "jsdoc/require-property-type": ["error"],
11
+ "jsdoc/require-yields": ["error"]
12
+ }
13
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "rules": {
3
+ "oxc/bad-array-method-on-arguments": ["error"],
4
+ "oxc/bad-char-at-comparison": ["error"],
5
+ "oxc/bad-comparison-sequence": ["error"],
6
+ "oxc/bad-min-max-func": ["error"],
7
+ "oxc/bad-object-literal-comparison": ["error"],
8
+ "oxc/bad-replace-all-arg": ["error"],
9
+ "oxc/const-comparisons": ["error"],
10
+ "oxc/double-comparisons": ["error"],
11
+ "oxc/erasing-op": ["error"],
12
+ "oxc/missing-throw": ["error"],
13
+ "oxc/number-arg-out-of-range": ["error"],
14
+ "oxc/only-used-in-recursion": ["error"],
15
+ "oxc/uninvoked-array-callback": ["error"]
16
+ }
17
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "rules": {
3
+ "promise/no-callback-in-promise": ["error"],
4
+ "promise/no-new-statics": ["error"],
5
+ "promise/valid-params": ["error"]
6
+ }
7
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "rules": {
3
+ "typescript/await-thenable": ["error"],
4
+ "typescript/no-array-delete": ["error"],
5
+ "typescript/no-base-to-string": ["error"],
6
+ "typescript/no-duplicate-enum-values": ["error"],
7
+ "typescript/no-duplicate-type-constituents": ["error"],
8
+ "typescript/no-extra-non-null-assertion": ["error"],
9
+ "typescript/no-floating-promises": ["error"],
10
+ "typescript/no-for-in-array": ["error"],
11
+ "typescript/no-implied-eval": ["error"],
12
+ "typescript/no-meaningless-void-operator": ["error"],
13
+ "typescript/no-misused-new": ["error"],
14
+ "typescript/no-misused-spread": ["error"],
15
+ "typescript/no-non-null-asserted-optional-chain": ["error"],
16
+ "typescript/no-redundant-type-constituents": ["error"],
17
+ "typescript/no-this-alias": ["error"],
18
+ "typescript/no-unnecessary-parameter-property-assignment": ["error"],
19
+ "typescript/no-unsafe-declaration-merging": ["error"],
20
+ "typescript/no-unsafe-unary-minus": ["error"],
21
+ "typescript/no-useless-empty-export": ["error"],
22
+ "typescript/no-wrapper-object-types": ["error"],
23
+ "typescript/prefer-as-const": ["error"],
24
+ "typescript/require-array-sort-compare": ["error"],
25
+ "typescript/restrict-template-expressions": ["error"],
26
+ "typescript/triple-slash-reference": ["error"],
27
+ "typescript/unbound-method": ["error"]
28
+ }
29
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "rules": {
3
+ "unicorn/no-await-in-promise-methods": ["error"],
4
+ "unicorn/no-empty-file": ["error"],
5
+ "unicorn/no-invalid-fetch-options": ["error"],
6
+ "unicorn/no-invalid-remove-event-listener": ["error"],
7
+ "unicorn/no-new-array": ["error"],
8
+ "unicorn/no-single-promise-in-promise-methods": ["error"],
9
+ "unicorn/no-thenable": ["error"],
10
+ "unicorn/no-unnecessary-await": ["error"],
11
+ "unicorn/no-useless-fallback-in-spread": ["error"],
12
+ "unicorn/no-useless-length-check": ["error"],
13
+ "unicorn/no-useless-spread": ["error"],
14
+ "unicorn/prefer-set-size": ["error"],
15
+ "unicorn/prefer-string-starts-ends-with": ["error"]
16
+ }
17
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "rules": {
3
+ "vitest/no-conditional-tests": ["error"],
4
+ "vitest/require-local-test-context-for-concurrent-snapshots": ["error"]
5
+ }
6
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "rules": {
3
+ "vue/no-export-in-script-setup": ["error"],
4
+ "vue/prefer-import-from-vue": ["error"],
5
+ "vue/valid-define-emits": ["error"],
6
+ "vue/valid-define-props": ["error"]
7
+ }
8
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "rules": {
3
+ "eslint/constructor-super": ["error"],
4
+ "eslint/getter-return": ["error"],
5
+ "eslint/no-misleading-character-class": ["error"],
6
+ "eslint/no-undef": ["off"],
7
+ "eslint/no-unreachable": ["error"]
8
+ }
9
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "rules": {
3
+ "import/export": ["error"],
4
+ "import/named": ["error"]
5
+ }
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "rules": {
3
+ "oxc/branches-sharing-code": ["error"],
4
+ "oxc/no-map-spread": ["error"]
5
+ }
6
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "rules": {
3
+ "promise/no-return-in-finally": ["error"]
4
+ }
5
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "rules": {
3
+ "eslint/array-callback-return": ["error"],
4
+ "eslint/eqeqeq": ["error"],
5
+ "eslint/max-classes-per-file": ["error"],
6
+ "eslint/max-depth": ["error"],
7
+ "eslint/max-lines": ["off"],
8
+ "eslint/max-lines-per-function": ["off"],
9
+ "eslint/max-nested-callbacks": ["error"],
10
+ "eslint/no-array-constructor": ["error"],
11
+ "eslint/no-case-declarations": ["error"],
12
+ "eslint/no-constructor-return": ["error"],
13
+ "eslint/no-else-return": ["error"],
14
+ "eslint/no-fallthrough": ["error"],
15
+ "eslint/no-inner-declarations": ["error"],
16
+ "eslint/no-lonely-if": ["error"],
17
+ "eslint/no-negated-condition": ["off"],
18
+ "eslint/no-new-wrappers": ["error"],
19
+ "eslint/no-object-constructor": ["error"],
20
+ "eslint/no-prototype-builtins": ["error"],
21
+ "eslint/no-redeclare": ["error"],
22
+ "eslint/no-self-compare": ["error"],
23
+ "eslint/no-throw-literal": ["error"],
24
+ "eslint/no-warning-comments": ["off"],
25
+ "eslint/radix": ["error"],
26
+ "eslint/require-await": ["error"],
27
+ "eslint/sort-vars": ["off"],
28
+ "eslint/symbol-description": ["error"]
29
+ }
30
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "rules": {
3
+ "import/max-dependencies": ["off"]
4
+ }
5
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "rules": {
3
+ "jsdoc/require-param": ["error"],
4
+ "jsdoc/require-param-description": ["error"],
5
+ "jsdoc/require-param-name": ["error"],
6
+ "jsdoc/require-param-type": ["error"],
7
+ "jsdoc/require-returns": ["error"],
8
+ "jsdoc/require-returns-description": ["error"],
9
+ "jsdoc/require-returns-type": ["error"]
10
+ }
11
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "rules": {
3
+ "typescript/ban-ts-comment": [
4
+ "error",
5
+ {
6
+ "ts-expect-error": "allow-with-description"
7
+ }
8
+ ],
9
+ "typescript/ban-types": ["error"],
10
+ "typescript/no-confusing-void-expression": ["error"],
11
+ "typescript/no-deprecated": ["error"],
12
+ "typescript/no-misused-promises": ["error"],
13
+ "typescript/no-mixed-enums": ["error"],
14
+ "typescript/no-unsafe-argument": ["error"],
15
+ "typescript/no-unsafe-assignment": ["error"],
16
+ "typescript/no-unsafe-call": ["error"],
17
+ "typescript/no-unsafe-function-type": ["error"],
18
+ "typescript/no-unsafe-member-access": ["error"],
19
+ "typescript/no-unsafe-return": ["error"],
20
+ "typescript/only-throw-error": ["error"],
21
+ "typescript/prefer-enum-initializers": ["error"],
22
+ "typescript/prefer-includes": ["error"],
23
+ "typescript/prefer-promise-reject-errors": ["error"],
24
+ "typescript/prefer-ts-expect-error": ["error"],
25
+ "typescript/related-getter-setter-pairs": ["error"],
26
+ "typescript/require-await": ["error"],
27
+ "typescript/restrict-plus-operands": ["error"],
28
+ "typescript/return-await": ["error"],
29
+ "typescript/strict-boolean-expressions": ["off"],
30
+ "typescript/switch-exhaustiveness-check": ["error"]
31
+ }
32
+ }
@@ -0,0 +1,47 @@
1
+ {
2
+ "rules": {
3
+ "unicorn/consistent-assert": ["error"],
4
+ "unicorn/consistent-empty-array-spread": ["error"],
5
+ "unicorn/escape-case": ["error"],
6
+ "unicorn/explicit-length-check": ["error"],
7
+ "unicorn/new-for-builtins": ["error"],
8
+ "unicorn/no-array-callback-reference": ["error"],
9
+ "unicorn/no-hex-escape": ["error"],
10
+ "unicorn/no-instanceof-array": ["error"],
11
+ "unicorn/no-lonely-if": ["error"],
12
+ "unicorn/no-negation-in-equality-check": ["error"],
13
+ "unicorn/no-new-buffer": ["error"],
14
+ "unicorn/no-object-as-default-parameter": ["error"],
15
+ "unicorn/no-static-only-class": ["error"],
16
+ "unicorn/no-this-assignment": ["error"],
17
+ "unicorn/no-typeof-undefined": ["error"],
18
+ "unicorn/no-unnecessary-array-flat-depth": ["error"],
19
+ "unicorn/no-unnecessary-array-splice-count": ["error"],
20
+ "unicorn/no-unnecessary-slice-end": ["error"],
21
+ "unicorn/no-unreadable-iife": ["error"],
22
+ "unicorn/no-useless-promise-resolve-reject": ["error"],
23
+ "unicorn/no-useless-switch-case": ["error"],
24
+ "unicorn/no-useless-undefined": ["error"],
25
+ "unicorn/prefer-array-flat": ["error"],
26
+ "unicorn/prefer-array-some": ["error"],
27
+ "unicorn/prefer-at": ["error"],
28
+ "unicorn/prefer-blob-reading-methods": ["error"],
29
+ "unicorn/prefer-code-point": ["error"],
30
+ "unicorn/prefer-date-now": ["error"],
31
+ "unicorn/prefer-dom-node-append": ["error"],
32
+ "unicorn/prefer-dom-node-dataset": ["error"],
33
+ "unicorn/prefer-dom-node-remove": ["error"],
34
+ "unicorn/prefer-event-target": ["error"],
35
+ "unicorn/prefer-math-min-max": ["error"],
36
+ "unicorn/prefer-math-trunc": ["error"],
37
+ "unicorn/prefer-native-coercion-functions": ["error"],
38
+ "unicorn/prefer-prototype-methods": ["error"],
39
+ "unicorn/prefer-query-selector": ["error"],
40
+ "unicorn/prefer-regexp-test": ["error"],
41
+ "unicorn/prefer-string-replace-all": ["error"],
42
+ "unicorn/prefer-string-slice": ["error"],
43
+ "unicorn/prefer-top-level-await": ["error"],
44
+ "unicorn/prefer-type-error": ["error"],
45
+ "unicorn/require-number-to-fixed-digits-argument": ["error"]
46
+ }
47
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "rules": {
3
+ "eslint/no-await-in-loop": ["error"],
4
+ "eslint/no-useless-call": ["error"]
5
+ }
6
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "rules": {
3
+ "oxc/no-accumulating-spread": ["error"]
4
+ }
5
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "rules": {
3
+ "unicorn/prefer-array-find": ["error"],
4
+ "unicorn/prefer-array-flat-map": ["error"],
5
+ "unicorn/prefer-set-has": ["error"]
6
+ }
7
+ }
@@ -0,0 +1,54 @@
1
+ {
2
+ "rules": {
3
+ "eslint/class-methods-use-this": ["error"],
4
+ "eslint/default-case": ["error"],
5
+ "eslint/no-alert": ["error"],
6
+ "eslint/no-bitwise": ["error"],
7
+ "eslint/no-console": [
8
+ "error",
9
+ {
10
+ "allow": ["error"]
11
+ }
12
+ ],
13
+ "eslint/no-div-regex": ["error"],
14
+ "eslint/no-empty": ["error"],
15
+ "eslint/no-empty-function": ["error"],
16
+ "eslint/no-eq-null": ["error"],
17
+ "eslint/no-iterator": ["error"],
18
+ "eslint/no-param-reassign": ["error"],
19
+ "eslint/no-plusplus": [
20
+ "error",
21
+ {
22
+ "allowForLoopAfterthoughts": true
23
+ }
24
+ ],
25
+ "eslint/no-proto": ["error"],
26
+ "eslint/no-regex-spaces": ["error"],
27
+ "eslint/no-restricted-globals": ["off"],
28
+ "no-restricted-imports": [
29
+ "error",
30
+ [
31
+ {
32
+ "name": "vue",
33
+ "message": "Do not manually import from 'vue' in a Nuxt project. Nuxt automatically provides Vue APIs. If you are not using Nuxt, override this rule."
34
+ },
35
+ {
36
+ "name": "@vueuse/core",
37
+ "message": "Do not manually import VueUse utilities in Nuxt. Use auto-imports instead. If you are not using Nuxt, override this rule."
38
+ },
39
+ {
40
+ "name": "#app",
41
+ "message": "Do not import from '#app'. These APIs are auto-imported in Nuxt. If you are not using Nuxt, override this rule."
42
+ },
43
+ {
44
+ "name": "vue-router",
45
+ "message": "Do not manually import from 'vue-router' in Nuxt. Use the router composables provided by auto-imports. If you are not using Nuxt, override this rule."
46
+ }
47
+ ]
48
+ ],
49
+ "eslint/no-undefined": ["error"],
50
+ "eslint/no-var": ["error"],
51
+ "eslint/no-void": ["off"],
52
+ "eslint/unicode-bom": ["error", "never"]
53
+ }
54
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "rules": {
3
+ "import/extensions": [
4
+ "error",
5
+ {
6
+ "checkTypeImports": true
7
+ }
8
+ ],
9
+ "import/no-amd": ["error"],
10
+ "import/no-commonjs": ["error"],
11
+ "import/no-cycle": ["error"],
12
+ "import/no-default-export": ["off"],
13
+ "import/no-dynamic-require": ["error"],
14
+ "import/no-webpack-loader-syntax": ["error"],
15
+ "import/unambiguous": ["off"]
16
+ }
17
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "rules": {
3
+ "jsdoc/check-access": ["error"],
4
+ "jsdoc/empty-tags": ["error"]
5
+ }
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "rules": {
3
+ "node/no-new-require": ["error"],
4
+ "node/no-process-env": ["error"]
5
+ }
6
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "rules": {
3
+ "oxc/bad-bitwise-operator": ["error"],
4
+ "oxc/no-async-await": ["off"],
5
+ "oxc/no-barrel-file": ["error"],
6
+ "oxc/no-const-enum": ["error"],
7
+ "oxc/no-optional-chaining": ["off"],
8
+ "oxc/no-rest-spread-properties": ["off"]
9
+ }
10
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "rules": {
3
+ "promise/catch-or-return": ["error"],
4
+ "promise/spec-only": ["error"]
5
+ }
6
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "rules": {
3
+ "typescript/explicit-function-return-type": ["error"],
4
+ "typescript/explicit-module-boundary-types": ["error"],
5
+ "typescript/no-dynamic-delete": ["error"],
6
+ "typescript/no-empty-object-type": ["error"],
7
+ "typescript/no-explicit-any": ["error"],
8
+ "typescript/no-import-type-side-effects": ["error"],
9
+ "typescript/no-namespace": ["error"],
10
+ "typescript/no-non-null-asserted-nullish-coalescing": ["error"],
11
+ "typescript/no-non-null-assertion": ["error"],
12
+ "typescript/no-require-imports": ["error"],
13
+ "typescript/no-restricted-types": ["off"],
14
+ "typescript/no-var-requires": ["error"],
15
+ "typescript/non-nullable-type-assertion-style": ["off"],
16
+ "typescript/prefer-literal-enum-member": ["error"],
17
+ "typescript/promise-function-async": ["error"],
18
+ "typescript/use-unknown-in-catch-callback-variable": ["error"]
19
+ }
20
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "rules": {
3
+ "unicorn/no-abusive-eslint-disable": ["error"],
4
+ "unicorn/no-anonymous-default-export": ["off"],
5
+ "unicorn/no-array-for-each": ["error"],
6
+ "unicorn/no-array-reduce": ["error"],
7
+ "unicorn/no-document-cookie": ["error"],
8
+ "unicorn/no-length-as-slice-end": ["error"],
9
+ "unicorn/no-magic-array-flat-depth": ["error"],
10
+ "unicorn/no-process-exit": ["error"],
11
+ "unicorn/no-useless-error-capture-stack-trace": ["error"],
12
+ "unicorn/prefer-modern-math-apis": ["error"],
13
+ "unicorn/prefer-node-protocol": ["off"],
14
+ "unicorn/prefer-number-properties": ["error"]
15
+ }
16
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "rules": {
3
+ "vue/max-props": ["off"],
4
+ "vue/no-import-compiler-macros": ["error"],
5
+ "vue/no-multiple-slot-args": ["error"]
6
+ }
7
+ }
@@ -0,0 +1,61 @@
1
+ {
2
+ "rules": {
3
+ "eslint/arrow-body-style": ["error", "as-needed"],
4
+ "eslint/curly": ["error", "multi-line"],
5
+ "eslint/default-case-last": ["error"],
6
+ "eslint/default-param-last": ["error"],
7
+ "eslint/func-names": ["error"],
8
+ "eslint/func-style": [
9
+ "error",
10
+ "declaration",
11
+ {
12
+ "allowArrowFunctions": true
13
+ }
14
+ ],
15
+ "eslint/grouped-accessor-pairs": ["error"],
16
+ "eslint/guard-for-in": ["error"],
17
+ "eslint/id-length": ["error"],
18
+ "eslint/init-declarations": ["off"],
19
+ "eslint/max-params": ["off"],
20
+ "eslint/new-cap": ["error"],
21
+ "eslint/no-continue": ["error"],
22
+ "eslint/no-duplicate-imports": ["error"],
23
+ "eslint/no-extra-label": ["error"],
24
+ "eslint/no-label-var": ["error"],
25
+ "eslint/no-labels": ["error"],
26
+ "eslint/no-lone-blocks": ["error"],
27
+ "eslint/no-magic-numbers": ["error"],
28
+ "eslint/no-multi-assign": ["error"],
29
+ "eslint/no-multi-str": ["error"],
30
+ "eslint/no-nested-ternary": ["error"],
31
+ "eslint/no-new-func": ["error"],
32
+ "eslint/no-return-assign": ["error"],
33
+ "eslint/no-script-url": ["error"],
34
+ "eslint/no-template-curly-in-string": ["error"],
35
+ "eslint/no-ternary": ["off"],
36
+ "eslint/no-useless-computed-key": ["error"],
37
+ "eslint/operator-assignment": ["error"],
38
+ "eslint/prefer-destructuring": ["error"],
39
+ "eslint/prefer-exponentiation-operator": ["error"],
40
+ "eslint/prefer-numeric-literals": ["error"],
41
+ "eslint/prefer-object-has-own": ["error"],
42
+ "eslint/prefer-object-spread": ["error"],
43
+ "eslint/prefer-promise-reject-errors": ["error"],
44
+ "eslint/prefer-rest-params": ["error"],
45
+ "eslint/prefer-spread": ["error"],
46
+ "eslint/prefer-template": ["error"],
47
+ "eslint/sort-imports": [
48
+ "error",
49
+ {
50
+ "allowSeparatedGroups": false,
51
+ "ignoreCase": false,
52
+ "ignoreDeclarationSort": true,
53
+ "ignoreMemberSort": false,
54
+ "memberSyntaxSortOrder": ["none", "all", "multiple", "single"]
55
+ }
56
+ ],
57
+ "eslint/sort-keys": ["off"],
58
+ "eslint/vars-on-top": ["error"],
59
+ "eslint/yoda": ["error"]
60
+ }
61
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "rules": {
3
+ "import/consistent-type-specifier-style": ["error"],
4
+ "import/exports-last": ["error"],
5
+ "import/first": ["error"],
6
+ "import/group-exports": ["error"],
7
+ "import/no-anonymous-default-export": ["off"],
8
+ "import/no-duplicates": ["error"],
9
+ "import/no-mutable-exports": ["error"],
10
+ "import/no-named-default": ["error"],
11
+ "import/no-named-export": ["off"],
12
+ "import/no-namespace": ["error"],
13
+ "import/prefer-default-export": ["off"]
14
+ }
15
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "rules": {
3
+ "node/no-exports-assign": ["error"]
4
+ }
5
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "rules": {
3
+ "promise/avoid-new": ["error"],
4
+ "promise/no-nesting": ["error"],
5
+ "promise/no-return-wrap": ["error"],
6
+ "promise/param-names": ["error"],
7
+ "promise/prefer-await-to-callbacks": ["error"],
8
+ "promise/prefer-await-to-then": ["error"],
9
+ "promise/prefer-catch": ["error"]
10
+ }
11
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "rules": {
3
+ "typescript/adjacent-overload-signatures": ["error"],
4
+ "typescript/array-type": ["error"],
5
+ "typescript/ban-tslint-comment": ["error"],
6
+ "typescript/consistent-generic-constructors": ["error"],
7
+ "typescript/consistent-indexed-object-style": ["error"],
8
+ "typescript/consistent-type-definitions": ["error"],
9
+ "typescript/consistent-type-imports": ["error"],
10
+ "typescript/no-empty-interface": ["error"],
11
+ "typescript/no-inferrable-types": ["error"],
12
+ "typescript/prefer-for-of": ["error"],
13
+ "typescript/prefer-function-type": ["error"],
14
+ "typescript/prefer-namespace-keyword": ["error"],
15
+ "typescript/prefer-reduce-type-parameter": ["error"],
16
+ "typescript/prefer-return-this-type": ["error"]
17
+ }
18
+ }
@@ -0,0 +1,42 @@
1
+ {
2
+ "rules": {
3
+ "unicorn/catch-error-name": ["error"],
4
+ "unicorn/consistent-date-clone": ["error"],
5
+ "unicorn/consistent-existence-index-check": ["error"],
6
+ "unicorn/empty-brace-spaces": ["error"],
7
+ "unicorn/error-message": ["error"],
8
+ "unicorn/filename-case": ["off"],
9
+ "unicorn/no-array-method-this-argument": ["error"],
10
+ "unicorn/no-await-expression-member": ["error"],
11
+ "unicorn/no-console-spaces": ["error"],
12
+ "unicorn/no-nested-ternary": ["error"],
13
+ "unicorn/no-null": ["off"],
14
+ "unicorn/no-unreadable-array-destructuring": ["error"],
15
+ "unicorn/no-useless-collection-argument": ["error"],
16
+ "unicorn/no-zero-fractions": ["error"],
17
+ "unicorn/number-literal-case": ["error"],
18
+ "unicorn/numeric-separators-style": ["error"],
19
+ "unicorn/prefer-array-index-of": ["error"],
20
+ "unicorn/prefer-bigint-literals": ["error"],
21
+ "unicorn/prefer-class-fields": ["error"],
22
+ "unicorn/prefer-classlist-toggle": ["error"],
23
+ "unicorn/prefer-dom-node-text-content": ["error"],
24
+ "unicorn/prefer-global-this": ["error"],
25
+ "unicorn/prefer-includes": ["error"],
26
+ "unicorn/prefer-logical-operator-over-ternary": ["error"],
27
+ "unicorn/prefer-modern-dom-apis": ["error"],
28
+ "unicorn/prefer-negative-index": ["error"],
29
+ "unicorn/prefer-object-from-entries": ["error"],
30
+ "unicorn/prefer-optional-catch-binding": ["error"],
31
+ "unicorn/prefer-reflect-apply": ["error"],
32
+ "unicorn/prefer-response-static-json": ["error"],
33
+ "unicorn/prefer-spread": ["error"],
34
+ "unicorn/prefer-string-raw": ["error"],
35
+ "unicorn/prefer-string-trim-start-end": ["error"],
36
+ "unicorn/prefer-structured-clone": ["error"],
37
+ "unicorn/require-array-join-separator": ["error"],
38
+ "unicorn/switch-case-braces": ["error"],
39
+ "unicorn/text-encoding-identifier-case": ["error"],
40
+ "unicorn/throw-new-error": ["error"]
41
+ }
42
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "rules": {
3
+ "vitest/no-import-node-test": ["error"],
4
+ "vitest/prefer-to-be-falsy": ["error"],
5
+ "vitest/prefer-to-be-object": ["error"],
6
+ "vitest/prefer-to-be-truthy": ["error"]
7
+ }
8
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "rules": {
3
+ "vue/define-emits-declaration": ["error"],
4
+ "vue/define-props-declaration": ["error", "runtime"],
5
+ "vue/define-props-destructuring": [
6
+ "error",
7
+ {
8
+ "destructure": "never"
9
+ }
10
+ ],
11
+ "vue/require-typed-ref": ["error"]
12
+ }
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "rules": {
3
+ "eslint/block-scoped-var": ["error"],
4
+ "eslint/no-extend-native": ["error"],
5
+ "eslint/no-extra-bind": ["error"],
6
+ "eslint/no-new": ["error"],
7
+ "eslint/no-unexpected-multiline": ["error"],
8
+ "eslint/no-unneeded-ternary": ["error"],
9
+ "eslint/no-useless-concat": ["error"],
10
+ "eslint/no-useless-constructor": ["error"],
11
+ "eslint/preserve-caught-error": ["error"]
12
+ }
13
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "rules": {
3
+ "import/no-absolute-path": ["error"],
4
+ "import/no-empty-named-blocks": ["error"],
5
+ "import/no-named-as-default": ["error"],
6
+ "import/no-named-as-default-member": ["error"],
7
+ "import/no-self-import": ["error"],
8
+ "import/no-unassigned-import": ["error"]
9
+ }
10
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "rules": {
3
+ "oxc/approx-constant": ["error"],
4
+ "oxc/misrefactored-assign-op": ["error"],
5
+ "oxc/no-async-endpoint-handlers": ["off"]
6
+ }
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "rules": {
3
+ "promise/always-return": ["error"],
4
+ "promise/no-multiple-resolved": ["error"],
5
+ "promise/no-promise-in-callback": ["error"]
6
+ }
7
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "rules": {
3
+ "typescript/no-confusing-non-null-assertion": ["error"],
4
+ "typescript/no-extraneous-class": ["error"],
5
+ "typescript/no-unnecessary-boolean-literal-compare": ["error"],
6
+ "typescript/no-unnecessary-template-expression": ["error"],
7
+ "typescript/no-unnecessary-type-arguments": ["error"],
8
+ "typescript/no-unnecessary-type-assertion": ["error"],
9
+ "typescript/no-unnecessary-type-constraint": ["error"],
10
+ "typescript/no-unsafe-enum-comparison": ["error"],
11
+ "typescript/no-unsafe-type-assertion": ["error"]
12
+ }
13
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "rules": {
3
+ "unicorn/consistent-function-scoping": ["error"],
4
+ "unicorn/no-accessor-recursion": ["error"],
5
+ "unicorn/no-array-reverse": ["error"],
6
+ "unicorn/no-array-sort": ["error"],
7
+ "unicorn/no-instanceof-builtins": ["error"],
8
+ "unicorn/prefer-add-event-listener": ["error"],
9
+ "unicorn/require-module-specifiers": ["error"],
10
+ "unicorn/require-post-message-target-origin": ["error"]
11
+ }
12
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "rules": {
3
+ "vue/no-required-prop-with-default": ["error"],
4
+ "vue/require-default-export": ["error"]
5
+ }
6
+ }