@iqrf/eslint-config 0.2.16 → 0.3.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/dist/index.d.ts CHANGED
@@ -52,6 +52,9 @@ declare const cypress: Linter.Config[];
52
52
  * limitations under the License.
53
53
  */
54
54
 
55
+ /**
56
+ * Options for imports configuration
57
+ */
55
58
  interface Options$2 {
56
59
  typescript: boolean;
57
60
  vue: boolean;
@@ -332,6 +335,9 @@ declare const vitest: Linter.Config[];
332
335
  * limitations under the License.
333
336
  */
334
337
 
338
+ /**
339
+ * Options for the Vue configuration.
340
+ */
335
341
  interface Options {
336
342
  typescript: boolean;
337
343
  vuetify: boolean;
package/dist/index.js CHANGED
@@ -88,7 +88,12 @@ var imports = (options) => [
88
88
  ...pluginImport.configs.typescript.settings,
89
89
  "import-x/resolver": {
90
90
  "node": {
91
- extensions: [".ts", ".tsx", ".js", ".jsx"]
91
+ extensions: [
92
+ ".ts",
93
+ ".tsx",
94
+ ".js",
95
+ ".jsx"
96
+ ]
92
97
  },
93
98
  "typescript": {
94
99
  "alwaysTryTypes": true,
@@ -334,12 +339,27 @@ var perfectionist = [
334
339
  "ignoreCase": false
335
340
  }
336
341
  ],
342
+ "perfectionist/sort-exports": [
343
+ "error",
344
+ {
345
+ "type": "alphabetical",
346
+ "order": "asc",
347
+ "fallbackSort": {
348
+ "type": "line-length",
349
+ "order": "asc"
350
+ },
351
+ "ignoreCase": false
352
+ }
353
+ ],
337
354
  "perfectionist/sort-named-exports": [
338
355
  "error",
339
356
  {
340
357
  "type": "alphabetical",
341
358
  "order": "asc",
342
- "groupKind": "mixed",
359
+ "fallbackSort": {
360
+ "type": "line-length",
361
+ "order": "asc"
362
+ },
343
363
  "ignoreCase": false
344
364
  }
345
365
  ],
@@ -348,7 +368,10 @@ var perfectionist = [
348
368
  {
349
369
  "type": "alphabetical",
350
370
  "order": "asc",
351
- "groupKind": "mixed",
371
+ "fallbackSort": {
372
+ "type": "line-length",
373
+ "order": "asc"
374
+ },
352
375
  "ignoreCase": false
353
376
  }
354
377
  ]
@@ -387,7 +410,13 @@ var promise = [
387
410
  import pluginRegexp from "eslint-plugin-regexp";
388
411
  var regexp = [
389
412
  {
390
- files: ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx", "**/*.vue"],
413
+ files: [
414
+ "**/*.js",
415
+ "**/*.jsx",
416
+ "**/*.ts",
417
+ "**/*.tsx",
418
+ "**/*.vue"
419
+ ],
391
420
  plugins: {
392
421
  regexp: pluginRegexp
393
422
  },
@@ -407,14 +436,126 @@ var stylistic = [
407
436
  "@stylistic": pluginStylistic
408
437
  },
409
438
  rules: {
439
+ "@stylistic/array-bracket-newline": [
440
+ "error",
441
+ "consistent"
442
+ ],
443
+ "@stylistic/array-bracket-spacing": [
444
+ "error",
445
+ "never"
446
+ ],
447
+ "@stylistic/array-element-newline": [
448
+ "error",
449
+ {
450
+ "consistent": true,
451
+ "multiline": true
452
+ }
453
+ ],
454
+ "@stylistic/arrow-spacing": [
455
+ "error",
456
+ {
457
+ "after": true,
458
+ "before": true
459
+ }
460
+ ],
461
+ "@stylistic/brace-style": [
462
+ "error",
463
+ "1tbs"
464
+ ],
410
465
  "@stylistic/comma-dangle": [
411
466
  "error",
412
467
  "always-multiline"
413
468
  ],
469
+ "@stylistic/comma-spacing": [
470
+ "error",
471
+ {
472
+ "after": true,
473
+ "before": false
474
+ }
475
+ ],
476
+ "@stylistic/comma-style": [
477
+ "error",
478
+ "last"
479
+ ],
480
+ "@stylistic/computed-property-spacing": [
481
+ "error",
482
+ "never"
483
+ ],
484
+ "@stylistic/curly-newline": [
485
+ "error",
486
+ {
487
+ "consistent": true
488
+ }
489
+ ],
414
490
  "@stylistic/eol-last": [
415
491
  "error",
416
492
  "always"
417
493
  ],
494
+ "@stylistic/function-call-argument-newline": [
495
+ "error",
496
+ "consistent"
497
+ ],
498
+ "@stylistic/function-paren-newline": [
499
+ "error",
500
+ "consistent"
501
+ ],
502
+ "@stylistic/implicit-arrow-linebreak": [
503
+ "error",
504
+ "beside"
505
+ ],
506
+ "@stylistic/key-spacing": [
507
+ "error",
508
+ {
509
+ "afterColon": true,
510
+ "beforeColon": false
511
+ }
512
+ ],
513
+ "@stylistic/keyword-spacing": [
514
+ "error",
515
+ {
516
+ "after": true,
517
+ "before": true
518
+ }
519
+ ],
520
+ "@stylistic/linebreak-style": [
521
+ "error",
522
+ "unix"
523
+ ],
524
+ "@stylistic/max-len": [
525
+ "warn",
526
+ {
527
+ "code": 150,
528
+ "ignoreRegExpLiterals": true,
529
+ "ignoreStrings": true,
530
+ "ignoreTemplateLiterals": true,
531
+ "ignoreTrailingComments": true,
532
+ "ignoreUrls": true
533
+ }
534
+ ],
535
+ "@stylistic/member-delimiter-style": [
536
+ "error",
537
+ {
538
+ "multiline": {
539
+ "delimiter": "semi",
540
+ "requireLast": true
541
+ },
542
+ "singleline": {
543
+ "delimiter": "semi",
544
+ "requireLast": false
545
+ },
546
+ "multilineDetection": "brackets"
547
+ }
548
+ ],
549
+ "@stylistic/new-parens": [
550
+ "error",
551
+ "always"
552
+ ],
553
+ "@stylistic/newline-per-chained-call": [
554
+ "error",
555
+ {
556
+ "ignoreChainWithDepth": 3
557
+ }
558
+ ],
418
559
  "@stylistic/no-extra-parens": [
419
560
  "error",
420
561
  "all",
@@ -426,18 +567,47 @@ var stylistic = [
426
567
  "@stylistic/no-extra-semi": "error",
427
568
  "@stylistic/no-floating-decimal": "error",
428
569
  "@stylistic/no-mixed-operators": "error",
429
- "@stylistic/no-multiple-empty-lines": "error",
570
+ "@stylistic/no-mixed-spaces-and-tabs": [
571
+ "error",
572
+ "smart-tabs"
573
+ ],
430
574
  "@stylistic/no-multi-spaces": "error",
575
+ "@stylistic/no-multiple-empty-lines": "error",
431
576
  "@stylistic/no-trailing-spaces": "error",
432
577
  "@stylistic/no-whitespace-before-property": "error",
433
578
  "@stylistic/nonblock-statement-body-position": [
434
579
  "error",
435
580
  "beside"
436
581
  ],
582
+ "@stylistic/object-curly-newline": [
583
+ "error",
584
+ {
585
+ "consistent": true
586
+ }
587
+ ],
437
588
  "@stylistic/object-curly-spacing": [
438
589
  "error",
439
590
  "always"
440
591
  ],
592
+ "@stylistic/rest-spread-spacing": [
593
+ "error",
594
+ "never"
595
+ ],
596
+ "@stylistic/semi": [
597
+ "error",
598
+ "always"
599
+ ],
600
+ "@stylistic/semi-spacing": [
601
+ "error",
602
+ {
603
+ "after": true,
604
+ "before": false
605
+ }
606
+ ],
607
+ "@stylistic/semi-style": [
608
+ "error",
609
+ "last"
610
+ ],
441
611
  "@stylistic/space-before-blocks": [
442
612
  "error",
443
613
  "always"
@@ -450,7 +620,18 @@ var stylistic = [
450
620
  "asyncArrow": "always"
451
621
  }
452
622
  ],
623
+ "@stylistic/space-in-parens": [
624
+ "error",
625
+ "never"
626
+ ],
453
627
  "@stylistic/space-unary-ops": "error",
628
+ "@stylistic/spaced-comment": [
629
+ "error",
630
+ "always",
631
+ {
632
+ "markers": ["/"]
633
+ }
634
+ ],
454
635
  "@stylistic/switch-colon-spacing": [
455
636
  "error",
456
637
  {
@@ -458,8 +639,13 @@ var stylistic = [
458
639
  "after": true
459
640
  }
460
641
  ],
642
+ "@stylistic/template-curly-spacing": [
643
+ "error",
644
+ "never"
645
+ ],
461
646
  "@stylistic/type-annotation-spacing": "error",
462
- "@stylistic/type-generic-spacing": "error"
647
+ "@stylistic/type-generic-spacing": "error",
648
+ "@stylistic/type-named-tuple-spacing": "error"
463
649
  }
464
650
  }
465
651
  ];
@@ -497,7 +683,11 @@ function extractRules(configs2) {
497
683
  }
498
684
  var typescript = [
499
685
  {
500
- files: ["**/*.ts", "**/*.tsx", "**/*.md/*.ts"],
686
+ files: [
687
+ "**/*.ts",
688
+ "**/*.tsx",
689
+ "**/*.md/*.ts"
690
+ ],
501
691
  languageOptions: {
502
692
  parser: tsEslint.parser,
503
693
  parserOptions: {
@@ -574,19 +764,38 @@ var unicorn = [
574
764
  rules: {
575
765
  "unicorn/better-regex": "error",
576
766
  "unicorn/catch-error-name": "error",
767
+ "unicorn/consistent-destructuring": "error",
768
+ "unicorn/consistent-empty-array-spread": "error",
769
+ "unicorn/consistent-existence-index-check": "error",
577
770
  "unicorn/custom-error-definition": "error",
578
771
  "unicorn/error-message": "error",
772
+ "unicorn/explicit-length-check": "error",
773
+ "unicorn/new-for-builtins": "error",
774
+ "unicorn/no-abusive-eslint-disable": "error",
775
+ "unicorn/no-accessor-recursion": "error",
579
776
  "unicorn/no-anonymous-default-export": "error",
777
+ "unicorn/no-array-callback-reference": "error",
580
778
  "unicorn/no-array-for-each": "error",
581
779
  "unicorn/no-array-method-this-argument": "error",
780
+ "unicorn/no-await-in-promise-methods": "error",
781
+ "unicorn/no-document-cookie": "error",
582
782
  "unicorn/no-instanceof-array": "error",
783
+ "unicorn/no-lonely-if": "warn",
784
+ "unicorn/no-negation-in-equality-check": "error",
785
+ "unicorn/no-nested-ternary": "error",
786
+ "unicorn/no-single-promise-in-promise-methods": "error",
583
787
  "unicorn/no-this-assignment": "error",
584
788
  "unicorn/no-typeof-undefined": "error",
789
+ "unicorn/no-unnecessary-array-splice-count": "error",
585
790
  "unicorn/no-unnecessary-await": "error",
791
+ "unicorn/no-unnecessary-slice-end": "error",
586
792
  "unicorn/no-unreadable-iife": "warn",
587
793
  "unicorn/no-useless-fallback-in-spread": "error",
588
794
  "unicorn/no-useless-length-check": "error",
589
795
  "unicorn/no-useless-promise-resolve-reject": "error",
796
+ "unicorn/no-useless-spread": "error",
797
+ "unicorn/no-useless-switch-case": "error",
798
+ "unicorn/no-useless-undefined": "error",
590
799
  "unicorn/no-zero-fractions": "warn",
591
800
  "unicorn/number-literal-case": "error",
592
801
  "unicorn/numeric-separators-style": [
@@ -627,7 +836,21 @@ var unicorn = [
627
836
  "unicorn/prefer-string-starts-ends-with": "error",
628
837
  "unicorn/prefer-string-trim-start-end": "error",
629
838
  "unicorn/prefer-structured-clone": "error",
839
+ "unicorn/prefer-switch": [
840
+ "error",
841
+ {
842
+ "emptyDefaultCase": "no-default-case",
843
+ "minimumCases": 3
844
+ }
845
+ ],
846
+ "unicorn/require-array-join-separator": "error",
847
+ "unicorn/require-module-attributes": "error",
848
+ "unicorn/require-module-specifiers": "error",
630
849
  "unicorn/require-number-to-fixed-digits-argument": "error",
850
+ "unicorn/switch-case-braces": [
851
+ "error",
852
+ "avoid"
853
+ ],
631
854
  "unicorn/throw-new-error": "error"
632
855
  }
633
856
  }
@@ -731,10 +954,71 @@ var vue = (options) => [
731
954
  }
732
955
  },
733
956
  rules: {
957
+ "vue/array-bracket-newline": [
958
+ "error",
959
+ "consistent"
960
+ ],
961
+ "vue/array-bracket-spacing": [
962
+ "error",
963
+ "never"
964
+ ],
965
+ "vue/array-element-newline": [
966
+ "error",
967
+ {
968
+ "consistent": true,
969
+ "multiline": true
970
+ }
971
+ ],
972
+ "vue/arrow-spacing": [
973
+ "error",
974
+ {
975
+ "after": true,
976
+ "before": true
977
+ }
978
+ ],
979
+ "vue/brace-style": [
980
+ "error",
981
+ "1tbs"
982
+ ],
734
983
  "vue/comma-dangle": [
735
984
  "error",
736
985
  "always-multiline"
737
986
  ],
987
+ "vue/comma-spacing": [
988
+ "error",
989
+ {
990
+ "after": true,
991
+ "before": false
992
+ }
993
+ ],
994
+ "vue/comma-style": [
995
+ "error",
996
+ "last"
997
+ ],
998
+ "vue/component-api-style": [
999
+ "error",
1000
+ [
1001
+ "script-setup",
1002
+ "composition"
1003
+ ]
1004
+ ],
1005
+ "vue/define-emits-declaration": [
1006
+ "error",
1007
+ "type-literal"
1008
+ ],
1009
+ "vue/define-macros-order": [
1010
+ "error",
1011
+ {
1012
+ "defineExposeLast": true,
1013
+ "order": [
1014
+ "defineOptions",
1015
+ "defineModel",
1016
+ "defineProps",
1017
+ "defineEmits",
1018
+ "defineSlots"
1019
+ ]
1020
+ }
1021
+ ],
738
1022
  "vue/eqeqeq": [
739
1023
  "error",
740
1024
  "always"
@@ -747,12 +1031,30 @@ var vue = (options) => [
747
1031
  "warn",
748
1032
  "single"
749
1033
  ],
1034
+ "vue/key-spacing": [
1035
+ "error",
1036
+ {
1037
+ "afterColon": true,
1038
+ "beforeColon": false
1039
+ }
1040
+ ],
1041
+ "vue/keyword-spacing": [
1042
+ "error",
1043
+ {
1044
+ "after": true,
1045
+ "before": true
1046
+ }
1047
+ ],
750
1048
  "vue/max-attributes-per-line": [
751
1049
  "warn",
752
- { singleline: 3 }
1050
+ {
1051
+ "singleline": 3
1052
+ }
753
1053
  ],
754
1054
  "vue/multi-word-component-names": "off",
1055
+ "vue/no-console": "error",
755
1056
  "vue/no-constant-condition": "error",
1057
+ "vue/no-empty-component-block": "error",
756
1058
  "vue/no-extra-parens": [
757
1059
  "error",
758
1060
  "all",
@@ -761,14 +1063,64 @@ var vue = (options) => [
761
1063
  "ternaryOperandBinaryExpressions": false
762
1064
  }
763
1065
  ],
1066
+ "vue/no-import-compiler-macros": "error",
1067
+ "vue/no-ref-object-reactivity-loss": "error",
1068
+ "vue/no-root-v-if": "warn",
764
1069
  "vue/no-sparse-arrays": "error",
1070
+ "vue/no-template-target-blank": "error",
1071
+ "vue/no-undef-components": [
1072
+ "error",
1073
+ {
1074
+ ignorePatterns: [
1075
+ "^router-link$",
1076
+ "^router-view$",
1077
+ "^RouterLink$",
1078
+ "^RouterView$",
1079
+ "^v-+",
1080
+ "^V[A-Z]+"
1081
+ ]
1082
+ }
1083
+ ],
1084
+ "vue/no-undef-properties": "error",
1085
+ "vue/no-unused-emit-declarations": "error",
1086
+ "vue/no-unused-properties": "warn",
1087
+ "vue/no-unused-refs": "error",
765
1088
  "vue/no-useless-concat": "error",
1089
+ "vue/no-useless-mustaches": "error",
1090
+ "vue/object-curly-newline": [
1091
+ "error",
1092
+ {
1093
+ "consistent": true
1094
+ }
1095
+ ],
766
1096
  "vue/object-curly-spacing": [
767
1097
  "error",
768
1098
  "always"
769
1099
  ],
1100
+ "vue/padding-line-between-blocks": [
1101
+ "error",
1102
+ "always"
1103
+ ],
1104
+ "vue/prefer-define-options": "error",
770
1105
  "vue/prefer-template": "error",
771
- "vue/space-unary-ops": "error"
1106
+ "vue/prefer-use-template-ref": "error",
1107
+ "vue/require-macro-variable-name": [
1108
+ "error",
1109
+ {
1110
+ "defineProps": "componentProps"
1111
+ }
1112
+ ],
1113
+ "vue/require-typed-object-prop": "error",
1114
+ "vue/require-typed-ref": "error",
1115
+ "vue/space-in-parens": [
1116
+ "error",
1117
+ "never"
1118
+ ],
1119
+ "vue/space-unary-ops": "error",
1120
+ "vue/template-curly-spacing": [
1121
+ "error",
1122
+ "never"
1123
+ ]
772
1124
  }
773
1125
  }
774
1126
  ];
@@ -778,12 +1130,12 @@ import path3 from "path";
778
1130
  import process5 from "process";
779
1131
  import pluginVueI18n from "@intlify/eslint-plugin-vue-i18n";
780
1132
  var vueI18n = [
781
- ...pluginVueI18n.configs["flat/recommended"],
1133
+ ...pluginVueI18n.configs.recommended,
782
1134
  {
783
1135
  settings: {
784
1136
  "vue-i18n": {
785
1137
  localeDir: path3.join(process5.cwd(), "/src/locales/*.json"),
786
- messageSyntaxVersion: "^9.0.0"
1138
+ messageSyntaxVersion: "^11.0.0"
787
1139
  }
788
1140
  }
789
1141
  }
package/package.json CHANGED
@@ -15,42 +15,42 @@
15
15
  ],
16
16
  "description": "ESLint configuration for IQRF projects",
17
17
  "dependencies": {
18
- "@eslint/js": "^9.34.0",
19
- "@eslint/markdown": "^7.2.0",
18
+ "@eslint/js": "^9.38.0",
19
+ "@eslint/markdown": "^7.4.0",
20
20
  "@intlify/eslint-plugin-vue-i18n": "^4.1.0",
21
- "@stylistic/eslint-plugin": "^5.3.1",
22
- "@typescript-eslint/parser": "^8.42.0",
23
- "@vitest/eslint-plugin": "^1.3.8",
21
+ "@stylistic/eslint-plugin": "^5.5.0",
22
+ "@typescript-eslint/parser": "^8.46.1",
23
+ "@vitest/eslint-plugin": "^1.3.23",
24
24
  "eslint-config-flat-gitignore": "^2.1.0",
25
25
  "eslint-import-resolver-typescript": "^4.4.4",
26
- "eslint-plugin-cypress": "^5.1.1",
26
+ "eslint-plugin-cypress": "^5.2.0",
27
27
  "eslint-plugin-eslint-comments": "^3.2.0",
28
28
  "eslint-plugin-import-x": "^4.16.1",
29
- "eslint-plugin-jsdoc": "^54.3.1",
30
- "eslint-plugin-jsonc": "^2.20.1",
29
+ "eslint-plugin-jsdoc": "^61.1.4",
30
+ "eslint-plugin-jsonc": "^2.21.0",
31
31
  "eslint-plugin-math": "^0.13.0",
32
- "eslint-plugin-n": "^17.21.3",
33
- "eslint-plugin-perfectionist": "^4.15.0",
32
+ "eslint-plugin-n": "^17.23.1",
33
+ "eslint-plugin-perfectionist": "^4.15.1",
34
34
  "eslint-plugin-pinia": "^0.4.1",
35
35
  "eslint-plugin-promise": "^7.2.1",
36
36
  "eslint-plugin-regexp": "^2.10.0",
37
- "eslint-plugin-unicorn": "^60.0.0",
38
- "eslint-plugin-vue": "^10.4.0",
37
+ "eslint-plugin-unicorn": "^61.0.2",
38
+ "eslint-plugin-vue": "^10.5.1",
39
39
  "eslint-plugin-vue-scoped-css": "^2.12.0",
40
40
  "eslint-plugin-vuetify": "^2.5.3",
41
- "globals": "^16.3.0",
41
+ "globals": "^16.4.0",
42
42
  "local-pkg": "^1.1.2",
43
- "typescript-eslint": "^8.42.0",
43
+ "typescript-eslint": "^8.46.1",
44
44
  "vue-eslint-parser": "^10.2.0"
45
45
  },
46
46
  "devDependencies": {
47
- "@types/node": "^24.3.1",
48
- "bumpp": "^10.2.3",
49
- "eslint": "^9.34.0",
47
+ "@types/node": "^24.8.1",
48
+ "bumpp": "^10.3.1",
49
+ "eslint": "^9.38.0",
50
50
  "eslint-plugin-eslint-plugin": "^7.0.0",
51
51
  "tsup": "^8.5.0",
52
- "tsx": "^4.20.5",
53
- "typescript": "^5.9.2"
52
+ "tsx": "^4.20.6",
53
+ "typescript": "^5.9.3"
54
54
  },
55
55
  "engines": {
56
56
  "node": "^18.18.0 || >=20.0.0"
@@ -80,11 +80,12 @@
80
80
  },
81
81
  "type": "module",
82
82
  "types": "dist/index.d.ts",
83
- "version": "0.2.16",
83
+ "version": "0.3.0",
84
84
  "scripts": {
85
85
  "build": "tsup",
86
- "lint": "eslint .",
87
- "lint:fix": "eslint --fix .",
86
+ "lint": "npm run lint:js && npm run lint:ts",
87
+ "lint:js": "eslint .",
88
+ "lint:js:fix": "eslint --fix .",
88
89
  "release": "bumpp && pnpm publish",
89
90
  "lint:ts": "tsc --noEmit",
90
91
  "test": "echo \"Error: no test specified\" && exit 1"