@cherepanov.pavel/shareable-config 1.0.3 → 1.0.4

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 (48) hide show
  1. package/.editorconfig +2 -3
  2. package/.editorconfig-get.js +3 -3
  3. package/.get-all.js +16 -12
  4. package/.gitattributes-get.js +3 -3
  5. package/.gitignore-get.js +33 -30
  6. package/.vscode/.code-snippets-get.js +34 -31
  7. package/.vscode/extensions.json +17 -17
  8. package/.vscode/extensions.json-get.js +25 -25
  9. package/.vscode/settings.json +36 -27
  10. package/.vscode/settings.json-get.js +25 -25
  11. package/env.json5.set.js +1 -1
  12. package/jsconfig.json +4 -7
  13. package/package.json +10 -1
  14. package/tools/eslint-config/configs/global.js +21 -18
  15. package/tools/eslint-config/configs/javascript.js +14 -14
  16. package/tools/eslint-config/configs/json.js +93 -0
  17. package/tools/eslint-config/configs/typescript.js +17 -17
  18. package/tools/eslint-config/configs/vue.js +22 -22
  19. package/tools/eslint-config/index.js +1 -0
  20. package/tools/eslint-config/rules/constants.js +10 -9
  21. package/tools/eslint-config/rules/javascript/index.js +2 -2
  22. package/tools/eslint-config/rules/javascript/possible-problems.js +76 -58
  23. package/tools/eslint-config/rules/javascript/suggestions.js +405 -249
  24. package/tools/eslint-config/rules/stylistic/jsFormatting.js +321 -167
  25. package/tools/eslint-config/rules/stylistic/tsFormatting.js +4 -4
  26. package/tools/eslint-config/rules/typescript/common.js +135 -126
  27. package/tools/eslint-config/rules/typescript/compatibility.js +20 -20
  28. package/tools/eslint-config/rules/typescript/extension.js +44 -44
  29. package/tools/eslint-config/rules/typescript/index.js +3 -3
  30. package/tools/eslint-config/rules/vue/base.js +2 -2
  31. package/tools/eslint-config/rules/vue/extension.js +47 -44
  32. package/tools/eslint-config/rules/vue/formatting.js +66 -36
  33. package/tools/eslint-config/rules/vue/index.js +5 -5
  34. package/tools/eslint-config/rules/vue/possibleProblems.js +182 -109
  35. package/tools/eslint-config/rules/vue/suggestions.js +82 -79
  36. package/tools/stylelint-config/config.js +18 -20
  37. package/tools/stylelint-config/rules/base.js +30 -24
  38. package/tools/stylelint-config/rules/conflicts.js +5 -5
  39. package/tools/stylelint-config/rules/order.js +38 -38
  40. package/tools/stylelint-config/rules/property-groups.js +392 -389
  41. package/tools/stylelint-config/rules/scss.js +9 -6
  42. package/tools/stylelint-config/rules/stylistic.js +110 -109
  43. package/utils/communication.js +26 -26
  44. package/utils/copy-with-override.js +35 -33
  45. package/utils/env.js +4 -4
  46. package/utils/file-header.js +9 -9
  47. package/utils/file.js +46 -46
  48. package/utils/merge.js +161 -155
@@ -2,40 +2,70 @@ import { INDENT_SIZE } from '../constants.js';
2
2
  import { ERROR, OFF } from '../severity.js';
3
3
 
