@debbl/eslint-config 3.10.1 → 3.10.2

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
@@ -57,7 +57,6 @@ __export(index_exports, {
57
57
  GLOB_YAML: () => GLOB_YAML,
58
58
  combine: () => combine,
59
59
  comments: () => comments,
60
- config: () => config,
61
60
  default: () => index_default,
62
61
  defineConfig: () => defineConfig,
63
62
  getConfigOptions: () => getConfigOptions,
@@ -756,7 +755,6 @@ async function perfectionist() {
756
755
  var prettier = async ({ tailwindcss: tailwindcss2, ...options }) => {
757
756
  const [pluginPrettier, configPrettier] = await Promise.all([
758
757
  interopDefault(import("eslint-plugin-prettier")),
759
- // @ts-expect-error missing types
760
758
  interopDefault(import("eslint-config-prettier"))
761
759
  ]);
762
760
  const defaultPrettierOptions = {
@@ -1243,8 +1241,8 @@ var typescript = async (options) => {
1243
1241
  prefer: "type-imports"
1244
1242
  }
1245
1243
  ],
1246
- "@typescript-eslint/method-signature-style": ["error", "property"],
1247
1244
  // https://www.totaltypescript.com/method-shorthand-syntax-considered-harmful
1245
+ "@typescript-eslint/method-signature-style": ["error", "property"],
1248
1246
  "@typescript-eslint/no-dupe-class-members": "error",
1249
1247
  "@typescript-eslint/no-dynamic-delete": "off",
1250
1248
  "@typescript-eslint/no-empty-object-type": [
@@ -1395,9 +1393,9 @@ var vue = async (options = {}) => {
1395
1393
  processor: pluginVue.processors[".vue"],
1396
1394
  rules: {
1397
1395
  ...pluginVue.configs.base.rules,
1398
- ...pluginVue.configs["vue3-essential"].rules,
1399
- ...pluginVue.configs["vue3-strongly-recommended"].rules,
1400
- ...pluginVue.configs["vue3-recommended"].rules,
1396
+ ...pluginVue.configs["flat/essential"].map((c) => c.rules).reduce((acc, c) => ({ ...acc, ...c }), {}),
1397
+ ...pluginVue.configs["flat/strongly-recommended"].map((c) => c.rules).reduce((acc, c) => ({ ...acc, ...c }), {}),
1398
+ ...pluginVue.configs["flat/recommended"].map((c) => c.rules).reduce((acc, c) => ({ ...acc, ...c }), {}),
1401
1399
  "node/prefer-global/process": "off",
1402
1400
  "vue/block-order": [
1403
1401
  "error",
@@ -1615,7 +1613,7 @@ var react = async (options) => {
1615
1613
  {
1616
1614
  name: "eslint/react/setup",
1617
1615
  plugins: {
1618
- "react-x": pluginReactX,
1616
+ "react": pluginReactX,
1619
1617
  "react-dom": pluginReactDom,
1620
1618
  "react-hooks-extra": pluginReactHooksExtra,
1621
1619
  "react-naming-convention": pluginReactNamingConvention,
@@ -1647,12 +1645,73 @@ var react = async (options) => {
1647
1645
  }
1648
1646
  },
1649
1647
  rules: {
1650
- ...pluginReactX.configs.recommended.rules,
1651
- ...pluginReactDom.configs.recommended.rules,
1652
- ...pluginReactHooksExtra.configs.recommended.rules,
1653
- ...pluginReactNamingConvention.configs.recommended.rules,
1654
- ...pluginReactWebApi.configs.recommended.rules,
1655
- ...pluginReactHooks.configs.recommended.rules,
1648
+ // recommended rules from eslint-plugin-react-x https://eslint-react.xyz/docs/rules/overview#core-rules
1649
+ "react/jsx-no-duplicate-props": "warn",
1650
+ "react/jsx-uses-vars": "warn",
1651
+ "react/no-access-state-in-setstate": "error",
1652
+ "react/no-array-index-key": "warn",
1653
+ "react/no-children-count": "warn",
1654
+ "react/no-children-for-each": "warn",
1655
+ "react/no-children-map": "warn",
1656
+ "react/no-children-only": "warn",
1657
+ "react/no-children-to-array": "warn",
1658
+ "react/no-clone-element": "warn",
1659
+ "react/no-comment-textnodes": "warn",
1660
+ "react/no-component-will-mount": "error",
1661
+ "react/no-component-will-receive-props": "error",
1662
+ "react/no-component-will-update": "error",
1663
+ "react/no-context-provider": "warn",
1664
+ "react/no-create-ref": "error",
1665
+ "react/no-default-props": "error",
1666
+ "react/no-direct-mutation-state": "error",
1667
+ "react/no-duplicate-key": "warn",
1668
+ "react/no-forward-ref": "warn",
1669
+ "react/no-implicit-key": "warn",
1670
+ "react/no-missing-key": "error",
1671
+ "react/no-nested-component-definitions": "error",
1672
+ "react/no-prop-types": "error",
1673
+ "react/no-redundant-should-component-update": "error",
1674
+ "react/no-set-state-in-component-did-mount": "warn",
1675
+ "react/no-set-state-in-component-did-update": "warn",
1676
+ "react/no-set-state-in-component-will-update": "warn",
1677
+ "react/no-string-refs": "error",
1678
+ "react/no-unsafe-component-will-mount": "warn",
1679
+ "react/no-unsafe-component-will-receive-props": "warn",
1680
+ "react/no-unsafe-component-will-update": "warn",
1681
+ "react/no-unstable-context-value": "warn",
1682
+ "react/no-unstable-default-props": "warn",
1683
+ "react/no-unused-class-component-members": "warn",
1684
+ "react/no-unused-state": "warn",
1685
+ "react/no-use-context": "warn",
1686
+ "react/no-useless-forward-ref": "warn",
1687
+ // recommended rules from eslint-plugin-react-dom https://eslint-react.xyz/docs/rules/overview#dom-rules
1688
+ "react-dom/no-dangerously-set-innerhtml": "warn",
1689
+ "react-dom/no-dangerously-set-innerhtml-with-children": "error",
1690
+ "react-dom/no-find-dom-node": "error",
1691
+ "react-dom/no-flush-sync": "error",
1692
+ "react-dom/no-hydrate": "error",
1693
+ "react-dom/no-missing-button-type": "warn",
1694
+ "react-dom/no-missing-iframe-sandbox": "warn",
1695
+ "react-dom/no-namespace": "error",
1696
+ "react-dom/no-render": "error",
1697
+ "react-dom/no-render-return-value": "error",
1698
+ "react-dom/no-script-url": "warn",
1699
+ "react-dom/no-unsafe-iframe-sandbox": "warn",
1700
+ "react-dom/no-unsafe-target-blank": "warn",
1701
+ "react-dom/no-use-form-state": "error",
1702
+ "react-dom/no-void-elements-with-children": "error",
1703
+ // recommended rules eslint-plugin-react-hooks https://github.com/facebook/react/tree/main/packages/eslint-plugin-react-hooks/src/rules
1704
+ "react-hooks/exhaustive-deps": "warn",
1705
+ "react-hooks/rules-of-hooks": "error",
1706
+ // recommended rules from eslint-plugin-react-hooks-extra https://eslint-react.xyz/docs/rules/overview#hooks-extra-rules
1707
+ "react-hooks-extra/no-direct-set-state-in-use-effect": "warn",
1708
+ "react-hooks-extra/no-unnecessary-use-prefix": "warn",
1709
+ "react-hooks-extra/prefer-use-state-lazy-initialization": "warn",
1710
+ // recommended rules from eslint-plugin-react-web-api https://eslint-react.xyz/docs/rules/overview#web-api-rules
1711
+ "react-web-api/no-leaked-event-listener": "warn",
1712
+ "react-web-api/no-leaked-interval": "warn",
1713
+ "react-web-api/no-leaked-resize-observer": "warn",
1714
+ "react-web-api/no-leaked-timeout": "warn",
1656
1715
  // React Refresh
1657
1716
  "react-refresh/only-export-components": "warn",
1658
1717
  // React Compiler
@@ -1694,7 +1753,7 @@ async function tailwindcss() {
1694
1753
  }
1695
1754
 
1696
1755
  // src/factory.ts
1697
- function defineConfig(options = {}) {
1756
+ function defineConfig(options = {}, ...userConfigs) {
1698
1757
  const {
1699
1758
  ignores: enableIgnores = true,
1700
1759
  vue: enableVue,
@@ -1771,13 +1830,12 @@ function defineConfig(options = {}) {
1771
1830
  })
1772
1831
  );
1773
1832
  }
1774
- const merged = combine(...configs, options.customConfig ?? []);
1833
+ const merged = combine(...configs, ...userConfigs);
1775
1834
  return merged;
1776
1835
  }
1777
- var config = defineConfig;
1778
1836
 
1779
1837
  // src/index.ts
1780
- var index_default = config;
1838
+ var index_default = defineConfig;
1781
1839
  // Annotate the CommonJS export names for ESM import in node:
1782
1840
  0 && (module.exports = {
1783
1841
  GLOB_ALL_SRC,
@@ -1807,7 +1865,6 @@ var index_default = config;
1807
1865
  GLOB_YAML,
1808
1866
  combine,
1809
1867
  comments,
1810
- config,
1811
1868
  defineConfig,
1812
1869
  getConfigOptions,
1813
1870
  ignores,
package/dist/index.d.cts CHANGED
@@ -210,20 +210,12 @@ interface OptionsConfig extends OptionsComponentExts {
210
210
  * @default false
211
211
  */
212
212
  tailwindcss?: boolean | "prettier";
213
- /**
214
- * Custom config
215
- */
216
- customConfig?: ConfigItem[] | ConfigItem;
217
213
  }
218
214
 
219
215
  /**
220
216
  * Construct an array of ESLint flat config items.
221
217
  */
222
- declare function defineConfig(options?: OptionsConfig): Promise<ConfigItem[]>;
223
- /**
224
- * @deprecated Use `defineConfig` instead.
225
- */
226
- declare const config: typeof defineConfig;
218
+ declare function defineConfig(options?: OptionsConfig, ...userConfigs: ConfigItem[]): Promise<ConfigItem[]>;
227
219
 
228
220
  declare const GLOB_SRC_EXT = "?([cm])[jt]s?(x)";
229
221
  declare const GLOB_SRC = "**/*.?([cm])[jt]s?(x)";
@@ -285,4 +277,4 @@ declare function interopDefault<T>(m: Awaitable<T>): Promise<T extends {
285
277
  } ? U : T>;
286
278
  declare function getConfigOptions<T>(options: T): {};
287
279
 
288
- export { type Awaitable, type ConfigFn, type ConfigItem, GLOB_ALL_SRC, GLOB_ASTRO_TS, GLOB_CSS, GLOB_EXCLUDE, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MDX, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_YAML, type GetConfigOption, type IgnoresConfig, type JavascriptConfig, type JsoncConfig, type MarkdownConfig, type OptionsComponentExts, type OptionsConfig, type OptionsHasTypeScript, type OptionsOverrides, type OptionsTypeScriptParserOptions, type OptionsTypeScriptWithTypes, type PrettierConfig, type PrettierRequiredOptions, type TestConfig, type TomlConfig, type TypeScriptConfig, type VueConfig, type YmlConfig, combine, comments, config, config as default, defineConfig, getConfigOptions, ignores, imports, interopDefault, javascript, jsdoc, jsonc, markdown, node, parserPlain, perfectionist, prettier, sortPackageJson, sortTsconfig, test, toml, typescript, unicorn, vue, yml };
280
+ export { type Awaitable, type ConfigFn, type ConfigItem, GLOB_ALL_SRC, GLOB_ASTRO_TS, GLOB_CSS, GLOB_EXCLUDE, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MDX, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_YAML, type GetConfigOption, type IgnoresConfig, type JavascriptConfig, type JsoncConfig, type MarkdownConfig, type OptionsComponentExts, type OptionsConfig, type OptionsHasTypeScript, type OptionsOverrides, type OptionsTypeScriptParserOptions, type OptionsTypeScriptWithTypes, type PrettierConfig, type PrettierRequiredOptions, type TestConfig, type TomlConfig, type TypeScriptConfig, type VueConfig, type YmlConfig, combine, comments, defineConfig as default, defineConfig, getConfigOptions, ignores, imports, interopDefault, javascript, jsdoc, jsonc, markdown, node, parserPlain, perfectionist, prettier, sortPackageJson, sortTsconfig, test, toml, typescript, unicorn, vue, yml };
package/dist/index.d.ts CHANGED
@@ -210,20 +210,12 @@ interface OptionsConfig extends OptionsComponentExts {
210
210
  * @default false
211
211
  */
212
212
  tailwindcss?: boolean | "prettier";
213
- /**
214
- * Custom config
215
- */
216
- customConfig?: ConfigItem[] | ConfigItem;
217
213
  }
218
214
 
219
215
  /**
220
216
  * Construct an array of ESLint flat config items.
221
217
  */
222
- declare function defineConfig(options?: OptionsConfig): Promise<ConfigItem[]>;
223
- /**
224
- * @deprecated Use `defineConfig` instead.
225
- */
226
- declare const config: typeof defineConfig;
218
+ declare function defineConfig(options?: OptionsConfig, ...userConfigs: ConfigItem[]): Promise<ConfigItem[]>;
227
219
 
228
220
  declare const GLOB_SRC_EXT = "?([cm])[jt]s?(x)";
229
221
  declare const GLOB_SRC = "**/*.?([cm])[jt]s?(x)";
@@ -285,4 +277,4 @@ declare function interopDefault<T>(m: Awaitable<T>): Promise<T extends {
285
277
  } ? U : T>;
286
278
  declare function getConfigOptions<T>(options: T): {};
287
279
 
288
- export { type Awaitable, type ConfigFn, type ConfigItem, GLOB_ALL_SRC, GLOB_ASTRO_TS, GLOB_CSS, GLOB_EXCLUDE, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MDX, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_YAML, type GetConfigOption, type IgnoresConfig, type JavascriptConfig, type JsoncConfig, type MarkdownConfig, type OptionsComponentExts, type OptionsConfig, type OptionsHasTypeScript, type OptionsOverrides, type OptionsTypeScriptParserOptions, type OptionsTypeScriptWithTypes, type PrettierConfig, type PrettierRequiredOptions, type TestConfig, type TomlConfig, type TypeScriptConfig, type VueConfig, type YmlConfig, combine, comments, config, config as default, defineConfig, getConfigOptions, ignores, imports, interopDefault, javascript, jsdoc, jsonc, markdown, node, parserPlain, perfectionist, prettier, sortPackageJson, sortTsconfig, test, toml, typescript, unicorn, vue, yml };
280
+ export { type Awaitable, type ConfigFn, type ConfigItem, GLOB_ALL_SRC, GLOB_ASTRO_TS, GLOB_CSS, GLOB_EXCLUDE, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MDX, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_YAML, type GetConfigOption, type IgnoresConfig, type JavascriptConfig, type JsoncConfig, type MarkdownConfig, type OptionsComponentExts, type OptionsConfig, type OptionsHasTypeScript, type OptionsOverrides, type OptionsTypeScriptParserOptions, type OptionsTypeScriptWithTypes, type PrettierConfig, type PrettierRequiredOptions, type TestConfig, type TomlConfig, type TypeScriptConfig, type VueConfig, type YmlConfig, combine, comments, defineConfig as default, defineConfig, getConfigOptions, ignores, imports, interopDefault, javascript, jsdoc, jsonc, markdown, node, parserPlain, perfectionist, prettier, sortPackageJson, sortTsconfig, test, toml, typescript, unicorn, vue, yml };
package/dist/index.js CHANGED
@@ -671,7 +671,6 @@ async function perfectionist() {
671
671
  var prettier = async ({ tailwindcss: tailwindcss2, ...options }) => {
672
672
  const [pluginPrettier, configPrettier] = await Promise.all([
673
673
  interopDefault(import("eslint-plugin-prettier")),
674
- // @ts-expect-error missing types
675
674
  interopDefault(import("eslint-config-prettier"))
676
675
  ]);
677
676
  const defaultPrettierOptions = {
@@ -1158,8 +1157,8 @@ var typescript = async (options) => {
1158
1157
  prefer: "type-imports"
1159
1158
  }
1160
1159
  ],
1161
- "@typescript-eslint/method-signature-style": ["error", "property"],
1162
1160
  // https://www.totaltypescript.com/method-shorthand-syntax-considered-harmful
1161
+ "@typescript-eslint/method-signature-style": ["error", "property"],
1163
1162
  "@typescript-eslint/no-dupe-class-members": "error",
1164
1163
  "@typescript-eslint/no-dynamic-delete": "off",
1165
1164
  "@typescript-eslint/no-empty-object-type": [
@@ -1310,9 +1309,9 @@ var vue = async (options = {}) => {
1310
1309
  processor: pluginVue.processors[".vue"],
1311
1310
  rules: {
1312
1311
  ...pluginVue.configs.base.rules,
1313
- ...pluginVue.configs["vue3-essential"].rules,
1314
- ...pluginVue.configs["vue3-strongly-recommended"].rules,
1315
- ...pluginVue.configs["vue3-recommended"].rules,
1312
+ ...pluginVue.configs["flat/essential"].map((c) => c.rules).reduce((acc, c) => ({ ...acc, ...c }), {}),
1313
+ ...pluginVue.configs["flat/strongly-recommended"].map((c) => c.rules).reduce((acc, c) => ({ ...acc, ...c }), {}),
1314
+ ...pluginVue.configs["flat/recommended"].map((c) => c.rules).reduce((acc, c) => ({ ...acc, ...c }), {}),
1316
1315
  "node/prefer-global/process": "off",
1317
1316
  "vue/block-order": [
1318
1317
  "error",
@@ -1530,7 +1529,7 @@ var react = async (options) => {
1530
1529
  {
1531
1530
  name: "eslint/react/setup",
1532
1531
  plugins: {
1533
- "react-x": pluginReactX,
1532
+ "react": pluginReactX,
1534
1533
  "react-dom": pluginReactDom,
1535
1534
  "react-hooks-extra": pluginReactHooksExtra,
1536
1535
  "react-naming-convention": pluginReactNamingConvention,
@@ -1562,12 +1561,73 @@ var react = async (options) => {
1562
1561
  }
1563
1562
  },
1564
1563
  rules: {
1565
- ...pluginReactX.configs.recommended.rules,
1566
- ...pluginReactDom.configs.recommended.rules,
1567
- ...pluginReactHooksExtra.configs.recommended.rules,
1568
- ...pluginReactNamingConvention.configs.recommended.rules,
1569
- ...pluginReactWebApi.configs.recommended.rules,
1570
- ...pluginReactHooks.configs.recommended.rules,
1564
+ // recommended rules from eslint-plugin-react-x https://eslint-react.xyz/docs/rules/overview#core-rules
1565
+ "react/jsx-no-duplicate-props": "warn",
1566
+ "react/jsx-uses-vars": "warn",
1567
+ "react/no-access-state-in-setstate": "error",
1568
+ "react/no-array-index-key": "warn",
1569
+ "react/no-children-count": "warn",
1570
+ "react/no-children-for-each": "warn",
1571
+ "react/no-children-map": "warn",
1572
+ "react/no-children-only": "warn",
1573
+ "react/no-children-to-array": "warn",
1574
+ "react/no-clone-element": "warn",
1575
+ "react/no-comment-textnodes": "warn",
1576
+ "react/no-component-will-mount": "error",
1577
+ "react/no-component-will-receive-props": "error",
1578
+ "react/no-component-will-update": "error",
1579
+ "react/no-context-provider": "warn",
1580
+ "react/no-create-ref": "error",
1581
+ "react/no-default-props": "error",
1582
+ "react/no-direct-mutation-state": "error",
1583
+ "react/no-duplicate-key": "warn",
1584
+ "react/no-forward-ref": "warn",
1585
+ "react/no-implicit-key": "warn",
1586
+ "react/no-missing-key": "error",
1587
+ "react/no-nested-component-definitions": "error",
1588
+ "react/no-prop-types": "error",
1589
+ "react/no-redundant-should-component-update": "error",
1590
+ "react/no-set-state-in-component-did-mount": "warn",
1591
+ "react/no-set-state-in-component-did-update": "warn",
1592
+ "react/no-set-state-in-component-will-update": "warn",
1593
+ "react/no-string-refs": "error",
1594
+ "react/no-unsafe-component-will-mount": "warn",
1595
+ "react/no-unsafe-component-will-receive-props": "warn",
1596
+ "react/no-unsafe-component-will-update": "warn",
1597
+ "react/no-unstable-context-value": "warn",
1598
+ "react/no-unstable-default-props": "warn",
1599
+ "react/no-unused-class-component-members": "warn",
1600
+ "react/no-unused-state": "warn",
1601
+ "react/no-use-context": "warn",
1602
+ "react/no-useless-forward-ref": "warn",
1603
+ // recommended rules from eslint-plugin-react-dom https://eslint-react.xyz/docs/rules/overview#dom-rules
1604
+ "react-dom/no-dangerously-set-innerhtml": "warn",
1605
+ "react-dom/no-dangerously-set-innerhtml-with-children": "error",
1606
+ "react-dom/no-find-dom-node": "error",
1607
+ "react-dom/no-flush-sync": "error",
1608
+ "react-dom/no-hydrate": "error",
1609
+ "react-dom/no-missing-button-type": "warn",
1610
+ "react-dom/no-missing-iframe-sandbox": "warn",
1611
+ "react-dom/no-namespace": "error",
1612
+ "react-dom/no-render": "error",
1613
+ "react-dom/no-render-return-value": "error",
1614
+ "react-dom/no-script-url": "warn",
1615
+ "react-dom/no-unsafe-iframe-sandbox": "warn",
1616
+ "react-dom/no-unsafe-target-blank": "warn",
1617
+ "react-dom/no-use-form-state": "error",
1618
+ "react-dom/no-void-elements-with-children": "error",
1619
+ // recommended rules eslint-plugin-react-hooks https://github.com/facebook/react/tree/main/packages/eslint-plugin-react-hooks/src/rules
1620
+ "react-hooks/exhaustive-deps": "warn",
1621
+ "react-hooks/rules-of-hooks": "error",
1622
+ // recommended rules from eslint-plugin-react-hooks-extra https://eslint-react.xyz/docs/rules/overview#hooks-extra-rules
1623
+ "react-hooks-extra/no-direct-set-state-in-use-effect": "warn",
1624
+ "react-hooks-extra/no-unnecessary-use-prefix": "warn",
1625
+ "react-hooks-extra/prefer-use-state-lazy-initialization": "warn",
1626
+ // recommended rules from eslint-plugin-react-web-api https://eslint-react.xyz/docs/rules/overview#web-api-rules
1627
+ "react-web-api/no-leaked-event-listener": "warn",
1628
+ "react-web-api/no-leaked-interval": "warn",
1629
+ "react-web-api/no-leaked-resize-observer": "warn",
1630
+ "react-web-api/no-leaked-timeout": "warn",
1571
1631
  // React Refresh
1572
1632
  "react-refresh/only-export-components": "warn",
1573
1633
  // React Compiler
@@ -1609,7 +1669,7 @@ async function tailwindcss() {
1609
1669
  }
1610
1670
 
1611
1671
  // src/factory.ts
1612
- function defineConfig(options = {}) {
1672
+ function defineConfig(options = {}, ...userConfigs) {
1613
1673
  const {
1614
1674
  ignores: enableIgnores = true,
1615
1675
  vue: enableVue,
@@ -1686,13 +1746,12 @@ function defineConfig(options = {}) {
1686
1746
  })
1687
1747
  );
1688
1748
  }
1689
- const merged = combine(...configs, options.customConfig ?? []);
1749
+ const merged = combine(...configs, ...userConfigs);
1690
1750
  return merged;
1691
1751
  }
1692
- var config = defineConfig;
1693
1752
 
1694
1753
  // src/index.ts
1695
- var index_default = config;
1754
+ var index_default = defineConfig;
1696
1755
  export {
1697
1756
  GLOB_ALL_SRC,
1698
1757
  GLOB_ASTRO_TS,
@@ -1721,7 +1780,6 @@ export {
1721
1780
  GLOB_YAML,
1722
1781
  combine,
1723
1782
  comments,
1724
- config,
1725
1783
  index_default as default,
1726
1784
  defineConfig,
1727
1785
  getConfigOptions,
package/package.json CHANGED
@@ -1,8 +1,7 @@
1
1
  {
2
2
  "name": "@debbl/eslint-config",
3
3
  "type": "module",
4
- "version": "3.10.1",
5
- "packageManager": "pnpm@10.5.2",
4
+ "version": "3.10.2",
6
5
  "description": "Brendan Dash's ESLint config",
7
6
  "author": "Brendan Dash <me@aiwan.run> (https://github.com/Debbl/)",
8
7
  "license": "MIT",
@@ -28,55 +27,55 @@
28
27
  },
29
28
  "dependencies": {
30
29
  "@eslint-community/eslint-plugin-eslint-comments": "^4.4.1",
31
- "@eslint-react/eslint-plugin": "^1.30.1",
32
- "@eslint/markdown": "^6.2.2",
33
- "@next/eslint-plugin-next": "^15.2.1",
34
- "@typescript-eslint/eslint-plugin": "^8.26.0",
35
- "@typescript-eslint/parser": "^8.26.0",
36
- "@vitest/eslint-plugin": "^1.1.36",
30
+ "@eslint-react/eslint-plugin": "^1.40.3",
31
+ "@eslint/markdown": "^6.3.0",
32
+ "@next/eslint-plugin-next": "^15.2.4",
33
+ "@typescript-eslint/eslint-plugin": "^8.29.0",
34
+ "@typescript-eslint/parser": "^8.29.0",
35
+ "@vitest/eslint-plugin": "^1.1.39",
37
36
  "eslint-config-flat-gitignore": "^2.1.0",
38
- "eslint-config-prettier": "^10.0.2",
39
- "eslint-plugin-import-x": "^4.6.1",
40
- "eslint-plugin-jsdoc": "^50.6.3",
41
- "eslint-plugin-jsonc": "^2.19.1",
42
- "eslint-plugin-n": "^17.16.2",
37
+ "eslint-config-prettier": "^10.1.1",
38
+ "eslint-plugin-import-x": "^4.10.0",
39
+ "eslint-plugin-jsdoc": "^50.6.9",
40
+ "eslint-plugin-jsonc": "^2.20.0",
41
+ "eslint-plugin-n": "^17.17.0",
43
42
  "eslint-plugin-no-only-tests": "^3.3.0",
44
- "eslint-plugin-perfectionist": "^4.9.0",
45
- "eslint-plugin-prettier": "^5.2.3",
43
+ "eslint-plugin-perfectionist": "^4.11.0",
44
+ "eslint-plugin-prettier": "^5.2.6",
46
45
  "eslint-plugin-react-compiler": "latest",
47
46
  "eslint-plugin-react-hooks": "^5.2.0",
48
47
  "eslint-plugin-react-refresh": "^0.4.19",
49
48
  "eslint-plugin-solid": "^0.14.5",
50
49
  "eslint-plugin-tailwindcss": "^3.18.0",
51
50
  "eslint-plugin-toml": "^0.12.0",
52
- "eslint-plugin-unicorn": "^57.0.0",
51
+ "eslint-plugin-unicorn": "^58.0.0",
53
52
  "eslint-plugin-unused-imports": "^4.1.4",
54
- "eslint-plugin-vue": "^9.32.0",
53
+ "eslint-plugin-vue": "^10.0.0",
55
54
  "eslint-plugin-yml": "^1.17.0",
56
55
  "globals": "^16.0.0",
57
56
  "jsonc-eslint-parser": "^2.4.0",
58
57
  "prettier": "^3.5.3",
59
58
  "prettier-plugin-tailwindcss": "^0.6.11",
60
59
  "toml-eslint-parser": "^0.10.0",
61
- "vue-eslint-parser": "^9.4.3",
60
+ "vue-eslint-parser": "^10.1.2",
62
61
  "yaml-eslint-parser": "^1.3.0"
63
62
  },
64
63
  "devDependencies": {
65
- "@eslint/config-inspector": "^1.0.1",
64
+ "@eslint/config-inspector": "^1.0.2",
66
65
  "@types/eslint": "^9.6.1",
67
66
  "@types/fs-extra": "^11.0.4",
68
- "@types/node": "^22.13.9",
69
- "@types/react": "^19.0.10",
70
- "bumpp": "^10.0.3",
71
- "eslint": "^9.21.0",
67
+ "@types/node": "^22.14.0",
68
+ "@types/react": "^19.1.0",
69
+ "bumpp": "^10.1.0",
70
+ "eslint": "^9.23.0",
72
71
  "execa": "^9.5.2",
73
72
  "fast-glob": "^3.3.3",
74
73
  "fs-extra": "^11.3.0",
75
- "react": "^19.0.0",
74
+ "react": "^19.1.0",
76
75
  "sucrase": "^3.35.0",
77
76
  "tsup": "^8.4.0",
78
77
  "typescript": "^5.8.2",
79
- "vitest": "^3.0.7"
78
+ "vitest": "^3.1.1"
80
79
  },
81
80
  "scripts": {
82
81
  "build": "tsup",