@alexlit/config-eslint 60.1.0 → 61.0.1

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.1.0",
3
+ "version": "61.0.1",
4
4
  "private": false,
5
5
  "description": "eslint config",
6
6
  "keywords": [
@@ -40,9 +40,9 @@
40
40
  },
41
41
  "dependencies": {
42
42
  "@intlify/eslint-plugin-vue-i18n": "^2.0.0",
43
- "@typescript-eslint/eslint-plugin": "^5.59.2",
44
- "@typescript-eslint/parser": "^5.59.2",
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
48
  "eslint-define-config": "^1.20.0",
@@ -51,14 +51,14 @@
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.2.0",
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": "^94.0.0"
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,23 +57,14 @@ 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'],
@@ -75,7 +75,7 @@ module.exports = {
75
75
  'error',
76
76
  {
77
77
  html: {
78
- component: 'never',
78
+ component: 'always',
79
79
  normal: 'never',
80
80
  void: 'always',
81
81
  },
@@ -108,6 +108,8 @@ module.exports = {
108
108
 
109
109
  'vue/no-deprecated-slot-scope-attribute': ['error'],
110
110
 
111
+ 'vue/no-duplicate-attr-inheritance': ['error'],
112
+
111
113
  'vue/no-empty-component-block': ['error'],
112
114
 
113
115
  'vue/no-invalid-model-keys': ['error'],
@@ -118,6 +120,8 @@ module.exports = {
118
120
 
119
121
  'vue/no-multiple-objects-in-class': ['error'],
120
122
 
123
+ 'vue/no-multiple-template-root': 'off',
124
+
121
125
  'vue/no-parsing-error': ['error'],
122
126
 
123
127
  'vue/no-potential-component-option-typo': ['error'],
@@ -143,6 +147,8 @@ module.exports = {
143
147
 
144
148
  'vue/no-restricted-props': ['error'],
145
149
 
150
+ 'vue/no-root-v-if': ['error'],
151
+
146
152
  'vue/no-this-in-before-route-enter': ['error'],
147
153
 
148
154
  'vue/no-unsupported-features': ['error'],
@@ -185,6 +191,8 @@ module.exports = {
185
191
  { groupSingleLineProperties: true },
186
192
  ],
187
193
 
194
+ 'vue/prefer-define-options': ['error'],
195
+
188
196
  'vue/prefer-prop-type-boolean-first': ['error'],
189
197
 
190
198
  'vue/prefer-separate-static-class': ['error'],
@@ -195,13 +203,6 @@ module.exports = {
195
203
 
196
204
  'vue/require-direct-export': 'off',
197
205
 
198
- 'vue/require-prop-comment': [
199
- 'warn',
200
- {
201
- type: 'JSDoc',
202
- },
203
- ],
204
-
205
206
  'vue/sort-keys': [
206
207
  'warn',
207
208
  'asc',
@@ -222,6 +223,8 @@ module.exports = {
222
223
 
223
224
  'vue/v-on-handler-style': ['error', 'inline-function'],
224
225
 
226
+ 'vue/valid-define-options': ['error'],
227
+
225
228
  'vue/valid-next-tick': ['error'],
226
229
 
227
230
  'vue/valid-v-bind-sync': ['error'],