@shayanthenerd/eslint-config 0.4.3 → 0.4.5

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 (65) hide show
  1. package/package.json +1 -2
  2. package/dist/configs/base.js +0 -43
  3. package/dist/configs/commons.js +0 -26
  4. package/dist/configs/css.js +0 -28
  5. package/dist/configs/cypress.js +0 -22
  6. package/dist/configs/html.js +0 -22
  7. package/dist/configs/importX.js +0 -45
  8. package/dist/configs/nuxtMultiRootTemplate.js +0 -14
  9. package/dist/configs/oxlintOverrides.js +0 -50
  10. package/dist/configs/perfectionist.js +0 -23
  11. package/dist/configs/playwright.js +0 -22
  12. package/dist/configs/storybook.js +0 -23
  13. package/dist/configs/stylistic.js +0 -22
  14. package/dist/configs/tailwind.js +0 -42
  15. package/dist/configs/typescript.js +0 -30
  16. package/dist/configs/vitest.js +0 -22
  17. package/dist/configs/vue.js +0 -34
  18. package/dist/configs/vueComponentNames.js +0 -19
  19. package/dist/index.d.ts +0 -16
  20. package/dist/index.js +0 -54
  21. package/dist/oxlint.config.jsonc +0 -192
  22. package/dist/prettier.config.d.ts +0 -6
  23. package/dist/prettier.config.js +0 -38
  24. package/dist/rules/css.js +0 -65
  25. package/dist/rules/cypress.js +0 -15
  26. package/dist/rules/html.js +0 -53
  27. package/dist/rules/importX.js +0 -50
  28. package/dist/rules/javascript.js +0 -163
  29. package/dist/rules/perfectionist.js +0 -73
  30. package/dist/rules/playwright.js +0 -27
  31. package/dist/rules/storybook.js +0 -15
  32. package/dist/rules/stylistic.js +0 -160
  33. package/dist/rules/tailwind.js +0 -36
  34. package/dist/rules/typescript.js +0 -62
  35. package/dist/rules/vitest.js +0 -46
  36. package/dist/rules/vue.js +0 -171
  37. package/dist/rules/vueAccessibility.js +0 -23
  38. package/dist/types/configOptions/base.d.ts +0 -47
  39. package/dist/types/configOptions/css.d.ts +0 -27
  40. package/dist/types/configOptions/html.d.ts +0 -27
  41. package/dist/types/configOptions/importX.d.ts +0 -29
  42. package/dist/types/configOptions/nuxt.d.ts +0 -42
  43. package/dist/types/configOptions/perfectionist.d.ts +0 -16
  44. package/dist/types/configOptions/stylistic.d.ts +0 -145
  45. package/dist/types/configOptions/tailwind.d.ts +0 -46
  46. package/dist/types/configOptions/test.d.ts +0 -55
  47. package/dist/types/configOptions/typescript.d.ts +0 -36
  48. package/dist/types/configOptions/vue.d.ts +0 -211
  49. package/dist/types/configOptions/vueAccessibility.d.ts +0 -34
  50. package/dist/types/eslint-schema.d.ts +0 -13732
  51. package/dist/types/eslintRules.d.ts +0 -12
  52. package/dist/types/helpers.d.ts +0 -5
  53. package/dist/types/index.d.ts +0 -360
  54. package/dist/utils/globs.js +0 -31
  55. package/dist/utils/ignores/defaultIgnorePatterns.js +0 -57
  56. package/dist/utils/ignores/getIgnorePatterns.js +0 -16
  57. package/dist/utils/ignores/resolveGitignorePatterns.js +0 -26
  58. package/dist/utils/isEmptyString.js +0 -7
  59. package/dist/utils/isEnabled.js +0 -7
  60. package/dist/utils/isPackageDetected.js +0 -20
  61. package/dist/utils/options/defaultOptions.js +0 -168
  62. package/dist/utils/options/enableDetectedConfigs.js +0 -40
  63. package/dist/utils/options/mergeWithDefaults.js +0 -21
  64. package/dist/utils/vue/getRestrictedVueElements.js +0 -27
  65. package/dist/utils/vue/getRestrictedVueInputs.js +0 -23
