@shayanthenerd/eslint-config 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 (66) hide show
  1. package/README.md +1 -1
  2. package/dist/prettier.config.d.ts +6 -0
  3. package/dist/prettier.config.js +22 -26
  4. package/package.json +9 -12
  5. package/dist/_virtual/rolldown_runtime.cjs +0 -30
  6. package/dist/configs/base.cjs +0 -44
  7. package/dist/configs/commons.cjs +0 -27
  8. package/dist/configs/css.cjs +0 -29
  9. package/dist/configs/cypress.cjs +0 -23
  10. package/dist/configs/html.cjs +0 -23
  11. package/dist/configs/importX.cjs +0 -46
  12. package/dist/configs/nuxtMultiRootTemplate.cjs +0 -14
  13. package/dist/configs/oxlintOverrides.cjs +0 -51
  14. package/dist/configs/perfectionist.cjs +0 -24
  15. package/dist/configs/playwright.cjs +0 -23
  16. package/dist/configs/storybook.cjs +0 -24
  17. package/dist/configs/stylistic.cjs +0 -23
  18. package/dist/configs/tailwind.cjs +0 -43
  19. package/dist/configs/typescript.cjs +0 -31
  20. package/dist/configs/vitest.cjs +0 -23
  21. package/dist/configs/vue.cjs +0 -35
  22. package/dist/configs/vueComponentNames.cjs +0 -19
  23. package/dist/index.cjs +0 -55
  24. package/dist/index.d.cts +0 -16
  25. package/dist/rules/css.cjs +0 -65
  26. package/dist/rules/cypress.cjs +0 -16
  27. package/dist/rules/html.cjs +0 -53
  28. package/dist/rules/importX.cjs +0 -51
  29. package/dist/rules/javascript.cjs +0 -164
  30. package/dist/rules/perfectionist.cjs +0 -73
  31. package/dist/rules/playwright.cjs +0 -28
  32. package/dist/rules/storybook.cjs +0 -16
  33. package/dist/rules/stylistic.cjs +0 -160
  34. package/dist/rules/tailwind.cjs +0 -36
  35. package/dist/rules/typescript.cjs +0 -62
  36. package/dist/rules/vitest.cjs +0 -47
  37. package/dist/rules/vue.cjs +0 -171
  38. package/dist/rules/vueAccessibility.cjs +0 -23
  39. package/dist/types/configOptions/base.d.cts +0 -47
  40. package/dist/types/configOptions/css.d.cts +0 -27
  41. package/dist/types/configOptions/html.d.cts +0 -27
  42. package/dist/types/configOptions/importX.d.cts +0 -29
  43. package/dist/types/configOptions/nuxt.d.cts +0 -42
  44. package/dist/types/configOptions/perfectionist.d.cts +0 -16
  45. package/dist/types/configOptions/stylistic.d.cts +0 -145
  46. package/dist/types/configOptions/tailwind.d.cts +0 -46
  47. package/dist/types/configOptions/test.d.cts +0 -55
  48. package/dist/types/configOptions/typescript.d.cts +0 -36
  49. package/dist/types/configOptions/vue.d.cts +0 -211
  50. package/dist/types/configOptions/vueAccessibility.d.cts +0 -34
  51. package/dist/types/eslint-schema.d.cts +0 -13732
  52. package/dist/types/eslintRules.d.cts +0 -12
  53. package/dist/types/helpers.d.cts +0 -5
  54. package/dist/types/index.d.cts +0 -360
  55. package/dist/utils/globs.cjs +0 -32
  56. package/dist/utils/ignores/defaultIgnorePatterns.cjs +0 -58
  57. package/dist/utils/ignores/getIgnorePatterns.cjs +0 -16
  58. package/dist/utils/ignores/resolveGitignorePatterns.cjs +0 -27
  59. package/dist/utils/isEmptyString.cjs +0 -8
  60. package/dist/utils/isEnabled.cjs +0 -8
  61. package/dist/utils/isPackageDetected.cjs +0 -22
  62. package/dist/utils/options/defaultOptions.cjs +0 -169
  63. package/dist/utils/options/enableDetectedConfigs.cjs +0 -40
  64. package/dist/utils/options/mergeWithDefaults.cjs +0 -22
  65. package/dist/utils/vue/getRestrictedVueElements.cjs +0 -28
  66. package/dist/utils/vue/getRestrictedVueInputs.cjs +0 -24