4
4
  export const formattingRules = {
5
- 'vue/block-tag-newline': [ERROR, {
6
- singleline: 'always',
7
- multiline: 'always',
8
- maxEmptyLines: 0,
9
- }],
10
- // https://github.com/vuejs/eslint-plugin-vue/issues/2380
11
- 'vue/define-macros-order': [OFF],
12
- 'vue/first-attribute-linebreak': [ERROR, {
13
- singleline: 'below',
14
- multiline: 'below',
15
- }],
16
- 'vue/html-closing-bracket-newline': [ERROR],
17
- 'vue/html-closing-bracket-spacing': [ERROR],
18
- 'vue/html-comment-content-newline': [OFF],
19
- 'vue/html-comment-content-spacing': [ERROR],
20
- 'vue/html-comment-indent': [OFF],
21
- 'vue/html-indent': [ERROR, INDENT_SIZE],
22
- 'vue/html-quotes': [ERROR, 'double'],
23
- 'vue/html-self-closing': [ERROR],
24
- 'vue/max-attributes-per-line': [ERROR, {
25
- singleline: 1,
26
- multiline: 1,
27
- }],
28
- 'vue/multiline-html-element-content-newline': [ERROR, {
29
- ignores: ['pre'],
30
- }],
31
- 'vue/mustache-interpolation-spacing': [ERROR, 'always'],
32
- 'vue/new-line-between-multi-line-property': [OFF],
33
- 'vue/no-multi-spaces': [ERROR],
34
- 'vue/no-spaces-around-equal-signs-in-attribute': [ERROR],
35
- 'vue/padding-line-between-blocks': [ERROR, 'always'],
36
- 'vue/padding-line-between-tags': [OFF],
37
- 'vue/padding-lines-in-component-definition': [OFF],
38
- 'vue/script-indent': [OFF],
39
- 'vue/singleline-html-element-content-newline': [OFF],
40
- 'vue/v-for-delimiter-style': [ERROR, 'in'],
5
+ 'vue/block-tag-newline': [
6
+ ERROR,
7
+ {
8
+ singleline: 'always',
9
+ multiline: 'always',
10
+ maxEmptyLines: 0,
11
+ },
12
+ ],
13
+ // https://github.com/vuejs/eslint-plugin-vue/issues/2380
14
+ 'vue/define-macros-order': [OFF],
15
+ 'vue/first-attribute-linebreak': [
16
+ ERROR,
17
+ {
18
+ singleline: 'below',
19
+ multiline: 'below',
20
+ },
21
+ ],
22
+ 'vue/html-closing-bracket-newline': [ERROR],
23
+ 'vue/html-closing-bracket-spacing': [ERROR],
24
+ 'vue/html-comment-content-newline': [OFF],
25
+ 'vue/html-comment-content-spacing': [ERROR],
26
+ 'vue/html-comment-indent': [OFF],
27
+ 'vue/html-indent': [
28
+ ERROR,
29
+ INDENT_SIZE,
30
+ ],
31
+ 'vue/html-quotes': [
32
+ ERROR,
33
+ 'double',
34
+ ],
35
+ 'vue/html-self-closing': [ERROR],
36
+ 'vue/max-attributes-per-line': [
37
+ ERROR,
38
+ {
39
+ singleline: 1,
40
+ multiline: 1,
41
+ },
42
+ ],
43
+ 'vue/multiline-html-element-content-newline': [
44
+ ERROR,
45
+ {
46
+ ignores: ['pre'],
47
+ },
48
+ ],
49
+ 'vue/mustache-interpolation-spacing': [
50
+ ERROR,
51
+ 'always',
52
+ ],
53
+ 'vue/new-line-between-multi-line-property': [OFF],
54
+ 'vue/no-multi-spaces': [ERROR],
55
+ 'vue/no-spaces-around-equal-signs-in-attribute': [ERROR],
56
+ 'vue/padding-line-between-blocks': [
57
+ ERROR,
58
+ 'always',
59
+ ],
60
+ 'vue/padding-line-between-tags': [OFF],
61
+ 'vue/padding-lines-in-component-definition': [OFF],
62
+ 'vue/script-indent': [
63
+ 'error',
64
+ INDENT_SIZE,
65
+ ],
66
+ 'vue/singleline-html-element-content-newline': [OFF],
67
+ 'vue/v-for-delimiter-style': [
68
+ ERROR,
69
+ 'in',
70
+ ],
41
71
  };
@@ -5,9 +5,9 @@ import { suggestionRules } from './suggestions.js';
5
5
  import { formattingRules } from './formatting.js';
6
6
 
7
7
  export const vueRules = {
8
- ...baseRules,
9
- ...extensionRules,
10
- ...possibleProblemRules,
11
- ...suggestionRules,
12
- ...formattingRules,
8
+ ...baseRules,
9
+ ...extensionRules,
10
+ ...possibleProblemRules,
11
+ ...suggestionRules,
12
+ ...formattingRules,
13
13
  };
@@ -1,113 +1,186 @@
1
1
  import { ERROR, OFF, WARN } from '../severity.js';
2
2
 
