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