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