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