3
3
  export const possibleProblemRules = {
4
- 'vue/attribute-hyphenation': [ERROR, 'never'],
5
- 'vue/attributes-order': [ERROR],
6
- 'vue/block-lang': [OFF],
7
- 'vue/block-order': [ERROR, {
8
- order: ['script', 'template', 'style'],
9
- }],
10
- 'vue/component-api-style': [ERROR, ['script-setup']],
11
- 'vue/component-definition-name-casing': [ERROR, 'PascalCase'],
12
- 'vue/component-name-in-template-casing': [ERROR, 'PascalCase', {
13
- registeredComponentsOnly: false,
14
- ignores: [],
15
- }],
16
- 'vue/component-options-name-casing': [ERROR, 'PascalCase'],
17
- 'vue/custom-event-name-casing': [ERROR, 'camelCase', { ignores: ['/^[a-z]+(?:-[a-z]+)*:[a-z]+((\\d)|([A-Z0-9][a-z0-9]+))*([A-Z])?$/u'] }],
18
- 'vue/define-emits-declaration': [ERROR, 'type-based'],
19
- 'vue/define-props-declaration': [ERROR, 'type-based'],
20
- 'vue/html-button-has-type': [ERROR],
21
- 'vue/html-end-tags': [ERROR],
22
- 'vue/match-component-file-name': [ERROR, {
23
- extensions: ['vue'],
24
- shouldMatchCase: true,
25
- }],
26
- 'vue/multi-word-component-names': [ERROR],
27
- 'vue/next-tick-style': [ERROR, 'promise'],
28
- 'vue/no-bare-strings-in-template': [OFF],
29
- 'vue/no-boolean-default': [ERROR, 'default-false'],
30
- 'vue/no-deprecated-scope-attribute': [ERROR],
31
- 'vue/no-deprecated-slot-attribute': [ERROR],
32
- 'vue/no-deprecated-slot-scope-attribute': [ERROR],
33
- 'vue/no-deprecated-v-is': [ERROR],
34
- 'vue/no-duplicate-attr-inheritance': [ERROR],
35
- 'vue/no-empty-component-block': [OFF],
36
- 'vue/no-lifecycle-after-await': [ERROR],
37
- 'vue/no-multiple-objects-in-class': [ERROR],
38
- 'vue/no-mutating-props': [ERROR],
39
- 'vue/no-potential-component-option-typo': [ERROR],
40
- 'vue/no-ref-as-operand': [ERROR],
41
- 'vue/no-reserved-component-names': [ERROR, {
42
- disallowVueBuiltInComponents: true,
43
- disallowVue3BuiltInComponents: true,
44
- }],
45
- 'vue/no-reserved-keys': [ERROR],
46
- 'vue/no-restricted-block': [OFF],
47
- 'vue/no-restricted-call-after-await': [OFF],
48
- 'vue/no-restricted-component-names': [OFF],
49
- 'vue/no-restricted-component-options': [OFF],
50
- 'vue/no-restricted-custom-event': [OFF],
51
- 'vue/no-restricted-html-elements': [OFF],
52
- 'vue/no-restricted-props': [OFF],
53
- 'vue/no-restricted-static-attribute': [OFF],
54
- 'vue/no-restricted-v-bind': [OFF],
55
- 'vue/no-root-v-if': [ERROR],
56
- 'vue/no-setup-props-reactivity-loss': [OFF],
57
- 'vue/no-static-inline-styles': [WARN],
58
- 'vue/no-template-shadow': [OFF],
59
- // выключено в общих конфигах, может быть включено в вашем репозитории если есть необходимость.
60
- 'vue/no-undef-components': [OFF],
61
- 'vue/no-undef-properties': [ERROR],
62
- 'vue/no-unsupported-features': [ERROR, {
63
- version: '^3.4.27',
64
- ignores: [],
65
- }],
66
- 'vue/no-unused-components': [ERROR],
67
- 'vue/no-unused-emit-declarations': [ERROR],
68
- 'vue/no-unused-properties': [ERROR, {
69
- groups: ['props', 'setup'],
70
- deepData: true,
71
- ignorePublicMembers: true,
72
- }],
73
- 'vue/no-unused-refs': [ERROR],
74
- 'vue/no-unused-vars': [ERROR],
75
- 'vue/no-use-v-else-with-v-for': [ERROR],
76
- 'vue/no-use-v-if-with-v-for': [ERROR],
77
- 'vue/no-useless-mustaches': [ERROR],
78
- 'vue/no-useless-v-bind': [ERROR],
79
- 'vue/no-v-html': [ERROR],
80
- 'vue/no-v-text': [ERROR],
81
- 'vue/no-watch-after-await': [ERROR],
82
- 'vue/one-component-per-file': [ERROR],
83
- 'vue/order-in-components': [ERROR],
84
- 'vue/prefer-define-options': [ERROR],
85
- 'vue/prefer-import-from-vue': [ERROR],
86
- 'vue/prefer-separate-static-class': [ERROR],
87
- 'vue/prefer-true-attribute-shorthand': [ERROR, 'always'],
88
- 'vue/prop-name-casing': [ERROR, 'camelCase'],
89
- 'vue/require-default-prop': [OFF],
90
- 'vue/require-direct-export': [ERROR],
91
- 'vue/require-emit-validator': [ERROR],
92
- 'vue/require-explicit-emits': [ERROR],
93
- 'vue/require-expose': [ERROR],
94
- 'vue/require-macro-variable-name': [ERROR],
95
- 'vue/require-name-property': [ERROR],
96
- 'vue/require-prop-comment': [OFF],
97
- 'vue/require-prop-type-constructor': [ERROR],
98
- 'vue/require-prop-types': [ERROR],
99
- 'vue/require-typed-object-prop': [ERROR],
100
- 'vue/require-typed-ref': [ERROR],
101
- 'vue/require-valid-default-prop': [ERROR],
102
- 'vue/sort-keys': [OFF],
103
- 'vue/static-class-names-order': [OFF],
104
- 'vue/this-in-template': [ERROR, 'never'],
105
- 'vue/use-v-on-exact': [ERROR],
106
- 'vue/v-bind-style': [ERROR, 'shorthand'],
107
- 'vue/v-on-event-hyphenation': [ERROR, 'never', { autofix: true }],
108
- // https://github.com/vuejs/eslint-plugin-vue/issues/2571
109
- 'vue/v-on-handler-style': [OFF],
110
- 'vue/v-on-style': [ERROR, 'shorthand'],
111
- 'vue/v-slot-style': [ERROR],
112
- 'vue/valid-define-options': [ERROR],
4
+ 'vue/attribute-hyphenation': [
5
+ ERROR,
6
+ 'never',
7
+ ],
8
+ 'vue/attributes-order': [ERROR],
9
+ 'vue/block-lang': [OFF],
10
+ 'vue/block-order': [
11
+ ERROR,
12
+ {
13
+ order: [
14
+ 'script',
15
+ 'template',
16
+ 'style',
17
+ ],
18
+ },
19
+ ],
20
+ 'vue/component-api-style': [
21
+ ERROR,
22
+ ['script-setup'],
23
+ ],
24
+ 'vue/component-definition-name-casing': [
25
+ ERROR,
26
+ 'PascalCase',
27
+ ],
28
+ 'vue/component-name-in-template-casing': [
29
+ ERROR,
30
+ 'PascalCase',
31
+ {
32
+ registeredComponentsOnly: false,
33
+ ignores: [],
34
+ },
35
+ ],
36
+ 'vue/component-options-name-casing': [
37
+ ERROR,
38
+ 'PascalCase',
39
+ ],
40
+ 'vue/custom-event-name-casing': [
41
+ ERROR,
42
+ 'camelCase',
43
+ { ignores: ['/^[a-z]+(?:-[a-z]+)*:[a-z]+((\\d)|([A-Z0-9][a-z0-9]+))*([A-Z])?$/u'] },
44
+ ],
45
+ 'vue/define-emits-declaration': [
46
+ ERROR,
47
+ 'type-based',
48
+ ],
49
+ 'vue/define-props-declaration': [
50
+ ERROR,
51
+ 'type-based',
52
+ ],
53
+ 'vue/html-button-has-type': [ERROR],
54
+ 'vue/html-end-tags': [ERROR],
55
+ 'vue/match-component-file-name': [
56
+ ERROR,
57
+ {
58
+ extensions: ['vue'],
59
+ shouldMatchCase: true,
60
+ },
61
+ ],
62
+ 'vue/multi-word-component-names': [ERROR],
63
+ 'vue/next-tick-style': [
64
+ ERROR,
65
+ 'promise',
66
+ ],
67
+ 'vue/no-bare-strings-in-template': [OFF],
68
+ 'vue/no-boolean-default': [
69
+ ERROR,
70
+ 'default-false',
71
+ ],
72
+ 'vue/no-deprecated-scope-attribute': [ERROR],
73
+ 'vue/no-deprecated-slot-attribute': [ERROR],
74
+ 'vue/no-deprecated-slot-scope-attribute': [ERROR],
75
+ 'vue/no-deprecated-v-is': [ERROR],
76
+ 'vue/no-duplicate-attr-inheritance': [ERROR],
77
+ 'vue/no-empty-component-block': [OFF],
78
+ 'vue/no-lifecycle-after-await': [ERROR],
79
+ 'vue/no-multiple-objects-in-class': [ERROR],
80
+ 'vue/no-mutating-props': [ERROR],
81
+ 'vue/no-potential-component-option-typo': [ERROR],
82
+ 'vue/no-ref-as-operand': [ERROR],
83
+ 'vue/no-reserved-component-names': [
84
+ ERROR,
85
+ {
86
+ disallowVueBuiltInComponents: true,
87
+ disallowVue3BuiltInComponents: true,
88
+ },
89
+ ],
90
+ 'vue/no-reserved-keys': [ERROR],
91
+ 'vue/no-restricted-block': [OFF],
92
+ 'vue/no-restricted-call-after-await': [OFF],
93
+ 'vue/no-restricted-component-names': [OFF],
94
+ 'vue/no-restricted-component-options': [OFF],
95
+ 'vue/no-restricted-custom-event': [OFF],
96
+ 'vue/no-restricted-html-elements': [OFF],
97
+ 'vue/no-restricted-props': [OFF],
98
+ 'vue/no-restricted-static-attribute': [OFF],
99
+ 'vue/no-restricted-v-bind': [OFF],
100
+ 'vue/no-root-v-if': [ERROR],
101
+ 'vue/no-setup-props-reactivity-loss': [OFF],
102
+ 'vue/no-static-inline-styles': [WARN],
103
+ 'vue/no-template-shadow': [OFF],
104
+ // выключено в общих конфигах, может быть включено в вашем репозитории если есть необходимость.
105
+ 'vue/no-undef-components': [OFF],
106
+ 'vue/no-undef-properties': [ERROR],
107
+ 'vue/no-unsupported-features': [
108
+ ERROR,
109
+ {
110
+ version: '^3.4.27',
111
+ ignores: [],
112
+ },
113
+ ],
114
+ 'vue/no-unused-components': [ERROR],
115
+ 'vue/no-unused-emit-declarations': [ERROR],
116
+ 'vue/no-unused-properties': [
117
+ ERROR,
118
+ {
119
+ groups: [
120
+ 'props',
121
+ 'setup',
122
+ ],
123
+ deepData: true,
124
+ ignorePublicMembers: true,
125
+ },
126
+ ],
127
+ 'vue/no-unused-refs': [ERROR],
128
+ 'vue/no-unused-vars': [ERROR],
129
+ 'vue/no-use-v-else-with-v-for': [ERROR],
130
+ 'vue/no-use-v-if-with-v-for': [ERROR],
131
+ 'vue/no-useless-mustaches': [ERROR],
132
+ 'vue/no-useless-v-bind': [ERROR],
133
+ 'vue/no-v-html': [ERROR],
134
+ 'vue/no-v-text': [ERROR],
135
+ 'vue/no-watch-after-await': [ERROR],
136
+ 'vue/one-component-per-file': [ERROR],
137
+ 'vue/order-in-components': [ERROR],
138
+ 'vue/prefer-define-options': [ERROR],
139
+ 'vue/prefer-import-from-vue': [ERROR],
140
+ 'vue/prefer-separate-static-class': [ERROR],
141
+ 'vue/prefer-true-attribute-shorthand': [
142
+ ERROR,
143
+ 'always',
144
+ ],
145
+ 'vue/prop-name-casing': [
146
+ ERROR,
147
+ 'camelCase',
148
+ ],
149
+ 'vue/require-default-prop': [OFF],
150
+ 'vue/require-direct-export': [ERROR],
151
+ 'vue/require-emit-validator': [ERROR],
152
+ 'vue/require-explicit-emits': [ERROR],
153
+ 'vue/require-expose': [ERROR],
154
+ 'vue/require-macro-variable-name': [ERROR],
155
+ 'vue/require-name-property': [ERROR],
156
+ 'vue/require-prop-comment': [OFF],
157
+ 'vue/require-prop-type-constructor': [ERROR],
158
+ 'vue/require-prop-types': [ERROR],
159
+ 'vue/require-typed-object-prop': [ERROR],
160
+ 'vue/require-typed-ref': [ERROR],
161
+ 'vue/require-valid-default-prop': [ERROR],
162
+ 'vue/sort-keys': [OFF],
163
+ 'vue/static-class-names-order': [OFF],
164
+ 'vue/this-in-template': [
165
+ ERROR,
166
+ 'never',
167
+ ],
168
+ 'vue/use-v-on-exact': [ERROR],
169
+ 'vue/v-bind-style': [
170
+ ERROR,
171
+ 'shorthand',
172
+ ],
173
+ 'vue/v-on-event-hyphenation': [
174
+ ERROR,
175
+ 'never',
176
+ { autofix: true },
177
+ ],
178
+ // https://github.com/vuejs/eslint-plugin-vue/issues/2571
179
+ 'vue/v-on-handler-style': [OFF],
180
+ 'vue/v-on-style': [
181
+ ERROR,
182
+ 'shorthand',
183
+ ],
184
+ 'vue/v-slot-style': [ERROR],
185
+ 'vue/valid-define-options': [ERROR],
113
186
  };
