@alexlit/config-eslint 60.0.0 → 61.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/.eslintrc.js CHANGED
@@ -144,8 +144,11 @@ module.exports = defineConfig({
144
144
  ],
145
145
 
146
146
  'no-console': 'warn',
147
+
147
148
  'no-implicit-coercion': 'error',
148
149
 
150
+ 'no-param-reassign': ['error', { props: false }],
151
+
149
152
  'no-restricted-exports': [
150
153
  'error',
151
154
  {
@@ -166,6 +169,8 @@ module.exports = defineConfig({
166
169
  // delegate to eslint-plugin-unused-imports
167
170
  'no-use-before-define': 'off',
168
171
 
172
+ 'nonblock-statement-body-position': ['error', 'below'],
173
+
169
174
  'padding-line-between-statements': [
170
175
  'warn',
171
176
  // always
@@ -25,6 +25,7 @@ module.exports = [
25
25
  'atomtest',
26
26
  'autofocus',
27
27
  'autoplay',
28
+ 'autosize',
28
29
  'averta',
29
30
  'aviate',
30
31
  'avif',
@@ -32,6 +33,7 @@ module.exports = [
32
33
  'backtick',
33
34
  'backticks',
34
35
  'basedir',
36
+ 'bashrc',
35
37
  'behance',
36
38
  'bestchange',
37
39
  'bic',
@@ -67,9 +69,11 @@ module.exports = [
67
69
  'colour',
68
70
  'combinator',
69
71
  'combinators',
72
+ 'combobox',
70
73
  'commitlint',
71
74
  'commitlintrc',
72
75
  'commonjs',
76
+ 'composables',
73
77
  'consola',
74
78
  'consts',
75
79
  'contextmenu',
@@ -82,10 +86,12 @@ module.exports = [
82
86
  'customising',
83
87
  'dataset',
84
88
  'datasets',
89
+ 'dayjs',
85
90
  'dblclick',
86
91
  'dccache',
87
92
  'dcignore',
88
93
  'debounce',
94
+ 'debounced',
89
95
  'declarator',
90
96
  'dedupe',
91
97
  'deepmerge',
@@ -102,6 +108,7 @@ module.exports = [
102
108
  'dotenv',
103
109
  'dribbble',
104
110
  'dropdown',
111
+ 'dropzone',
105
112
  'drupal',
106
113
  'ecommerce',
107
114
  'ecommpay',
@@ -144,9 +151,11 @@ module.exports = [
144
151
  'greasemonkey',
145
152
  'grecaptcha',
146
153
  'handwrite',
154
+ 'hqdefault',
147
155
  'htmllint',
148
156
  'htmllintrc',
149
157
  'huskyrc',
158
+ 'iconify',
150
159
  'identicon',
151
160
  'iife',
152
161
  'illtreat',
@@ -183,6 +192,7 @@ module.exports = [
183
192
  'linthtml',
184
193
  'linthtmlrc',
185
194
  'lintstagedrc',
195
+ 'listbox',
186
196
  'litecoin',
187
197
  'litovchenko',
188
198
  'localdomain',
@@ -190,11 +200,14 @@ module.exports = [
190
200
  'lockfile',
191
201
  'lockfilelint',
192
202
  'lockfiles',
203
+ 'lottie',
193
204
  'lumen',
194
205
  'markdownlint',
195
206
  'markdownlintrc',
207
+ 'maska',
196
208
  'mastercard',
197
209
  'materialdesignicons',
210
+ 'mattermost',
198
211
  'mercurio',
199
212
  'mercuryo',
200
213
  'metafile',
@@ -226,6 +239,7 @@ module.exports = [
226
239
  'nginx',
227
240
  'noindex',
228
241
  'nomodule',
242
+ 'nonblock',
229
243
  'noninteraction',
230
244
  'noopener',
231
245
  'notificators',
@@ -283,6 +297,7 @@ module.exports = [
283
297
  'recaptcha',
284
298
  'reconnection',
285
299
  'remixicon',
300
+ 'repo',
286
301
  'rerender',
287
302
  'resolvers',
288
303
  'retratech',
@@ -322,6 +337,7 @@ module.exports = [
322
337
  'subfolder',
323
338
  'sumsub',
324
339
  'supabase',
340
+ 'svgo',
325
341
  'svgstore',
326
342
  'systemize',
327
343
  'tagless',
@@ -351,7 +367,9 @@ module.exports = [
351
367
  'unfollow',
352
368
  'unformatted',
353
369
  'unknow',
370
+ 'unref',
354
371
  'unsanitized',
372
+ 'uploader',
355
373
  'verificator',
356
374
  'vetur',
357
375
  'visibilitychange',
@@ -390,6 +408,7 @@ module.exports = [
390
408
  'workerpool',
391
409
  'writeable',
392
410
  'wubi',
411
+ 'wysiwyg',
393
412
  'xlink',
394
413
  'xray',
395
414
  'yandex',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alexlit/config-eslint",
3
- "version": "60.0.0",
3
+ "version": "61.0.0",
4
4
  "private": false,
5
5
  "description": "eslint config",
6
6
  "keywords": [
@@ -40,25 +40,25 @@
40
40
  },
41
41
  "dependencies": {
42
42
  "@intlify/eslint-plugin-vue-i18n": "^2.0.0",
43
- "@typescript-eslint/eslint-plugin": "^5.59.1",
44
- "@typescript-eslint/parser": "^5.59.1",
45
- "eslint": "^8.39.0",
43
+ "@typescript-eslint/eslint-plugin": "^5.59.8",
44
+ "@typescript-eslint/parser": "^5.59.8",
45
+ "eslint": "^8.41.0",
46
46
  "eslint-config-airbnb-base": "^15.0.0",
47
47
  "eslint-config-prettier": "^8.8.0",
48
- "eslint-define-config": "^1.19.0",
48
+ "eslint-define-config": "^1.20.0",
49
49
  "eslint-import-resolver-alias": "^1.1.2",
50
50
  "eslint-plugin-array-func": "^3.1.8",
51
51
  "eslint-plugin-compat": "^4.1.4",
52
52
  "eslint-plugin-decorator-position": "^5.0.2",
53
53
  "eslint-plugin-eslint-comments": "^3.2.0",
54
- "eslint-plugin-etc": "^2.0.2",
54
+ "eslint-plugin-etc": "^2.0.3",
55
55
  "eslint-plugin-ext": "^0.1.0",
56
56
  "eslint-plugin-filenames": "^1.3.2",
57
57
  "eslint-plugin-import": "^2.27.5",
58
58
  "eslint-plugin-jest": "^27.2.1",
59
59
  "eslint-plugin-jest-dom": "^4.0.3",
60
60
  "eslint-plugin-jest-formatting": "^3.1.0",
61
- "eslint-plugin-jsdoc": "^43.1.1",
61
+ "eslint-plugin-jsdoc": "^46.0.0",
62
62
  "eslint-plugin-jsx-a11y": "^6.7.1",
63
63
  "eslint-plugin-lit": "^1.8.3",
64
64
  "eslint-plugin-lit-a11y": "^2.4.1",
@@ -77,28 +77,28 @@
77
77
  "eslint-plugin-quasar": "^1.1.0",
78
78
  "eslint-plugin-react": "^7.32.2",
79
79
  "eslint-plugin-react-hooks": "^4.6.0",
80
- "eslint-plugin-regexp": "^1.14.0",
80
+ "eslint-plugin-regexp": "^1.15.0",
81
81
  "eslint-plugin-security": "^1.7.1",
82
82
  "eslint-plugin-simple-import-sort": "^10.0.0",
83
83
  "eslint-plugin-sonarjs": "^0.19.0",
84
- "eslint-plugin-sort-class-members": "^1.17.1",
84
+ "eslint-plugin-sort-class-members": "^1.18.0",
85
85
  "eslint-plugin-sort-destructure-keys": "^1.5.0",
86
86
  "eslint-plugin-sort-keys-fix": "^1.1.2",
87
87
  "eslint-plugin-spellcheck": "^0.0.20",
88
88
  "eslint-plugin-sql": "^2.3.2",
89
89
  "eslint-plugin-svelte3": "^4.0.0",
90
- "eslint-plugin-testing-library": "^5.10.3",
90
+ "eslint-plugin-testing-library": "^5.11.0",
91
91
  "eslint-plugin-typescript-sort-keys": "^2.3.0",
92
- "eslint-plugin-unicorn": "^46.0.0",
92
+ "eslint-plugin-unicorn": "^47.0.0",
93
93
  "eslint-plugin-unused-imports": "^2.0.0",
94
- "eslint-plugin-vue": "^9.11.0",
94
+ "eslint-plugin-vue": "^9.14.1",
95
95
  "eslint-plugin-vuejs-accessibility": "^2.1.0",
96
- "eslint-plugin-vuetify": "^1.1.0",
96
+ "eslint-plugin-vuetify": "^2.0.1",
97
97
  "eslint-plugin-wc": "^1.5.0",
98
98
  "eslint-plugin-write-good-comments": "^0.2.0",
99
99
  "typescript": "^5.0.4"
100
100
  },
101
101
  "devDependencies": {
102
- "@alexlit/lint-kit": "latest"
102
+ "@alexlit/lint-kit": "^95.0.0"
103
103
  }
104
104
  }
@@ -33,7 +33,7 @@ module.exports = {
33
33
 
34
34
  'unicorn/no-array-for-each': 'off',
35
35
 
36
- 'unicorn/no-array-reduce': 'off',
36
+ 'unicorn/no-array-reduce': ['error', { allowSimpleOperations: true }],
37
37
 
38
38
  'unicorn/prefer-module': 'off',
39
39
 
@@ -44,8 +44,13 @@ module.exports = {
44
44
  {
45
45
  allowList: {
46
46
  ProcessEnv: true,
47
+ args: true,
48
+ attrs: true,
47
49
  env: true,
48
50
  i18n: true,
51
+ params: true,
52
+ props: true,
53
+ ref: true,
49
54
  },
50
55
 
51
56
  checkFilenames: false, // delegate to eslint-plugin-filenames
package/plugins/vue.js CHANGED
@@ -5,6 +5,16 @@
5
5
  module.exports = {
6
6
  extends: ['plugin:vue/recommended'],
7
7
 
8
+ overrides: [
9
+ {
10
+ files: ['**/pages/**/*', '**/layouts/**/*'],
11
+
12
+ rules: {
13
+ 'vue/multi-word-component-names': 'off',
14
+ },
15
+ },
16
+ ],
17
+
8
18
  plugins: ['vue'],
9
19
 
10
20
  rules: {
@@ -30,9 +40,8 @@ module.exports = {
30
40
 
31
41
  'vue/component-name-in-template-casing': [
32
42
  'error',
33
- 'kebab-case',
43
+ 'PascalCase',
34
44
  {
35
- ignores: [],
36
45
  registeredComponentsOnly: false,
37
46
  },
38
47
  ],
@@ -48,43 +57,20 @@ module.exports = {
48
57
 
49
58
  'vue/define-emits-declaration': ['error'],
50
59
 
51
- 'vue/define-macros-order': [
52
- 'error',
53
- {
54
- order: ['defineProps', 'defineEmits'],
55
- },
56
- ],
60
+ 'vue/define-macros-order': ['error'],
57
61
 
58
62
  'vue/define-props-declaration': ['error'],
59
63
 
60
64
  'vue/dot-notation': ['error'],
61
-
62
65
  'vue/eqeqeq': ['error'],
63
-
64
66
  'vue/html-button-has-type': ['error'],
65
-
66
67
  'vue/html-comment-content-newline': ['warn'],
67
-
68
68
  'vue/html-comment-content-spacing': ['warn'],
69
69
 
70
70
  'vue/html-comment-indent': ['warn'],
71
71
 
72
72
  'vue/html-end-tags': ['error'],
73
73
 
74
- 'vue/html-self-closing': [
75
- 'error',
76
- {
77
- html: {
78
- component: 'never',
79
- normal: 'never',
80
- void: 'always',
81
- },
82
-
83
- math: 'always',
84
- svg: 'always',
85
- },
86
- ],
87
-
88
74
  'vue/match-component-file-name': ['error'],
89
75
 
90
76
  'vue/match-component-import-name': ['error'],
@@ -108,6 +94,8 @@ module.exports = {
108
94
 
109
95
  'vue/no-deprecated-slot-scope-attribute': ['error'],
110
96
 
97
+ 'vue/no-duplicate-attr-inheritance': ['error'],
98
+
111
99
  'vue/no-empty-component-block': ['error'],
112
100
 
113
101
  'vue/no-invalid-model-keys': ['error'],
@@ -143,6 +131,8 @@ module.exports = {
143
131
 
144
132
  'vue/no-restricted-props': ['error'],
145
133
 
134
+ 'vue/no-root-v-if': ['error'],
135
+
146
136
  'vue/no-this-in-before-route-enter': ['error'],
147
137
 
148
138
  'vue/no-unsupported-features': ['error'],
@@ -185,6 +175,8 @@ module.exports = {
185
175
  { groupSingleLineProperties: true },
186
176
  ],
187
177
 
178
+ 'vue/prefer-define-options': ['error'],
179
+
188
180
  'vue/prefer-prop-type-boolean-first': ['error'],
189
181
 
190
182
  'vue/prefer-separate-static-class': ['error'],
@@ -195,13 +187,6 @@ module.exports = {
195
187
 
196
188
  'vue/require-direct-export': 'off',
197
189
 
198
- 'vue/require-prop-comment': [
199
- 'warn',
200
- {
201
- type: 'JSDoc',
202
- },
203
- ],
204
-
205
190
  'vue/sort-keys': [
206
191
  'warn',
207
192
  'asc',
@@ -222,6 +207,8 @@ module.exports = {
222
207
 
223
208
  'vue/v-on-handler-style': ['error', 'inline-function'],
224
209
 
210
+ 'vue/valid-define-options': ['error'],
211
+
225
212
  'vue/valid-next-tick': ['error'],
226
213
 
227
214
  'vue/valid-v-bind-sync': ['error'],