@gooddata/eslint-config 11.19.0-alpha.9 → 11.20.0-alpha.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 (57) hide show
  1. package/PACKAGES_V8.md +1 -2
  2. package/PACKAGES_V9.md +1 -1
  3. package/PACKAGES_V9_OXLINT.md +21 -0
  4. package/README.md +22 -0
  5. package/dist/base.js +792 -283
  6. package/dist/base.json +1049 -213
  7. package/dist/browser-esm.js +794 -285
  8. package/dist/browser-esm.json +1051 -215
  9. package/dist/browser.js +792 -283
  10. package/dist/browser.json +1049 -213
  11. package/dist/esm-react-cypress.js +715 -187
  12. package/dist/esm-react-cypress.json +1051 -204
  13. package/dist/esm-react-vitest-storybook.js +825 -297
  14. package/dist/esm-react-vitest-storybook.json +1076 -204
  15. package/dist/esm-react-vitest.js +825 -297
  16. package/dist/esm-react-vitest.json +1060 -204
  17. package/dist/esm-react.js +798 -289
  18. package/dist/esm-react.json +1051 -216
  19. package/dist/esm-vitest.js +821 -293
  20. package/dist/esm-vitest.json +1060 -203
  21. package/dist/esm.js +794 -285
  22. package/dist/esm.json +1051 -215
  23. package/dist/oxlint-base.d.ts +12 -0
  24. package/dist/oxlint-base.js +1368 -0
  25. package/dist/oxlint-browser-esm.d.ts +12 -0
  26. package/dist/oxlint-browser-esm.js +1379 -0
  27. package/dist/oxlint-browser.d.ts +12 -0
  28. package/dist/oxlint-browser.js +1373 -0
  29. package/dist/oxlint-esm-react-cypress.d.ts +12 -0
  30. package/dist/oxlint-esm-react-cypress.js +1425 -0
  31. package/dist/oxlint-esm-react-vitest-storybook.d.ts +12 -0
  32. package/dist/oxlint-esm-react-vitest-storybook.js +1484 -0
  33. package/dist/oxlint-esm-react-vitest.d.ts +12 -0
  34. package/dist/oxlint-esm-react-vitest.js +1450 -0
  35. package/dist/oxlint-esm-react.d.ts +12 -0
  36. package/dist/oxlint-esm-react.js +1425 -0
  37. package/dist/oxlint-esm-vitest.d.ts +12 -0
  38. package/dist/oxlint-esm-vitest.js +1399 -0
  39. package/dist/oxlint-esm.d.ts +12 -0
  40. package/dist/oxlint-esm.js +1374 -0
  41. package/dist/oxlint-react-cypress.d.ts +12 -0
  42. package/dist/oxlint-react-cypress.js +1425 -0
  43. package/dist/oxlint-react-vitest.d.ts +12 -0
  44. package/dist/oxlint-react-vitest.js +1450 -0
  45. package/dist/oxlint-react.d.ts +12 -0
  46. package/dist/oxlint-react.js +1425 -0
  47. package/dist/oxlint-vitest.d.ts +12 -0
  48. package/dist/oxlint-vitest.js +1393 -0
  49. package/dist/react-cypress.js +713 -185
  50. package/dist/react-cypress.json +1050 -203
  51. package/dist/react-vitest.js +823 -295
  52. package/dist/react-vitest.json +1059 -203
  53. package/dist/react.js +796 -287
  54. package/dist/react.json +1049 -214
  55. package/dist/vitest.js +819 -291
  56. package/dist/vitest.json +1059 -202
  57. package/package.json +40 -6
@@ -7,10 +7,10 @@ import plugin0003 from "@typescript-eslint/parser";
7
7
  import plugin0004 from "eslint-plugin-no-barrel-files";
8
8
  import plugin0005 from "eslint-plugin-import-x";
9
9
  import plugin0006 from "eslint-plugin-jsdoc";
10
- import plugin0007 from "eslint-plugin-no-only-tests";
11
- import plugin0008 from "eslint-plugin-sonarjs";
12
- import plugin0009 from "eslint-plugin-import-esm";
13
- import plugin0010 from "@vitest/eslint-plugin";
10
+ import plugin0007 from "eslint-plugin-sonarjs";
11
+ import plugin0008 from "eslint-plugin-import-esm";
12
+ import plugin0009 from "@vitest/eslint-plugin";
13
+ import plugin0010 from "eslint-plugin-no-only-tests";
14
14
 