@@ -1,83 +1,86 @@
1
1
  import { ERROR, OFF } from '../severity.js';
2
2
 
3
3
  export const suggestionRules = {
4
- 'vue/match-component-import-name': [ERROR],
5
- // 'vue/max-lines-per-block': [WARN, {
6
- // template: 120,
7
- // script: 120,
8
- // style: 120,
9
- // skipBlankLines: true,
10
- // }],
11
- 'vue/no-arrow-functions-in-watch': [ERROR],
12
- 'vue/no-async-in-computed-properties': [ERROR],
13
- 'vue/no-child-content': [ERROR],
14
- 'vue/no-computed-properties-in-data': [ERROR],
15
- 'vue/no-deprecated-data-object-declaration': [ERROR],
16
- 'vue/no-deprecated-destroyed-lifecycle': [ERROR],
17
- 'vue/no-deprecated-dollar-listeners-api': [ERROR],
18
- 'vue/no-deprecated-dollar-scopedslots-api': [ERROR],
19
- 'vue/no-deprecated-events-api': [ERROR],
20
- 'vue/no-deprecated-filter': [ERROR],
21
- 'vue/no-deprecated-functional-template': [ERROR],
22
- 'vue/no-deprecated-html-element-is': [ERROR],
23
- 'vue/no-deprecated-inline-template': [ERROR],
24
- 'vue/no-deprecated-model-definition': [ERROR],
25
- 'vue/no-deprecated-props-default-this': [ERROR],
26
- 'vue/no-deprecated-router-link-tag-prop': [ERROR, { components: ['RouterLink'] }],
27
- 'vue/no-deprecated-v-bind-sync': [ERROR],
28
- 'vue/no-deprecated-v-on-native-modifier': [ERROR],
29
- 'vue/no-deprecated-v-on-number-modifiers': [ERROR],
30
- 'vue/no-deprecated-vue-config-keycodes': [ERROR],
31
- 'vue/no-dupe-keys': [ERROR],
32
- 'vue/no-dupe-v-else-if': [ERROR],
33
- 'vue/no-duplicate-attributes': [ERROR],
34
- 'vue/no-export-in-script-setup': [ERROR],
35
- 'vue/no-expose-after-await': [ERROR],
36
- 'vue/no-lone-template': [ERROR],
37
- 'vue/no-multiple-slot-args': [ERROR],
38
- 'vue/no-parsing-error': [ERROR],
39
- 'vue/no-ref-object-reactivity-loss': [ERROR],
40
- 'vue/no-required-prop-with-default': [ERROR],
41
- 'vue/no-reserved-props': [ERROR],
42
- 'vue/no-restricted-class': [OFF],
43
- 'vue/no-shared-component-data': [ERROR],
44
- 'vue/no-side-effects-in-computed-properties': [ERROR],
45
- 'vue/no-template-key': [ERROR],
46
- 'vue/no-template-target-blank': [ERROR],
47
- 'vue/no-textarea-mustache': [ERROR],
48
- 'vue/no-this-in-before-route-enter': [ERROR],
49
- 'vue/no-use-computed-property-like-method': [ERROR],
50
- 'vue/no-useless-template-attributes': [ERROR],
51
- 'vue/no-v-for-template-key-on-child': [ERROR],
52
- 'vue/no-v-text-v-html-on-component': [ERROR],
53
- 'vue/prefer-prop-type-boolean-first': [ERROR],
54
- 'vue/require-component-is': [ERROR],
55
- 'vue/require-render-return': [ERROR],
56
- 'vue/require-slots-as-functions': [ERROR],
57
- 'vue/require-toggle-inside-transition': [ERROR],
58
- 'vue/require-v-for-key': [ERROR],
59
- 'vue/return-in-computed-property': [ERROR],
60
- 'vue/return-in-emits-validator': [ERROR],
61
- 'vue/v-if-else-key': [OFF],
62
- 'vue/valid-attribute-name': [ERROR],
63
- 'vue/valid-define-emits': [ERROR],
64
- 'vue/valid-define-props': [ERROR],
65
- 'vue/valid-next-tick': [ERROR],
66
- 'vue/valid-template-root': [ERROR],
67
- 'vue/valid-v-bind': [ERROR],
68
- 'vue/valid-v-cloak': [ERROR],
69
- 'vue/valid-v-else': [ERROR],
70
- 'vue/valid-v-else-if': [ERROR],
71
- 'vue/valid-v-for': [ERROR],
72
- 'vue/valid-v-html': [ERROR],
73
- 'vue/valid-v-if': [ERROR],
74
- 'vue/valid-v-is': [ERROR],
75
- 'vue/valid-v-memo': [ERROR],
76
- 'vue/valid-v-model': [ERROR],
77
- 'vue/valid-v-on': [ERROR],
78
- 'vue/valid-v-once': [ERROR],
79
- 'vue/valid-v-pre': [ERROR],
80
- 'vue/valid-v-show': [ERROR],
81
- 'vue/valid-v-slot': [ERROR],
82
- 'vue/valid-v-text': [ERROR],
4
+ 'vue/match-component-import-name': [ERROR],
5
+ // 'vue/max-lines-per-block': [WARN, {
6
+ // template: 120,
7
+ // script: 120,
8
+ // style: 120,
9
+ // skipBlankLines: true,
10
+ // }],
11
+ 'vue/no-arrow-functions-in-watch': [ERROR],
12
+ 'vue/no-async-in-computed-properties': [ERROR],
13
+ 'vue/no-child-content': [ERROR],
14
+ 'vue/no-computed-properties-in-data': [ERROR],
15
+ 'vue/no-deprecated-data-object-declaration': [ERROR],
16
+ 'vue/no-deprecated-destroyed-lifecycle': [ERROR],
17
+ 'vue/no-deprecated-dollar-listeners-api': [ERROR],
18
+ 'vue/no-deprecated-dollar-scopedslots-api': [ERROR],
19
+ 'vue/no-deprecated-events-api': [ERROR],
20
+ 'vue/no-deprecated-filter': [ERROR],
21
+ 'vue/no-deprecated-functional-template': [ERROR],
22
+ 'vue/no-deprecated-html-element-is': [ERROR],
23
+ 'vue/no-deprecated-inline-template': [ERROR],
24
+ 'vue/no-deprecated-model-definition': [ERROR],
25
+ 'vue/no-deprecated-props-default-this': [ERROR],
26
+ 'vue/no-deprecated-router-link-tag-prop': [
27
+ ERROR,
28
+ { components: ['RouterLink'] },
29
+ ],
30
+ 'vue/no-deprecated-v-bind-sync': [ERROR],
31
+ 'vue/no-deprecated-v-on-native-modifier': [ERROR],
32
+ 'vue/no-deprecated-v-on-number-modifiers': [ERROR],
33
+ 'vue/no-deprecated-vue-config-keycodes': [ERROR],
34
+ 'vue/no-dupe-keys': [ERROR],
35
+ 'vue/no-dupe-v-else-if': [ERROR],
36
+ 'vue/no-duplicate-attributes': [ERROR],
37
+ 'vue/no-export-in-script-setup': [ERROR],
38
+ 'vue/no-expose-after-await': [ERROR],
39
+ 'vue/no-lone-template': [ERROR],
40
+ 'vue/no-multiple-slot-args': [ERROR],
41
+ 'vue/no-parsing-error': [ERROR],
42
+ 'vue/no-ref-object-reactivity-loss': [ERROR],
43
+ 'vue/no-required-prop-with-default': [ERROR],
44
+ 'vue/no-reserved-props': [ERROR],
45
+ 'vue/no-restricted-class': [OFF],
46
+ 'vue/no-shared-component-data': [ERROR],
47
+ 'vue/no-side-effects-in-computed-properties': [ERROR],
48
+ 'vue/no-template-key': [ERROR],
49
+ 'vue/no-template-target-blank': [ERROR],
50
+ 'vue/no-textarea-mustache': [ERROR],
51
+ 'vue/no-this-in-before-route-enter': [ERROR],
52
+ 'vue/no-use-computed-property-like-method': [ERROR],
53
+ 'vue/no-useless-template-attributes': [ERROR],
54
+ 'vue/no-v-for-template-key-on-child': [ERROR],
55
+ 'vue/no-v-text-v-html-on-component': [ERROR],
56
+ 'vue/prefer-prop-type-boolean-first': [ERROR],
57
+ 'vue/require-component-is': [ERROR],
58
+ 'vue/require-render-return': [ERROR],
59
+ 'vue/require-slots-as-functions': [ERROR],
60
+ 'vue/require-toggle-inside-transition': [ERROR],
61
+ 'vue/require-v-for-key': [ERROR],
62
+ 'vue/return-in-computed-property': [ERROR],
63
+ 'vue/return-in-emits-validator': [ERROR],
64
+ 'vue/v-if-else-key': [OFF],
65
+ 'vue/valid-attribute-name': [ERROR],
66
+ 'vue/valid-define-emits': [ERROR],
67
+ 'vue/valid-define-props': [ERROR],
68
+ 'vue/valid-next-tick': [ERROR],
69
+ 'vue/valid-template-root': [ERROR],
70
+ 'vue/valid-v-bind': [ERROR],
71
+ 'vue/valid-v-cloak': [ERROR],
72
+ 'vue/valid-v-else': [ERROR],
73
+ 'vue/valid-v-else-if': [ERROR],
74
+ 'vue/valid-v-for': [ERROR],
75
+ 'vue/valid-v-html': [ERROR],
76
+ 'vue/valid-v-if': [ERROR],
77
+ 'vue/valid-v-is': [ERROR],
78
+ 'vue/valid-v-memo': [ERROR],
79
+ 'vue/valid-v-model': [ERROR],
80
+ 'vue/valid-v-on': [ERROR],
81
+ 'vue/valid-v-once': [ERROR],
82
+ 'vue/valid-v-pre': [ERROR],
83
+ 'vue/valid-v-show': [ERROR],
84
+ 'vue/valid-v-slot': [ERROR],
85
+ 'vue/valid-v-text': [ERROR],
83
86
  };
