@isentinel/eslint-config 0.7.2 → 0.7.4

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.
package/dist/index.cjs CHANGED
@@ -33,19 +33,19 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
33
33
  ));
34
34
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
35
35
 
36
- // node_modules/.pnpm/tsup@8.1.0_postcss@8.4.38_typescript@5.5.3/node_modules/tsup/assets/cjs_shims.js
36
+ // node_modules/.pnpm/tsup@8.2.3_jiti@1.21.6_postcss@8.4.38_tsx@4.15.4_typescript@5.5.4_yaml@2.5.0/node_modules/tsup/assets/cjs_shims.js
37
37
  var getImportMetaUrl, importMetaUrl;
38
38
  var init_cjs_shims = __esm({
39
- "node_modules/.pnpm/tsup@8.1.0_postcss@8.4.38_typescript@5.5.3/node_modules/tsup/assets/cjs_shims.js"() {
39
+ "node_modules/.pnpm/tsup@8.2.3_jiti@1.21.6_postcss@8.4.38_tsx@4.15.4_typescript@5.5.4_yaml@2.5.0/node_modules/tsup/assets/cjs_shims.js"() {
40
40
  "use strict";
41
- getImportMetaUrl = () => typeof document === "undefined" ? new URL("file:" + __filename).href : document.currentScript && document.currentScript.src || new URL("main.js", document.baseURI).href;
41
+ getImportMetaUrl = () => typeof document === "undefined" ? new URL(`file:${__filename}`).href : document.currentScript && document.currentScript.src || new URL("main.js", document.baseURI).href;
42
42
  importMetaUrl = /* @__PURE__ */ getImportMetaUrl();
43
43
  }
44
44
  });
45
45
 
46
- // node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.7.0/node_modules/eslint-plugin-simple-import-sort/shared.js
46
+ // node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.8.0/node_modules/eslint-plugin-simple-import-sort/shared.js
47
47
  var require_shared = __commonJS({
48
- "node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.7.0/node_modules/eslint-plugin-simple-import-sort/shared.js"(exports2, module2) {
48
+ "node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.8.0/node_modules/eslint-plugin-simple-import-sort/shared.js"(exports2, module2) {
49
49
  "use strict";
50
50
  init_cjs_shims();
51
51
  function extractChunks(parentNode, isPartOfChunk) {
@@ -584,9 +584,9 @@ var require_shared = __commonJS({
584
584
  }
585
585
  });
586
586
 
587
- // node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.7.0/node_modules/eslint-plugin-simple-import-sort/imports.js
587
+ // node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.8.0/node_modules/eslint-plugin-simple-import-sort/imports.js
588
588
  var require_imports = __commonJS({
589
- "node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.7.0/node_modules/eslint-plugin-simple-import-sort/imports.js"(exports2, module2) {
589
+ "node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.8.0/node_modules/eslint-plugin-simple-import-sort/imports.js"(exports2, module2) {
590
590
  "use strict";
591
591
  init_cjs_shims();
592
592
  var shared = require_shared();
@@ -712,9 +712,9 @@ var require_imports = __commonJS({
712
712
  }
713
713
  });
714
714
 
715
- // node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.7.0/node_modules/eslint-plugin-simple-import-sort/exports.js
715
+ // node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.8.0/node_modules/eslint-plugin-simple-import-sort/exports.js
716
716
  var require_exports = __commonJS({
717
- "node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.7.0/node_modules/eslint-plugin-simple-import-sort/exports.js"(exports2, module2) {
717
+ "node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.8.0/node_modules/eslint-plugin-simple-import-sort/exports.js"(exports2, module2) {
718
718
  "use strict";
719
719
  init_cjs_shims();
720
720
  var shared = require_shared();
@@ -804,9 +804,9 @@ var require_exports = __commonJS({
804
804
  }
805
805
  });
806
806
 
807
- // node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.7.0/node_modules/eslint-plugin-simple-import-sort/index.js
807
+ // node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.8.0/node_modules/eslint-plugin-simple-import-sort/index.js
808
808
  var require_eslint_plugin_simple_import_sort = __commonJS({
809
- "node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.7.0/node_modules/eslint-plugin-simple-import-sort/index.js"(exports2, module2) {
809
+ "node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.8.0/node_modules/eslint-plugin-simple-import-sort/index.js"(exports2, module2) {
810
810
  "use strict";
811
811
  init_cjs_shims();
812
812
  var importsRule = require_imports();
@@ -975,7 +975,7 @@ var import_isentinel_eslint_plugin_roblox_ts = __toESM(require("isentinel-eslint
975
975
  async function comments() {
976
976
  return [
977
977
  {
978
- name: "style:eslint-comments",
978
+ name: "style/eslint/comments",
979
979
  plugins: {
980
980
  "comment-length": (0, import_compat.fixupPluginRules)(import_eslint_plugin_comment_length.default),
981
981
  "eslint-comments": import_eslint_plugin_eslint_comments.default
@@ -1137,7 +1137,7 @@ async function stylistic(options = {}) {
1137
1137
  });
1138
1138
  return [
1139
1139
  {
1140
- name: "style:stylistic",
1140
+ name: "style/stylistic",
1141
1141
  plugins: {
1142
1142
  antfu: import_eslint_plugin_antfu.default,
1143
1143
  "arrow-style": import_eslint_plugin_arrow_return_style.default,
@@ -1220,7 +1220,7 @@ async function formatters(options = {}, stylistic2 = {}, markdownEnabled = true)
1220
1220
  );
1221
1221
  const configs = [
1222
1222
  {
1223
- name: "style:formatters:setup",
1223
+ name: "style/formatters/setup",
1224
1224
  plugins: {
1225
1225
  format: import_eslint_plugin_format.default
1226
1226
  }
@@ -1233,7 +1233,7 @@ async function formatters(options = {}, stylistic2 = {}, markdownEnabled = true)
1233
1233
  languageOptions: {
1234
1234
  parser: import_eslint_plugin_format.default.parserPlain
1235
1235
  },
1236
- name: "style:formatter:css",
1236
+ name: "style/formatter/css",
1237
1237
  rules: {
1238
1238
  "format/prettier": [
1239
1239
  "error",
@@ -1249,7 +1249,7 @@ async function formatters(options = {}, stylistic2 = {}, markdownEnabled = true)
1249
1249
  languageOptions: {
1250
1250
  parser: import_eslint_plugin_format.default.parserPlain
1251
1251
  },
1252
- name: "style:formatter:scss",
1252
+ name: "style/formatter/scss",
1253
1253
  rules: {
1254
1254
  "format/prettier": [
1255
1255
  "error",
@@ -1265,7 +1265,7 @@ async function formatters(options = {}, stylistic2 = {}, markdownEnabled = true)
1265
1265
  languageOptions: {
1266
1266
  parser: import_eslint_plugin_format.default.parserPlain
1267
1267
  },
1268
- name: "style:formatter:less",
1268
+ name: "style/formatter/less",
1269
1269
  rules: {
1270
1270
  "format/prettier": [
1271
1271
  "error",
@@ -1284,7 +1284,7 @@ async function formatters(options = {}, stylistic2 = {}, markdownEnabled = true)
1284
1284
  languageOptions: {
1285
1285
  parser: import_eslint_plugin_format.default.parserPlain
1286
1286
  },
1287
- name: "style:formatter:html",
1287
+ name: "style/formatter/html",
1288
1288
  rules: {
1289
1289
  "format/prettier": [
1290
1290
  "error",
@@ -1303,7 +1303,7 @@ async function formatters(options = {}, stylistic2 = {}, markdownEnabled = true)
1303
1303
  languageOptions: {
1304
1304
  parser: import_eslint_plugin_format.default.parserPlain
1305
1305
  },
1306
- name: "style:formatter:markdown",
1306
+ name: "style/formatter/markdown",
1307
1307
  rules: {
1308
1308
  [`format/${formatter}`]: [
1309
1309
  "error",
@@ -1325,7 +1325,7 @@ async function formatters(options = {}, stylistic2 = {}, markdownEnabled = true)
1325
1325
  languageOptions: {
1326
1326
  parser: import_eslint_plugin_format.default.parserPlain
1327
1327
  },
1328
- name: "style:formatter:graphql",
1328
+ name: "style/formatter/graphql",
1329
1329
  rules: {
1330
1330
  "format/prettier": [
1331
1331
  "error",
@@ -1345,7 +1345,8 @@ init_cjs_shims();
1345
1345
  async function ignores() {
1346
1346
  return [
1347
1347
  {
1348
- ignores: [...GLOB_EXCLUDE, GLOB_JS]
1348
+ ignores: [...GLOB_EXCLUDE, GLOB_JS],
1349
+ name: "style/ignores"
1349
1350
  }
1350
1351
  ];
1351
1352
  }
@@ -1356,7 +1357,7 @@ async function imports(options = {}) {
1356
1357
  const { stylistic: stylistic2 = true } = options;
1357
1358
  return [
1358
1359
  {
1359
- name: "style:imports",
1360
+ name: "style/imports",
1360
1361
  plugins: {
1361
1362
  antfu: import_eslint_plugin_antfu.default,
1362
1363
  import: pluginImport
@@ -1386,7 +1387,7 @@ async function imports(options = {}) {
1386
1387
  sourceType: "script"
1387
1388
  }
1388
1389
  },
1389
- name: "style:import-sort",
1390
+ name: "style/import-sort",
1390
1391
  plugins: {
1391
1392
  "simple-import-sort": import_eslint_plugin_simple_import_sort.default
1392
1393
  },
@@ -1417,7 +1418,7 @@ async function jsdoc(options = {}) {
1417
1418
  const { stylistic: stylistic2 = true } = options;
1418
1419
  return [
1419
1420
  {
1420
- name: "style:jsdoc",
1421
+ name: "style/jsdoc",
1421
1422
  plugins: {
1422
1423
  jsdoc: await interopDefault(import("eslint-plugin-jsdoc"))
1423
1424
  },
@@ -1454,6 +1455,7 @@ async function jsdoc(options = {}) {
1454
1455
  "jsdoc/require-returns": ["warn", { exemptedBy: ["hidden"] }],
1455
1456
  "jsdoc/require-returns-check": "warn",
1456
1457
  "jsdoc/require-returns-description": "warn",
1458
+ "jsdoc/require-template": "warn",
1457
1459
  "jsdoc/require-yields-check": "warn",
1458
1460
  "jsdoc/sort-tags": "off",
1459
1461
  ...stylistic2 ? {
@@ -1480,7 +1482,7 @@ async function jsonc(options = {}) {
1480
1482
  ]);
1481
1483
  return [
1482
1484
  {
1483
- name: "style:jsonc:setup",
1485
+ name: "style/jsonc/setup",
1484
1486
  plugins: {
1485
1487
  jsonc: pluginJsonc
1486
1488
  }
@@ -1490,7 +1492,7 @@ async function jsonc(options = {}) {
1490
1492
  languageOptions: {
1491
1493
  parser: parserJsonc
1492
1494
  },
1493
- name: "style:jsonc:rules",
1495
+ name: "style/jsonc/rules",
1494
1496
  rules: {
1495
1497
  "jsonc/no-bigint-literals": "error",
1496
1498
  "jsonc/no-binary-expression": "error",
@@ -1556,7 +1558,7 @@ async function markdown(options = {}) {
1556
1558
  const markdownPlugin = await interopDefault(import("eslint-plugin-markdown"));
1557
1559
  return [
1558
1560
  {
1559
- name: "style:markdown:setup",
1561
+ name: "style/markdown/setup",
1560
1562
  plugins: {
1561
1563
  markdownPlugin
1562
1564
  }
@@ -1564,7 +1566,7 @@ async function markdown(options = {}) {
1564
1566
  {
1565
1567
  files,
1566
1568
  ignores: [GLOB_MARKDOWN_IN_MARKDOWN],
1567
- name: "style:markdown:processor",
1569
+ name: "style/markdown/processor",
1568
1570
  // `eslint-plugin-markdown` only creates virtual files for code blocks,
1569
1571
  // but not the markdown file itself. We use `eslint-merge-processors` to
1570
1572
  // add a pass-through processor for the markdown file itself.
@@ -1575,7 +1577,7 @@ async function markdown(options = {}) {
1575
1577
  languageOptions: {
1576
1578
  parser: parserPlain
1577
1579
  },
1578
- name: "style:markdown:parser"
1580
+ name: "style/markdown/parser"
1579
1581
  },
1580
1582
  {
1581
1583
  files: [
@@ -1589,7 +1591,7 @@ async function markdown(options = {}) {
1589
1591
  }
1590
1592
  }
1591
1593
  },
1592
- name: "style:markdown:disables",
1594
+ name: "style/markdown/disables",
1593
1595
  rules: {
1594
1596
  "import/newline-after-import": "off",
1595
1597
  "no-alert": "off",
@@ -1629,7 +1631,7 @@ async function packageJson() {
1629
1631
  languageOptions: {
1630
1632
  parser: await interopDefault(import("jsonc-eslint-parser"))
1631
1633
  },
1632
- name: "style:package-json",
1634
+ name: "style/package-json",
1633
1635
  plugins: {
1634
1636
  "package-json": pluginPackageJson
1635
1637
  },
@@ -1653,7 +1655,7 @@ init_cjs_shims();
1653
1655
  async function perfectionist() {
1654
1656
  return [
1655
1657
  {
1656
- name: "style:perfectionist",
1658
+ name: "style/perfectionist",
1657
1659
  plugins: {
1658
1660
  perfectionist: import_eslint_plugin_perfectionist.default
1659
1661
  },
@@ -1667,7 +1669,9 @@ async function perfectionist() {
1667
1669
  "perfectionist/sort-maps": ["error", { type: "natural" }],
1668
1670
  "perfectionist/sort-object-types": ["error", { type: "natural" }],
1669
1671
  "perfectionist/sort-objects": ["error", { type: "natural" }],
1670
- "perfectionist/sort-union-types": ["error", { type: "natural" }]
1672
+ "perfectionist/sort-switch-case": ["error", { type: "natural" }],
1673
+ "perfectionist/sort-union-types": ["error", { type: "natural" }],
1674
+ "perfectionist/sort-variable-declarations": ["error", { type: "natural" }]
1671
1675
  }
1672
1676
  }
1673
1677
  ];
@@ -1704,6 +1708,7 @@ async function prettier(options) {
1704
1708
  return [
1705
1709
  {
1706
1710
  files,
1711
+ name: "style/prettier",
1707
1712
  plugins: {
1708
1713
  format: import_eslint_plugin_format.default
1709
1714
  },
@@ -1818,7 +1823,7 @@ init_cjs_shims();
1818
1823
  async function promise() {
1819
1824
  return [
1820
1825
  {
1821
- name: "style:promise",
1826
+ name: "style/promise",
1822
1827
  plugins: {
1823
1828
  promise: import_eslint_plugin_promise.default
1824
1829
  },
@@ -1876,7 +1881,7 @@ async function react(options = {}) {
1876
1881
  const tsconfigPath = options?.tsconfigPath ? toArray(options.tsconfigPath) : void 0;
1877
1882
  return [
1878
1883
  {
1879
- name: "style:react:setup",
1884
+ name: "style/react:setup",
1880
1885
  plugins: {
1881
1886
  react: plugins["@eslint-react"],
1882
1887
  "react-hooks": (0, import_compat2.fixupPluginRules)(pluginReactHooks),
@@ -1899,7 +1904,7 @@ async function react(options = {}) {
1899
1904
  },
1900
1905
  sourceType: "module"
1901
1906
  },
1902
- name: "style:react:rules",
1907
+ name: "style/react:rules",
1903
1908
  rules: {
1904
1909
  // recommended rules from @eslint-react
1905
1910
  "react/ensure-forward-ref-using-ref": "warn",
@@ -1914,14 +1919,14 @@ async function react(options = {}) {
1914
1919
  "react/no-class-component": "error",
1915
1920
  "react/no-clone-element": "warn",
1916
1921
  "react/no-comment-textnodes": "warn",
1917
- "react/no-complicated-conditional-rendering": "off",
1922
+ "react/no-complex-conditional-rendering": "error",
1918
1923
  "react/no-component-will-mount": "error",
1919
1924
  "react/no-component-will-receive-props": "error",
1920
1925
  "react/no-component-will-update": "error",
1921
1926
  "react/no-create-ref": "error",
1922
1927
  "react/no-direct-mutation-state": "error",
1923
1928
  "react/no-duplicate-key": "error",
1924
- "react/no-implicit-key": "off",
1929
+ "react/no-implicit-key": "error",
1925
1930
  "react/no-leaked-conditional-rendering": "warn",
1926
1931
  "react/no-missing-key": "error",
1927
1932
  "react/no-nested-components": "warn",
@@ -2030,7 +2035,7 @@ async function roblox(options = {}, formatLua = true) {
2030
2035
  ...parserOptions
2031
2036
  }
2032
2037
  },
2033
- name: "style:roblox",
2038
+ name: "style/roblox",
2034
2039
  plugins: {
2035
2040
  roblox: import_isentinel_eslint_plugin_roblox_ts.default
2036
2041
  },
@@ -2082,7 +2087,7 @@ var import_compat3 = require("@eslint/compat");
2082
2087
  async function shopify() {
2083
2088
  return [
2084
2089
  {
2085
- name: "style:shopify",
2090
+ name: "style/shopify",
2086
2091
  plugins: {
2087
2092
  shopify: (0, import_compat3.fixupPluginRules)(import_eslint_plugin2.default)
2088
2093
  },
@@ -2092,8 +2097,8 @@ async function shopify() {
2092
2097
  "shopify/prefer-module-scope-constants": "error",
2093
2098
  "shopify/react-hooks-strict-return": "error",
2094
2099
  "shopify/strict-component-boundaries": "error",
2095
- "shopify/typescript/prefer-pascal-case-enums": "error",
2096
- "shopify/typescript/prefer-singular-enums": "error"
2100
+ "shopify/typescript-prefer-pascal-case-enums": "error",
2101
+ "shopify/typescript-prefer-singular-enums": "error"
2097
2102
  },
2098
2103
  // Shopify has a dependency on 'eslint-plugin-react' so we need to
2099
2104
  // set the react version to avoid the warning.
@@ -2111,7 +2116,7 @@ init_cjs_shims();
2111
2116
  async function sonarjs() {
2112
2117
  return [
2113
2118
  {
2114
- name: "style:sonarjs",
2119
+ name: "style/sonarjs",
2115
2120
  plugins: {
2116
2121
  sonar: pluginSonar
2117
2122
  },
@@ -2160,7 +2165,7 @@ function sortTsconfig() {
2160
2165
  return [
2161
2166
  {
2162
2167
  files: ["**/tsconfig.json", "**/tsconfig.*.json"],
2163
- name: "style:sort-tsconfig",
2168
+ name: "style/sort-tsconfig",
2164
2169
  rules: {
2165
2170
  "jsonc/sort-keys": [
2166
2171
  "error",
@@ -2302,7 +2307,7 @@ async function spelling(options = {}) {
2302
2307
  return [
2303
2308
  {
2304
2309
  files,
2305
- name: "style:spelling",
2310
+ name: "style/spelling",
2306
2311
  plugins: {
2307
2312
  ["@cspell"]: import_eslint_plugin.default
2308
2313
  },
@@ -2347,7 +2352,7 @@ async function toml(options = {}) {
2347
2352
  ]);
2348
2353
  return [
2349
2354
  {
2350
- name: "antfu/toml/setup",
2355
+ name: "style/toml/setup",
2351
2356
  plugins: {
2352
2357
  toml: pluginToml
2353
2358
  }
@@ -2357,7 +2362,7 @@ async function toml(options = {}) {
2357
2362
  languageOptions: {
2358
2363
  parser: parserToml
2359
2364
  },
2360
- name: "antfu/toml/rules",
2365
+ name: "style/toml/rules",
2361
2366
  rules: {
2362
2367
  "style/spaced-comment": "off",
2363
2368
  "toml/comma-style": "error",
@@ -2399,7 +2404,6 @@ async function typescript(options = {}) {
2399
2404
  const typeAwareRules = {
2400
2405
  "dot-notation": "off",
2401
2406
  "no-implied-eval": "off",
2402
- "no-throw-literal": "off",
2403
2407
  "no-unsafe-optional-chaining": "error",
2404
2408
  "ts/await-thenable": "error",
2405
2409
  "ts/consistent-type-assertions": [
@@ -2433,19 +2437,20 @@ async function typescript(options = {}) {
2433
2437
  "ts/no-misused-promises": "error",
2434
2438
  "ts/no-mixed-enums": "error",
2435
2439
  "ts/no-redundant-type-constituents": "error",
2436
- "ts/no-throw-literal": "off",
2437
2440
  "ts/no-unnecessary-boolean-literal-compare": "error",
2438
2441
  "ts/no-unnecessary-condition": ["error", { allowConstantLoopConditions: true }],
2439
2442
  "ts/no-unnecessary-parameter-property-assignment": "error",
2440
2443
  "ts/no-unnecessary-qualifier": "error",
2444
+ "ts/no-unnecessary-template-expression": "error",
2441
2445
  "ts/no-unnecessary-type-arguments": "error",
2442
2446
  "ts/no-unnecessary-type-assertion": "error",
2447
+ "ts/no-unnecessary-type-constraint": "error",
2448
+ "ts/no-unnecessary-type-parameters": "error",
2443
2449
  "ts/no-unsafe-argument": "error",
2444
2450
  "ts/no-unsafe-assignment": "error",
2445
2451
  "ts/no-unsafe-call": "error",
2446
2452
  "ts/no-unsafe-member-access": "error",
2447
2453
  "ts/no-unsafe-return": "error",
2448
- "ts/no-useless-template-literals": "error",
2449
2454
  "ts/non-nullable-type-assertion-style": "error",
2450
2455
  "ts/prefer-destructuring": "error",
2451
2456
  "ts/prefer-find": "error",
@@ -2472,7 +2477,7 @@ async function typescript(options = {}) {
2472
2477
  {
2473
2478
  // Install the plugins without globs, so they can be configured
2474
2479
  // separately.
2475
- name: "style:typescript:setup",
2480
+ name: "style/typescript:setup",
2476
2481
  plugins: {
2477
2482
  antfu: import_eslint_plugin_antfu.default,
2478
2483
  "no-autofix": import_eslint_plugin_no_autofix.default,
@@ -2496,7 +2501,7 @@ async function typescript(options = {}) {
2496
2501
  ...parserOptions
2497
2502
  }
2498
2503
  },
2499
- name: "style:typescript:rules",
2504
+ name: "style/typescript:rules",
2500
2505
  rules: {
2501
2506
  ...renameRules(pluginTs.configs["eslint-recommended"].overrides?.[0].rules ?? {}, {
2502
2507
  "@typescript-eslint": "ts"
@@ -2565,7 +2570,7 @@ async function typescript(options = {}) {
2565
2570
  "object-shorthand": "error",
2566
2571
  "prefer-const": "off",
2567
2572
  "prefer-destructuring": "off",
2568
- "ts/adjacent-overload-signatures": "error",
2573
+ "ts/adjacent-overload-signatures": "off",
2569
2574
  "ts/array-type": [
2570
2575
  "error",
2571
2576
  {
@@ -2574,7 +2579,6 @@ async function typescript(options = {}) {
2574
2579
  }
2575
2580
  ],
2576
2581
  "ts/ban-ts-comment": ["error", { "ts-ignore": "allow-with-description" }],
2577
- "ts/ban-types": ["error", { types: { Function: false } }],
2578
2582
  "ts/consistent-generic-constructors": ["error", "constructor"],
2579
2583
  "ts/consistent-indexed-object-style": ["error", "record"],
2580
2584
  "ts/consistent-type-definitions": ["error", "interface"],
@@ -2604,7 +2608,7 @@ async function typescript(options = {}) {
2604
2608
  "ts/no-dupe-class-members": "error",
2605
2609
  "ts/no-dynamic-delete": "off",
2606
2610
  "ts/no-empty-function": "error",
2607
- "ts/no-empty-interface": "error",
2611
+ "ts/no-empty-object-type": ["error", { allowInterfaces: "always" }],
2608
2612
  "ts/no-explicit-any": "off",
2609
2613
  "ts/no-extraneous-class": "error",
2610
2614
  "ts/no-for-in-array": "off",
@@ -2617,17 +2621,18 @@ async function typescript(options = {}) {
2617
2621
  "ts/no-redeclare": "off",
2618
2622
  "ts/no-require-imports": "error",
2619
2623
  "ts/no-shadow": "error",
2620
- "ts/no-throw-literal": "off",
2621
2624
  "ts/no-unused-vars": [
2622
2625
  "error",
2623
2626
  {
2624
2627
  argsIgnorePattern: "^_",
2625
2628
  caughtErrorsIgnorePattern: "^_",
2629
+ reportUsedIgnorePattern: true,
2626
2630
  varsIgnorePattern: "^_"
2627
2631
  }
2628
2632
  ],
2629
2633
  "ts/no-use-before-define": "off",
2630
2634
  "ts/no-useless-constructor": "error",
2635
+ "ts/no-wrapper-object-types": "error",
2631
2636
  "ts/prefer-for-of": "error",
2632
2637
  "ts/prefer-function-type": "error",
2633
2638
  "ts/triple-slash-reference": "off",
@@ -2639,7 +2644,7 @@ async function typescript(options = {}) {
2639
2644
  },
2640
2645
  {
2641
2646
  files: ["**/*.d.ts"],
2642
- name: "style:typescript:dts-overrides",
2647
+ name: "style/typescript:dts-overrides",
2643
2648
  rules: {
2644
2649
  "eslint-comments/no-unlimited-disable": "off",
2645
2650
  "import/no-duplicates": "off",
@@ -2656,7 +2661,7 @@ init_cjs_shims();
2656
2661
  async function unicorn() {
2657
2662
  return [
2658
2663
  {
2659
- name: "style:unicorn",
2664
+ name: "style/unicorn",
2660
2665
  plugins: {
2661
2666
  unicorn: import_eslint_plugin_unicorn.default
2662
2667
  },
@@ -2761,7 +2766,7 @@ async function yaml(options = {}) {
2761
2766
  ]);
2762
2767
  return [
2763
2768
  {
2764
- name: "style:yaml:setup",
2769
+ name: "style/yaml:setup",
2765
2770
  plugins: {
2766
2771
  yaml: pluginYaml
2767
2772
  }
@@ -2771,16 +2776,18 @@ async function yaml(options = {}) {
2771
2776
  languageOptions: {
2772
2777
  parser: parserYaml
2773
2778
  },
2774
- name: "style:yaml:rules",
2779
+ name: "style/yaml:rules",
2775
2780
  rules: {
2776
2781
  "style/spaced-comment": "off",
2777
2782
  "yaml/block-mapping": "error",
2778
2783
  "yaml/block-sequence": "error",
2784
+ "yaml/file-extension": "error",
2779
2785
  "yaml/no-empty-key": "error",
2780
2786
  "yaml/no-empty-sequence-entry": "error",
2781
2787
  "yaml/no-irregular-whitespace": "error",
2782
2788
  "yaml/plain-scalar": "error",
2783
2789
  ...stylistic2 ? {
2790
+ "yaml/block-mapping-colon-indicator-newline": "error",
2784
2791
  "yaml/block-mapping-question-indicator-newline": "error",
2785
2792
  "yaml/block-sequence-hyphen-indicator-newline": "error",
2786
2793
  "yaml/flow-mapping-curly-newline": "error",