@alexlit/lint-kit 103.0.0 → 105.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.
- package/.lintstagedrc.js +1 -2
- package/.markdownlintrc.js +1 -1
- package/.stylelintrc.js +1 -4
- package/README.md +1 -1
- package/package.json +16 -14
- package/packages/config-commitlint/CHANGELOG.md +7 -0
- package/packages/config-commitlint/README.md +28 -0
- package/packages/config-commitlint/index.js +3 -0
- package/packages/config-commitlint/package.json +38 -0
- package/packages/config-eslint/CHANGELOG.md +37 -0
- package/packages/config-eslint/README.md +69 -0
- package/packages/config-eslint/TODO.md +6 -0
- package/packages/config-eslint/dictionaries/index.js +462 -0
- package/packages/config-eslint/dictionaries/programming/bash.js +25 -0
- package/packages/config-eslint/dictionaries/programming/django.js +2345 -0
- package/packages/config-eslint/dictionaries/programming/elixir.js +64 -0
- package/packages/config-eslint/dictionaries/programming/go.js +7748 -0
- package/packages/config-eslint/dictionaries/programming/java.js +33527 -0
- package/packages/config-eslint/dictionaries/programming/latex.js +675 -0
- package/packages/config-eslint/dictionaries/programming/lua.js +394 -0
- package/packages/config-eslint/dictionaries/programming/php.js +9788 -0
- package/packages/config-eslint/dictionaries/programming/python.js +367 -0
- package/packages/config-eslint/dictionaries/programming/ruby.js +357 -0
- package/packages/config-eslint/dictionaries/programming/rust.js +115 -0
- package/packages/config-eslint/dictionaries/programming/scala.js +2755 -0
- package/packages/config-eslint/dictionaries/specialized/html-symbol-entities.js +1118 -0
- package/packages/config-eslint/dictionaries/specialized/lorem-ipsum.js +359 -0
- package/packages/config-eslint/index.js +225 -0
- package/packages/config-eslint/package.json +87 -0
- package/packages/config-eslint/plugins/array-func.js +21 -0
- package/packages/config-eslint/plugins/compat.js +8 -0
- package/packages/config-eslint/plugins/decorator-position.js +16 -0
- package/packages/config-eslint/plugins/eslint-comments.js +10 -0
- package/packages/config-eslint/plugins/etc.js +14 -0
- package/packages/config-eslint/plugins/ext.js +13 -0
- package/packages/config-eslint/plugins/filenames.js +39 -0
- package/packages/config-eslint/plugins/import.js +72 -0
- package/packages/config-eslint/plugins/jsdoc.js +33 -0
- package/packages/config-eslint/plugins/jsx-a11y.js +6 -0
- package/packages/config-eslint/plugins/lit-a11y.js +6 -0
- package/packages/config-eslint/plugins/lit.js +10 -0
- package/packages/config-eslint/plugins/more.js +18 -0
- package/packages/config-eslint/plugins/no-await-in-promise.js +6 -0
- package/packages/config-eslint/plugins/no-constructor-bind.js +9 -0
- package/packages/config-eslint/plugins/no-explicit-type-exports.js +8 -0
- package/packages/config-eslint/plugins/no-inferred-method-name.js +8 -0
- package/packages/config-eslint/plugins/no-loops.js +8 -0
- package/packages/config-eslint/plugins/no-secrets.js +13 -0
- package/packages/config-eslint/plugins/no-use-extend-native.js +6 -0
- package/packages/config-eslint/plugins/nuxt.js +10 -0
- package/packages/config-eslint/plugins/optional/node.js +6 -0
- package/packages/config-eslint/plugins/prettier.js +25 -0
- package/packages/config-eslint/plugins/promise.js +11 -0
- package/packages/config-eslint/plugins/quasar.js +6 -0
- package/packages/config-eslint/plugins/regexp.js +8 -0
- package/packages/config-eslint/plugins/security.js +11 -0
- package/packages/config-eslint/plugins/simple-import-sort.js +9 -0
- package/packages/config-eslint/plugins/sonar.js +6 -0
- package/packages/config-eslint/plugins/sort-class-members.js +299 -0
- package/packages/config-eslint/plugins/sort-destructure-keys.js +11 -0
- package/packages/config-eslint/plugins/sort-keys-fix.js +8 -0
- package/packages/config-eslint/plugins/spellcheck.js +19 -0
- package/packages/config-eslint/plugins/sql.js +27 -0
- package/packages/config-eslint/plugins/tanstack-query.js +5 -0
- package/packages/config-eslint/plugins/testing-library.js +10 -0
- package/packages/config-eslint/plugins/typescript/allow-boolean-property-list.const.js +38 -0
- package/packages/config-eslint/plugins/typescript/boolean-prefixes.const.js +11 -0
- package/packages/config-eslint/plugins/typescript/english-verbs.const.js +3368 -0
- package/packages/config-eslint/plugins/typescript/index.js +154 -0
- package/packages/config-eslint/plugins/typescript-sort-keys.js +6 -0
- package/packages/config-eslint/plugins/unicorn.js +66 -0
- package/packages/config-eslint/plugins/unused-imports.js +18 -0
- package/packages/config-eslint/plugins/vitest.js +17 -0
- package/packages/config-eslint/plugins/vue-i18n.js +35 -0
- package/packages/config-eslint/plugins/vue.js +268 -0
- package/packages/config-eslint/plugins/vuejs-accessibility.js +21 -0
- package/packages/config-eslint/plugins/wc.js +6 -0
- package/packages/config-eslint/plugins/write-good-comments.js +9 -0
- package/packages/config-htmllint/CHANGELOG.md +7 -0
- package/packages/config-htmllint/README.md +20 -0
- package/packages/config-htmllint/index.js +30 -0
- package/packages/config-htmllint/package.json +39 -0
- package/packages/config-htmllint/test/html.html +335 -0
- package/packages/config-markdownlint/CHANGELOG.md +9 -0
- package/packages/config-markdownlint/README.md +16 -0
- package/packages/config-markdownlint/index.js +17 -0
- package/packages/config-markdownlint/package.json +37 -0
- package/packages/config-markdownlint/test/deepin-2.md +106 -0
- package/packages/config-npmlint/CHANGELOG.md +7 -0
- package/packages/config-npmlint/README.md +18 -0
- package/packages/config-npmlint/index.json +3 -0
- package/packages/config-npmlint/package.json +42 -0
- package/packages/config-prettier/CHANGELOG.md +7 -0
- package/packages/config-prettier/README.md +16 -0
- package/packages/config-prettier/index.js +31 -0
- package/packages/config-prettier/package.json +48 -0
- package/packages/config-prettier/plugins/jsdoc.js +6 -0
- package/packages/config-prettier/plugins/pug.js +7 -0
- package/packages/config-prettier/plugins/sort-json.js +4 -0
- package/packages/config-prettier/plugins/svelte.js +7 -0
- package/packages/config-prettier/plugins/xml.js +4 -0
- package/packages/config-prettier/test/Migrations.sol +19 -0
- package/packages/config-prettier/test/jsdoc.js +27 -0
- package/packages/config-prettier/test/json.json +28 -0
- package/packages/config-prettier/test/pug.jade +14 -0
- package/packages/config-prettier/test/ruby.example +13 -0
- package/packages/config-prettier/test/sql.sql +6 -0
- package/packages/config-prettier/test/svelte.svelte +20 -0
- package/packages/config-prettier/test/svg.svg +67 -0
- package/packages/config-prettier/test/twig.twig +17 -0
- package/packages/config-prettier/test/xml.xml +43 -0
- package/packages/config-stylelint/CHANGELOG.md +7 -0
- package/packages/config-stylelint/README.md +38 -0
- package/packages/config-stylelint/index.js +145 -0
- package/packages/config-stylelint/package.json +60 -0
- package/packages/config-stylelint/plugins/a11y.js +12 -0
- package/packages/config-stylelint/plugins/at-rule-no-children.js +13 -0
- package/packages/config-stylelint/plugins/color-format.js +10 -0
- package/packages/config-stylelint/plugins/declaration-block-no-ignored-properties.js +8 -0
- package/packages/config-stylelint/plugins/high-performance-animation.js +14 -0
- package/packages/config-stylelint/plugins/no-nested-media.js +8 -0
- package/packages/config-stylelint/plugins/no-unresolved-module.js +25 -0
- package/packages/config-stylelint/plugins/no-unsupported-browser-features.js +15 -0
- package/packages/config-stylelint/plugins/optional/gamut.js +8 -0
- package/packages/config-stylelint/plugins/optional/logical-css.js +10 -0
- package/packages/config-stylelint/plugins/optional/no-indistinguishable-colors.js +8 -0
- package/packages/config-stylelint/plugins/optional/use-logical-spec.js +8 -0
- package/packages/config-stylelint/plugins/order.js +486 -0
- package/packages/config-stylelint/plugins/prettier.js +8 -0
- package/packages/config-stylelint/plugins/scss.js +83 -0
- package/packages/config-stylelint/plugins/selector-no-empty.js +8 -0
- package/packages/config-stylelint/plugins/use-nesting.js +8 -0
- package/packages/config-stylelint/plugins/vue.js +5 -0
- package/packages/config-stylelint/test/button.scss +7 -0
- package/packages/config-stylelint/test/comp-vue.vue +36 -0
- package/packages/config-stylelint/test/logical.scss +35 -0
- package/packages/config-stylelint/test/scss.scss +457 -0
- package/packages/config-stylelint/test/tailwind.css +8 -0
- package/scripts/lint.sh +7 -5
- package/scripts/semver.sh +17 -4
- package/scripts/up.sh +24 -4
- package/scripts/init.sh +0 -46
- package/scripts/ou.sh +0 -45
- package/scripts/publish.sh +0 -5
- package/scripts/upgrade.sh +0 -19
- package/scripts/version.sh +0 -4
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/* eslint-disable unicorn/no-null */
|
|
2
|
+
|
|
3
|
+
const ALLOW_BOOLEAN_PROPERTY_LIST = require('./allow-boolean-property-list.const');
|
|
4
|
+
const BOOLEAN_PREFIXES = require('./boolean-prefixes.const');
|
|
5
|
+
const ENGLISH_VERBS = require('./english-verbs.const');
|
|
6
|
+
|
|
7
|
+
/** @see [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint) */
|
|
8
|
+
module.exports = {
|
|
9
|
+
extends: ['plugin:@typescript-eslint/recommended'],
|
|
10
|
+
|
|
11
|
+
overrides: [
|
|
12
|
+
{
|
|
13
|
+
files: ['*.d.ts', '.*'],
|
|
14
|
+
|
|
15
|
+
rules: {
|
|
16
|
+
'@typescript-eslint/naming-convention': 'off',
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
files: ['**/store/**/*', '**/vuex/**/*', '**/pinia/**/*'],
|
|
21
|
+
|
|
22
|
+
rules: {
|
|
23
|
+
'@typescript-eslint/no-shadow': 'off',
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
|
|
28
|
+
plugins: ['@typescript-eslint'],
|
|
29
|
+
|
|
30
|
+
rules: {
|
|
31
|
+
'@typescript-eslint/array-type': ['error', { default: 'array' }],
|
|
32
|
+
|
|
33
|
+
'@typescript-eslint/consistent-type-assertions': [
|
|
34
|
+
'error',
|
|
35
|
+
{
|
|
36
|
+
assertionStyle: 'as',
|
|
37
|
+
objectLiteralTypeAssertions: 'allow-as-parameter',
|
|
38
|
+
},
|
|
39
|
+
],
|
|
40
|
+
|
|
41
|
+
'@typescript-eslint/consistent-type-definitions': ['error', 'interface'],
|
|
42
|
+
|
|
43
|
+
'@typescript-eslint/consistent-type-imports': [
|
|
44
|
+
'error',
|
|
45
|
+
{ prefer: 'type-imports' },
|
|
46
|
+
],
|
|
47
|
+
|
|
48
|
+
'@typescript-eslint/explicit-module-boundary-types': 'off',
|
|
49
|
+
|
|
50
|
+
'@typescript-eslint/member-ordering': 'off', // delegate to sort-class-members plugin
|
|
51
|
+
|
|
52
|
+
'@typescript-eslint/method-signature-style': ['error', 'method'],
|
|
53
|
+
|
|
54
|
+
'@typescript-eslint/naming-convention': [
|
|
55
|
+
'error',
|
|
56
|
+
{
|
|
57
|
+
format: ['camelCase'],
|
|
58
|
+
selector: 'default',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
format: ['camelCase'],
|
|
62
|
+
selector: 'variable',
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
format: ['camelCase'],
|
|
66
|
+
leadingUnderscore: 'allow',
|
|
67
|
+
selector: 'parameter',
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
format: ['camelCase'],
|
|
71
|
+
leadingUnderscore: 'require',
|
|
72
|
+
modifiers: ['private'],
|
|
73
|
+
selector: 'memberLike',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
format: ['PascalCase'],
|
|
77
|
+
selector: ['typeLike'],
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
format: ['UPPER_CASE'],
|
|
81
|
+
selector: ['enumMember'],
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
custom: {
|
|
85
|
+
match: false,
|
|
86
|
+
regex: '^I[A-Z]',
|
|
87
|
+
},
|
|
88
|
+
|
|
89
|
+
format: ['PascalCase'],
|
|
90
|
+
selector: 'interface',
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
format: null,
|
|
94
|
+
leadingUnderscore: 'allow',
|
|
95
|
+
selector: 'objectLiteralProperty',
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
format: null,
|
|
99
|
+
selector: 'objectLiteralMethod',
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
format: null,
|
|
103
|
+
modifiers: ['destructured'],
|
|
104
|
+
selector: 'parameter',
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
format: ['camelCase', 'UPPER_CASE', 'PascalCase'],
|
|
108
|
+
modifiers: ['const'],
|
|
109
|
+
selector: 'variable',
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
filter: {
|
|
113
|
+
match: false,
|
|
114
|
+
regex: `(${ALLOW_BOOLEAN_PROPERTY_LIST.join('|')})`,
|
|
115
|
+
},
|
|
116
|
+
|
|
117
|
+
format: ['PascalCase'],
|
|
118
|
+
|
|
119
|
+
leadingUnderscore: 'allow',
|
|
120
|
+
|
|
121
|
+
prefix: BOOLEAN_PREFIXES,
|
|
122
|
+
|
|
123
|
+
selector: ['accessor', 'parameter', 'variable'],
|
|
124
|
+
|
|
125
|
+
types: ['boolean'],
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
format: ['PascalCase'],
|
|
129
|
+
|
|
130
|
+
leadingUnderscore: 'allow',
|
|
131
|
+
|
|
132
|
+
prefix: [...ENGLISH_VERBS, 'on'],
|
|
133
|
+
|
|
134
|
+
selector: ['classMethod', 'function'],
|
|
135
|
+
},
|
|
136
|
+
],
|
|
137
|
+
|
|
138
|
+
'@typescript-eslint/no-explicit-any': 'off',
|
|
139
|
+
|
|
140
|
+
'@typescript-eslint/no-inferrable-types': [
|
|
141
|
+
'error',
|
|
142
|
+
{
|
|
143
|
+
ignoreParameters: true,
|
|
144
|
+
},
|
|
145
|
+
],
|
|
146
|
+
|
|
147
|
+
'@typescript-eslint/no-shadow': ['error'],
|
|
148
|
+
'@typescript-eslint/no-unused-vars': 'off', // delegate to eslint-plugin-unused-imports
|
|
149
|
+
'@typescript-eslint/no-use-before-define': ['warn'],
|
|
150
|
+
'@typescript-eslint/no-var-requires': 'off',
|
|
151
|
+
'@typescript-eslint/sort-type-constituents': ['error'],
|
|
152
|
+
'@typescript-eslint/unified-signatures': ['error'],
|
|
153
|
+
},
|
|
154
|
+
};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/** @see [eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn) */
|
|
2
|
+
module.exports = {
|
|
3
|
+
extends: ['plugin:unicorn/recommended'],
|
|
4
|
+
|
|
5
|
+
overrides: [
|
|
6
|
+
{
|
|
7
|
+
files: ['.*'],
|
|
8
|
+
|
|
9
|
+
rules: {
|
|
10
|
+
'unicorn/no-null': 'off',
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
files: ['*.d.ts'],
|
|
15
|
+
|
|
16
|
+
rules: {
|
|
17
|
+
'unicorn/prefer-export-from': 'off',
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
|
|
22
|
+
plugins: ['unicorn'],
|
|
23
|
+
|
|
24
|
+
rules: {
|
|
25
|
+
'unicorn/better-regex': 'off',
|
|
26
|
+
|
|
27
|
+
'unicorn/consistent-function-scoping': [
|
|
28
|
+
'error',
|
|
29
|
+
{ checkArrowFunctions: false },
|
|
30
|
+
],
|
|
31
|
+
|
|
32
|
+
'unicorn/no-array-for-each': 'off',
|
|
33
|
+
|
|
34
|
+
'unicorn/no-array-reduce': ['error', { allowSimpleOperations: true }],
|
|
35
|
+
|
|
36
|
+
'unicorn/no-empty-file': 'off',
|
|
37
|
+
|
|
38
|
+
'unicorn/prefer-module': 'off',
|
|
39
|
+
|
|
40
|
+
'unicorn/prefer-node-protocol': 'off',
|
|
41
|
+
|
|
42
|
+
'unicorn/prevent-abbreviations': [
|
|
43
|
+
'warn',
|
|
44
|
+
{
|
|
45
|
+
allowList: {
|
|
46
|
+
ProcessEnv: true,
|
|
47
|
+
args: true,
|
|
48
|
+
attrs: true,
|
|
49
|
+
env: true,
|
|
50
|
+
i18n: true,
|
|
51
|
+
params: true,
|
|
52
|
+
props: true,
|
|
53
|
+
ref: true,
|
|
54
|
+
},
|
|
55
|
+
|
|
56
|
+
checkFilenames: false, // delegate to eslint-plugin-filenames
|
|
57
|
+
|
|
58
|
+
replacements: {
|
|
59
|
+
index18n: {
|
|
60
|
+
i18n: true,
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
],
|
|
65
|
+
},
|
|
66
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/** @see [eslint-plugin-unused-imports](https://github.com/sweepline/eslint-plugin-unused-imports) */
|
|
2
|
+
module.exports = {
|
|
3
|
+
plugins: ['unused-imports'],
|
|
4
|
+
|
|
5
|
+
rules: {
|
|
6
|
+
'unused-imports/no-unused-imports': 'error',
|
|
7
|
+
|
|
8
|
+
'unused-imports/no-unused-vars': [
|
|
9
|
+
'error',
|
|
10
|
+
{
|
|
11
|
+
args: 'after-used',
|
|
12
|
+
argsIgnorePattern: '^_',
|
|
13
|
+
vars: 'all',
|
|
14
|
+
varsIgnorePattern: '^_',
|
|
15
|
+
},
|
|
16
|
+
],
|
|
17
|
+
},
|
|
18
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** @see [eslint-plugin-vitest](https://github.com/veritem/eslint-plugin-vitest) */
|
|
2
|
+
module.exports = {
|
|
3
|
+
overrides: [
|
|
4
|
+
{
|
|
5
|
+
extends: ['plugin:vitest/all'],
|
|
6
|
+
files: ['*.{test,spec}.{js,ts}'],
|
|
7
|
+
plugins: ['vitest'],
|
|
8
|
+
|
|
9
|
+
rules: {
|
|
10
|
+
'vitest/no-conditional-in-test': 'off',
|
|
11
|
+
'vitest/no-conditional-tests': 'off',
|
|
12
|
+
'vitest/no-hooks': 'off',
|
|
13
|
+
'vitest/require-to-throw-message': 'off',
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
],
|
|
17
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/** @see [eslint-plugin-vue-i18n](https://eslint-plugin-vue-i18n.intlify.dev/) */
|
|
2
|
+
module.exports = {
|
|
3
|
+
extends: ['plugin:@intlify/vue-i18n/recommended'],
|
|
4
|
+
|
|
5
|
+
plugins: ['@intlify/vue-i18n'],
|
|
6
|
+
|
|
7
|
+
rules: {
|
|
8
|
+
'@intlify/vue-i18n/key-format-style': [
|
|
9
|
+
'error',
|
|
10
|
+
'snake_case',
|
|
11
|
+
{
|
|
12
|
+
allowArray: false,
|
|
13
|
+
},
|
|
14
|
+
],
|
|
15
|
+
|
|
16
|
+
'@intlify/vue-i18n/no-duplicate-keys-in-locale': [
|
|
17
|
+
'error',
|
|
18
|
+
{
|
|
19
|
+
ignoreI18nBlock: false,
|
|
20
|
+
},
|
|
21
|
+
],
|
|
22
|
+
|
|
23
|
+
'@intlify/vue-i18n/no-dynamic-keys': 'warn',
|
|
24
|
+
'@intlify/vue-i18n/no-raw-text': 'off',
|
|
25
|
+
'@intlify/vue-i18n/no-unused-keys': 'warn',
|
|
26
|
+
'@intlify/vue-i18n/prefer-sfc-lang-attr': 'error',
|
|
27
|
+
},
|
|
28
|
+
|
|
29
|
+
settings: {
|
|
30
|
+
'vue-i18n': {
|
|
31
|
+
localeDir: './src/locales/*.{json,json5,yaml,yml}',
|
|
32
|
+
messageSyntaxVersion: '^9.0.0',
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
};
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
/* eslint-disable spellcheck/spell-checker */
|
|
2
|
+
/** @see [eslint-plugin-vue](https://eslint.vuejs.org/rules/) */
|
|
3
|
+
module.exports = {
|
|
4
|
+
extends: ['plugin:vue/vue3-recommended'],
|
|
5
|
+
|
|
6
|
+
overrides: [
|
|
7
|
+
{
|
|
8
|
+
files: ['**/pages/**/*', '**/layouts/**/*'],
|
|
9
|
+
|
|
10
|
+
rules: {
|
|
11
|
+
'vue/multi-word-component-names': 'off',
|
|
12
|
+
},
|
|
13
|
+
},
|
|
14
|
+
],
|
|
15
|
+
|
|
16
|
+
plugins: ['vue'],
|
|
17
|
+
|
|
18
|
+
rules: {
|
|
19
|
+
'vue/attributes-order': [
|
|
20
|
+
'error',
|
|
21
|
+
{
|
|
22
|
+
alphabetical: true,
|
|
23
|
+
},
|
|
24
|
+
],
|
|
25
|
+
|
|
26
|
+
'vue/block-lang': [
|
|
27
|
+
'error',
|
|
28
|
+
{
|
|
29
|
+
script: { lang: 'ts' },
|
|
30
|
+
style: { lang: 'scss' },
|
|
31
|
+
template: {},
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
|
|
35
|
+
'vue/component-api-style': ['error', ['script-setup']],
|
|
36
|
+
|
|
37
|
+
'vue/component-definition-name-casing': ['error', 'kebab-case'],
|
|
38
|
+
|
|
39
|
+
'vue/component-name-in-template-casing': [
|
|
40
|
+
'error',
|
|
41
|
+
'PascalCase',
|
|
42
|
+
{
|
|
43
|
+
registeredComponentsOnly: false,
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
|
+
|
|
47
|
+
'vue/component-options-name-casing': ['error', 'PascalCase'],
|
|
48
|
+
|
|
49
|
+
'vue/component-tags-order': [
|
|
50
|
+
'error',
|
|
51
|
+
{
|
|
52
|
+
order: ['script', 'template', 'style'],
|
|
53
|
+
},
|
|
54
|
+
],
|
|
55
|
+
|
|
56
|
+
'vue/define-emits-declaration': ['error'],
|
|
57
|
+
|
|
58
|
+
'vue/define-macros-order': [
|
|
59
|
+
'error',
|
|
60
|
+
{ order: ['defineOptions', 'defineProps', 'defineEmits', 'defineSlots'] },
|
|
61
|
+
],
|
|
62
|
+
|
|
63
|
+
'vue/define-props-declaration': ['error'],
|
|
64
|
+
|
|
65
|
+
'vue/dot-notation': ['error'],
|
|
66
|
+
|
|
67
|
+
'vue/eqeqeq': ['error'],
|
|
68
|
+
|
|
69
|
+
'vue/html-button-has-type': ['error'],
|
|
70
|
+
|
|
71
|
+
'vue/html-comment-content-newline': ['warn'],
|
|
72
|
+
|
|
73
|
+
'vue/html-comment-content-spacing': ['warn'],
|
|
74
|
+
|
|
75
|
+
'vue/html-comment-indent': ['warn'],
|
|
76
|
+
|
|
77
|
+
'vue/html-end-tags': ['error'],
|
|
78
|
+
|
|
79
|
+
// 'vue/html-self-closing': [], // delegate to plugins/prettier
|
|
80
|
+
|
|
81
|
+
'vue/match-component-file-name': ['error'],
|
|
82
|
+
|
|
83
|
+
'vue/match-component-import-name': ['error'],
|
|
84
|
+
|
|
85
|
+
'vue/max-attributes-per-line': [
|
|
86
|
+
'error',
|
|
87
|
+
{
|
|
88
|
+
singleline: 3,
|
|
89
|
+
},
|
|
90
|
+
],
|
|
91
|
+
|
|
92
|
+
'vue/max-lines-per-block': [
|
|
93
|
+
'warn',
|
|
94
|
+
{
|
|
95
|
+
script: 500,
|
|
96
|
+
skipBlankLines: true,
|
|
97
|
+
style: 500,
|
|
98
|
+
template: 500,
|
|
99
|
+
},
|
|
100
|
+
],
|
|
101
|
+
|
|
102
|
+
'vue/new-line-between-multi-line-property': ['error'],
|
|
103
|
+
|
|
104
|
+
'vue/next-tick-style': ['error', 'promise'],
|
|
105
|
+
|
|
106
|
+
'vue/no-child-content': ['error'],
|
|
107
|
+
|
|
108
|
+
'vue/no-console': ['error'],
|
|
109
|
+
|
|
110
|
+
'vue/no-custom-modifiers-on-v-model': 'off',
|
|
111
|
+
|
|
112
|
+
'vue/no-deprecated-model-definition': ['error'],
|
|
113
|
+
|
|
114
|
+
'vue/no-deprecated-scope-attribute': ['error'],
|
|
115
|
+
|
|
116
|
+
'vue/no-deprecated-slot-attribute': ['error'],
|
|
117
|
+
|
|
118
|
+
'vue/no-deprecated-slot-scope-attribute': ['error'],
|
|
119
|
+
|
|
120
|
+
'vue/no-duplicate-attr-inheritance': ['error'],
|
|
121
|
+
|
|
122
|
+
'vue/no-empty-component-block': ['error'],
|
|
123
|
+
|
|
124
|
+
'vue/no-invalid-model-keys': ['error'],
|
|
125
|
+
|
|
126
|
+
'vue/no-irregular-whitespace': ['error'],
|
|
127
|
+
|
|
128
|
+
'vue/no-loss-of-precision': ['error'],
|
|
129
|
+
|
|
130
|
+
'vue/no-multiple-objects-in-class': ['error'],
|
|
131
|
+
|
|
132
|
+
'vue/no-multiple-template-root': 'off',
|
|
133
|
+
|
|
134
|
+
'vue/no-parsing-error': ['error'],
|
|
135
|
+
|
|
136
|
+
'vue/no-potential-component-option-typo': ['error'],
|
|
137
|
+
|
|
138
|
+
'vue/no-ref-object-reactivity-loss': ['error'],
|
|
139
|
+
|
|
140
|
+
'vue/no-required-prop-with-default': [
|
|
141
|
+
'error',
|
|
142
|
+
{
|
|
143
|
+
autofix: true,
|
|
144
|
+
},
|
|
145
|
+
],
|
|
146
|
+
|
|
147
|
+
'vue/no-reserved-component-names': [
|
|
148
|
+
'error',
|
|
149
|
+
{
|
|
150
|
+
disallowVue3BuiltInComponents: true,
|
|
151
|
+
disallowVueBuiltInComponents: true,
|
|
152
|
+
},
|
|
153
|
+
],
|
|
154
|
+
|
|
155
|
+
'vue/no-restricted-component-names': ['error'],
|
|
156
|
+
|
|
157
|
+
'vue/no-restricted-component-options': ['error'],
|
|
158
|
+
|
|
159
|
+
'vue/no-restricted-props': ['error'],
|
|
160
|
+
|
|
161
|
+
'vue/no-root-v-if': ['error'],
|
|
162
|
+
|
|
163
|
+
'vue/no-setup-props-reactivity-loss': ['error'],
|
|
164
|
+
|
|
165
|
+
'vue/no-this-in-before-route-enter': ['error'],
|
|
166
|
+
|
|
167
|
+
'vue/no-unsupported-features': ['error'],
|
|
168
|
+
|
|
169
|
+
'vue/no-unused-components': ['error'],
|
|
170
|
+
|
|
171
|
+
'vue/no-unused-refs': 'off',
|
|
172
|
+
|
|
173
|
+
'vue/no-use-computed-property-like-method': ['error'],
|
|
174
|
+
|
|
175
|
+
'vue/no-use-v-else-with-v-for': ['warn'],
|
|
176
|
+
|
|
177
|
+
'vue/no-useless-mustaches': ['error'],
|
|
178
|
+
|
|
179
|
+
'vue/no-useless-template-attributes': ['error'],
|
|
180
|
+
|
|
181
|
+
'vue/no-useless-v-bind': ['error'],
|
|
182
|
+
|
|
183
|
+
'vue/no-v-for-template-key': 'off',
|
|
184
|
+
|
|
185
|
+
'vue/no-v-html': ['error'],
|
|
186
|
+
|
|
187
|
+
'vue/no-v-model-argument': 'off',
|
|
188
|
+
|
|
189
|
+
'vue/no-v-text': ['error'],
|
|
190
|
+
|
|
191
|
+
'vue/no-v-text-v-html-on-component': ['error'],
|
|
192
|
+
|
|
193
|
+
'vue/object-shorthand': ['error'],
|
|
194
|
+
|
|
195
|
+
'vue/padding-line-between-blocks': ['error'],
|
|
196
|
+
|
|
197
|
+
'vue/padding-line-between-tags': [
|
|
198
|
+
'error',
|
|
199
|
+
[
|
|
200
|
+
{
|
|
201
|
+
blankLine: 'always',
|
|
202
|
+
next: '*',
|
|
203
|
+
prev: '*',
|
|
204
|
+
},
|
|
205
|
+
],
|
|
206
|
+
],
|
|
207
|
+
|
|
208
|
+
'vue/padding-lines-in-component-definition': [
|
|
209
|
+
'error',
|
|
210
|
+
{ groupSingleLineProperties: true },
|
|
211
|
+
],
|
|
212
|
+
|
|
213
|
+
'vue/prefer-define-options': ['error'],
|
|
214
|
+
|
|
215
|
+
'vue/prefer-prop-type-boolean-first': ['error'],
|
|
216
|
+
|
|
217
|
+
'vue/prefer-separate-static-class': ['error'],
|
|
218
|
+
|
|
219
|
+
'vue/prefer-true-attribute-shorthand': ['error'],
|
|
220
|
+
|
|
221
|
+
'vue/quote-props': ['error', 'as-needed'],
|
|
222
|
+
|
|
223
|
+
'vue/require-direct-export': 'off',
|
|
224
|
+
|
|
225
|
+
'vue/require-macro-variable-name': [
|
|
226
|
+
'error',
|
|
227
|
+
{
|
|
228
|
+
defineEmits: '$emit',
|
|
229
|
+
defineProps: '$props',
|
|
230
|
+
defineSlots: '$slots',
|
|
231
|
+
useAttrs: '$attrs',
|
|
232
|
+
useSlots: '$slots',
|
|
233
|
+
},
|
|
234
|
+
],
|
|
235
|
+
|
|
236
|
+
'vue/require-typed-object-prop': ['error'],
|
|
237
|
+
|
|
238
|
+
'vue/require-typed-ref': ['error'],
|
|
239
|
+
|
|
240
|
+
'vue/sort-keys': [
|
|
241
|
+
'warn',
|
|
242
|
+
'asc',
|
|
243
|
+
{
|
|
244
|
+
caseSensitive: true,
|
|
245
|
+
minKeys: 2,
|
|
246
|
+
natural: true,
|
|
247
|
+
},
|
|
248
|
+
],
|
|
249
|
+
|
|
250
|
+
'vue/static-class-names-order': ['warn'],
|
|
251
|
+
|
|
252
|
+
'vue/this-in-template': ['error', 'never'],
|
|
253
|
+
|
|
254
|
+
'vue/v-for-delimiter-style': ['error'],
|
|
255
|
+
|
|
256
|
+
'vue/v-on-event-hyphenation': ['error'],
|
|
257
|
+
|
|
258
|
+
'vue/v-on-handler-style': ['error', 'inline-function'],
|
|
259
|
+
|
|
260
|
+
'vue/valid-define-options': ['error'],
|
|
261
|
+
|
|
262
|
+
'vue/valid-next-tick': ['error'],
|
|
263
|
+
|
|
264
|
+
'vue/valid-v-bind-sync': ['error'],
|
|
265
|
+
|
|
266
|
+
'vue/valid-v-slot': ['error'],
|
|
267
|
+
},
|
|
268
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/** @see [eslint-plugin-vuejs-accessibility](https://github.com/vue-a11y/eslint-plugin-vuejs-accessibility) */
|
|
2
|
+
module.exports = {
|
|
3
|
+
extends: ['plugin:vuejs-accessibility/recommended'],
|
|
4
|
+
|
|
5
|
+
plugins: ['vuejs-accessibility'],
|
|
6
|
+
|
|
7
|
+
rules: {
|
|
8
|
+
'vuejs-accessibility/label-has-for': [
|
|
9
|
+
'warn',
|
|
10
|
+
{
|
|
11
|
+
allowChildren: true,
|
|
12
|
+
|
|
13
|
+
required: {
|
|
14
|
+
some: ['nesting', 'id'],
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
],
|
|
18
|
+
|
|
19
|
+
'vuejs-accessibility/no-autofocus': ['warn', { ignoreNonDOM: true }],
|
|
20
|
+
},
|
|
21
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
|
+
|
|
5
|
+
### [1.0.1](https://github.com/alex-lit/lint-kit/compare/v9.0.1...v1.0.1) (2023-10-20)
|
|
6
|
+
|
|
7
|
+
## [1.0.0](https://github.com/alex-lit/lint-kit/compare/v69.0.0...v1.0.0) (2023-10-20)
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# HTMLLint Configuration
|
|
2
|
+
|
|
3
|
+
## Installation
|
|
4
|
+
|
|
5
|
+
```sh
|
|
6
|
+
npm i @alexlit/config-htmllint -D
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## Connection
|
|
10
|
+
|
|
11
|
+
```js
|
|
12
|
+
// .linthtmlrc.js
|
|
13
|
+
module.exports = {
|
|
14
|
+
...require('@alexlit/config-htmllint'),
|
|
15
|
+
};
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## VSCode extention
|
|
19
|
+
|
|
20
|
+
[vscode-linthtml](https://marketplace.visualstudio.com/items?itemName=kamikillerto.vscode-linthtml)
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/** @see [linthtml](https://github.com/linthtml/linthtml/blob/develop/docs/rules.md) */
|
|
2
|
+
module.exports = {
|
|
3
|
+
'attr-name-ignore-regex': false,
|
|
4
|
+
extends: '@linthtml/linthtml-config-recommended',
|
|
5
|
+
'id-class-ignore-regex': false,
|
|
6
|
+
'line-max-len-ignore-regex': false,
|
|
7
|
+
maxerr: false,
|
|
8
|
+
'raw-ignore-regex': false,
|
|
9
|
+
|
|
10
|
+
rules: {
|
|
11
|
+
'attr-order': [true, ['id', 'class']],
|
|
12
|
+
'attr-quote-style': [true, 'double'],
|
|
13
|
+
'button-req-content': true,
|
|
14
|
+
'class-style': [true, 'bem'],
|
|
15
|
+
'fieldset-contains-legend': true,
|
|
16
|
+
'focusable-tabindex-style': true,
|
|
17
|
+
'id-class-no-ad': true,
|
|
18
|
+
'id-style': [true, 'dash'],
|
|
19
|
+
'indent-width': [true, 2],
|
|
20
|
+
'input-btn-req-value-or-title': true,
|
|
21
|
+
'label-no-enc-textarea-or-select': true,
|
|
22
|
+
'label-req-for': true,
|
|
23
|
+
'lang-style': [true, 'case'],
|
|
24
|
+
'tag-name-match': true,
|
|
25
|
+
'title-max-len': false,
|
|
26
|
+
},
|
|
27
|
+
|
|
28
|
+
'spec-char-escape': false,
|
|
29
|
+
'text-ignore-regex': false,
|
|
30
|
+
};
|