@rotki/eslint-config 7.0.0 → 8.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.
Files changed (3) hide show
  1. package/dist/index.d.mts +3220 -430
  2. package/dist/index.mjs +313 -41
  3. package/package.json +47 -31
package/dist/index.mjs CHANGED
@@ -201,6 +201,10 @@ async function e18e(options = {}) {
201
201
  ...modernization ? { ...configs.modernization.rules } : {},
202
202
  ...moduleReplacements ? { ...configs.moduleReplacements.rules } : {},
203
203
  ...performanceImprovements ? { ...configs.performanceImprovements.rules } : {},
204
+ ...performanceImprovements ? {
205
+ "e18e/prefer-charcode-at-in-loop": "error",
206
+ "e18e/prefer-slice-over-split-index": "error"
207
+ } : {},
204
208
  ...type === "lib" ? {} : { "e18e/prefer-static-regex": "off" },
205
209
  "e18e/prefer-array-to-reversed": "off",
206
210
  "e18e/prefer-array-to-sorted": "off",
@@ -797,6 +801,55 @@ async function javascript(options = {}) {
797
801
  }];
798
802
  }
799
803
  //#endregion
804
+ //#region src/configs/jsdoc.ts
805
+ async function jsdoc(options = {}) {
806
+ const { overrides = {}, stylistic = true, tsdoc = true } = options;
807
+ await ensurePackages([tsdoc ? "eslint-plugin-tsdoc" : void 0]);
808
+ const [pluginJsdoc, pluginTsdoc] = await Promise.all([interopDefault(import("eslint-plugin-jsdoc")), tsdoc ? interopDefault(import("eslint-plugin-tsdoc")) : void 0]);
809
+ const configs = [{
810
+ name: "rotki/jsdoc/setup",
811
+ plugins: { jsdoc: pluginJsdoc }
812
+ }, {
813
+ files: [GLOB_SRC, GLOB_VUE],
814
+ name: "rotki/jsdoc/rules",
815
+ rules: {
816
+ "jsdoc/check-access": "error",
817
+ "jsdoc/check-param-names": ["error", { checkDestructured: false }],
818
+ "jsdoc/check-property-names": "error",
819
+ "jsdoc/empty-tags": "error",
820
+ "jsdoc/escape-inline-tags": "error",
821
+ "jsdoc/implements-on-classes": "error",
822
+ "jsdoc/informative-docs": "error",
823
+ "jsdoc/no-bad-blocks": "error",
824
+ "jsdoc/no-blank-block-descriptions": "error",
825
+ "jsdoc/no-blank-blocks": "error",
826
+ "jsdoc/no-multi-asterisks": "error",
827
+ "jsdoc/no-types": "error",
828
+ "jsdoc/require-param-description": "error",
829
+ "jsdoc/require-param-name": "error",
830
+ "jsdoc/require-property": "error",
831
+ "jsdoc/require-property-description": "error",
832
+ "jsdoc/require-property-name": "error",
833
+ "jsdoc/require-returns-check": "error",
834
+ "jsdoc/require-returns-description": "error",
835
+ "jsdoc/require-yields-check": "error",
836
+ ...stylistic ? {
837
+ "jsdoc/check-alignment": "error",
838
+ "jsdoc/require-asterisk-prefix": "error",
839
+ "jsdoc/require-hyphen-before-param-description": "error"
840
+ } : {},
841
+ ...overrides
842
+ }
843
+ }];
844
+ if (tsdoc) configs.push({
845
+ files: [GLOB_TS, GLOB_VUE],
846
+ name: "rotki/jsdoc/tsdoc",
847
+ plugins: { tsdoc: pluginTsdoc },
848
+ rules: { "tsdoc/syntax": "error" }
849
+ });
850
+ return configs;
851
+ }
852
+ //#endregion
800
853
  //#region src/configs/jsonc.ts