15
15
  export default [
16
16
  {
@@ -44,7 +44,6 @@ export default [
44
44
  "no-empty-pattern": "error",
45
45
  "no-empty-static-block": "error",
46
46
  "no-ex-assign": "error",
47
- "no-extra-boolean-cast": "error",
48
47
  "no-fallthrough": "error",
49
48
  "no-func-assign": "error",
50
49
  "no-global-assign": "error",
@@ -66,7 +65,6 @@ export default [
66
65
  "no-sparse-arrays": "error",
67
66
  "no-this-before-super": "error",
68
67
  "no-undef": "error",
69
- "no-unexpected-multiline": "off",
70
68
  "no-unreachable": "error",
71
69
  "no-unsafe-finally": "error",
72
70
  "no-unsafe-negation": "error",
@@ -76,38 +74,10 @@ export default [
76
74
  "no-unused-vars": "error",
77
75
  "no-useless-backreference": "error",
78
76
  "no-useless-catch": "error",
79
- "no-useless-escape": "off",
80
77
  "no-with": "error",
81
78
  "require-yield": "error",
82
79
  "use-isnan": "error",
83
80
  "valid-typeof": "error",
84
- "no-console": [
85
- 2,
86
- {
87
- allow: [
88
- "warn",
89
- "error",
90
- ],
91
- },
92
- ],
93
- "no-restricted-exports": [
94
- 2,
95
- {
96
- restrictDefaultExports: {
97
- direct: true,
98
- named: true,
99
- defaultFrom: true,
100
- namedFrom: true,
101
- namespaceFrom: true,
102
- },
103
- },
104
- ],
105
- "no-duplicate-imports": [
106
- "error",
107
- {
108
- includeExports: true,
109
- },
110
- ],
111
81
  "no-restricted-imports": [
112
82
  "error",
113
83
  {
@@ -628,17 +598,6 @@ export default [
628
598
  ],
629
599
  },
630
600
  ],
631
- "no-restricted-syntax": [
632
- "error",
633
- {
634
- selector: "MemberExpression[object.name='React']",
635
- message: "Do not use `React.*`. Use named imports instead.",
636
- },
637
- {
638
- selector: "MemberExpression[object.name='ReactDOM']",
639
- message: "Do not use `ReactDOM.*`. Use named imports instead.",
640
- },
641
- ],
642
601
  "sort-imports": [
643
602
  "error",
644
603
  {
@@ -647,13 +606,55 @@ export default [
647
606
  ignoreMemberSort: false,
648
607
  },
649
608
  ],
650
- "no-negated-condition": "error",
609
+ "no-useless-escape": "off",
651
610
  "no-unneeded-ternary": [
652
611
  "error",
653
612
  {
654
613
  defaultAssignment: false,
655
614
  },
656
615
  ],
616
+ "no-extra-boolean-cast": "error",
617
+ "no-unexpected-multiline": "off",
618
+ "no-duplicate-imports": [
619
+ "error",
620
+ {
621
+ includeExports: true,
622
+ },
623
+ ],
624
+ "prefer-const": "off",
625
+ "no-console": [
626
+ 2,
627
+ {
628
+ allow: [
629
+ "warn",
630
+ "error",
631
+ ],
632
+ },
633
+ ],
634
+ "no-restricted-exports": [
635
+ 2,
636
+ {
637
+ restrictDefaultExports: {
638
+ direct: true,
639
+ named: true,
640
+ defaultFrom: true,
641
+ namedFrom: true,
642
+ namespaceFrom: true,
643
+ },
644
+ },
645
+ ],
646
+ "no-restricted-syntax": [
647
+ "error",
648
+ {
649
+ selector: "MemberExpression[object.name='React']",
650
+ message: "Do not use `React.*`. Use named imports instead.",
651
+ },
652
+ {
653
+ selector: "MemberExpression[object.name='ReactDOM']",
654
+ message: "Do not use `ReactDOM.*`. Use named imports instead.",
655
+ },
656
+ ],
657
+ "no-negated-condition": "error",
657
658
  },
658
659
  },
659
660
  {
@@ -661,18 +662,6 @@ export default [
661
662
  "**/*.ts",
662
663
  "**/*.tsx",
663
664
  ],
664
- ignores: [
665
- "**/vitest.config.ts",
666
- "**/vitest.*.config.ts",
667
- "**/vitest.setup.ts",
668
- "**/vitest.setup.tsx",
669
- "**/*.test.ts",
670
- "**/*.test.tsx",
671
- "**/*.test.utils.ts",
672
- "**/*.test.utils.tsx",
673
- "**/*.test.helpers.ts",
674
- "**/*.test.helpers.tsx",
675
- ],
676
665
  rules: {
677
666
  "no-restricted-imports": [
678
667
  "error",
@@ -1204,144 +1193,666 @@ export default [
1204
1193
  },
1205
1194
  {
1206
1195
  files: [
1207
- "**/eslint.config.ts",
1208
- "**/eslint.config.js",
1196
+ "**/vitest.config.ts",
1197
+ "**/vitest.*.config.ts",
1198
+ "**/vitest.setup.ts",
1199
+ "**/vitest.setup.tsx",
1200
+ "**/*.test.ts",
1201
+ "**/*.test.tsx",
1202
+ "**/*.test.utils.ts",
1203
+ "**/*.test.utils.tsx",
1204
+ "**/*.test.helpers.ts",
1205
+ "**/*.test.helpers.tsx",
1209
1206
  ],
1210
1207
  rules: {
1211
- "no-restricted-exports": "off",
1212
- },
1213
- },
1214
- {
1215
- plugins: {
1216
- headers: plugin0001,
1217
- },
1218
- rules: {
1219
- "headers/header-format": [
1208
+ "no-restricted-imports": [
1220
1209
  "error",
1221
1210
  {
1222
- source: "string",
1223
- style: "line",
1224
- content: "(C) (years) GoodData Corporation",
1225
- patterns: {
1226
- years: {
1227
- pattern: "\\d{4}(-\\d{4})?",
1228
- defaultValue: "2026",
1211
+ paths: [
1212
+ {
1213
+ name: "react",
1214
+ importNames: [
1215
+ "default",
1216
+ ],
1217
+ message: "Default import from React is not allowed. Use named imports instead.",
1229
1218
  },
1230
- },
1231
- },
1232
- ],
1233
- },
1234
- },
1235
- {
1236
- languageOptions: {
1237
- parser: plugin0003,
1238
- sourceType: "module",
1239
- },
1240
- plugins: {
1241
- "@typescript-eslint": plugin0002,
1242
- },
1243
- },
1244
- {
1245
- files: [
1246
- "**/*.ts",
1247
- "**/*.tsx",
1248
- "**/*.mts",
1249
- "**/*.cts",
1250
- ],
1251
- languageOptions: {
1252
- parserOptions: {
1253
- projectService: true,
1254
- },
1255
- },
1256
- rules: {
1257
- "constructor-super": "off",
1258
- "getter-return": "off",
1259
- "no-class-assign": "off",
1260
- "no-const-assign": "off",
1261
- "no-dupe-args": "off",
1262
- "no-dupe-class-members": "off",
1263
- "no-dupe-keys": "off",
1264
- "no-func-assign": "off",
1265
- "no-import-assign": "off",
1266
- "no-new-native-nonconstructor": "off",
1267
- "no-new-symbol": "off",
1268
- "no-obj-calls": "off",
1269
- "no-redeclare": "off",
1270
- "no-setter-return": "off",
1271
- "no-this-before-super": "off",
1272
- "no-undef": "off",
1273
- "no-unreachable": "off",
1274
- "no-unsafe-negation": "off",
1275
- "no-var": "error",
1276
- "no-with": "off",
1277
- "prefer-const": "error",
1278
- "prefer-rest-params": "error",
1279
- "prefer-spread": "error",
1280
- "@typescript-eslint/ban-ts-comment": [
1281
- "error",
1282
- {
1283
- "ts-expect-error": "allow-with-description",
1284
- },
1285
- ],
1286
- "no-array-constructor": "off",
1287
- "@typescript-eslint/no-array-constructor": "error",
1288
- "@typescript-eslint/no-duplicate-enum-values": "error",
1289
- "@typescript-eslint/no-empty-object-type": "error",
1290
- "@typescript-eslint/no-explicit-any": "error",
1291
- "@typescript-eslint/no-extra-non-null-assertion": "error",
1292
- "@typescript-eslint/no-misused-new": "error",
1293
- "@typescript-eslint/no-namespace": "error",
1294
- "@typescript-eslint/no-non-null-asserted-optional-chain": "error",
1295
- "@typescript-eslint/no-require-imports": "error",
1296
- "@typescript-eslint/no-this-alias": "error",
1297
- "@typescript-eslint/no-unnecessary-type-constraint": "error",
1298
- "@typescript-eslint/no-unsafe-declaration-merging": "error",
1299
- "@typescript-eslint/no-unsafe-function-type": "error",
1300
- "no-unused-expressions": "off",
1301
- "@typescript-eslint/no-unused-expressions": "error",
1302
- "no-unused-vars": "off",
1303
- "@typescript-eslint/no-unused-vars": [
1304
- 2,
1305
- {
1306
- varsIgnorePattern: "^_.*$",
1307
- argsIgnorePattern: "^_.*$",
1308
- },
1309
- ],
1310
- "@typescript-eslint/no-wrapper-object-types": "error",
1311
- "@typescript-eslint/prefer-as-const": "error",
1312
- "@typescript-eslint/prefer-namespace-keyword": "error",
1313
- "@typescript-eslint/triple-slash-reference": "error",
1314
- "@typescript-eslint/explicit-function-return-type": 0,
1315
- "@typescript-eslint/no-use-before-define": 0,
1316
- "@typescript-eslint/no-empty-function": 0,
1317
- "@typescript-eslint/naming-convention": [
1318
- "error",
1319
- {
1320
- selector: "interface",
1321
- format: [
1322
- "PascalCase",
1323
- ],
1324
- custom: {
1325
- regex: "^I[A-Z]",
1326
- match: true,
1327
- },
1328
- },
1329
- ],
1330
- "@typescript-eslint/array-type": "off",
1331
- "@typescript-eslint/no-restricted-types": [
1332
- "error",
1333
- {
1334
- types: {
1335
- String: {
1336
- message: "Use 'string' instead",
1337
- fixWith: "string",
1219
+ {
1220
+ name: "react-dom",
1221
+ importNames: [
1222
+ "default",
1223
+ ],
1224
+ message: "Default import from React DOM is not allowed. Use named imports instead.",
1338
1225
  },
1339
- Number: {
1340
- message: "Use 'number' instead",
1341
- fixWith: "number",
1226
+ {
1227
+ name: "@gooddata/sdk-ui-kit",
1228
+ importNames: [
1229
+ "Icon",
1230
+ ],
1231
+ message: "The Icon export cannot be tree-shaken, use {IconName}Icon imports instead.",
1342
1232
  },
1343
- Boolean: {
1344
- message: "Use 'boolean' instead",
1233
+ {
1234
+ name: "vitest",
1235
+ importNames: [
1236
+ "test",
1237
+ ],
1238
+ message: "Use 'it' instead of 'test' for consistency.",
1239
+ },
1240
+ ],
1241
+ patterns: [
1242
+ {
1243
+ group: [
1244
+ "lodash-es",
1245
+ ],
1246
+ importNames: [
1247
+ "get",
1248
+ "getOr",
1249
+ ],
1250
+ message: "Please use the ?. and ?? operators instead.",
1251
+ },
1252
+ {
1253
+ group: [
1254
+ "lodash-es",
1255
+ ],
1256
+ importNames: [
1257
+ "keys",
1258
+ ],
1259
+ message: "Please use Object.keys() instead.",
1260
+ },
1261
+ {
1262
+ group: [
1263
+ "lodash-es",
1264
+ ],
1265
+ importNames: [
1266
+ "values",
1267
+ ],
1268
+ message: "Please use Object.values() instead.",
1269
+ },
1270
+ {
1271
+ group: [
1272
+ "lodash-es",
1273
+ ],
1274
+ importNames: [
1275
+ "entries",
1276
+ "toPairs",
1277
+ ],
1278
+ message: "Please use Object.entries() instead.",
1279
+ },
1280
+ {
1281
+ group: [
1282
+ "lodash-es",
1283
+ ],
1284
+ importNames: [
1285
+ "map",
1286
+ ],
1287
+ message: "Please use Array.prototype.map() instead.",
1288
+ },
1289
+ {
1290
+ group: [
1291
+ "lodash-es",
1292
+ ],
1293
+ importNames: [
1294
+ "flatMap",
1295
+ ],
1296
+ message: "Please use Array.prototype.flatMap() instead.",
1297
+ },
1298
+ {
1299
+ group: [
1300
+ "lodash-es",
1301
+ ],
1302
+ importNames: [
1303
+ "filter",
1304
+ ],
1305
+ message: "Please use Array.prototype.filter() instead.",
1306
+ },
1307
+ {
1308
+ group: [
1309
+ "lodash-es",
1310
+ ],
1311
+ importNames: [
1312
+ "find",
1313
+ ],
1314
+ message: "Please use Array.prototype.find() instead.",
1315
+ },
1316
+ {
1317
+ group: [
1318
+ "lodash-es",
1319
+ ],
1320
+ importNames: [
1321
+ "findIndex",
1322
+ ],
1323
+ message: "Please use Array.prototype.findIndex() instead.",
1324
+ },
1325
+ {
1326
+ group: [
1327
+ "lodash-es",
1328
+ ],
1329
+ importNames: [
1330
+ "includes",
1331
+ ],
1332
+ message: "Please use Array.prototype.includes() instead.",
1333
+ },
1334
+ {
1335
+ group: [
1336
+ "lodash-es",
1337
+ ],
1338
+ importNames: [
1339
+ "some",
1340
+ ],
1341
+ message: "Please use Array.prototype.some() instead.",
1342
+ },
1343
+ {
1344
+ group: [
1345
+ "lodash-es",
1346
+ ],
1347
+ importNames: [
1348
+ "every",
1349
+ ],
1350
+ message: "Please use Array.prototype.every() instead.",
1351
+ },
1352
+ {
1353
+ group: [
1354
+ "lodash-es",
1355
+ ],
1356
+ importNames: [
1357
+ "concat",
1358
+ ],
1359
+ message: "Please use Array.prototype.concat() or spread [...arr1, ...arr2] instead.",
1360
+ },
1361
+ {
1362
+ group: [
1363
+ "lodash-es",
1364
+ ],
1365
+ importNames: [
1366
+ "reverse",
1367
+ ],
1368
+ message: "Please use Array.prototype.reverse() instead.",
1369
+ },
1370
+ {
1371
+ group: [
1372
+ "lodash-es",
1373
+ ],
1374
+ importNames: [
1375
+ "slice",
1376
+ ],
1377
+ message: "Please use Array.prototype.slice() instead.",
1378
+ },
1379
+ {
1380
+ group: [
1381
+ "lodash-es",
1382
+ ],
1383
+ importNames: [
1384
+ "indexOf",
1385
+ ],
1386
+ message: "Please use Array.prototype.indexOf() instead.",
1387
+ },
1388
+ {
1389
+ group: [
1390
+ "lodash-es",
1391
+ ],
1392
+ importNames: [
1393
+ "lastIndexOf",
1394
+ ],
1395
+ message: "Please use Array.prototype.lastIndexOf() instead.",
1396
+ },
1397
+ {
1398
+ group: [
1399
+ "lodash-es",
1400
+ ],
1401
+ importNames: [
1402
+ "fill",
1403
+ ],
1404
+ message: "Please use Array.prototype.fill() instead.",
1405
+ },
1406
+ {
1407
+ group: [
1408
+ "lodash-es",
1409
+ ],
1410
+ importNames: [
1411
+ "startsWith",
1412
+ ],
1413
+ message: "Please use String.prototype.startsWith() instead.",
1414
+ },
1415
+ {
1416
+ group: [
1417
+ "lodash-es",
1418
+ ],
1419
+ importNames: [
1420
+ "endsWith",
1421
+ ],
1422
+ message: "Please use String.prototype.endsWith() instead.",
1423
+ },
1424
+ {
1425
+ group: [
1426
+ "lodash-es",
1427
+ ],
1428
+ importNames: [
1429
+ "repeat",
1430
+ ],
1431
+ message: "Please use String.prototype.repeat() instead.",
1432
+ },
1433
+ {
1434
+ group: [
1435
+ "lodash-es",
1436
+ ],
1437
+ importNames: [
1438
+ "padStart",
1439
+ ],
1440
+ message: "Please use String.prototype.padStart() instead.",
1441
+ },
1442
+ {
1443
+ group: [
1444
+ "lodash-es",
1445
+ ],
1446
+ importNames: [
1447
+ "padEnd",
1448
+ ],
1449
+ message: "Please use String.prototype.padEnd() instead.",
1450
+ },
1451
+ {
1452
+ group: [
1453
+ "lodash-es",
1454
+ ],
1455
+ importNames: [
1456
+ "trim",
1457
+ ],
1458
+ message: "Please use String.prototype.trim() instead.",
1459
+ },
1460
+ {
1461
+ group: [
1462
+ "lodash-es",
1463
+ ],
1464
+ importNames: [
1465
+ "trimStart",
1466
+ "trimLeft",
1467
+ ],
1468
+ message: "Please use String.prototype.trimStart() instead.",
1469
+ },
1470
+ {
1471
+ group: [
1472
+ "lodash-es",
1473
+ ],
1474
+ importNames: [
1475
+ "trimEnd",
1476
+ "trimRight",
1477
+ ],
1478
+ message: "Please use String.prototype.trimEnd() instead.",
1479
+ },
1480
+ {
1481
+ group: [
1482
+ "lodash-es",
1483
+ ],
1484
+ importNames: [
1485
+ "toUpper",
1486
+ ],
1487
+ message: "Please use String.prototype.toUpperCase() instead.",
1488
+ },
1489
+ {
1490
+ group: [
1491
+ "lodash-es",
1492
+ ],
1493
+ importNames: [
1494
+ "toLower",
1495
+ ],
1496
+ message: "Please use String.prototype.toLowerCase() instead.",
1497
+ },
1498
+ {
1499
+ group: [
1500
+ "lodash-es",
1501
+ ],
1502
+ importNames: [
1503
+ "isArray",
1504
+ ],
1505
+ message: "Please use Array.isArray() instead.",
1506
+ },
1507
+ {
1508
+ group: [
1509
+ "lodash-es",
1510
+ ],
1511
+ importNames: [
1512
+ "isNaN",
1513
+ ],
1514
+ message: "Please use Number.isNaN() instead.",
1515
+ },
1516
+ {
1517
+ group: [
1518
+ "lodash-es",
1519
+ ],
1520
+ importNames: [
1521
+ "isFinite",
1522
+ ],
1523
+ message: "Please use Number.isFinite() instead.",
1524
+ },
1525
+ {
1526
+ group: [
1527
+ "lodash-es",
1528
+ ],
1529
+ importNames: [
1530
+ "isInteger",
1531
+ ],
1532
+ message: "Please use Number.isInteger() instead.",
1533
+ },
1534
+ {
1535
+ group: [
1536
+ "lodash-es",
1537
+ ],
1538
+ importNames: [
1539
+ "isNull",
1540
+ ],
1541
+ message: "Please use value === null instead.",
1542
+ },
1543
+ {
1544
+ group: [
1545
+ "lodash-es",
1546
+ ],
1547
+ importNames: [
1548
+ "isUndefined",
1549
+ ],
1550
+ message: "Please use value === undefined instead.",
1551
+ },
1552
+ {
1553
+ group: [
1554
+ "lodash-es",
1555
+ ],
1556
+ importNames: [
1557
+ "defaultTo",
1558
+ ],
1559
+ message: "Please use value ?? defaultValue instead.",
1560
+ },
1561
+ {
1562
+ group: [
1563
+ "lodash-es",
1564
+ ],
1565
+ importNames: [
1566
+ "assign",
1567
+ ],
1568
+ message: "Please use Object.assign() or spread syntax {...obj} instead.",
1569
+ },
1570
+ {
1571
+ group: [
1572
+ "lodash-es",
1573
+ ],
1574
+ importNames: [
1575
+ "flatten",
1576
+ ],
1577
+ message: "Please use Array.prototype.flat() instead.",
1578
+ },
1579
+ {
1580
+ group: [
1581
+ "lodash-es",
1582
+ ],
1583
+ importNames: [
1584
+ "flattenDeep",
1585
+ ],
1586
+ message: "Please use Array.prototype.flat(Infinity) instead.",
1587
+ },
1588
+ {
1589
+ group: [
1590
+ "lodash-es",
1591
+ ],
1592
+ importNames: [
1593
+ "isNil",
1594
+ ],
1595
+ message: "Please use value === null || value === undefined instead.",
1596
+ },
1597
+ {
1598
+ group: [
1599
+ "lodash-es",
1600
+ ],
1601
+ importNames: [
1602
+ "noop",
1603
+ ],
1604
+ message: "Please use () => {} instead.",
1605
+ },
1606
+ {
1607
+ group: [
1608
+ "lodash-es",
1609
+ ],
1610
+ importNames: [
1611
+ "identity",
1612
+ ],
1613
+ message: "Please use x => x instead.",
1614
+ },
1615
+ {
1616
+ group: [
1617
+ "lodash-es",
1618
+ ],
1619
+ importNames: [
1620
+ "first",
1621
+ "head",
1622
+ ],
1623
+ message: "Please use Array.prototype.at(0) instead.",
1624
+ },
1625
+ {
1626
+ group: [
1627
+ "lodash-es",
1628
+ ],
1629
+ importNames: [
1630
+ "last",
1631
+ ],
1632
+ message: "Please use Array.prototype.at(-1) instead.",
1633
+ },
1634
+ {
1635
+ group: [
1636
+ "lodash-es",
1637
+ ],
1638
+ importNames: [
1639
+ "forEach",
1640
+ ],
1641
+ message: "Please use Array.prototype.forEach() instead.",
1642
+ },
1643
+ {
1644
+ group: [
1645
+ "lodash-es",
1646
+ ],
1647
+ importNames: [
1648
+ "fromPairs",
1649
+ ],
1650
+ message: "Please use Object.fromEntries() instead.",
1651
+ },
1652
+ {
1653
+ group: [
1654
+ "lodash-es",
1655
+ ],
1656
+ importNames: [
1657
+ "join",
1658
+ ],
1659
+ message: "Please use Array.prototype.join() instead.",
1660
+ },
1661
+ {
1662
+ group: [
1663
+ "lodash-es",
1664
+ ],
1665
+ importNames: [
1666
+ "isDate",
1667
+ ],
1668
+ message: "Please use val instanceof Date instead.",
1669
+ },
1670
+ {
1671
+ group: [
1672
+ "lodash-es",
1673
+ ],
1674
+ importNames: [
1675
+ "isFunction",
1676
+ ],
1677
+ message: "Please use typeof val === 'function' instead.",
1678
+ },
1679
+ {
1680
+ group: [
1681
+ "lodash-es",
1682
+ ],
1683
+ importNames: [
1684
+ "isNumber",
1685
+ ],
1686
+ message: "Please use typeof val === 'number' instead.",
1687
+ },
1688
+ {
1689
+ group: [
1690
+ "lodash-es",
1691
+ ],
1692
+ importNames: [
1693
+ "isObject",
1694
+ ],
1695
+ message: "Please use val !== null && typeof val === 'object' instead.",
1696
+ },
1697
+ {
1698
+ group: [
1699
+ "lodash-es",
1700
+ ],
1701
+ importNames: [
1702
+ "isString",
1703
+ ],
1704
+ message: "Please use typeof val === 'string' instead.",
1705
+ },
1706
+ {
1707
+ group: [
1708
+ "lodash-es",
1709
+ ],
1710
+ importNames: [
1711
+ "toString",
1712
+ ],
1713
+ message: "Please use String(val) instead.",
1714
+ },
1715
+ {
1716
+ group: [
1717
+ "lodash-es",
1718
+ ],
1719
+ importNames: [
1720
+ "flow",
1721
+ "flowRight",
1722
+ ],
1723
+ message: "Please use refactoring your code instead.",
1724
+ },
1725
+ ],
1726
+ },
1727
+ ],
1728
+ },
1729
+ },
1730
+ {
1731
+ files: [
1732
+ "**/eslint.config.ts",
1733
+ "**/eslint.config.js",
1734
+ ],
1735
+ rules: {
1736
+ "no-restricted-exports": "off",
1737
+ },
1738
+ },
1739
+ {
1740
+ plugins: {
1741
+ headers: plugin0001,
1742
+ },
1743
+ rules: {
1744
+ "headers/header-format": [
1745
+ "error",
1746
+ {
1747
+ source: "string",
1748
+ style: "line",
1749
+ content: "(C) (years) GoodData Corporation",
1750
+ patterns: {
1751
+ years: {
1752
+ pattern: "\\d{4}(-\\d{4})?",
1753
+ defaultValue: "2026",
1754
+ },
1755
+ },
1756
+ },
1757
+ ],
1758
+ },
1759
+ },
1760
+ {
1761
+ languageOptions: {
1762
+ parser: plugin0003,
1763
+ sourceType: "module",
1764
+ },
1765
+ plugins: {
1766
+ "@typescript-eslint": plugin0002,
1767
+ },
1768
+ },
1769
+ {
1770
+ files: [
1771
+ "**/*.ts",
1772
+ "**/*.tsx",
1773
+ "**/*.mts",
1774
+ "**/*.cts",
1775
+ ],
1776
+ languageOptions: {
1777
+ parserOptions: {
1778
+ projectService: true,
1779
+ },
1780
+ },
1781
+ rules: {
1782
+ "constructor-super": "off",
1783
+ "getter-return": "off",
1784
+ "no-class-assign": "off",
1785
+ "no-const-assign": "off",
1786
+ "no-dupe-args": "off",
1787
+ "no-dupe-class-members": "off",
1788
+ "no-dupe-keys": "off",
1789
+ "no-func-assign": "off",
1790
+ "no-import-assign": "off",
1791
+ "no-new-native-nonconstructor": "off",
1792
+ "no-new-symbol": "off",
1793
+ "no-obj-calls": "off",
1794
+ "no-redeclare": "off",
1795
+ "no-setter-return": "off",
1796
+ "no-this-before-super": "off",
1797
+ "no-undef": "off",
1798
+ "no-unreachable": "off",
1799
+ "no-unsafe-negation": "off",
1800
+ "no-var": "error",
1801
+ "no-with": "off",
1802
+ "prefer-const": "error",
1803
+ "prefer-rest-params": "error",
1804
+ "prefer-spread": "error",
1805
+ "no-array-constructor": "off",
1806
+ "no-unused-expressions": "off",
1807
+ "no-unused-vars": "off",
1808
+ "@typescript-eslint/no-array-constructor": "error",
1809
+ "@typescript-eslint/no-duplicate-enum-values": "error",
1810
+ "@typescript-eslint/no-empty-object-type": "error",
1811
+ "@typescript-eslint/no-extra-non-null-assertion": "error",
1812
+ "@typescript-eslint/no-misused-new": "error",
1813
+ "@typescript-eslint/no-namespace": "error",
1814
+ "@typescript-eslint/no-non-null-asserted-optional-chain": "error",
1815
+ "@typescript-eslint/no-require-imports": "error",
1816
+ "@typescript-eslint/no-this-alias": "error",
1817
+ "@typescript-eslint/no-unnecessary-type-constraint": "error",
1818
+ "@typescript-eslint/no-unsafe-declaration-merging": "error",
1819
+ "@typescript-eslint/prefer-as-const": "error",
1820
+ "@typescript-eslint/prefer-namespace-keyword": "error",
1821
+ "@typescript-eslint/triple-slash-reference": "error",
1822
+ "@typescript-eslint/explicit-function-return-type": 0,
1823
+ "@typescript-eslint/no-use-before-define": 0,
1824
+ "@typescript-eslint/no-empty-function": 0,
1825
+ "@typescript-eslint/no-unused-vars": [
1826
+ 2,
1827
+ {
1828
+ varsIgnorePattern: "^_.*$",
1829
+ argsIgnorePattern: "^_.*$",
1830
+ },
1831
+ ],
1832
+ "@typescript-eslint/no-explicit-any": "error",
1833
+ "@typescript-eslint/array-type": "off",
1834
+ "@typescript-eslint/ban-ts-comment": [
1835
+ "error",
1836
+ {
1837
+ "ts-expect-error": "allow-with-description",
1838
+ },
1839
+ ],
1840
+ "@typescript-eslint/no-wrapper-object-types": "error",
1841
+ "@typescript-eslint/no-unsafe-function-type": "error",
1842
+ "@typescript-eslint/no-restricted-types": [
1843
+ "error",
1844
+ {
1845
+ types: {
1846
+ String: {
1847
+ message: "Use 'string' instead",
1848
+ fixWith: "string",
1849
+ },
1850
+ Number: {
1851
+ message: "Use 'number' instead",
1852
+ fixWith: "number",
1853
+ },
1854
+ Boolean: {
1855
+ message: "Use 'boolean' instead",
1345
1856
  fixWith: "boolean",
1346
1857
  },
1347
1858
  Symbol: {
@@ -1351,18 +1862,11 @@ export default [
1351
1862
  },
1352
1863
  },
1353
1864
  ],
1354
- "@typescript-eslint/consistent-type-exports": [
1355
- "error",
1356
- {
1357
- fixMixedExportsWithInlineTypeSpecifier: false,
1358
- },
1359
- ],
1360
1865
  "@typescript-eslint/explicit-member-accessibility": "off",
1361
1866
  "@typescript-eslint/interface-name-prefix": "off",
1362
1867
  "@typescript-eslint/member-ordering": "off",
1363
1868
  "@typescript-eslint/no-inferrable-types": "off",
1364
1869
  "@typescript-eslint/no-non-null-assertion": "off",
1365
- "@typescript-eslint/prefer-optional-chain": "error",
1366
1870
  "no-restricted-syntax": [
1367
1871
  "error",
1368
1872
  {
@@ -1393,6 +1897,26 @@ export default [
1393
1897
  fixStyle: "inline-type-imports",
1394
1898
  },
1395
1899
  ],
1900
+ "@typescript-eslint/prefer-optional-chain": "error",
1901
+ "@typescript-eslint/consistent-type-exports": [
1902
+ "error",
1903
+ {
1904
+ fixMixedExportsWithInlineTypeSpecifier: false,
1905
+ },
1906
+ ],
1907
+ "@typescript-eslint/naming-convention": [
1908
+ "error",
1909
+ {
1910
+ selector: "interface",
1911
+ format: [
1912
+ "PascalCase",
1913
+ ],
1914
+ custom: {
1915
+ regex: "^I[A-Z]",
1916
+ match: true,
1917
+ },
1918
+ },
1919
+ ],
1396
1920
  },
1397
1921
  },
1398
1922
  {
@@ -1403,6 +1927,14 @@ export default [
1403
1927
  "no-barrel-files/no-barrel-files": "error",
1404
1928
  },
1405
1929
  },
1930
+ {
1931
+ files: [
1932
+ "**/eslint.config.ts",
1933
+ ],
1934
+ rules: {
1935
+ "no-barrel-files/no-barrel-files": "off",
1936
+ },
1937
+ },
1406
1938
  {
1407
1939
  plugins: {
1408
1940
  "import-x": plugin0005,
@@ -1416,7 +1948,6 @@ export default [
1416
1948
  ],
1417
1949
  },
1418
1950
  rules: {
1419
- "import-x/no-unresolved": "error",
1420
1951
  "import-x/named": "error",
1421
1952
  "import-x/namespace": "error",
1422
1953
  "import-x/default": "error",
@@ -1424,6 +1955,7 @@ export default [
1424
1955
  "import-x/no-named-as-default": "warn",
1425
1956
  "import-x/no-named-as-default-member": "warn",
1426
1957
  "import-x/no-duplicates": "warn",
1958
+ "import-x/no-unassigned-import": "error",
1427
1959
  "import-x/order": [
1428
1960
  "error",
1429
1961
  {
@@ -1459,7 +1991,6 @@ export default [
1459
1991
  "newlines-between": "always",
1460
1992
  },
1461
1993
  ],
1462
- "import-x/no-unassigned-import": "error",
1463
1994
  },
1464
1995
  },
1465
1996
  {
@@ -1498,9 +2029,6 @@ export default [
1498
2029
  },
1499
2030
  },
1500
2031
  },
1501
- rules: {
1502
- "import-x/named": "off",
1503
- },
1504
2032
  },
1505
2033
  {
1506
2034
  files: [
@@ -1520,34 +2048,14 @@ export default [
1520
2048
  },
1521
2049
  {
1522
2050
  plugins: {
1523
- "no-only-tests": plugin0007,
1524
- },
1525
- rules: {
1526
- "no-only-tests/no-only-tests": [
1527
- "error",
1528
- {
1529
- block: [
1530
- "fixture",
1531
- ],
1532
- focus: [
1533
- "only",
1534
- ],
1535
- },
1536
- ],
1537
- },
1538
- },
1539
- {
1540
- plugins: {
1541
- sonarjs: plugin0008,
2051
+ sonarjs: plugin0007,
1542
2052
  },
1543
2053
  rules: {
1544
2054
  "sonarjs/function-name": "off",
1545
- "sonarjs/class-name": "off",
1546
2055
  "sonarjs/max-lines": "off",
1547
2056
  "sonarjs/no-tab": "off",
1548
2057
  "sonarjs/variable-name": "off",
1549
2058
  "sonarjs/comment-regex": "off",
1550
- "sonarjs/no-commented-code": "off",
1551
2059
  "sonarjs/elseif-without-else": "off",
1552
2060
  "sonarjs/no-fallthrough": "error",
1553
2061
  "sonarjs/nested-control-flow": "off",
@@ -1560,15 +2068,11 @@ export default [
1560
2068
  "sonarjs/expression-complexity": "off",
1561
2069
  "sonarjs/no-redundant-parentheses": "off",
1562
2070
  "sonarjs/no-labels": "error",
1563
- "sonarjs/no-nested-assignment": "off",
1564
2071
  "sonarjs/no-redundant-boolean": "error",
1565
2072
  "sonarjs/prefer-single-boolean-return": "error",
1566
2073
  "sonarjs/unused-import": "error",
1567
- "sonarjs/fixme-tag": "off",
1568
- "sonarjs/todo-tag": "warn",
1569
2074
  "sonarjs/useless-string-operation": "off",
1570
2075
  "sonarjs/no-unused-function-argument": "off",
1571
- "sonarjs/no-duplicate-string": "off",
1572
2076
  "sonarjs/no-case-label-in-switch": "error",
1573
2077
  "sonarjs/no-parameter-reassignment": "error",
1574
2078
  "sonarjs/prefer-while": "error",
@@ -1576,14 +2080,11 @@ export default [
1576
2080
  "sonarjs/no-small-switch": "error",
1577
2081
  "sonarjs/no-hardcoded-ip": "error",
1578
2082
  "sonarjs/label-position": "error",
1579
- "sonarjs/public-static-readonly": "off",
1580
2083
  "sonarjs/file-header": "off",
1581
2084
  "sonarjs/call-argument-line": "error",
1582
2085
  "sonarjs/max-switch-cases": "error",
1583
- "sonarjs/no-unused-vars": "off",
1584
2086
  "sonarjs/prefer-immediate-return": "off",
1585
2087
  "sonarjs/function-inside-loop": "error",
1586
- "sonarjs/code-eval": "off",
1587
2088
  "sonarjs/no-variable-usage-before-declaration": "off",
1588
2089
  "sonarjs/future-reserved-words": "error",
1589
2090
  "sonarjs/array-constructor": "off",
@@ -1592,52 +2093,34 @@ export default [
1592
2093
  "sonarjs/no-primitive-wrappers": "error",
1593
2094
  "sonarjs/for-in": "off",
1594
2095
  "sonarjs/cyclomatic-complexity": "off",
1595
- "sonarjs/no-skipped-tests": "off",
1596
2096
  "sonarjs/no-identical-expressions": "error",
1597
2097
  "sonarjs/no-nested-switch": "off",
1598
- "sonarjs/constructor-for-side-effects": "off",
1599
- "sonarjs/no-dead-store": "off",
1600
2098
  "sonarjs/no-identical-conditions": "error",
1601
2099
  "sonarjs/no-duplicated-branches": "error",
1602
- "sonarjs/deprecation": "off",
1603
- "sonarjs/no-inverted-boolean-check": "off",
1604
2100
  "sonarjs/misplaced-loop-counter": "error",
1605
- "sonarjs/no-nested-functions": "off",
1606
- "sonarjs/no-hardcoded-passwords": "off",
1607
2101
  "sonarjs/sql-queries": "error",
1608
2102
  "sonarjs/insecure-cookie": "error",
1609
2103
  "sonarjs/no-useless-increment": "error",
1610
- "sonarjs/no-globals-shadowing": "off",
1611
2104
  "sonarjs/no-undefined-assignment": "off",
1612
- "sonarjs/no-empty-test-file": "off",
1613
- "sonarjs/no-ignored-return": "off",
1614
2105
  "sonarjs/no-wildcard-import": "off",
1615
- "sonarjs/arguments-order": "off",
1616
- "sonarjs/pseudo-random": "off",
1617
2106
  "sonarjs/for-loop-increment-sign": "error",
1618
2107
  "sonarjs/cookies": "off",
1619
2108
  "sonarjs/null-dereference": "error",
1620
- "sonarjs/no-selector-parameter": "off",
1621
2109
  "sonarjs/updated-loop-counter": "error",
1622
2110
  "sonarjs/block-scoped-var": "error",
1623
2111
  "sonarjs/no-built-in-override": "off",
1624
2112
  "sonarjs/prefer-object-literal": "off",
1625
- "sonarjs/no-ignored-exceptions": "off",
1626
2113
  "sonarjs/no-gratuitous-expressions": "error",
1627
2114
  "sonarjs/file-uploads": "error",
1628
2115
  "sonarjs/file-permissions": "error",
1629
2116
  "sonarjs/no-empty-character-class": "error",
1630
2117
  "sonarjs/no-unenclosed-multiline-block": "error",
1631
2118
  "sonarjs/index-of-compare-to-positive-number": "error",
1632
- "sonarjs/assertions-in-tests": "off",
1633
- "sonarjs/no-implicit-global": "off",
1634
2119
  "sonarjs/no-useless-catch": "error",
1635
2120
  "sonarjs/xml-parser-xxe": "error",
1636
2121
  "sonarjs/non-existent-operator": "error",
1637
2122
  "sonarjs/web-sql-database": "off",
1638
- "sonarjs/post-message": "off",
1639
2123
  "sonarjs/no-array-delete": "error",
1640
- "sonarjs/no-alphabetical-sort": "off",
1641
2124
  "sonarjs/no-incomplete-assertions": "error",
1642
2125
  "sonarjs/no-global-this": "error",
1643
2126
  "sonarjs/new-operator-misuse": "error",
@@ -1645,18 +2128,14 @@ export default [
1645
2128
  "sonarjs/strings-comparison": "off",
1646
2129
  "sonarjs/file-name-differ-from-class": "off",
1647
2130
  "sonarjs/cookie-no-httponly": "error",
1648
- "sonarjs/no-nested-conditional": "off",
1649
2131
  "sonarjs/no-incorrect-string-concat": "off",
1650
- "sonarjs/different-types-comparison": "off",
1651
2132
  "sonarjs/inverted-assertion-arguments": "error",
1652
2133
  "sonarjs/shorthand-property-grouping": "off",
1653
2134
  "sonarjs/updated-const-var": "error",
1654
2135
  "sonarjs/arguments-usage": "off",
1655
2136
  "sonarjs/destructuring-assignment-syntax": "off",
1656
- "sonarjs/no-invariant-returns": "off",
1657
2137
  "sonarjs/arrow-function-convention": "off",
1658
2138
  "sonarjs/class-prototype": "off",
1659
- "sonarjs/generator-without-yield": "off",
1660
2139
  "sonarjs/no-require-or-define": "off",
1661
2140
  "sonarjs/no-associative-arrays": "error",
1662
2141
  "sonarjs/comma-or-logical-or-case": "error",
@@ -1664,16 +2143,11 @@ export default [
1664
2143
  "sonarjs/inconsistent-function-call": "error",
1665
2144
  "sonarjs/no-use-of-empty-return-value": "error",
1666
2145
  "sonarjs/enforce-trailing-comma": "off",
1667
- "sonarjs/void-use": "off",
1668
2146
  "sonarjs/operation-returning-nan": "off",
1669
2147
  "sonarjs/values-not-convertible-to-numbers": "off",
1670
2148
  "sonarjs/non-number-in-arithmetic-expression": "off",
1671
- "sonarjs/cognitive-complexity": "warn",
1672
- "sonarjs/argument-type": "off",
1673
2149
  "sonarjs/in-operator-type-error": "error",
1674
- "sonarjs/array-callback-without-return": "off",
1675
2150
  "sonarjs/declarations-in-global-scope": "off",
1676
- "sonarjs/function-return-type": "off",
1677
2151
  "sonarjs/no-inconsistent-returns": "off",
1678
2152
  "sonarjs/no-reference-error": "off",
1679
2153
  "sonarjs/super-invocation": "error",
@@ -1683,50 +2157,36 @@ export default [
1683
2157
  "sonarjs/no-collection-size-mischeck": "error",
1684
2158
  "sonarjs/no-unthrown-error": "error",
1685
2159
  "sonarjs/no-unused-collection": "error",
1686
- "sonarjs/no-os-command-from-path": "off",
1687
- "sonarjs/no-misleading-array-reverse": "off",
1688
2160
  "sonarjs/no-for-in-iterable": "off",
1689
2161
  "sonarjs/no-element-overwrite": "error",
1690
2162
  "sonarjs/no-identical-functions": "error",
1691
2163
  "sonarjs/no-empty-collection": "error",
1692
2164
  "sonarjs/no-redundant-assignments": "error",
1693
2165
  "sonarjs/prefer-type-guard": "error",
1694
- "sonarjs/use-type-alias": "off",
1695
2166
  "sonarjs/no-return-type-any": "off",
1696
2167
  "sonarjs/no-implicit-dependencies": "off",
1697
- "sonarjs/no-useless-intersection": "off",
1698
2168
  "sonarjs/weak-ssl": "error",
1699
2169
  "sonarjs/no-weak-keys": "error",
1700
2170
  "sonarjs/csrf": "error",
1701
2171
  "sonarjs/production-debug": "error",
1702
- "sonarjs/prefer-default-last": "off",
1703
2172
  "sonarjs/no-in-misuse": "error",
1704
2173
  "sonarjs/no-duplicate-in-composite": "error",
1705
2174
  "sonarjs/max-union-size": "off",
1706
- "sonarjs/no-undefined-argument": "off",
1707
2175
  "sonarjs/no-nested-template-literals": "error",
1708
- "sonarjs/prefer-promise-shorthand": "off",
1709
- "sonarjs/os-command": "off",
1710
- "sonarjs/no-redundant-optional": "off",
1711
2176
  "sonarjs/regular-expr": "off",
1712
2177
  "sonarjs/encryption": "off",
1713
2178
  "sonarjs/hashing": "error",
1714
2179
  "sonarjs/bool-param-default": "off",
1715
2180
  "sonarjs/xpath": "off",
1716
2181
  "sonarjs/sockets": "off",
1717
- "sonarjs/no-try-promise": "off",
1718
2182
  "sonarjs/process-argv": "off",
1719
2183
  "sonarjs/standard-input": "off",
1720
2184
  "sonarjs/unverified-certificate": "error",
1721
- "sonarjs/no-unsafe-unzip": "off",
1722
2185
  "sonarjs/cors": "error",
1723
- "sonarjs/link-with-target-blank": "off",
1724
2186
  "sonarjs/disabled-auto-escaping": "error",
1725
- "sonarjs/table-header": "off",
1726
2187
  "sonarjs/no-table-as-layout": "error",
1727
2188
  "sonarjs/table-header-reference": "error",
1728
2189
  "sonarjs/object-alt-content": "error",
1729
- "sonarjs/no-clear-text-protocols": "off",
1730
2190
  "sonarjs/publicly-writable-directories": "error",
1731
2191
  "sonarjs/unverified-hostname": "error",
1732
2192
  "sonarjs/encryption-secure-mode": "error",
@@ -1747,21 +2207,15 @@ export default [
1747
2207
  "sonarjs/dns-prefetching": "off",
1748
2208
  "sonarjs/confidential-information-logging": "error",
1749
2209
  "sonarjs/no-ip-forward": "error",
1750
- "sonarjs/empty-string-repetition": "off",
1751
- "sonarjs/regex-complexity": "off",
1752
- "sonarjs/anchor-precedence": "off",
1753
- "sonarjs/slow-regex": "off",
1754
2210
  "sonarjs/no-invalid-regexp": "error",
1755
2211
  "sonarjs/unused-named-groups": "error",
1756
2212
  "sonarjs/no-same-argument-assert": "error",
1757
2213
  "sonarjs/unicode-aware-regex": "off",
1758
2214
  "sonarjs/no-misleading-character-class": "error",
1759
- "sonarjs/duplicates-in-character-class": "off",
1760
2215
  "sonarjs/session-regeneration": "error",
1761
2216
  "sonarjs/test-check-exception": "error",
1762
2217
  "sonarjs/stable-tests": "error",
1763
2218
  "sonarjs/no-empty-after-reluctant": "error",
1764
- "sonarjs/single-character-alternation": "off",
1765
2219
  "sonarjs/no-code-after-done": "error",
1766
2220
  "sonarjs/disabled-timeout": "error",
1767
2221
  "sonarjs/chai-determinate-assertion": "error",
@@ -1782,7 +2236,6 @@ export default [
1782
2236
  "sonarjs/aws-sagemaker-unencrypted-notebook": "error",
1783
2237
  "sonarjs/aws-restricted-ip-admin-access": "error",
1784
2238
  "sonarjs/no-empty-alternatives": "error",
1785
- "sonarjs/no-control-regex": "off",
1786
2239
  "sonarjs/no-regex-spaces": "error",
1787
2240
  "sonarjs/aws-sns-unencrypted-topics": "error",
1788
2241
  "sonarjs/existing-groups": "error",
@@ -1792,24 +2245,81 @@ export default [
1792
2245
  "sonarjs/aws-efs-unencrypted": "error",
1793
2246
  "sonarjs/aws-apigateway-public-api": "error",
1794
2247
  "sonarjs/stateful-regex": "error",
1795
- "sonarjs/concise-regex": "off",
1796
2248
  "sonarjs/single-char-in-character-classes": "error",
1797
- "sonarjs/no-hardcoded-secrets": "off",
1798
2249
  "sonarjs/no-exclusive-tests": "error",
1799
2250
  "sonarjs/hardcoded-secret-signatures": "error",
1800
2251
  "sonarjs/jsx-no-leaked-render": "error",
1801
2252
  "sonarjs/no-hook-setter-in-body": "error",
1802
- "sonarjs/no-useless-react-setstate": "off",
1803
2253
  "sonarjs/no-uniq-key": "error",
1804
- "sonarjs/redundant-type-aliases": "off",
1805
- "sonarjs/prefer-regexp-exec": "off",
1806
2254
  "sonarjs/no-internal-api-use": "error",
1807
- "sonarjs/prefer-read-only-props": "off",
1808
2255
  "sonarjs/no-literal-call": "error",
1809
- "sonarjs/reduce-initial-value": "off",
1810
- "sonarjs/no-async-constructor": "off",
1811
2256
  "sonarjs/review-blockchain-mnemonic": "error",
1812
2257
  "sonarjs/dynamically-constructed-templates": "error",
2258
+ "sonarjs/no-duplicate-string": "off",
2259
+ "sonarjs/cognitive-complexity": "warn",
2260
+ "sonarjs/todo-tag": "warn",
2261
+ "sonarjs/no-hardcoded-passwords": "off",
2262
+ "sonarjs/no-alphabetical-sort": "off",
2263
+ "sonarjs/no-os-command-from-path": "off",
2264
+ "sonarjs/os-command": "off",
2265
+ "sonarjs/prefer-regexp-exec": "off",
2266
+ "sonarjs/no-clear-text-protocols": "off",
2267
+ "sonarjs/deprecation": "off",
2268
+ "sonarjs/no-nested-conditional": "off",
2269
+ "sonarjs/no-ignored-exceptions": "off",
2270
+ "sonarjs/slow-regex": "off",
2271
+ "sonarjs/prefer-read-only-props": "off",
2272
+ "sonarjs/no-skipped-tests": "off",
2273
+ "sonarjs/no-commented-code": "off",
2274
+ "sonarjs/no-ignored-return": "off",
2275
+ "sonarjs/array-callback-without-return": "off",
2276
+ "sonarjs/pseudo-random": "off",
2277
+ "sonarjs/no-nested-functions": "off",
2278
+ "sonarjs/no-async-constructor": "off",
2279
+ "sonarjs/assertions-in-tests": "off",
2280
+ "sonarjs/function-return-type": "off",
2281
+ "sonarjs/no-unused-vars": "off",
2282
+ "sonarjs/no-invariant-returns": "off",
2283
+ "sonarjs/different-types-comparison": "off",
2284
+ "sonarjs/no-selector-parameter": "off",
2285
+ "sonarjs/anchor-precedence": "off",
2286
+ "sonarjs/redundant-type-aliases": "off",
2287
+ "sonarjs/no-redundant-optional": "off",
2288
+ "sonarjs/reduce-initial-value": "off",
2289
+ "sonarjs/no-globals-shadowing": "off",
2290
+ "sonarjs/use-type-alias": "off",
2291
+ "sonarjs/void-use": "off",
2292
+ "sonarjs/no-undefined-argument": "off",
2293
+ "sonarjs/no-useless-react-setstate": "off",
2294
+ "sonarjs/no-inverted-boolean-check": "off",
2295
+ "sonarjs/concise-regex": "off",
2296
+ "sonarjs/no-dead-store": "off",
2297
+ "sonarjs/public-static-readonly": "off",
2298
+ "sonarjs/code-eval": "off",
2299
+ "sonarjs/no-misleading-array-reverse": "off",
2300
+ "sonarjs/fixme-tag": "off",
2301
+ "sonarjs/argument-type": "off",
2302
+ "sonarjs/constructor-for-side-effects": "off",
2303
+ "sonarjs/no-useless-intersection": "off",
2304
+ "sonarjs/no-empty-test-file": "off",
2305
+ "sonarjs/prefer-default-last": "off",
2306
+ "sonarjs/prefer-promise-shorthand": "off",
2307
+ "sonarjs/no-unsafe-unzip": "off",
2308
+ "sonarjs/no-nested-assignment": "off",
2309
+ "sonarjs/generator-without-yield": "off",
2310
+ "sonarjs/no-try-promise": "off",
2311
+ "sonarjs/single-character-alternation": "off",
2312
+ "sonarjs/class-name": "off",
2313
+ "sonarjs/no-hardcoded-secrets": "off",
2314
+ "sonarjs/regex-complexity": "off",
2315
+ "sonarjs/post-message": "off",
2316
+ "sonarjs/link-with-target-blank": "off",
2317
+ "sonarjs/duplicates-in-character-class": "off",
2318
+ "sonarjs/arguments-order": "off",
2319
+ "sonarjs/empty-string-repetition": "off",
2320
+ "sonarjs/table-header": "off",
2321
+ "sonarjs/no-implicit-global": "off",
2322
+ "sonarjs/no-control-regex": "off",
1813
2323
  },
1814
2324
  },
1815
2325
  {
@@ -1895,7 +2405,7 @@ export default [
1895
2405
  },
1896
2406
  {
1897
2407
  plugins: {
1898
- "import-esm": plugin0009,
2408
+ "import-esm": plugin0008,
1899
2409
  },
1900
2410
  rules: {
1901
2411
  "import-esm/explicit-extension": "error",
@@ -1903,15 +2413,10 @@ export default [
1903
2413
  },
1904
2414
  {
1905
2415
  plugins: {
1906
- vitest: plugin0010,
2416
+ vitest: plugin0009,
1907
2417
  },
1908
2418
  rules: {
1909
- "vitest/expect-expect": "off",
1910
2419
  "vitest/no-conditional-expect": "error",
1911
- "vitest/no-disabled-tests": "warn",
1912
- "vitest/no-focused-tests": "warn",
1913
- "vitest/no-commented-out-tests": "warn",
1914
- "vitest/no-identical-title": "warn",
1915
2420
  "vitest/no-import-node-test": "error",
1916
2421
  "vitest/no-interpolation-in-snapshots": "error",
1917
2422
  "vitest/no-mocks-import": "error",
@@ -1920,9 +2425,32 @@ export default [
1920
2425
  "vitest/prefer-called-exactly-once-with": "error",
1921
2426
  "vitest/require-local-test-context-for-concurrent-snapshots": "error",
1922
2427
  "vitest/valid-describe-callback": "error",
1923
- "vitest/valid-expect": "warn",
1924
2428
  "vitest/valid-expect-in-promise": "error",
2429
+ "vitest/expect-expect": "off",
2430
+ "vitest/no-commented-out-tests": "warn",
1925
2431
  "vitest/valid-title": "error",
2432
+ "vitest/no-disabled-tests": "warn",
2433
+ "vitest/no-focused-tests": "warn",
2434
+ "vitest/no-identical-title": "warn",
2435
+ "vitest/valid-expect": "warn",
2436
+ },
2437
+ },
2438
+ {
2439
+ plugins: {
2440
+ "no-only-tests": plugin0010,
2441
+ },
2442
+ rules: {
2443
+ "no-only-tests/no-only-tests": [
2444
+ "error",
2445
+ {
2446
+ block: [
2447
+ "fixture",
2448
+ ],
2449
+ focus: [
2450
+ "only",
2451
+ ],
2452
+ },
2453
+ ],
1926
2454
  },
1927
2455
  },
1928
2456
  ];