@rovik/eslint 1.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.
@@ -0,0 +1,7 @@
1
+ export { DefineEslintOptions, bestPracticesRules, complexityRules, defineEslintVue, formattingRules, ignoresConfig, importRules, putoutRules, restrictedImportsRules, simpleImportSortRules, stylisticRules, typescriptRules, unusedImportsRules, vueAllRules, vueConfig, vueExtendsRules, vueLanguageOptions, vuePlugins, vueRules } from './vue.js';
2
+ import 'typescript-eslint';
3
+ import 'eslint';
4
+ import 'json-schema';
5
+ import '@stylistic/eslint-plugin-ts';
6
+ import '@stylistic/eslint-plugin';
7
+ import 'vue-eslint-parser';
package/dist/index.js ADDED
@@ -0,0 +1,549 @@
1
+ // src/vue.ts
2
+ import typescriptEslint2 from "typescript-eslint";
3
+
4
+ // src/configs/ignores.ts
5
+ var ignoresConfig = {
6
+ ignores: [
7
+ "**/coverage",
8
+ "**/dist",
9
+ "node_modules",
10
+ "vite.config.ts",
11
+ "vitest.config.ts",
12
+ "**/*.timestamp-*"
13
+ ]
14
+ };
15
+
16
+ // src/configs/vue.ts
17
+ import eslint from "@eslint/js";
18
+ import stylistic from "@stylistic/eslint-plugin";
19
+ import stylisticTs from "@stylistic/eslint-plugin-ts";
20
+ import eslintPluginVue from "eslint-plugin-vue";
21
+ import importPlugin from "eslint-plugin-import";
22
+ import putout from "eslint-plugin-putout";
23
+ import simpleImportSort from "eslint-plugin-simple-import-sort";
24
+ import unusedImports from "eslint-plugin-unused-imports";
25
+ import globals from "globals";
26
+ import typescriptEslint from "typescript-eslint";
27
+ import * as vueParser from "vue-eslint-parser";
28
+
29
+ // src/rules/best-practices.ts
30
+ var bestPracticesRules = {
31
+ "no-prototype-builtins": "off",
32
+ "no-use-before-define": "off",
33
+ "require-await": "off",
34
+ "dot-notation": "error",
35
+ "no-nested-ternary": "error",
36
+ "no-console": ["error", { allow: ["warn", "error"] }],
37
+ "prefer-destructuring": [
38
+ "error",
39
+ {
40
+ VariableDeclarator: { array: true, object: true },
41
+ AssignmentExpression: { array: true, object: false }
42
+ },
43
+ { enforceForRenamedProperties: false }
44
+ ],
45
+ "eqeqeq": ["error", "always"],
46
+ "no-delete-var": "error",
47
+ "@typescript-eslint/no-use-before-define": [
48
+ "error",
49
+ {
50
+ functions: false,
51
+ classes: false,
52
+ variables: true,
53
+ typedefs: false,
54
+ enums: false,
55
+ ignoreTypeReferences: true,
56
+ allowNamedExports: true
57
+ }
58
+ ],
59
+ "no-promise-executor-return": "warn",
60
+ "no-async-promise-executor": "warn",
61
+ "id-length": ["error", { min: 2, exceptions: ["_"], properties: "never" }],
62
+ "curly": ["error", "multi-line"],
63
+ "one-var": ["error", "never"],
64
+ "no-cond-assign": ["error", "except-parens"],
65
+ "camelcase": ["error", { properties: "never", allow: ["preferred_username", "grant_type"] }],
66
+ "new-cap": ["error", { newIsCap: true, capIsNew: false, properties: false }],
67
+ "accessor-pairs": ["error", { setWithoutGet: true, getWithoutSet: false }],
68
+ "constructor-super": "error",
69
+ "no-array-constructor": "error",
70
+ "no-caller": "error",
71
+ "no-class-assign": "error",
72
+ "no-const-assign": "error",
73
+ "no-constant-condition": "error",
74
+ "no-eval": "error",
75
+ "no-extend-native": "error",
76
+ "no-extra-bind": "error",
77
+ "no-implied-eval": "error",
78
+ "no-inner-declarations": "error",
79
+ "no-iterator": "error",
80
+ "no-label-var": "error",
81
+ "no-labels": "error",
82
+ "no-lone-blocks": "error",
83
+ "no-multi-str": "error",
84
+ "no-new": "error",
85
+ "no-new-func": "error",
86
+ "no-object-constructor": "error",
87
+ "no-new-wrappers": "error",
88
+ "no-octal-escape": "error",
89
+ "no-proto": "error",
90
+ "no-self-compare": "error",
91
+ "no-sequences": "error",
92
+ "no-template-curly-in-string": "error",
93
+ "no-throw-literal": "error",
94
+ "no-undef-init": "error",
95
+ "no-unmodified-loop-condition": "error",
96
+ "no-unneeded-ternary": "error",
97
+ "no-useless-call": "error",
98
+ "no-useless-computed-key": "error",
99
+ "no-useless-rename": "error",
100
+ "yoda": "error",
101
+ "operator-linebreak": [
102
+ "error",
103
+ "before",
104
+ {
105
+ overrides: {
106
+ "=": "after",
107
+ "+=": "after",
108
+ "-=": "after",
109
+ "*=": "after",
110
+ "/=": "after"
111
+ }
112
+ }
113
+ ]
114
+ };
115
+
116
+ // src/rules/complexity.ts
117
+ var complexityRules = {
118
+ "max-lines": ["error", 300],
119
+ "max-nested-callbacks": ["error", 3],
120
+ "max-statements": ["error", 40],
121
+ "max-lines-per-function": ["error", 300],
122
+ "max-params": ["error", 3],
123
+ "complexity": ["error", { max: 28, variant: "modified" }],
124
+ "max-depth": ["error", 3]
125
+ };
126
+
127
+ // src/rules/formatting.ts
128
+ var formattingRules = {
129
+ "object-property-newline": "error",
130
+ "object-curly-spacing": ["error", "always"],
131
+ "array-bracket-spacing": ["error", "always"],
132
+ "no-multi-spaces": "error",
133
+ "quotes": ["error", "single"]
134
+ };
135
+ var putoutRules = {
136
+ "putout/multiple-properties-destructuring": "error"
137
+ };
138
+
139
+ // src/rules/imports.ts
140
+ var importRules = {
141
+ "import/first": "error",
142
+ "import/newline-after-import": ["error", { count: 1 }],
143
+ "import/no-self-import": "error"
144
+ };
145
+ var simpleImportSortRules = {
146
+ "simple-import-sort/imports": [
147
+ "error",
148
+ {
149
+ groups: [
150
+ [
151
+ "^vue",
152
+ "^@?\\w/?\\w",
153
+ "^@?/shared/\\w",
154
+ "^@?/entities/\\w",
155
+ "^@?/features/\\w",
156
+ "^@?/widgets/\\w",
157
+ "^@?/pages/\\w",
158
+ "^@?/app/\\w",
159
+ "^[./]+/shared/\\w",
160
+ "^[./]+/entities/\\w",
161
+ "^[./]+/features/\\w",
162
+ "^[./]+/widgets/\\w",
163
+ "^[./]+/pages/\\w",
164
+ "^[./]+/app/\\w",
165
+ "^"
166
+ ]
167
+ ]
168
+ }
169
+ ],
170
+ "simple-import-sort/exports": "error"
171
+ };
172
+ var unusedImportsRules = {
173
+ "unused-imports/no-unused-imports": "error",
174
+ "unused-imports/no-unused-vars": [
175
+ "error",
176
+ {
177
+ vars: "all",
178
+ varsIgnorePattern: "^_",
179
+ args: "after-used",
180
+ argsIgnorePattern: "^_",
181
+ ignoreRestSiblings: true
182
+ }
183
+ ]
184
+ };
185
+ var restrictedImportsRules = {
186
+ "no-restricted-imports": [
187
+ "error",
188
+ {
189
+ patterns: [
190
+ {
191
+ group: ["*.ts"],
192
+ message: "Do not use .ts extension in imports"
193
+ }
194
+ ]
195
+ }
196
+ ]
197
+ };
198
+
199
+ // src/rules/stylistic.ts
200
+ var stylisticRules = {
201
+ "@stylistic/indent-legacy": "off",
202
+ "@stylistic/array-element-newline": "off",
203
+ "@stylistic/array-bracket-newline": "off",
204
+ "@stylistic/eol-last": ["error", "always"],
205
+ "@stylistic/indent": [
206
+ "error",
207
+ 2,
208
+ {
209
+ SwitchCase: 1,
210
+ VariableDeclarator: "first",
211
+ outerIIFEBody: 1,
212
+ MemberExpression: 1,
213
+ FunctionDeclaration: { parameters: 1, body: 1 },
214
+ FunctionExpression: { parameters: 1, body: 1 },
215
+ CallExpression: { arguments: 1 },
216
+ ArrayExpression: 1,
217
+ ObjectExpression: 1,
218
+ ImportDeclaration: 1,
219
+ flatTernaryExpressions: false,
220
+ ignoreComments: false
221
+ }
222
+ ],
223
+ "@stylistic/no-mixed-spaces-and-tabs": "error",
224
+ "no-empty": ["error", { allowEmptyCatch: true }],
225
+ "no-duplicate-imports": "error",
226
+ "prefer-const": ["error", { destructuring: "all" }],
227
+ "@stylistic/object-curly-newline": [
228
+ "error",
229
+ {
230
+ ObjectExpression: { multiline: true, minProperties: 1 },
231
+ ImportDeclaration: { multiline: true, minProperties: 2 },
232
+ ExportDeclaration: { multiline: true, minProperties: 2 }
233
+ }
234
+ ],
235
+ "@stylistic/object-property-newline": ["error", { allowAllPropertiesOnSameLine: false }],
236
+ "@stylistic/max-statements-per-line": ["error", { max: 1 }],
237
+ "@stylistic/comma-spacing": "error",
238
+ "@stylistic/comma-dangle": "error",
239
+ "@stylistic/semi": "error",
240
+ "@stylistic/no-extra-semi": "error",
241
+ "@stylistic/semi-style": ["error", "last"],
242
+ "@stylistic/semi-spacing": "error",
243
+ "@stylistic/no-multiple-empty-lines": ["error", { max: 1 }],
244
+ "@stylistic/lines-between-class-members": ["error", "always"],
245
+ "@stylistic/no-trailing-spaces": "error",
246
+ "@stylistic/keyword-spacing": "error",
247
+ "@stylistic/arrow-spacing": "error",
248
+ "@stylistic/block-spacing": "error",
249
+ "@stylistic/computed-property-spacing": "error",
250
+ "@stylistic/generator-star-spacing": "error",
251
+ "@stylistic/key-spacing": "error",
252
+ "@stylistic/space-in-parens": "error",
253
+ "@stylistic/space-infix-ops": "error",
254
+ "@stylistic/func-call-spacing": "error",
255
+ "@stylistic/space-before-blocks": "error",
256
+ "@stylistic/space-before-function-paren": [
257
+ "error",
258
+ { anonymous: "never", named: "never", asyncArrow: "always" }
259
+ ],
260
+ "@stylistic/member-delimiter-style": [
261
+ "error",
262
+ {
263
+ multiline: { delimiter: "none", requireLast: false },
264
+ singleline: { delimiter: "comma", requireLast: false }
265
+ }
266
+ ],
267
+ "@stylistic/no-extra-parens": [
268
+ "error",
269
+ "all",
270
+ {
271
+ nestedBinaryExpressions: false,
272
+ enforceForArrowConditionals: false,
273
+ enforceForNewInMemberExpressions: false,
274
+ enforceForFunctionPrototypeMethods: true,
275
+ conditionalAssign: false,
276
+ returnAssign: false,
277
+ ignoreJSX: "all",
278
+ ternaryOperandBinaryExpressions: false
279
+ }
280
+ ],
281
+ "@stylistic/ts/type-annotation-spacing": [
282
+ "error",
283
+ {
284
+ before: false,
285
+ after: true,
286
+ overrides: { arrow: { before: true, after: true } }
287
+ }
288
+ ],
289
+ "@stylistic/brace-style": "error",
290
+ "@stylistic/comma-style": "error",
291
+ "@stylistic/dot-location": ["error", "property"],
292
+ "@stylistic/new-parens": "error",
293
+ "@stylistic/no-floating-decimal": "error",
294
+ "@stylistic/no-whitespace-before-property": "error",
295
+ "@stylistic/rest-spread-spacing": "error",
296
+ "@stylistic/space-unary-ops": "error",
297
+ "@stylistic/spaced-comment": "error",
298
+ "@stylistic/template-curly-spacing": "error",
299
+ "@stylistic/wrap-iife": "error",
300
+ "@stylistic/yield-star-spacing": "error"
301
+ };
302
+
303
+ // src/rules/typescript.ts
304
+ var typescriptRules = {
305
+ "@typescript-eslint/no-restricted-types": "off",
306
+ "@typescript-eslint/no-non-null-asserted-optional-chain": "off",
307
+ "@typescript-eslint/no-unused-vars": "off",
308
+ "@typescript-eslint/prefer-namespace-keyword": "off",
309
+ "@typescript-eslint/no-unsafe-function-type": "off",
310
+ "@typescript-eslint/no-inferrable-types": "off",
311
+ "@typescript-eslint/no-dynamic-delete": "error",
312
+ "@typescript-eslint/no-namespace": "off",
313
+ "@typescript-eslint/no-empty-object-type": [
314
+ "error",
315
+ { allowInterfaces: "with-single-extends", allowObjectTypes: "always" }
316
+ ],
317
+ "@typescript-eslint/naming-convention": [
318
+ "error",
319
+ {
320
+ selector: "interface",
321
+ format: ["PascalCase"],
322
+ custom: { regex: "^I[A-Z]", match: false }
323
+ }
324
+ ],
325
+ "@typescript-eslint/member-ordering": [
326
+ "error",
327
+ {
328
+ default: {
329
+ memberTypes: [
330
+ "public-static-field",
331
+ "protected-static-field",
332
+ "private-static-field",
333
+ "public-decorated-field",
334
+ "protected-decorated-field",
335
+ "private-decorated-field",
336
+ "public-instance-field",
337
+ "protected-instance-field",
338
+ "private-instance-field",
339
+ "public-abstract-field",
340
+ "protected-abstract-field",
341
+ "public-constructor",
342
+ "protected-constructor",
343
+ "private-constructor",
344
+ "public-static-method",
345
+ "protected-static-method",
346
+ "private-static-method",
347
+ "public-decorated-method",
348
+ "protected-decorated-method",
349
+ "private-decorated-method",
350
+ "public-instance-method",
351
+ "protected-instance-method",
352
+ "private-instance-method",
353
+ "public-abstract-method",
354
+ "protected-abstract-method",
355
+ "signature"
356
+ ],
357
+ order: "as-written"
358
+ },
359
+ interfaces: {
360
+ memberTypes: ["field", "constructor", "method", "signature"],
361
+ order: "as-written"
362
+ },
363
+ typeLiterals: {
364
+ memberTypes: ["field", "constructor", "method", "signature"],
365
+ order: "as-written"
366
+ }
367
+ }
368
+ ],
369
+ "@typescript-eslint/no-unused-expressions": [
370
+ "error",
371
+ {
372
+ allowShortCircuit: true,
373
+ allowTernary: true,
374
+ allowTaggedTemplates: false,
375
+ enforceForJSX: true
376
+ }
377
+ ],
378
+ "@typescript-eslint/no-useless-constructor": "error"
379
+ };
380
+
381
+ // src/rules/vue.ts
382
+ var MAX_LEN_CODE = 85;
383
+ var MAX_LEN_IGNORE_PATTERN = `import\\s*(type)?\\s.*\\s*from\\s*.*';|.*\\s*from\\s*.*';|d="([\\s\\S]*?)"|\\s*component:\\s\\(\\)\\s=>\\simport\\(.*\\)|<svg[^>]*>.*?<\\/svg>|/[^/]*\\/[gimsuy]|d="[^"]*"`;
384
+ var vueRules = {
385
+ "vue/multi-word-component-names": "error",
386
+ "vue/mustache-interpolation-spacing": ["error", "always"],
387
+ "vue/no-unused-vars": ["error", { ignorePattern: "^_" }],
388
+ "vue/html-closing-bracket-spacing": "error",
389
+ "vue/html-closing-bracket-newline": [
390
+ "error",
391
+ { singleline: "never", multiline: "always" }
392
+ ],
393
+ "vue/html-quotes": ["error", "double"],
394
+ "vue/attributes-order": [
395
+ "error",
396
+ {
397
+ order: [
398
+ "LIST_RENDERING",
399
+ "CONDITIONALS",
400
+ "RENDER_MODIFIERS",
401
+ "DEFINITION",
402
+ "CONTENT",
403
+ "TWO_WAY_BINDING",
404
+ "OTHER_DIRECTIVES",
405
+ "SLOT",
406
+ "UNIQUE",
407
+ "GLOBAL",
408
+ "ATTR_STATIC",
409
+ "ATTR_SHORTHAND_BOOL",
410
+ "ATTR_DYNAMIC",
411
+ "EVENTS"
412
+ ],
413
+ alphabetical: false
414
+ }
415
+ ],
416
+ "vue/component-tags-order": ["error", { order: [["script", "template", "style"]] }],
417
+ "vue/block-tag-newline": "error",
418
+ "vue/padding-line-between-tags": ["error", [{ blankLine: "always", prev: "*", next: "*" }]],
419
+ "vue/max-attributes-per-line": ["error", { singleline: { max: 1 } }],
420
+ "vue/first-attribute-linebreak": ["error", { singleline: "ignore", multiline: "below" }],
421
+ "vue/multiline-html-element-content-newline": ["error", { allowEmptyLines: false }],
422
+ "vue/component-api-style": ["error", ["script-setup"]],
423
+ "vue/array-bracket-spacing": ["error", "always"],
424
+ "vue/html-self-closing": [
425
+ "error",
426
+ {
427
+ html: { void: "never", normal: "always", component: "always" },
428
+ svg: "always",
429
+ math: "always"
430
+ }
431
+ ],
432
+ "vue/no-empty-component-block": "error",
433
+ "vue/attribute-hyphenation": ["error", "always", { ignore: [] }],
434
+ "vue/block-order": ["error", { order: ["script", "template", "style"] }],
435
+ "vue/valid-template-root": "error",
436
+ "vue/no-restricted-syntax": [
437
+ "error",
438
+ {
439
+ selector: "VElement[name='template'] CallExpression[callee.name='t']",
440
+ message: "Use $t instead of t inside template. Example: {{ $t('key') }}"
441
+ }
442
+ ],
443
+ "vue/no-undef-properties": [
444
+ "error",
445
+ { ignores: ["$t", "$route", "$router", "$attrs", "$slots"] }
446
+ ],
447
+ "vue/no-template-shadow": "error",
448
+ "vue/define-props-declaration": ["error", "type-based"],
449
+ "vue/define-macros-order": [
450
+ "error",
451
+ {
452
+ order: [
453
+ "defineProps",
454
+ "defineEmits",
455
+ "defineModel",
456
+ "defineOptions",
457
+ "defineSlots",
458
+ "defineExpose",
459
+ "customMacros"
460
+ ]
461
+ }
462
+ ],
463
+ "vue/max-len": [
464
+ "error",
465
+ { code: MAX_LEN_CODE, template: MAX_LEN_CODE, ignorePattern: MAX_LEN_IGNORE_PATTERN }
466
+ ],
467
+ "vue/no-undef-components": ["error", { ignorePatterns: ["^u-", "^router-", "^i18n-"] }]
468
+ };
469
+
470
+ // src/configs/vue.ts
471
+ var vueExtendsRules = [
472
+ eslint.configs.recommended,
473
+ ...typescriptEslint.configs.recommended,
474
+ ...eslintPluginVue.configs["flat/recommended"]
475
+ ];
476
+ var vueLanguageOptions = {
477
+ ecmaVersion: "latest",
478
+ sourceType: "module",
479
+ globals: globals.browser,
480
+ parser: vueParser,
481
+ parserOptions: {
482
+ parser: typescriptEslint.parser,
483
+ extraFileExtensions: [".vue"],
484
+ ecmaFeatures: { jsx: true }
485
+ }
486
+ };
487
+ var vuePlugins = {
488
+ "@stylistic": stylistic,
489
+ "@stylistic/ts": stylisticTs,
490
+ "simple-import-sort": simpleImportSort,
491
+ "unused-imports": unusedImports,
492
+ "import": importPlugin,
493
+ "putout": putout
494
+ };
495
+ var vueAllRules = {
496
+ ...stylisticRules,
497
+ ...vueRules,
498
+ ...simpleImportSortRules,
499
+ ...unusedImportsRules,
500
+ ...importRules,
501
+ ...putoutRules,
502
+ ...typescriptRules,
503
+ ...formattingRules,
504
+ ...complexityRules,
505
+ ...restrictedImportsRules,
506
+ ...bestPracticesRules
507
+ };
508
+ var vueConfig = {
509
+ extends: vueExtendsRules,
510
+ files: ["**/*.{ts,vue}"],
511
+ languageOptions: vueLanguageOptions,
512
+ plugins: vuePlugins,
513
+ rules: vueAllRules
514
+ };
515
+
516
+ // src/vue.ts
517
+ function defineEslintVue(options = {}) {
518
+ const { ignores = [], overrides = [] } = options;
519
+ const ignoreConfig = {
520
+ ...ignoresConfig,
521
+ ignores: [...ignoresConfig.ignores ?? [], ...ignores]
522
+ };
523
+ return typescriptEslint2.config(
524
+ ignoreConfig,
525
+ vueConfig,
526
+ ...overrides
527
+ );
528
+ }
529
+ export {
530
+ bestPracticesRules,
531
+ complexityRules,
532
+ defineEslintVue,
533
+ formattingRules,
534
+ ignoresConfig,
535
+ importRules,
536
+ putoutRules,
537
+ restrictedImportsRules,
538
+ simpleImportSortRules,
539
+ stylisticRules,
540
+ typescriptRules,
541
+ unusedImportsRules,
542
+ vueAllRules,
543
+ vueConfig,
544
+ vueExtendsRules,
545
+ vueLanguageOptions,
546
+ vuePlugins,
547
+ vueRules
548
+ };
549
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/vue.ts","../src/configs/ignores.ts","../src/configs/vue.ts","../src/rules/best-practices.ts","../src/rules/complexity.ts","../src/rules/formatting.ts","../src/rules/imports.ts","../src/rules/stylistic.ts","../src/rules/typescript.ts","../src/rules/vue.ts"],"sourcesContent":["import typescriptEslint from 'typescript-eslint'\n\nimport { ignoresConfig, vueConfig } from './configs'\nimport type { DefineEslintOptions } from './types'\n\n/**\n * Creates an ESLint configuration for Vue projects\n */\nexport function defineEslintVue(options: DefineEslintOptions = {}) {\n const { ignores = [], overrides = [] } = options\n\n const ignoreConfig = {\n ...ignoresConfig,\n ignores: [...(ignoresConfig.ignores ?? []), ...ignores]\n }\n\n return typescriptEslint.config(\n ignoreConfig,\n vueConfig,\n ...overrides\n )\n}\n\nexport {\n ignoresConfig,\n vueAllRules,\n vueConfig,\n vueExtendsRules,\n vueLanguageOptions,\n vuePlugins\n} from './configs'\n\nexport * from './rules'\nexport type { DefineEslintOptions } from './types'\n","export const ignoresConfig = {\n ignores: [\n '**/coverage',\n '**/dist',\n 'node_modules',\n 'vite.config.ts',\n 'vitest.config.ts',\n '**/*.timestamp-*'\n ]\n}\n","import eslint from '@eslint/js'\nimport stylistic from '@stylistic/eslint-plugin'\nimport stylisticTs from '@stylistic/eslint-plugin-ts'\nimport eslintPluginVue from 'eslint-plugin-vue'\nimport importPlugin from 'eslint-plugin-import'\nimport putout from 'eslint-plugin-putout'\nimport simpleImportSort from 'eslint-plugin-simple-import-sort'\nimport unusedImports from 'eslint-plugin-unused-imports'\nimport globals from 'globals'\nimport typescriptEslint from 'typescript-eslint'\nimport * as vueParser from 'vue-eslint-parser'\n\nimport {\n bestPracticesRules,\n complexityRules,\n formattingRules,\n importRules,\n putoutRules,\n restrictedImportsRules,\n simpleImportSortRules,\n stylisticRules,\n typescriptRules,\n unusedImportsRules,\n vueRules\n} from '../rules'\n\nexport const vueExtendsRules = [\n eslint.configs.recommended,\n ...typescriptEslint.configs.recommended,\n ...eslintPluginVue.configs['flat/recommended']\n]\n\nexport const vueLanguageOptions = {\n ecmaVersion: 'latest' as const,\n sourceType: 'module' as const,\n globals: globals.browser,\n parser: vueParser,\n parserOptions: {\n parser: typescriptEslint.parser,\n extraFileExtensions: ['.vue'],\n ecmaFeatures: { jsx: true }\n }\n}\n\nexport const vuePlugins = {\n '@stylistic': stylistic,\n '@stylistic/ts': stylisticTs,\n 'simple-import-sort': simpleImportSort,\n 'unused-imports': unusedImports,\n 'import': importPlugin,\n 'putout': putout\n}\n\nexport const vueAllRules = {\n ...stylisticRules,\n ...vueRules,\n ...simpleImportSortRules,\n ...unusedImportsRules,\n ...importRules,\n ...putoutRules,\n ...typescriptRules,\n ...formattingRules,\n ...complexityRules,\n ...restrictedImportsRules,\n ...bestPracticesRules\n}\n\nexport const vueConfig = {\n extends: vueExtendsRules,\n files: ['**/*.{ts,vue}'],\n languageOptions: vueLanguageOptions,\n plugins: vuePlugins,\n rules: vueAllRules\n}\n","import type { Linter } from 'eslint'\n\nexport const bestPracticesRules: Linter.RulesRecord = {\n 'no-prototype-builtins': 'off',\n 'no-use-before-define': 'off',\n 'require-await': 'off',\n 'dot-notation': 'error',\n 'no-nested-ternary': 'error',\n 'no-console': ['error', { allow: ['warn', 'error'] }],\n 'prefer-destructuring': [\n 'error',\n {\n VariableDeclarator: { array: true, object: true },\n AssignmentExpression: { array: true, object: false }\n },\n { enforceForRenamedProperties: false }\n ],\n 'eqeqeq': ['error', 'always'],\n 'no-delete-var': 'error',\n '@typescript-eslint/no-use-before-define': [\n 'error',\n {\n functions: false,\n classes: false,\n variables: true,\n typedefs: false,\n enums: false,\n ignoreTypeReferences: true,\n allowNamedExports: true\n }\n ],\n 'no-promise-executor-return': 'warn',\n 'no-async-promise-executor': 'warn',\n 'id-length': ['error', { min: 2, exceptions: ['_'], properties: 'never' }],\n 'curly': ['error', 'multi-line'],\n 'one-var': ['error', 'never'],\n 'no-cond-assign': ['error', 'except-parens'],\n 'camelcase': ['error', { properties: 'never', allow: ['preferred_username', 'grant_type'] }],\n 'new-cap': ['error', { newIsCap: true, capIsNew: false, properties: false }],\n 'accessor-pairs': ['error', { setWithoutGet: true, getWithoutSet: false }],\n 'constructor-super': 'error',\n 'no-array-constructor': 'error',\n 'no-caller': 'error',\n 'no-class-assign': 'error',\n 'no-const-assign': 'error',\n 'no-constant-condition': 'error',\n 'no-eval': 'error',\n 'no-extend-native': 'error',\n 'no-extra-bind': 'error',\n 'no-implied-eval': 'error',\n 'no-inner-declarations': 'error',\n 'no-iterator': 'error',\n 'no-label-var': 'error',\n 'no-labels': 'error',\n 'no-lone-blocks': 'error',\n 'no-multi-str': 'error',\n 'no-new': 'error',\n 'no-new-func': 'error',\n 'no-object-constructor': 'error',\n 'no-new-wrappers': 'error',\n 'no-octal-escape': 'error',\n 'no-proto': 'error',\n 'no-self-compare': 'error',\n 'no-sequences': 'error',\n 'no-template-curly-in-string': 'error',\n 'no-throw-literal': 'error',\n 'no-undef-init': 'error',\n 'no-unmodified-loop-condition': 'error',\n 'no-unneeded-ternary': 'error',\n 'no-useless-call': 'error',\n 'no-useless-computed-key': 'error',\n 'no-useless-rename': 'error',\n 'yoda': 'error',\n 'operator-linebreak': [\n 'error',\n 'before',\n {\n overrides: {\n '=': 'after',\n '+=': 'after',\n '-=': 'after',\n '*=': 'after',\n '/=': 'after'\n }\n }\n ]\n}\n","import type { Linter } from 'eslint'\n\nexport const complexityRules: Linter.RulesRecord = {\n 'max-lines': ['error', 300],\n 'max-nested-callbacks': ['error', 3],\n 'max-statements': ['error', 40],\n 'max-lines-per-function': ['error', 300],\n 'max-params': ['error', 3],\n 'complexity': ['error', { max: 28, variant: 'modified' }],\n 'max-depth': ['error', 3]\n}\n","import type { Linter } from 'eslint'\n\nexport const formattingRules: Linter.RulesRecord = {\n 'object-property-newline': 'error',\n 'object-curly-spacing': ['error', 'always'],\n 'array-bracket-spacing': ['error', 'always'],\n 'no-multi-spaces': 'error',\n 'quotes': ['error', 'single']\n}\n\nexport const putoutRules: Linter.RulesRecord = {\n 'putout/multiple-properties-destructuring': 'error'\n}\n","import type { Linter } from 'eslint'\n\nexport const importRules: Linter.RulesRecord = {\n 'import/first': 'error',\n 'import/newline-after-import': ['error', { count: 1 }],\n 'import/no-self-import': 'error'\n}\n\nexport const simpleImportSortRules: Linter.RulesRecord = {\n 'simple-import-sort/imports': [\n 'error',\n {\n groups: [\n [\n '^vue',\n '^@?\\\\w/?\\\\w',\n '^@?/shared/\\\\w',\n '^@?/entities/\\\\w',\n '^@?/features/\\\\w',\n '^@?/widgets/\\\\w',\n '^@?/pages/\\\\w',\n '^@?/app/\\\\w',\n '^[./]+/shared/\\\\w',\n '^[./]+/entities/\\\\w',\n '^[./]+/features/\\\\w',\n '^[./]+/widgets/\\\\w',\n '^[./]+/pages/\\\\w',\n '^[./]+/app/\\\\w',\n '^'\n ]\n ]\n }\n ],\n 'simple-import-sort/exports': 'error'\n}\n\nexport const unusedImportsRules: Linter.RulesRecord = {\n 'unused-imports/no-unused-imports': 'error',\n 'unused-imports/no-unused-vars': [\n 'error',\n {\n vars: 'all',\n varsIgnorePattern: '^_',\n args: 'after-used',\n argsIgnorePattern: '^_',\n ignoreRestSiblings: true\n }\n ]\n}\n\nexport const restrictedImportsRules: Linter.RulesRecord = {\n 'no-restricted-imports': [\n 'error',\n {\n patterns: [\n {\n group: ['*.ts'],\n message: 'Do not use .ts extension in imports'\n }\n ]\n }\n ]\n}\n","import type { Linter } from 'eslint'\n\nexport const stylisticRules: Linter.RulesRecord = {\n '@stylistic/indent-legacy': 'off',\n '@stylistic/array-element-newline': 'off',\n '@stylistic/array-bracket-newline': 'off',\n '@stylistic/eol-last': ['error', 'always'],\n '@stylistic/indent': [\n 'error',\n 2,\n {\n SwitchCase: 1,\n VariableDeclarator: 'first',\n outerIIFEBody: 1,\n MemberExpression: 1,\n FunctionDeclaration: { parameters: 1, body: 1 },\n FunctionExpression: { parameters: 1, body: 1 },\n CallExpression: { arguments: 1 },\n ArrayExpression: 1,\n ObjectExpression: 1,\n ImportDeclaration: 1,\n flatTernaryExpressions: false,\n ignoreComments: false\n }\n ],\n '@stylistic/no-mixed-spaces-and-tabs': 'error',\n 'no-empty': ['error', { allowEmptyCatch: true }],\n 'no-duplicate-imports': 'error',\n 'prefer-const': ['error', { destructuring: 'all' }],\n '@stylistic/object-curly-newline': [\n 'error',\n {\n ObjectExpression: { multiline: true, minProperties: 1 },\n ImportDeclaration: { multiline: true, minProperties: 2 },\n ExportDeclaration: { multiline: true, minProperties: 2 }\n }\n ],\n '@stylistic/object-property-newline': ['error', { allowAllPropertiesOnSameLine: false }],\n '@stylistic/max-statements-per-line': ['error', { max: 1 }],\n '@stylistic/comma-spacing': 'error',\n '@stylistic/comma-dangle': 'error',\n '@stylistic/semi': 'error',\n '@stylistic/no-extra-semi': 'error',\n '@stylistic/semi-style': ['error', 'last'],\n '@stylistic/semi-spacing': 'error',\n '@stylistic/no-multiple-empty-lines': ['error', { max: 1 }],\n '@stylistic/lines-between-class-members': ['error', 'always'],\n '@stylistic/no-trailing-spaces': 'error',\n '@stylistic/keyword-spacing': 'error',\n '@stylistic/arrow-spacing': 'error',\n '@stylistic/block-spacing': 'error',\n '@stylistic/computed-property-spacing': 'error',\n '@stylistic/generator-star-spacing': 'error',\n '@stylistic/key-spacing': 'error',\n '@stylistic/space-in-parens': 'error',\n '@stylistic/space-infix-ops': 'error',\n '@stylistic/func-call-spacing': 'error',\n '@stylistic/space-before-blocks': 'error',\n '@stylistic/space-before-function-paren': [\n 'error',\n { anonymous: 'never', named: 'never', asyncArrow: 'always' }\n ],\n '@stylistic/member-delimiter-style': [\n 'error',\n {\n multiline: { delimiter: 'none', requireLast: false },\n singleline: { delimiter: 'comma', requireLast: false }\n }\n ],\n '@stylistic/no-extra-parens': [\n 'error',\n 'all',\n {\n nestedBinaryExpressions: false,\n enforceForArrowConditionals: false,\n enforceForNewInMemberExpressions: false,\n enforceForFunctionPrototypeMethods: true,\n conditionalAssign: false,\n returnAssign: false,\n ignoreJSX: 'all',\n ternaryOperandBinaryExpressions: false\n }\n ],\n '@stylistic/ts/type-annotation-spacing': [\n 'error',\n {\n before: false,\n after: true,\n overrides: { arrow: { before: true, after: true } }\n }\n ],\n '@stylistic/brace-style': 'error',\n '@stylistic/comma-style': 'error',\n '@stylistic/dot-location': ['error', 'property'],\n '@stylistic/new-parens': 'error',\n '@stylistic/no-floating-decimal': 'error',\n '@stylistic/no-whitespace-before-property': 'error',\n '@stylistic/rest-spread-spacing': 'error',\n '@stylistic/space-unary-ops': 'error',\n '@stylistic/spaced-comment': 'error',\n '@stylistic/template-curly-spacing': 'error',\n '@stylistic/wrap-iife': 'error',\n '@stylistic/yield-star-spacing': 'error'\n}\n","import type { Linter } from 'eslint'\n\nexport const typescriptRules: Linter.RulesRecord = {\n '@typescript-eslint/no-restricted-types': 'off',\n '@typescript-eslint/no-non-null-asserted-optional-chain': 'off',\n '@typescript-eslint/no-unused-vars': 'off',\n '@typescript-eslint/prefer-namespace-keyword': 'off',\n '@typescript-eslint/no-unsafe-function-type': 'off',\n '@typescript-eslint/no-inferrable-types': 'off',\n '@typescript-eslint/no-dynamic-delete': 'error',\n '@typescript-eslint/no-namespace': 'off',\n '@typescript-eslint/no-empty-object-type': [\n 'error',\n { allowInterfaces: 'with-single-extends', allowObjectTypes: 'always' }\n ],\n '@typescript-eslint/naming-convention': [\n 'error',\n {\n selector: 'interface',\n format: ['PascalCase'],\n custom: { regex: '^I[A-Z]', match: false }\n }\n ],\n '@typescript-eslint/member-ordering': [\n 'error',\n {\n default: {\n memberTypes: [\n 'public-static-field',\n 'protected-static-field',\n 'private-static-field',\n 'public-decorated-field',\n 'protected-decorated-field',\n 'private-decorated-field',\n 'public-instance-field',\n 'protected-instance-field',\n 'private-instance-field',\n 'public-abstract-field',\n 'protected-abstract-field',\n 'public-constructor',\n 'protected-constructor',\n 'private-constructor',\n 'public-static-method',\n 'protected-static-method',\n 'private-static-method',\n 'public-decorated-method',\n 'protected-decorated-method',\n 'private-decorated-method',\n 'public-instance-method',\n 'protected-instance-method',\n 'private-instance-method',\n 'public-abstract-method',\n 'protected-abstract-method',\n 'signature'\n ],\n order: 'as-written'\n },\n interfaces: {\n memberTypes: ['field', 'constructor', 'method', 'signature'],\n order: 'as-written'\n },\n typeLiterals: {\n memberTypes: ['field', 'constructor', 'method', 'signature'],\n order: 'as-written'\n }\n }\n ],\n '@typescript-eslint/no-unused-expressions': [\n 'error',\n {\n allowShortCircuit: true,\n allowTernary: true,\n allowTaggedTemplates: false,\n enforceForJSX: true\n }\n ],\n '@typescript-eslint/no-useless-constructor': 'error'\n}\n","import type { Linter } from 'eslint'\n\nconst MAX_LEN_CODE = 85\nconst MAX_LEN_IGNORE_PATTERN = `import\\\\s*(type)?\\\\s.*\\\\s*from\\\\s*.*';|.*\\\\s*from\\\\s*.*';|d=\"([\\\\s\\\\S]*?)\"|\\\\s*component:\\\\s\\\\(\\\\)\\\\s=>\\\\simport\\\\(.*\\\\)|<svg[^>]*>.*?<\\\\/svg>|/[^/]*\\\\/[gimsuy]|d=\"[^\"]*\"`\n\nexport const vueRules: Linter.RulesRecord = {\n 'vue/multi-word-component-names': 'error',\n 'vue/mustache-interpolation-spacing': ['error', 'always'],\n 'vue/no-unused-vars': ['error', { ignorePattern: '^_' }],\n 'vue/html-closing-bracket-spacing': 'error',\n 'vue/html-closing-bracket-newline': [\n 'error',\n { singleline: 'never', multiline: 'always' }\n ],\n 'vue/html-quotes': ['error', 'double'],\n 'vue/attributes-order': [\n 'error',\n {\n order: [\n 'LIST_RENDERING',\n 'CONDITIONALS',\n 'RENDER_MODIFIERS',\n 'DEFINITION',\n 'CONTENT',\n 'TWO_WAY_BINDING',\n 'OTHER_DIRECTIVES',\n 'SLOT',\n 'UNIQUE',\n 'GLOBAL',\n 'ATTR_STATIC',\n 'ATTR_SHORTHAND_BOOL',\n 'ATTR_DYNAMIC',\n 'EVENTS'\n ],\n alphabetical: false\n }\n ],\n 'vue/component-tags-order': ['error', { order: [['script', 'template', 'style']] }],\n 'vue/block-tag-newline': 'error',\n 'vue/padding-line-between-tags': ['error', [{ blankLine: 'always', prev: '*', next: '*' }]],\n 'vue/max-attributes-per-line': ['error', { singleline: { max: 1 } }],\n 'vue/first-attribute-linebreak': ['error', { singleline: 'ignore', multiline: 'below' }],\n 'vue/multiline-html-element-content-newline': ['error', { allowEmptyLines: false }],\n 'vue/component-api-style': ['error', ['script-setup']],\n 'vue/array-bracket-spacing': ['error', 'always'],\n 'vue/html-self-closing': [\n 'error',\n {\n html: { void: 'never', normal: 'always', component: 'always' },\n svg: 'always',\n math: 'always'\n }\n ],\n 'vue/no-empty-component-block': 'error',\n 'vue/attribute-hyphenation': ['error', 'always', { ignore: [] }],\n 'vue/block-order': ['error', { order: ['script', 'template', 'style'] }],\n 'vue/valid-template-root': 'error',\n 'vue/no-restricted-syntax': [\n 'error',\n {\n selector: \"VElement[name='template'] CallExpression[callee.name='t']\",\n message: \"Use $t instead of t inside template. Example: {{ $t('key') }}\"\n }\n ],\n 'vue/no-undef-properties': [\n 'error',\n { ignores: ['$t', '$route', '$router', '$attrs', '$slots'] }\n ],\n 'vue/no-template-shadow': 'error',\n 'vue/define-props-declaration': ['error', 'type-based'],\n 'vue/define-macros-order': [\n 'error',\n {\n order: [\n 'defineProps',\n 'defineEmits',\n 'defineModel',\n 'defineOptions',\n 'defineSlots',\n 'defineExpose',\n 'customMacros'\n ]\n }\n ],\n 'vue/max-len': [\n 'error',\n { code: MAX_LEN_CODE, template: MAX_LEN_CODE, ignorePattern: MAX_LEN_IGNORE_PATTERN }\n ],\n 'vue/no-undef-components': ['error', { ignorePatterns: ['^u-', '^router-', '^i18n-'] }]\n}\n"],"mappings":"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","names":["typescriptEslint","typescriptEslint"]}