801
854
  async function jsonc(options = {}) {
802
855
  const { files = [
@@ -1044,6 +1097,7 @@ async function pnpm(options) {
1044
1097
  plugins: { pnpm: pluginPnpm },
1045
1098
  rules: {
1046
1099
  "pnpm/yaml-enforce-settings": ["error", { settings: {
1100
+ minimumReleaseAgeExcludePrune: true,
1047
1101
  shellEmulator: true,
1048
1102
  trustPolicy: "no-downgrade"
1049
1103
  } }],
@@ -1061,65 +1115,190 @@ async function pnpm(options) {
1061
1115
  {
1062
1116
  order: [
1063
1117
  ...[
1064
- "cacheDir",
1118
+ "dedupeInjectedDeps",
1119
+ "disallowWorkspaceCycles",
1120
+ "failIfNoMatch",
1121
+ "ignoreWorkspaceCycles",
1122
+ "ignoreWorkspaceRootCheck",
1123
+ "includeWorkspaceRoot",
1124
+ "injectWorkspacePackages",
1125
+ "legacyDirFiltering",
1126
+ "linkWorkspacePackages",
1127
+ "preferWorkspacePackages",
1128
+ "saveWorkspaceProtocol",
1129
+ "sharedWorkspaceLockfile",
1130
+ "syncInjectedDepsAfterScripts"
1131
+ ],
1132
+ ...[
1065
1133
  "catalogMode",
1066
- "cleanupUnusedCatalogs",
1067
- "dedupeDirectDeps",
1068
- "deployAllFiles",
1069
- "enablePrePostScripts",
1070
- "engineStrict",
1134
+ "catalogPrune",
1135
+ "cleanupUnusedCatalogs"
1136
+ ],
1137
+ ...[
1138
+ "allowedDeprecatedVersions",
1139
+ "blockExoticSubdeps",
1140
+ "ignoredOptionalDependencies",
1141
+ "minimumReleaseAge",
1142
+ "minimumReleaseAgeIgnoreMissingTime",
1143
+ "minimumReleaseAgeStrict",
1144
+ "minimumReleaseAgeExcludePrune",
1145
+ "minimumReleaseAgeExclude",
1146
+ "registrySupportsTimeField",
1147
+ "resolutionMode",
1148
+ "supportedArchitectures",
1149
+ "trustLockfile",
1150
+ "trustPolicy",
1151
+ "trustPolicyIgnoreAfter",
1152
+ "trustPolicyExclude",
1153
+ "update"
1154
+ ],
1155
+ ...[
1156
+ "autoInstallPeers",
1157
+ "dedupePeerDependents",
1158
+ "dedupePeers",
1159
+ "peerDependencyRules",
1160
+ "resolvePeersFromWorkspaceRoot",
1161
+ "strictPeerDependencies"
1162
+ ],
1163
+ ...[
1164
+ "fetchMinSpeedKiBps",
1165
+ "fetchRetries",
1166
+ "fetchRetryFactor",
1167
+ "fetchRetryMaxtimeout",
1168
+ "fetchRetryMintimeout",
1169
+ "fetchTimeout",
1170
+ "fetchWarnTimeoutMs",
1171
+ "gitShallowHosts",
1172
+ "httpProxy",
1173
+ "httpsProxy",
1174
+ "localAddress",
1175
+ "maxsockets",
1176
+ "namedRegistries",
1177
+ "networkConcurrency",
1178
+ "noProxy",
1179
+ "registries",
1180
+ "registry",
1181
+ "strictSsl"
1182
+ ],
1183
+ ...[
1184
+ "dlxCacheMaxAge",
1185
+ "enableGlobalVirtualStore",
1186
+ "enableModulesDir",
1071
1187
  "extendNodePath",
1188
+ "modulesCacheMaxAge",
1189
+ "modulesDir",
1190
+ "nodeExperimentalPackageMap",
1191
+ "nodeLinker",
1192
+ "nodePackageMapType",
1193
+ "packageImportMethod",
1194
+ "preferSymlinkedExecutables",
1195
+ "symlink",
1196
+ "virtualStoreDir",
1197
+ "virtualStoreDirMaxLength",
1198
+ "virtualStoreOnly",
1199
+ "virtualStoreType"
1200
+ ],
1201
+ ...[
1072
1202
  "hoist",
1203
+ "hoistingLimits",
1073
1204
  "hoistPattern",
1074
1205
  "hoistWorkspacePackages",
1075
- "ignoreCompatibilityDb",
1206
+ "publicHoistPattern",
1207
+ "shamefullyHoist"
1208
+ ],
1209
+ ...[
1210
+ "frozenStore",
1211
+ "storeDir",
1212
+ "strictStorePkgContentCheck",
1213
+ "useRunningStoreServer",
1214
+ "verifyStoreIntegrity"
1215
+ ],
1216
+ ...[
1217
+ "gitBranchLockfile",
1218
+ "lockfile",
1219
+ "lockfileIncludeTarballUrl",
1220
+ "mergeGitBranchLockfilesBranchPattern",
1221
+ "peersSuffixMaxLength",
1222
+ "preferFrozenLockfile"
1223
+ ],
1224
+ ...[
1225
+ "childConcurrency",
1226
+ "dangerouslyAllowAllBuilds",
1227
+ "enablePrePostScripts",
1076
1228
  "ignoreDepScripts",
1077
1229
  "ignoreScripts",
1078
- "ignoreWorkspaceRootCheck",
1230
+ "nodeOptions",
1231
+ "requiredScripts",
1232
+ "scriptShell",
1233
+ "shellEmulator",
1234
+ "sideEffectsCache",
1235
+ "sideEffectsCacheReadonly",
1236
+ "strictDepBuilds",
1237
+ "unsafePerm",
1238
+ "verifyDepsBeforeRun"
1239
+ ],
1240
+ ...[
1079
1241
  "managePackageManagerVersions",
1080
- "minimumReleaseAge",
1081
- "minimumReleaseAgeExclude",
1082
- "modulesDir",
1083
- "nodeLinker",
1242
+ "nodeDownloadMirrors",
1084
1243
  "nodeVersion",
1085
- "optimisticRepeatInstall",
1086
1244
  "packageManagerStrict",
1087
1245
  "packageManagerStrictVersion",
1088
- "preferSymlinkedExecutables",
1089
- "preferWorkspacePackages",
1090
- "publicHoistPattern",
1091
- "registrySupportsTimeField",
1092
- "requiredScripts",
1093
- "resolutionMode",
1246
+ "pmOnFail",
1247
+ "runtimeOnFail"
1248
+ ],
1249
+ ...[
1250
+ "ci",
1251
+ "color",
1252
+ "engineStrict",
1253
+ "loglevel",
1254
+ "npmPath",
1255
+ "recursiveInstall",
1256
+ "updateNotifier",
1257
+ "useBetaCli",
1258
+ "useStderr"
1259
+ ],
1260
+ ...[
1261
+ "cacheDir",
1262
+ "globalBinDir",
1263
+ "globalDir",
1264
+ "globalPnpmfile",
1265
+ "globalShims",
1266
+ "ignorePnpmfile",
1267
+ "npmrcAuthFile",
1268
+ "pnpmfile",
1269
+ "stateDir"
1270
+ ],
1271
+ ...["audit", "versioning"],
1272
+ ...[
1273
+ "allowNonAppliedPatches",
1274
+ "dedupeDirectDeps",
1275
+ "deployAllFiles",
1276
+ "ignoreCompatibilityDb",
1277
+ "initAuthorEmail",
1278
+ "initAuthorName",
1279
+ "initAuthorUrl",
1280
+ "initLicense",
1281
+ "initVersion",
1282
+ "optimisticRepeatInstall",
1283
+ "saveExact",
1094
1284
  "savePrefix",
1095
- "scriptShell",
1096
- "shamefullyHoist",
1097
- "shellEmulator",
1098
- "stateDir",
1099
- "supportedArchitectures",
1100
- "symlink",
1101
- "tag",
1102
- "trustPolicy",
1103
- "trustPolicyExclude",
1104
- "updateNotifier"
1285
+ "tag"
1105
1286
  ],
1106
1287
  "packages",
1288
+ "packageConfigs",
1107
1289
  "overrides",
1290
+ "packageExtensions",
1108
1291
  "patchedDependencies",
1109
- "catalog",
1110
- "catalogs",
1292
+ "configDependencies",
1293
+ "allowBuilds",
1111
1294
  ...[
1112
- "allowedDeprecatedVersions",
1113
- "allowNonAppliedPatches",
1114
- "configDependencies",
1115
1295
  "ignoredBuiltDependencies",
1116
- "ignoredOptionalDependencies",
1117
1296
  "neverBuiltDependencies",
1118
1297
  "onlyBuiltDependencies",
1119
- "onlyBuiltDependenciesFile",
1120
- "packageExtensions",
1121
- "peerDependencyRules"
1122
- ]
1298
+ "onlyBuiltDependenciesFile"
1299
+ ],
1300
+ "catalog",
1301
+ "catalogs"
1123
1302
  ],
1124
1303
  pathPattern: "^$"
1125
1304
  },
@@ -1202,6 +1381,70 @@ async function rotkiPlugin(options = {}) {
1202
1381
  }];
1203
1382
  }
1204
1383
  //#endregion
1384
+ //#region src/configs/slop.ts
1385
+ async function slop(options = {}) {
1386
+ const { cwd, inspection, jargon = true, maximumWords = 50, overrides = {} } = options;
1387
+ await ensurePackages(["eslint-plugin-slop"]);
1388
+ const [pluginSlop] = await Promise.all([interopDefault(import("eslint-plugin-slop"))]);
1389
+ const settings = {
1390
+ ...cwd ? { cwd } : {},
1391
+ ...inspection ? { inspection } : {}
1392
+ };
1393
+ return [{
1394
+ files: [GLOB_SRC, GLOB_VUE],
1395
+ name: "rotki/slop/rules",
1396
+ plugins: { slop: pluginSlop },
1397
+ ...Object.keys(settings).length > 0 ? { settings: { slop: settings } } : {},
1398
+ rules: {
1399
+ "slop/max-comment-length": ["error", {
1400
+ ignoreJSDoc: true,
1401
+ maximumWords
1402
+ }],
1403
+ "slop/no-chained-type-assertions": "error",
1404
+ "slop/no-em-dash": "error",
1405
+ "slop/no-trivial-type-aliases": "error",
1406
+ ...jargon ? { "slop/no-jargon": "error" } : {},
1407
+ ...overrides
1408
+ }
1409
+ }];
1410
+ }
1411
+ //#endregion
1412
+ //#region src/configs/sonarjs.ts
1413
+ async function sonarjs(options = {}) {
1414
+ const { cognitiveComplexity = false, overrides = {}, simplification = true } = options;
1415
+ await ensurePackages(["eslint-plugin-sonarjs"]);
1416
+ const [pluginSonarjs] = await Promise.all([interopDefault(import("eslint-plugin-sonarjs"))]);
1417
+ return [{
1418
+ files: [GLOB_SRC, GLOB_VUE],
1419
+ name: "rotki/sonarjs/rules",
1420
+ plugins: { sonarjs: pluginSonarjs },
1421
+ rules: {
1422
+ "sonarjs/no-all-duplicated-branches": "error",
1423
+ "sonarjs/no-commented-code": "error",
1424
+ "sonarjs/no-dead-store": "error",
1425
+ "sonarjs/no-element-overwrite": "error",
1426
+ "sonarjs/no-empty-collection": "error",
1427
+ "sonarjs/no-identical-conditions": "error",
1428
+ "sonarjs/no-identical-expressions": "error",
1429
+ "sonarjs/no-identical-functions": "error",
1430
+ "sonarjs/no-invariant-returns": "error",
1431
+ "sonarjs/no-unused-collection": "error",
1432
+ "sonarjs/no-use-of-empty-return-value": "error",
1433
+ ...simplification ? {
1434
+ "sonarjs/no-collapsible-if": "error",
1435
+ "sonarjs/no-duplicated-branches": "error",
1436
+ "sonarjs/no-gratuitous-expressions": "error",
1437
+ "sonarjs/no-inverted-boolean-check": "error",
1438
+ "sonarjs/no-redundant-boolean": "error",
1439
+ "sonarjs/no-redundant-jump": "error",
1440
+ "sonarjs/prefer-single-boolean-return": "error"
1441
+ } : {},
1442
+ ...cognitiveComplexity === false ? {} : { "sonarjs/cognitive-complexity": ["error", cognitiveComplexity] },
1443
+ ...overrides
1444
+ }
1445
+ }];
1446
+ }
1447
+ //#endregion
1205
1448
  //#region src/configs/sort.ts
1206
1449
  async function sortPackageJson() {
1207
1450
  return [{
@@ -1702,7 +1945,7 @@ async function typescript(options = {}) {
1702
1945
  }
1703
1946
  //#endregion
1704
1947
  //#region src/configs/unicorn.ts
1705
- const FILENAME_CASE_IGNORE = /^[A-Z]+\..*$/;
1948
+ const FILENAME_CASE_IGNORE = "^[A-Z]+\\..*$";
1706
1949
  async function unicorn(options = {}) {
1707
1950
  return [{
1708
1951
  files: [GLOB_SRC, GLOB_VUE],
@@ -1725,6 +1968,7 @@ async function unicorn(options = {}) {
1725
1968
  "unicorn/new-for-builtins": "error",
1726
1969
  "unicorn/no-array-method-this-argument": "error",
1727
1970
  "unicorn/no-array-push-push": "error",
1971
+ "unicorn/no-barrel-files": "error",
1728
1972
  "unicorn/no-console-spaces": "error",
1729
1973
  "unicorn/no-for-loop": "error",
1730
1974
  "unicorn/no-hex-escape": "error",
@@ -1759,6 +2003,7 @@ async function unicorn(options = {}) {
1759
2003
  "unicorn/prefer-string-trim-start-end": "error",
1760
2004
  "unicorn/prefer-top-level-await": "error",
1761
2005
  "unicorn/prefer-type-error": "error",
2006
+ "unicorn/single-line-block-comment-style": ["error", "single-line"],
1762
2007
  "unicorn/throw-new-error": "error"
1763
2008
  } }
1764
2009
  }];
@@ -2163,6 +2408,11 @@ async function yaml(options = {}) {
2163
2408
  "yaml/flow-sequence-bracket-spacing": "error",
2164
2409
  "yaml/indent": ["error", typeof indent === "number" ? indent : 2],
2165
2410
  "yaml/key-spacing": "error",
2411
+ "yaml/no-multiple-empty-lines": ["error", {
2412
+ max: 1,
2413
+ maxBOF: 0,
2414
+ maxEOF: 0
2415
+ }],
2166
2416
  "yaml/no-tab-indent": "error",
2167
2417
  "yaml/quotes": ["error", {
2168
2418
  avoidEscape: true,
@@ -2263,6 +2513,21 @@ function buildLanguageConfigs(configs, options, resolved) {
2263
2513
  type: options.type
2264
2514
  }));
2265
2515
  }
2516
+ function buildQualityConfigs(configs, options, resolved) {
2517
+ if (options.jsdoc ?? true) configs.push(jsdoc({
2518
+ ...resolveSubOptions(options, "jsdoc"),
2519
+ overrides: getOverrides(options, "jsdoc"),
2520
+ stylistic: !!resolved.stylisticOptions
2521
+ }));
2522
+ if (options.slop) configs.push(slop({
2523
+ ...resolveSubOptions(options, "slop"),
2524
+ overrides: getOverrides(options, "slop")
2525
+ }));
2526
+ if (options.sonarjs) configs.push(sonarjs({
2527
+ ...resolveSubOptions(options, "sonarjs"),
2528
+ overrides: getOverrides(options, "sonarjs")
2529
+ }));
2530
+ }
2266
2531
  function buildTypeScriptAndStyleConfigs(configs, options, resolved) {
2267
2532
  const { componentExts, enableRegexp, enableTypeScript, isInEditor, stylisticOptions, typescriptOptions } = resolved;
2268
2533
  if (enableTypeScript) configs.push(typescript({
@@ -2350,6 +2615,7 @@ function rotki(options = {}, ...userConfigs) {
2350
2615
  const resolved = resolveOptions(options);
2351
2616
  const configs = [];
2352
2617
  buildLanguageConfigs(configs, options, resolved);
2618
+ buildQualityConfigs(configs, options, resolved);
2353
2619
  buildTypeScriptAndStyleConfigs(configs, options, resolved);
2354
2620
  buildFrameworkConfigs(configs, options, resolved);
2355
2621
  buildFileFormatConfigs(configs, options, resolved);
@@ -2369,11 +2635,14 @@ const CONFIG_PRESET_FULL_ON = {
2369
2635
  formatters: true,
2370
2636
  gitignore: true,
2371
2637
  imports: {},
2638
+ jsdoc: true,
2372
2639
  jsonc: true,
2373
2640
  jsx: true,
2374
2641
  markdown: true,
2375
2642
  pnpm: true,
2376
2643
  regexp: true,
2644
+ slop: true,
2645
+ sonarjs: true,
2377
2646
  stylistic: true,
2378
2647
  test: true,
2379
2648
  typescript: true,
@@ -2384,11 +2653,14 @@ const CONFIG_PRESET_FULL_ON = {
2384
2653
  const CONFIG_PRESET_FULL_OFF = {
2385
2654
  formatters: false,
2386
2655
  gitignore: false,
2656
+ jsdoc: false,
2387
2657
  jsonc: false,
2388
2658
  jsx: false,
2389
2659
  markdown: false,
2390
2660
  pnpm: false,
2391
2661
  regexp: false,
2662
+ slop: false,
2663
+ sonarjs: false,
2392
2664
  stylistic: false,
2393
2665
  test: false,
2394
2666
  typescript: false,
@@ -2400,4 +2672,4 @@ const CONFIG_PRESET_FULL_OFF = {
2400
2672
  //#region src/index.ts
2401
2673
  var src_default = rotki;
2402
2674
  //#endregion
2403
- export { CONFIG_PRESET_FULL_OFF, CONFIG_PRESET_FULL_ON, GLOB_ALL_SRC, GLOB_CSS, GLOB_EXCLUDE, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_XML, GLOB_YAML, StylisticConfigDefaults, combine, comments, src_default as default, defaultPluginRenaming, disables, e18e, ensurePackages, formatters, getOverrides, ignores, imports, interopDefault, isInEditorEnv, isInGitHooksOrLintStaged, isPackageInScope, javascript, jsonc, markdown, node, parserPlain, perfectionist, pnpm, regexp, renamePluginInConfigs, renameRules, resolveSubOptions, rotki, rotkiPlugin, sortPackageJson, sortTsconfig, storybook, stylistic, test, toArray, typescript, unicorn, vue, vueI18n, yaml };
2675
+ export { CONFIG_PRESET_FULL_OFF, CONFIG_PRESET_FULL_ON, GLOB_ALL_SRC, GLOB_CSS, GLOB_EXCLUDE, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_XML, GLOB_YAML, StylisticConfigDefaults, combine, comments, src_default as default, defaultPluginRenaming, disables, e18e, ensurePackages, formatters, getOverrides, ignores, imports, interopDefault, isInEditorEnv, isInGitHooksOrLintStaged, isPackageInScope, javascript, jsdoc, jsonc, markdown, node, parserPlain, perfectionist, pnpm, regexp, renamePluginInConfigs, renameRules, resolveSubOptions, rotki, rotkiPlugin, slop, sonarjs, sortPackageJson, sortTsconfig, storybook, stylistic, test, toArray, typescript, unicorn, vue, vueI18n, yaml };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rotki/eslint-config",
3
- "version": "7.0.0",
3
+ "version": "8.0.0",
4
4
  "type": "module",
5
5
  "license": "AGPL-3.0",
6
6
  "bugs": {
@@ -24,7 +24,10 @@
24
24
  "@prettier/plugin-xml": "^3.4.1",
25
25
  "@rotki/eslint-plugin": ">=1.5.0",
26
26
  "eslint": "^9.20.0 || ^10.0.0",
27
- "eslint-plugin-storybook": ">=10.2.14"
27
+ "eslint-plugin-slop": ">=0.1.3",
28
+ "eslint-plugin-sonarjs": ">=4.0.0",
29
+ "eslint-plugin-storybook": ">=10.2.14",
30
+ "eslint-plugin-tsdoc": ">=0.5.0"
28
31
  },
29
32
  "peerDependenciesMeta": {
30
33
  "@intlify/eslint-plugin-vue-i18n": {
@@ -36,67 +39,80 @@
36
39
  "@rotki/eslint-plugin": {
37
40
  "optional": true
38
41
  },
42
+ "eslint-plugin-slop": {
43
+ "optional": true
44
+ },
45
+ "eslint-plugin-sonarjs": {
46
+ "optional": true
47
+ },
39
48
  "eslint-plugin-storybook": {
40
49
  "optional": true
50
+ },
51
+ "eslint-plugin-tsdoc": {
52
+ "optional": true
41
53
  }
42
54
  },
43
55
  "dependencies": {
44
- "@antfu/install-pkg": "1.1.0",
56
+ "@antfu/install-pkg": "2.0.1",
45
57
  "@clack/prompts": "1.7.0",
46
- "@e18e/eslint-plugin": "0.5.1",
58
+ "@e18e/eslint-plugin": "0.8.0",
47
59
  "@eslint-community/eslint-plugin-eslint-comments": "4.7.2",
48
60
  "@eslint/markdown": "8.0.3",
49
61
  "@stylistic/eslint-plugin": "5.10.0",
50
- "@typescript-eslint/eslint-plugin": "8.64.0",
51
- "@typescript-eslint/parser": "8.64.0",
52
- "@vitest/eslint-plugin": "1.6.23",
53
- "eslint-config-flat-gitignore": "2.3.0",
62
+ "@typescript-eslint/eslint-plugin": "8.68.0",
63
+ "@typescript-eslint/parser": "8.68.0",
64
+ "@vitest/eslint-plugin": "1.6.27",
65
+ "eslint-config-flat-gitignore": "2.4.0",
54
66
  "eslint-config-prettier": "10.1.8",
55
67
  "eslint-flat-config-utils": "3.2.0",
56
68
  "eslint-merge-processors": "2.0.0",
57
69
  "eslint-plugin-antfu": "3.2.3",
58
70
  "eslint-plugin-format": "2.0.1",
59
- "eslint-plugin-html": "8.1.4",
71
+ "eslint-plugin-html": "8.2.0",
60
72
  "eslint-plugin-import-lite": "0.6.0",
61
- "eslint-plugin-jsonc": "3.3.0",
62
- "eslint-plugin-n": "18.2.2",
73
+ "eslint-plugin-jsdoc": "64.3.2",
74
+ "eslint-plugin-jsonc": "3.4.2",
75
+ "eslint-plugin-n": "18.3.0",
63
76
  "eslint-plugin-no-only-tests": "3.4.0",
64
- "eslint-plugin-perfectionist": "5.10.0",
65
- "eslint-plugin-pnpm": "1.6.1",
77
+ "eslint-plugin-perfectionist": "5.10.1",
78
+ "eslint-plugin-pnpm": "1.8.0",
66
79
  "eslint-plugin-prettier": "5.5.6",
67
- "eslint-plugin-regexp": "3.1.1",
68
- "eslint-plugin-unicorn": "72.0.0",
80
+ "eslint-plugin-regexp": "3.2.0",
81
+ "eslint-plugin-unicorn": "74.0.0",
69
82
  "eslint-plugin-unused-imports": "4.4.1",
70
- "eslint-plugin-vue": "10.9.2",
71
- "eslint-plugin-yml": "3.6.0",
83
+ "eslint-plugin-vue": "10.10.0",
84
+ "eslint-plugin-yml": "3.8.1",
72
85
  "eslint-processor-vue-blocks": "2.0.0",
73
86
  "find-up-simple": "1.0.1",
74
- "globals": "17.7.0",
87
+ "globals": "17.11.0",
75
88
  "local-pkg": "1.2.1",
76
- "prettier": "3.9.5",
89
+ "prettier": "3.9.6",
77
90
  "vue-eslint-parser": "10.4.1",
78
91
  "yaml-eslint-parser": "2.1.0"
79
92
  },
80
93
  "devDependencies": {
81
- "@commitlint/cli": "21.2.1",
82
- "@commitlint/config-conventional": "21.2.0",
83
- "@eslint/config-inspector": "3.1.0",
84
- "@rotki/eslint-plugin": "1.5.0",
94
+ "@commitlint/cli": "21.2.2",
95
+ "@commitlint/config-conventional": "21.2.2",
96
+ "@eslint/config-inspector": "3.3.0",
97
+ "@rotki/eslint-config": "8.0.0",
98
+ "@rotki/eslint-plugin": "1.5.1",
85
99
  "@types/node": "24.13.3",
86
100
  "@types/prompts": "2.4.9",
87
- "bumpp": "11.1.0",
88
- "eslint": "10.7.0",
101
+ "bumpp": "12.2.2",
102
+ "eslint": "10.9.1",
103
+ "eslint-plugin-slop": "0.1.3",
104
+ "eslint-plugin-sonarjs": "4.2.0",
105
+ "eslint-plugin-tsdoc": "0.5.2",
89
106
  "eslint-typegen": "2.3.1",
90
- "execa": "10.0.0",
107
+ "execa": "10.0.1",
91
108
  "husky": "9.1.7",
92
- "lint-staged": "17.0.8",
109
+ "lint-staged": "17.4.1",
93
110
  "rimraf": "6.1.3",
94
111
  "tinyglobby": "0.2.17",
95
- "tsdown": "0.22.8",
96
- "tsx": "4.23.1",
112
+ "tsdown": "0.22.14",
113
+ "tsx": "4.23.13",
97
114
  "typescript": "6.0.3",
98
- "vitest": "4.1.10",
99
- "@rotki/eslint-config": "7.0.0"
115
+ "vitest": "4.1.11"
100
116
  },
101
117
  "engines": {
102
118
  "node": ">=24 <25",