@@ -1,160 +0,0 @@
1
- const require__Users_shayan_Desktop_Dev_GitHub_eslint_config_src_utils_isEnabled = require('../utils/isEnabled.cjs');
2
- const require__Users_shayan_Desktop_Dev_GitHub_eslint_config_src_utils_options_defaultOptions = require('../utils/options/defaultOptions.cjs');
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 } = require__Users_shayan_Desktop_Dev_GitHub_eslint_config_src_utils_isEnabled.isEnabled(stylistic) ? stylistic : require__Users_shayan_Desktop_Dev_GitHub_eslint_config_src_utils_options_defaultOptions.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
- exports.getStylisticRules = getStylisticRules;
@@ -1,36 +0,0 @@
1
- const require__Users_shayan_Desktop_Dev_GitHub_eslint_config_src_utils_isEnabled = require('../utils/isEnabled.cjs');
2
- const require__Users_shayan_Desktop_Dev_GitHub_eslint_config_src_utils_options_defaultOptions = require('../utils/options/defaultOptions.cjs');
3
-
4
- //#region src/rules/tailwind.ts
5
- function getTailwindRules(options) {
6
- const { tailwind, stylistic } = options.configs;
7
- const { multilineSort, ignoredUnregisteredClasses: userIgnoredUnregisteredClasses } = require__Users_shayan_Desktop_Dev_GitHub_eslint_config_src_utils_isEnabled.isEnabled(tailwind) ? tailwind : require__Users_shayan_Desktop_Dev_GitHub_eslint_config_src_utils_options_defaultOptions.defaultOptions.configs.tailwind;
8
- const { indent, useTabs, maxLineLength } = require__Users_shayan_Desktop_Dev_GitHub_eslint_config_src_utils_isEnabled.isEnabled(stylistic) ? stylistic : require__Users_shayan_Desktop_Dev_GitHub_eslint_config_src_utils_options_defaultOptions.defaultOptions.configs.stylistic;
9
- const isTailwindV4 = require__Users_shayan_Desktop_Dev_GitHub_eslint_config_src_utils_isEnabled.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
- exports.getTailwindRules = getTailwindRules;
@@ -1,62 +0,0 @@
1
- const require__Users_shayan_Desktop_Dev_GitHub_eslint_config_src_utils_isEnabled = require('../utils/isEnabled.cjs');
2
- const require__Users_shayan_Desktop_Dev_GitHub_eslint_config_src_utils_options_defaultOptions = require('../utils/options/defaultOptions.cjs');
3
-
4
- //#region src/rules/typescript.ts
5
- function getTypeScriptRules(options) {
6
- const { typescript } = options.configs;
7
- const { typeDefinitionStyle, methodSignatureStyle } = require__Users_shayan_Desktop_Dev_GitHub_eslint_config_src_utils_isEnabled.isEnabled(typescript) ? typescript : require__Users_shayan_Desktop_Dev_GitHub_eslint_config_src_utils_options_defaultOptions.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
- exports.getTypeScriptRules = getTypeScriptRules;
@@ -1,47 +0,0 @@
1
-
2
- //#region src/rules/vitest.ts
3
- function getVitestRules(options) {
4
- const { testFunction, maxNestedDescribe } = options.configs.test;
5
- const vitestRules = {
6
- "vitest/prefer-todo": "warn",
7
- "vitest/prefer-to-be": "warn",
8
- "vitest/require-hook": "error",
9
- "vitest/prefer-spy-on": "warn",
10
- "vitest/no-mocks-import": "error",
11
- "vitest/no-test-prefixes": "error",
12
- "vitest/no-alias-methods": "error",
13
- "vitest/no-focused-tests": "error",
14
- "vitest/prefer-to-contain": "warn",
15
- "vitest/no-disabled-tests": "error",
16
- "vitest/prefer-called-with": "warn",
17
- "vitest/prefer-to-be-falsy": "warn",
18
- "vitest/no-duplicate-hooks": "error",
19
- "vitest/prefer-strict-equal": "warn",
20
- "vitest/prefer-to-be-truthy": "warn",
21
- "vitest/prefer-to-be-object": "warn",
22
- "vitest/no-conditional-tests": "error",
23
- "vitest/no-standalone-expect": "error",
24
- "vitest/prefer-to-have-length": "warn",
25
- "vitest/prefer-hooks-in-order": "warn",
26
- "vitest/no-conditional-expect": "error",
27
- "vitest/prefer-lowercase-title": "warn",
28
- "vitest/no-conditional-in-test": "error",
29
- "vitest/prefer-equality-matcher": "warn",
30
- "vitest/consistent-test-filename": "warn",
31
- "vitest/no-test-return-statement": "error",
32
- "vitest/require-to-throw-message": "error",
33
- "vitest/prefer-comparison-matcher": "warn",
34
- "vitest/prefer-mock-promise-shorthand": "warn",
35
- "vitest/no-interpolation-in-snapshots": "error",
36
- "vitest/prefer-snapshot-hint": ["warn", "always"],
37
- "vitest/max-nested-describe": ["warn", { max: maxNestedDescribe }],
38
- "vitest/consistent-test-it": ["warn", {
39
- fn: testFunction,
40
- withinDescribe: testFunction
41
- }]
42
- };
43
- return vitestRules;
44
- }
45
-
46
- //#endregion
47
- exports.getVitestRules = getVitestRules;
@@ -1,171 +0,0 @@
1
- const require__Users_shayan_Desktop_Dev_GitHub_eslint_config_src_utils_isEnabled = require('../utils/isEnabled.cjs');
2
- const require__Users_shayan_Desktop_Dev_GitHub_eslint_config_src_utils_options_defaultOptions = require('../utils/options/defaultOptions.cjs');
3
- const require__Users_shayan_Desktop_Dev_GitHub_eslint_config_src_utils_vue_getRestrictedVueInputs = require('../utils/vue/getRestrictedVueInputs.cjs');
4
- const require__Users_shayan_Desktop_Dev_GitHub_eslint_config_src_utils_vue_getRestrictedVueElements = require('../utils/vue/getRestrictedVueElements.cjs');
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 } = require__Users_shayan_Desktop_Dev_GitHub_eslint_config_src_utils_isEnabled.isEnabled(stylistic) ? stylistic : require__Users_shayan_Desktop_Dev_GitHub_eslint_config_src_utils_options_defaultOptions.defaultOptions.configs.stylistic;
10
- const { blockLang, blocksOrder, macrosOrder, attributesOrder, vOnHandlerStyle, destructureProps, vForDelimiterStyle, attributeHyphenation, allowedStyleAttributes, preferVBindTrueShorthand, componentNameCaseInTemplate, preferVBindSameNameShorthand, restrictedElements: userRestrictedElements, ignoredUndefinedComponents: userIgnoredUndefinedComponents, restrictedStaticAttributes: userRestrictedStaticAttributes } = require__Users_shayan_Desktop_Dev_GitHub_eslint_config_src_utils_isEnabled.isEnabled(vue) ? vue : require__Users_shayan_Desktop_Dev_GitHub_eslint_config_src_utils_options_defaultOptions.defaultOptions.configs.vue;
11
- const nuxtImage = require__Users_shayan_Desktop_Dev_GitHub_eslint_config_src_utils_isEnabled.isEnabled(nuxt) ? nuxt.image : void 0;
12
- const nuxtUI = require__Users_shayan_Desktop_Dev_GitHub_eslint_config_src_utils_isEnabled.isEnabled(nuxt) ? nuxt.ui : void 0;
13
- const nuxtUIPrefix = require__Users_shayan_Desktop_Dev_GitHub_eslint_config_src_utils_isEnabled.isEnabled(nuxt) && require__Users_shayan_Desktop_Dev_GitHub_eslint_config_src_utils_isEnabled.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 ? require__Users_shayan_Desktop_Dev_GitHub_eslint_config_src_utils_vue_getRestrictedVueElements.getRestrictedVueElements(nuxtUIPrefix) : [],
140
- ...userRestrictedElements
141
- ],
142
- "vue/no-restricted-static-attribute": [
143
- "error",
144
- ...nuxtUI && nuxtUIPrefix ? require__Users_shayan_Desktop_Dev_GitHub_eslint_config_src_utils_vue_getRestrictedVueInputs.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
- exports.getVueRules = getVueRules;
@@ -1,23 +0,0 @@
1
- const require__Users_shayan_Desktop_Dev_GitHub_eslint_config_src_utils_isEnabled = require('../utils/isEnabled.cjs');
2
- const require__Users_shayan_Desktop_Dev_GitHub_eslint_config_src_utils_options_defaultOptions = require('../utils/options/defaultOptions.cjs');
3
-
4
- //#region src/rules/vueAccessibility.ts
5
- function getVueAccessibilityRules(options) {
6
- const { vue } = options.configs;
7
- const { imageComponents: userImageComponents, anchorComponents: userAnchorComponents, accessibleChildComponents: userAccessibleChildComponents } = require__Users_shayan_Desktop_Dev_GitHub_eslint_config_src_utils_isEnabled.isEnabled(vue) && require__Users_shayan_Desktop_Dev_GitHub_eslint_config_src_utils_isEnabled.isEnabled(vue.accessibility) ? vue.accessibility : require__Users_shayan_Desktop_Dev_GitHub_eslint_config_src_utils_options_defaultOptions.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
- exports.getVueAccessibilityRules = getVueAccessibilityRules;
@@ -1,47 +0,0 @@
1
- import { RuleOptions } from "../eslintRules.cjs";
2
- import { ConfigWithOverrides } from "../index.cjs";
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.cjs";
2
- import { ConfigWithOverrides } from "../index.cjs";
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.cjs";
2
- import { ConfigWithOverrides } from "../index.cjs";
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 };
@@ -1,29 +0,0 @@
1
- import { ConfigWithOverrides } from "../index.cjs";
2
-
3
- //#region src/types/configOptions/importX.d.ts
4
-
5
- interface ImportXOptions extends ConfigWithOverrides {
6
- /**
7
- * Automatically remove unused imports.
8
- *
9
- * @default true
10
- *
11
- * @see [unused-imports/no-unused-imports](https://github.com/sweepline/eslint-plugin-unused-imports/blob/master/docs/rules/no-unused-imports.md)
12
- */
13
- removeUnusedImports?: boolean;
14
-
15
- /**
16
- * Require file extensions within the import path.
17
- *
18
- * Imports from third-party packages are ignored.
19
- *
20
- * `import-x/extensions` rule is currently broken, so `import/extensions` is used as a temporary replacement.
21
- *
22
- * @default true
23
- *
24
- * @see [import/extensions](https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/extensions.md)
25
- */
26
- requireFileExtension?: boolean;
27
- }
28
- //#endregion
29
- export { type ImportXOptions };