@@ -3,27 +3,25 @@ import { fileURLToPath } from 'node:url';
3
3
 
4
4
  const currentDir = dirname(fileURLToPath(import.meta.url));
5
5
  const concat = (...arrays) => {
6
- return [].concat(...arrays);
6
+ return [].concat(...arrays);
7
7
  };
8
8
 
9
9
  export default {
10
- extends: concat(
11
- [
12
- 'stylelint-config-standard',
13
- 'stylelint-config-standard-scss',
14
- 'stylelint-config-standard-vue/scss',
15
- ],
16
- [
17
- './rules/base.js',
18
- './rules/stylistic.js',
19
- './rules/order.js',
20
- './rules/conflicts.js',
21
- './rules/scss.js',
22
- ].map((string) => {
23
- return path.resolve(currentDir, string);
24
- }),
25
- ),
26
- plugins: [
27
- '@stylistic/stylelint-plugin',
28
- ],
10
+ extends: concat(
11
+ [
12
+ 'stylelint-config-standard',
13
+ 'stylelint-config-standard-scss',
14
+ 'stylelint-config-standard-vue/scss',
15
+ ],
16
+ [
17
+ './rules/base.js',
18
+ './rules/stylistic.js',
19
+ './rules/order.js',
20
+ './rules/conflicts.js',
21
+ './rules/scss.js',
22
+ ].map((string) => {
23
+ return path.resolve(currentDir, string);
24
+ }),
25
+ ),
26
+ plugins: ['@stylistic/stylelint-plugin'],
29
27
  };