@@ -1,27 +0,0 @@
1
- //#region src/rules/playwright.ts
2
- function getPlaywrightRules(options) {
3
- const { maxNestedDescribe } = options.configs.test;
4
- const playwrightRules = {
5
- "playwright/max-expects": "off",
6
- "playwright/prefer-to-be": "warn",
7
- "playwright/no-get-by-title": "error",
8
- "playwright/prefer-to-contain": "warn",
9
- "playwright/no-wait-for-timeout": "off",
10
- "playwright/no-duplicate-hooks": "error",
11
- "playwright/prefer-strict-equal": "warn",
12
- "playwright/prefer-hooks-on-top": "warn",
13
- "playwright/prefer-to-have-count": "warn",
14
- "playwright/prefer-hooks-in-order": "warn",
15
- "playwright/prefer-to-have-length": "warn",
16
- "playwright/no-commented-out-tests": "error",
17
- "playwright/prefer-equality-matcher": "warn",
18
- "playwright/require-to-throw-message": "error",
19
- "playwright/prefer-comparison-matcher": "warn",
20
- "playwright/max-nested-describe": ["warn", { max: maxNestedDescribe }],
21
- "playwright/prefer-lowercase-title": ["warn", { ignoreTopLevelDescribe: true }]
22
- };
23
- return playwrightRules;
24
- }
25
-
26
- //#endregion
27
- export { getPlaywrightRules };
@@ -1,15 +0,0 @@
1
- import path from "node:path";
2
-
3
- //#region src/rules/storybook.ts
4
- function getStorybookRules(options) {
5
- const storybookRules = {
6
- "storybook/csf-component": "error",
7
- "storybook/no-stories-of": "error",
8
- "storybook/meta-satisfies-type": "warn",
9
- "storybook/no-uninstalled-addons": ["error", { packageJsonLocation: path.resolve(options.packageDir, "package.json") }]
10
- };
11
- return storybookRules;
12
- }
13
-
14
- //#endregion
15
- export { getStorybookRules };
@@ -1,160 +0,0 @@
1
- import { isEnabled } from "../utils/isEnabled.js";
2
- import { defaultOptions } from "../utils/options/defaultOptions.js";
3
-
4
- //#region src/rules/stylistic.ts
5
- function getStylisticRules(options) {
6
- const { stylistic } = options.configs;
7
- const { semi, quotes, indent, useTabs, jsxQuotes, arrowParens, trailingComma, maxLineLength, memberDelimiterStyle, maxConsecutiveEmptyLines } = isEnabled(stylistic) ? stylistic : defaultOptions.configs.stylistic;
8
- const stylisticRules = {
9
- "@stylistic/wrap-regex": "warn",
10
- "@stylistic/semi-style": "warn",
11
- "@stylistic/semi": ["warn", semi],
12
- "@stylistic/spaced-comment": "off",
13
- "@stylistic/no-extra-semi": "warn",
14
- "@stylistic/linebreak-style": "warn",
15
- "@stylistic/quotes": ["warn", quotes],
16
- "@stylistic/no-confusing-arrow": "warn",
17
- "@stylistic/switch-colon-spacing": "warn",
18
- "@stylistic/jsx-quotes": ["warn", jsxQuotes],
19
- "@stylistic/type-annotation-spacing": "warn",
20
- "@stylistic/no-tabs": useTabs ? "off" : "warn",
21
- "@stylistic/lines-between-class-members": "off",
22
- "@stylistic/arrow-parens": ["warn", arrowParens],
23
- "@stylistic/comma-dangle": ["warn", trailingComma],
24
- "@stylistic/object-curly-spacing": ["warn", "always"],
25
- "@stylistic/nonblock-statement-body-position": "error",
26
- "@stylistic/generator-star-spacing": ["warn", "after"],
27
- "@stylistic/implicit-arrow-linebreak": ["error", "beside"],
28
- "@stylistic/array-bracket-newline": ["warn", "consistent"],
29
- "@stylistic/no-mixed-spaces-and-tabs": ["warn", "smart-tabs"],
30
- "@stylistic/indent-binary-ops": ["warn", useTabs ? "tab" : indent],
31
- "@stylistic/function-call-argument-newline": ["warn", "consistent"],
32
- "@stylistic/brace-style": [
33
- "warn",
34
- "1tbs",
35
- { allowSingleLine: true }
36
- ],
37
- "@stylistic/padded-blocks": [
38
- "error",
39
- "never",
40
- { allowSingleLineBlocks: true }
41
- ],
42
- "@stylistic/object-property-newline": ["warn", { allowAllPropertiesOnSameLine: true }],
43
- "@stylistic/indent": [
44
- "warn",
45
- useTabs ? "tab" : indent,
46
- { tabLength: indent }
47
- ],
48
- "@stylistic/max-len": ["warn", {
49
- tabWidth: indent,
50
- code: maxLineLength,
51
- ignoreUrls: true,
52
- ignoreStrings: true,
53
- ignoreComments: true,
54
- ignoreRegExpLiterals: true,
55
- ignoreTrailingComments: true,
56
- ignoreTemplateLiterals: true
57
- }],
58
- "@stylistic/object-curly-newline": ["warn", {
59
- multiline: true,
60
- consistent: true
61
- }],
62
- "@stylistic/lines-around-comment": ["warn", {
63
- allowTypeStart: true,
64
- allowEnumStart: true,
65
- allowClassStart: true,
66
- allowBlockStart: true,
67
- allowArrayStart: true,
68
- allowModuleStart: true,
69
- allowObjectStart: true,
70
- allowInterfaceStart: true
71
- }],
72
- "@stylistic/no-multiple-empty-lines": ["warn", {
73
- maxBOF: 0,
74
- maxEOF: 0,
75
- max: maxConsecutiveEmptyLines
76
- }],
77
- "@stylistic/member-delimiter-style": ["error", {
78
- singleline: { delimiter: memberDelimiterStyle },
79
- multiline: {
80
- delimiter: memberDelimiterStyle,
81
- requireLast: trailingComma !== "never"
82
- }
83
- }],
84
- "@stylistic/operator-linebreak": [
85
- "error",
86
- "none",
87
- { overrides: {
88
- "=": "after",
89
- "?": "before",
90
- ":": "before",
91
- "|": "before",
92
- "&": "before"
93
- } }
94
- ],
95
- "@stylistic/padding-line-between-statements": [
96
- "warn",
97
- {
98
- prev: "*",
99
- next: [
100
- "do",
101
- "try",
102
- "for",
103
- "iife",
104
- "with",
105
- "class",
106
- "block",
107
- "while",
108
- "throw",
109
- "return",
110
- "switch",
111
- "export",
112
- "function",
113
- "directive",
114
- "block-like",
115
- "cjs-export",
116
- "multiline-block-like"
117
- ],
118
- blankLine: "always"
119
- },
120
- {
121
- prev: "import",
122
- next: "*",
123
- blankLine: "always"
124
- },
125
- {
126
- prev: "import",
127
- next: "import",
128
- blankLine: "any"
129
- },
130
- {
131
- prev: "export",
132
- next: "export",
133
- blankLine: "any"
134
- },
135
- {
136
- prev: "function-overload",
137
- next: "function",
138
- blankLine: "never"
139
- },
140
- {
141
- prev: [
142
- "const",
143
- "let",
144
- "var"
145
- ],
146
- next: "block-like",
147
- blankLine: "any"
148
- },
149
- {
150
- prev: "block-like",
151
- next: "*",
152
- blankLine: "always"
153
- }
154
- ]
155
- };
156
- return stylisticRules;
157
- }
158
-
159
- //#endregion
160
- export { getStylisticRules };
@@ -1,36 +0,0 @@
1
- import { isEnabled } from "../utils/isEnabled.js";
2
- import { defaultOptions } from "../utils/options/defaultOptions.js";
3
-
4
- //#region src/rules/tailwind.ts
5
- function getTailwindRules(options) {
6
- const { tailwind, stylistic } = options.configs;
7
- const { multilineSort, ignoredUnregisteredClasses: userIgnoredUnregisteredClasses } = isEnabled(tailwind) ? tailwind : defaultOptions.configs.tailwind;
8
- const { indent, useTabs, maxLineLength } = isEnabled(stylistic) ? stylistic : defaultOptions.configs.stylistic;
9
- const isTailwindV4 = isEnabled(tailwind) && tailwind.entryPoint;
10
- const tailwindRules = {
11
- "vue/max-len": "off",
12
- "@stylistic/max-len": "off",
13
- "css/no-duplicate-imports": "off",
14
- "better-tailwindcss/no-duplicate-classes": "error",
15
- "better-tailwindcss/no-deprecated-classes": "error",
16
- "better-tailwindcss/no-conflicting-classes": "error",
17
- "better-tailwindcss/enforce-shorthand-classes": "warn",
18
- "better-tailwindcss/no-unnecessary-whitespace": "warn",
19
- "better-tailwindcss/enforce-consistent-class-order": "warn",
20
- "better-tailwindcss/enforce-consistent-variable-syntax": "warn",
21
- "better-tailwindcss/enforce-consistent-important-position": "warn",
22
- "better-tailwindcss/no-unregistered-classes": [isTailwindV4 ? "warn" : "off", {
23
- detectComponentClasses: true,
24
- ignore: userIgnoredUnregisteredClasses
25
- }],
26
- "better-tailwindcss/enforce-consistent-line-wrapping": [multilineSort ? "warn" : "off", {
27
- preferSingleLine: true,
28
- printWidth: maxLineLength,
29
- indent: useTabs ? "tab" : indent
30
- }]
31
- };
32
- return tailwindRules;
33
- }
34
-
35
- //#endregion
36
- export { getTailwindRules };
@@ -1,62 +0,0 @@
1
- import { isEnabled } from "../utils/isEnabled.js";
2
- import { defaultOptions } from "../utils/options/defaultOptions.js";
3
-
4
- //#region src/rules/typescript.ts
5
- function getTypeScriptRules(options) {
6
- const { typescript } = options.configs;
7
- const { typeDefinitionStyle, methodSignatureStyle } = isEnabled(typescript) ? typescript : defaultOptions.configs.typescript;
8
- const tsRules = {
9
- "no-loop-func": "off",
10
- "no-unused-vars": "off",
11
- "default-param-last": "off",
12
- "prefer-destructuring": "off",
13
- "@typescript-eslint/no-loop-func": "error",
14
- "@typescript-eslint/default-param-last": "warn",
15
- "@typescript-eslint/no-unsafe-assignment": "warn",
16
- "@typescript-eslint/prefer-destructuring": "warn",
17
- "@typescript-eslint/promise-function-async": "error",
18
- "@typescript-eslint/no-unsafe-member-access": "warn",
19
- "@typescript-eslint/consistent-type-imports": "warn",
20
- "@typescript-eslint/no-useless-empty-export": "error",
21
- "@typescript-eslint/no-unsafe-type-assertion": "warn",
22
- "@typescript-eslint/prefer-enum-initializers": "error",
23
- "@typescript-eslint/no-unnecessary-qualifier": "error",
24
- "@typescript-eslint/switch-exhaustiveness-check": "warn",
25
- "@typescript-eslint/no-unnecessary-parameter-property-assignment": "warn",
26
- "@typescript-eslint/method-signature-style": ["error", methodSignatureStyle],
27
- "@typescript-eslint/consistent-type-definitions": ["warn", typeDefinitionStyle],
28
- "@typescript-eslint/naming-convention": [
29
- "warn",
30
- {
31
- selector: "variable",
32
- format: [
33
- "camelCase",
34
- "PascalCase",
35
- "UPPER_CASE"
36
- ]
37
- },
38
- {
39
- selector: "memberLike",
40
- modifiers: ["private"],
41
- format: ["camelCase"],
42
- leadingUnderscore: "require"
43
- },
44
- {
45
- selector: "enumMember",
46
- format: ["PascalCase"]
47
- },
48
- {
49
- selector: "typeLike",
50
- format: ["PascalCase"],
51
- custom: {
52
- regex: "^(I|T(?!S))[A-Z]",
53
- match: false
54
- }
55
- }
56
- ]
57
- };
58
- return tsRules;
59
- }
60
-
61
- //#endregion
62
- export { getTypeScriptRules };
@@ -1,46 +0,0 @@
1
- //#region src/rules/vitest.ts
2
- function getVitestRules(options) {
3
- const { testFunction, maxNestedDescribe } = options.configs.test;
4
- const vitestRules = {
5
- "vitest/prefer-todo": "warn",
6
- "vitest/prefer-to-be": "warn",
7
- "vitest/require-hook": "error",
8
- "vitest/prefer-spy-on": "warn",
9
- "vitest/no-mocks-import": "error",
10
- "vitest/no-test-prefixes": "error",
11
- "vitest/no-alias-methods": "error",
12
- "vitest/no-focused-tests": "error",
13
- "vitest/prefer-to-contain": "warn",
14
- "vitest/no-disabled-tests": "error",
15
- "vitest/prefer-called-with": "warn",
16
- "vitest/prefer-to-be-falsy": "warn",
17
- "vitest/no-duplicate-hooks": "error",
18
- "vitest/prefer-strict-equal": "warn",
19
- "vitest/prefer-to-be-truthy": "warn",
20
- "vitest/prefer-to-be-object": "warn",
21
- "vitest/no-conditional-tests": "error",
22
- "vitest/no-standalone-expect": "error",
23
- "vitest/prefer-to-have-length": "warn",
24
- "vitest/prefer-hooks-in-order": "warn",
25
- "vitest/no-conditional-expect": "error",
26
- "vitest/prefer-lowercase-title": "warn",
27
- "vitest/no-conditional-in-test": "error",
28
- "vitest/prefer-equality-matcher": "warn",
29
- "vitest/consistent-test-filename": "warn",
30
- "vitest/no-test-return-statement": "error",
31
- "vitest/require-to-throw-message": "error",
32
- "vitest/prefer-comparison-matcher": "warn",
33
- "vitest/prefer-mock-promise-shorthand": "warn",
34
- "vitest/no-interpolation-in-snapshots": "error",
35
- "vitest/prefer-snapshot-hint": ["warn", "always"],
36
- "vitest/max-nested-describe": ["warn", { max: maxNestedDescribe }],
37
- "vitest/consistent-test-it": ["warn", {
38
- fn: testFunction,
39
- withinDescribe: testFunction
40
- }]
41
- };
42
- return vitestRules;
43
- }
44
-
45
- //#endregion
46
- export { getVitestRules };
package/dist/rules/vue.js DELETED
@@ -1,171 +0,0 @@
1
- import { isEnabled } from "../utils/isEnabled.js";
2
- import { defaultOptions } from "../utils/options/defaultOptions.js";
3
- import { getRestrictedVueInputs } from "../utils/vue/getRestrictedVueInputs.js";
4
- import { getRestrictedVueElements } from "../utils/vue/getRestrictedVueElements.js";
5
-
6
- //#region src/rules/vue.ts
7
- function getVueRules(options) {
8
- const { typescript, stylistic, vue, nuxt } = options.configs;
9
- const { indent, useTabs, trailingComma, maxLineLength, maxAttributesPerLine, maxConsecutiveEmptyLines, selfCloseVoidHTMLElements } = isEnabled(stylistic) ? stylistic : defaultOptions.configs.stylistic;
10
- const { blockLang, blocksOrder, macrosOrder, attributesOrder, vOnHandlerStyle, destructureProps, vForDelimiterStyle, attributeHyphenation, allowedStyleAttributes, preferVBindTrueShorthand, componentNameCaseInTemplate, preferVBindSameNameShorthand, restrictedElements: userRestrictedElements, ignoredUndefinedComponents: userIgnoredUndefinedComponents, restrictedStaticAttributes: userRestrictedStaticAttributes } = isEnabled(vue) ? vue : defaultOptions.configs.vue;
11
- const nuxtImage = isEnabled(nuxt) ? nuxt.image : void 0;
12
- const nuxtUI = isEnabled(nuxt) ? nuxt.ui : void 0;
13
- const nuxtUIPrefix = isEnabled(nuxt) && isEnabled(nuxt.ui) ? nuxt.ui.prefix : void 0;
14
- const isScriptLangTS = blockLang.script === "ts";
15
- const isStyleLangImplicit = blockLang.style === "implicit";
16
- const vueRules = {
17
- "no-undef": "off",
18
- "no-useless-assignment": "off",
19
- "import-x/default": "off",
20
- "vue/comment-directive": ["error", { reportUnusedDisableDirectives: true }],
21
- "vue/html-closing-bracket-newline": "warn",
22
- "vue/singleline-html-element-content-newline": "off",
23
- "vue/html-indent": ["warn", useTabs ? "tab" : indent],
24
- "vue/v-slot-style": ["warn", { atComponent: "shorthand" }],
25
- "vue/attribute-hyphenation": ["warn", attributeHyphenation],
26
- "vue/first-attribute-linebreak": ["warn", { singleline: "beside" }],
27
- "vue/v-on-event-hyphenation": [
28
- "warn",
29
- attributeHyphenation,
30
- { autofix: true }
31
- ],
32
- "vue/v-bind-style": [
33
- "warn",
34
- "shorthand",
35
- { sameNameShorthand: preferVBindSameNameShorthand }
36
- ],
37
- "vue/html-self-closing": ["error", { html: {
38
- normal: "never",
39
- void: selfCloseVoidHTMLElements
40
- } }],
41
- "vue/max-attributes-per-line": ["warn", { singleline: { max: maxAttributesPerLine } }],
42
- "vue/attributes-order": ["warn", { order: attributesOrder }],
43
- "vue/camelcase": "warn",
44
- "vue/no-root-v-if": "warn",
45
- "vue/require-expose": "error",
46
- "vue/no-unused-refs": "error",
47
- "vue/prop-name-casing": "warn",
48
- "vue/slot-name-casing": "warn",
49
- "vue/no-useless-v-bind": "error",
50
- "vue/component-api-style": "error",
51
- "vue/html-button-has-type": "error",
52
- "vue/valid-define-options": "error",
53
- "vue/prefer-define-options": "warn",
54
- "vue/require-emit-validator": "error",
55
- "vue/require-default-export": "error",
56
- "vue/custom-event-name-casing": "warn",
57
- "vue/no-use-v-else-with-v-for": "error",
58
- "vue/no-empty-component-block": "error",
59
- "vue/no-import-compiler-macros": "error",
60
- "vue/require-typed-object-prop": "error",
61
- "vue/require-macro-variable-name": "warn",
62
- "vue/padding-line-between-blocks": "warn",
63
- "vue/match-component-import-name": "error",
64
- "vue/html-comment-content-newline": "warn",
65
- "vue/no-multiple-objects-in-class": "warn",
66
- "vue/prefer-separate-static-class": "warn",
67
- "vue/html-comment-content-spacing": "warn",
68
- "vue/comma-dangle": ["warn", trailingComma],
69
- "vue/component-options-name-casing": "warn",
70
- "vue/no-ref-object-reactivity-loss": "error",
71
- "vue/no-duplicate-attr-inheritance": "error",
72
- "vue/no-this-in-before-route-enter": "error",
73
- "vue/prefer-prop-type-boolean-first": "warn",
74
- "vue/no-setup-props-reactivity-loss": "error",
75
- "vue/block-order": ["warn", { order: blocksOrder }],
76
- "vue/v-on-handler-style": ["error", vOnHandlerStyle],
77
- "vue/v-for-delimiter-style": ["warn", vForDelimiterStyle],
78
- "vue/require-typed-ref": isScriptLangTS ? "error" : "off",
79
- "vue/define-macros-order": ["warn", { order: macrosOrder }],
80
- "vue/html-comment-indent": ["warn", useTabs ? "tab" : indent],
81
- "vue/no-static-inline-styles": ["warn", { allowBinding: true }],
82
- "vue/no-required-prop-with-default": ["error", { autofix: true }],
83
- "vue/prefer-true-attribute-shorthand": ["warn", preferVBindTrueShorthand],
84
- "vue/no-deprecated-model-definition": ["error", { allowVue3Compat: true }],
85
- "vue/enforce-style-attribute": ["error", { allow: allowedStyleAttributes }],
86
- "vue/define-props-destructuring": ["warn", { destructure: destructureProps }],
87
- "vue/define-emits-declaration": ["warn", isScriptLangTS ? "type-based" : "runtime"],
88
- "vue/define-props-declaration": ["error", isScriptLangTS ? "type-based" : "runtime"],
89
- "vue/max-len": ["warn", {
90
- tabWidth: indent,
91
- code: maxLineLength,
92
- template: Infinity,
93
- ignoreUrls: true,
94
- ignoreStrings: true,
95
- ignoreComments: true,
96
- ignoreRegExpLiterals: true,
97
- ignoreTrailingComments: true,
98
- ignoreTemplateLiterals: true,
99
- ignoreHTMLTextContents: true,
100
- ignoreHTMLAttributeValues: true
101
- }],
102
- "vue/block-lang": ["error", {
103
- script: { lang: blockLang.script },
104
- style: {
105
- lang: isStyleLangImplicit ? void 0 : blockLang.style,
106
- allowNoLang: isStyleLangImplicit
107
- }
108
- }],
109
- "vue/block-tag-newline": ["warn", {
110
- singleline: "always",
111
- maxEmptyLines: maxConsecutiveEmptyLines ? maxConsecutiveEmptyLines - 1 : 0
112
- }],
113
- "vue/no-restricted-html-elements": [
114
- "error",
115
- {
116
- element: nuxt ? "time" : "",
117
- message: "Use `<NuxtTime>`."
118
- },
119
- {
120
- element: nuxtImage ? "img" : "",
121
- message: "Use `<NuxtImg>`."
122
- },
123
- {
124
- element: nuxtImage ? "picture" : "",
125
- message: "Use `<NuxtPicture>`."
126
- },
127
- {
128
- element: nuxtUI ? [
129
- "a",
130
- "RouterLink",
131
- "NuxtLink"
132
- ] : "",
133
- message: nuxtUI && nuxtUIPrefix ? `Use <${nuxtUIPrefix}Link>.` : void 0
134
- },
135
- {
136
- element: ["a", nuxt ? "RouterLink" : ""],
137
- message: `Use <${nuxt ? "NuxtLink" : "RouterLink"}>.`
138
- },
139
- ...nuxtUI && nuxtUIPrefix ? getRestrictedVueElements(nuxtUIPrefix) : [],
140
- ...userRestrictedElements
141
- ],
142
- "vue/no-restricted-static-attribute": [
143
- "error",
144
- ...nuxtUI && nuxtUIPrefix ? getRestrictedVueInputs(nuxtUIPrefix) : [],
145
- ...userRestrictedStaticAttributes
146
- ],
147
- "vue/no-undef-components": ["error", { ignorePatterns: [
148
- "^(Nuxt|U)",
149
- "^(Icon|Html|Head|Title|Base|Meta|Link|Style|Body|NoScript)$",
150
- ...userIgnoredUndefinedComponents
151
- ] }],
152
- "vue/match-component-file-name": ["error", {
153
- shouldMatchCase: true,
154
- extensions: [
155
- "vue",
156
- "js",
157
- "jsx",
158
- ...typescript ? ["ts", "tsx"] : []
159
- ]
160
- }],
161
- "vue/component-name-in-template-casing": [
162
- "warn",
163
- componentNameCaseInTemplate,
164
- { registeredComponentsOnly: false }
165
- ]
166
- };
167
- return vueRules;
168
- }
169
-
170
- //#endregion
171
- export { getVueRules };
@@ -1,23 +0,0 @@
1
- import { isEnabled } from "../utils/isEnabled.js";
2
- import { defaultOptions } from "../utils/options/defaultOptions.js";
3
-
4
- //#region src/rules/vueAccessibility.ts
5
- function getVueAccessibilityRules(options) {
6
- const { vue } = options.configs;
7
- const { imageComponents: userImageComponents, anchorComponents: userAnchorComponents, accessibleChildComponents: userAccessibleChildComponents } = isEnabled(vue) && isEnabled(vue.accessibility) ? vue.accessibility : defaultOptions.configs.vue.accessibility;
8
- const vueA11yRules = {
9
- "vuejs-accessibility/click-events-have-key-events": "off",
10
- "vuejs-accessibility/mouse-events-have-key-events": "off",
11
- "vuejs-accessibility/no-aria-hidden-on-focusable": "error",
12
- "vuejs-accessibility/no-role-presentation-on-focusable": "error",
13
- "vuejs-accessibility/alt-text": ["error", { img: userImageComponents }],
14
- "vuejs-accessibility/anchor-has-content": ["error", {
15
- components: userAnchorComponents,
16
- accessibleChildren: userAccessibleChildComponents
17
- }]
18
- };
19
- return vueA11yRules;
20
- }
21
-
22
- //#endregion
23
- export { getVueAccessibilityRules };
@@ -1,47 +0,0 @@
1
- import { RuleOptions } from "../eslintRules.js";
2
- import { ConfigWithOverrides } from "../index.js";
3
-
4
- //#region src/types/configOptions/base.d.ts
5
- type MaxDepthOptions = RuleOptions<'max-depth'>;
6
- type MaxNestedCallbacksOptions = RuleOptions<'max-nested-callbacks'>;
7
- interface BaseOptions extends ConfigWithOverrides {
8
- /**
9
- * Enforce the consistent use of either function declarations or function expressions.
10
- *
11
- * Even when set to `'declaration'`, function expressions are still allowed, with or without a type annotation.
12
- *
13
- * @default 'declaration'
14
- *
15
- * @see [func-style](https://eslint.org/docs/latest/rules/func-style)
16
- */
17
- functionStyle?: RuleOptions<'func-style'>;
18
-
19
- /**
20
- * Prefer named exports instead of default exports.
21
- *
22
- * @default true
23
- *
24
- * @see [no-restricted-exports: `restrictDefaultExports` option](https://eslint.org/docs/latest/rules/no-restricted-exports#options)
25
- */
26
- preferNamedExports?: boolean;
27
-
28
- /**
29
- * Enforce a maximum depth that blocks can be nested to reduce code complexity.
30
- *
31
- * @default 3
32
- *
33
- * @see [max-depth](https://eslint.org/docs/latest/rules/max-depth)
34
- */
35
- maxDepth?: Exclude<MaxDepthOptions, Record<string, unknown>>;
36
-
37
- /**
38
- * Enforce a maximum depth that callbacks can be nested to increase code clarity.
39
- *
40
- * @default 3
41
- *
42
- * @see [max-nested-callbacks](https://eslint.org/docs/latest/rules/max-nested-callbacks)
43
- */
44
- maxNestedCallbacks?: Exclude<MaxNestedCallbacksOptions, Record<string, unknown>>;
45
- }
46
- //#endregion
47
- export { type BaseOptions };
@@ -1,27 +0,0 @@
1
- import { RuleOptions } from "../eslintRules.js";
2
- import { ConfigWithOverrides } from "../index.js";
3
-
4
- //#region src/types/configOptions/css.d.ts
5
- interface CSSOptions extends ConfigWithOverrides {
6
- /**
7
- * Enforce the use of baseline features.
8
- *
9
- * Aside from `'widely'` and `'newly'`, it can also be set to a numeric baseline year, such as `2025`, to allow features that became baseline newly available that year or earlier.
10
- *
11
- * @default false
12
- *
13
- * @see [css/use-baseline](https://github.com/eslint/css/blob/main/docs/rules/use-baseline.md)
14
- */
15
- useBaseline?: false | RuleOptions<'css/use-baseline'>['available'];
16
-
17
- /**
18
- * An array of relative font units that are allowed to be used.
19
- *
20
- * @default ['rem', 'em']
21
- *
22
- * @see [css/relative-font-units: `allowUnits` option](https://github.com/eslint/css/blob/main/docs/rules/relative-font-units.md#options)
23
- */
24
- allowedRelativeFontUnits?: RuleOptions<'css/relative-font-units'>['allowUnits'];
25
- }
26
- //#endregion
27
- export { type CSSOptions };
@@ -1,27 +0,0 @@
1
- import { RuleOptions } from "../eslintRules.js";
2
- import { ConfigWithOverrides } from "../index.js";
3
-
4
- //#region src/types/configOptions/html.d.ts
5
- interface HTMLOptions extends ConfigWithOverrides {
6
- /**
7
- * Enforce the use of baseline features.
8
- *
9
- * Aside from `'widely'` and `'newly'`, it can also be set to a numeric baseline year, such as `2025` (minimum is `2000`), to allow features that became baseline newly available that year or earlier.
10
- *
11
- * @default false
12
- *
13
- * @see [@html-eslint/use-baseline](https://html-eslint.org/docs/rules/use-baseline)
14
- */
15
- useBaseline?: false | RuleOptions<'@html-eslint/use-baseline'>['available'];
16
-
17
- /**
18
- * Enforce consistent naming convention for `id` attribute values.
19
- *
20
- * @default 'snake_case'
21
- *
22
- * @see [@html-eslint/id-naming-convention](https://html-eslint.org/docs/rules/id-naming-convention)
23
- */
24
- idNamingConvention?: Exclude<RuleOptions<'@html-eslint/id-naming-convention'>, 'regex'>;
25
- }
26
- //#endregion
27
- export { type HTMLOptions };