@vinicunca/eslint-config 4.6.0 → 4.7.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.
package/dist/index.d.mts CHANGED
@@ -441,6 +441,11 @@ interface RuleOptions {
441
441
  * @deprecated
442
442
  */
443
443
  'comma-style'?: Linter.RuleEntry<CommaStyle>;
444
+ /**
445
+ * Comment-as-command for one-off codemod with ESLint
446
+ * @see https://github.com/antfu/eslint-plugin-command
447
+ */
448
+ 'command/command'?: Linter.RuleEntry<[]>;
444
449
  /**
445
450
  * Enforce a maximum cyclomatic complexity allowed in a program
446
451
  * @see https://eslint.org/docs/latest/rules/complexity
@@ -509,6 +514,26 @@ interface RuleOptions {
509
514
  * @see https://eslint.org/docs/latest/rules/eqeqeq
510
515
  */
511
516
  'eqeqeq'?: Linter.RuleEntry<Eqeqeq>;
517
+ /**
518
+ * Avoid using TypeScript's enums.
519
+ * @see https://github.com/JoshuaKGoldberg/eslint-plugin-erasable-syntax-only/blob/main/docs/rules/enums.md
520
+ */
521
+ 'erasable-syntax-only/enums'?: Linter.RuleEntry<[]>;
522
+ /**
523
+ * Avoid using TypeScript's import aliases.
524
+ * @see https://github.com/JoshuaKGoldberg/eslint-plugin-erasable-syntax-only/blob/main/docs/rules/import-aliases.md
525
+ */
526
+ 'erasable-syntax-only/import-aliases'?: Linter.RuleEntry<[]>;
527
+ /**
528
+ * Avoid using TypeScript's namespaces.
529
+ * @see https://github.com/JoshuaKGoldberg/eslint-plugin-erasable-syntax-only/blob/main/docs/rules/namespaces.md
530
+ */
531
+ 'erasable-syntax-only/namespaces'?: Linter.RuleEntry<[]>;
532
+ /**
533
+ * Avoid using TypeScript's class parameter properties.
534
+ * @see https://github.com/JoshuaKGoldberg/eslint-plugin-erasable-syntax-only/blob/main/docs/rules/parameter-properties.md
535
+ */
536
+ 'erasable-syntax-only/parameter-properties'?: Linter.RuleEntry<[]>;
512
537
  /**
513
538
  * require a `eslint-enable` comment for every `eslint-disable` comment
514
539
  * @see https://eslint-community.github.io/eslint-plugin-eslint-comments/rules/disable-enable-pair.html
@@ -563,6 +588,10 @@ interface RuleOptions {
563
588
  * Use dprint to format code
564
589
  */
565
590
  'format/dprint'?: Linter.RuleEntry<FormatDprint>;
591
+ /**
592
+ * Use oxfmt to format code
593
+ */
594
+ 'format/oxfmt'?: Linter.RuleEntry<FormatOxfmt>;
566
595
  /**
567
596
  * Use Prettier to format code
568
597
  */
@@ -1317,6 +1346,204 @@ interface RuleOptions {
1317
1346
  * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/vue-custom-block/no-parsing-error.html
1318
1347
  */
1319
1348
  'jsonc/vue-custom-block/no-parsing-error'?: Linter.RuleEntry<[]>;
1349
+ /**
1350
+ * Enforce emojis are wrapped in `<span>` and provide screen reader access.
1351
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/accessible-emoji.md
1352
+ * @deprecated
1353
+ */
1354
+ 'jsx-a11y/accessible-emoji'?: Linter.RuleEntry<JsxA11YAccessibleEmoji>;
1355
+ /**
1356
+ * Enforce all elements that require alternative text have meaningful information to relay back to end user.
1357
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/alt-text.md
1358
+ */
1359
+ 'jsx-a11y/alt-text'?: Linter.RuleEntry<JsxA11YAltText>;
1360
+ /**
1361
+ * Enforce `<a>` text to not exactly match "click here", "here", "link", or "a link".
1362
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/anchor-ambiguous-text.md
1363
+ */
1364
+ 'jsx-a11y/anchor-ambiguous-text'?: Linter.RuleEntry<JsxA11YAnchorAmbiguousText>;
1365
+ /**
1366
+ * Enforce all anchors to contain accessible content.
1367
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/anchor-has-content.md
1368
+ */
1369
+ 'jsx-a11y/anchor-has-content'?: Linter.RuleEntry<JsxA11YAnchorHasContent>;
1370
+ /**
1371
+ * Enforce all anchors are valid, navigable elements.
1372
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/anchor-is-valid.md
1373
+ */
1374
+ 'jsx-a11y/anchor-is-valid'?: Linter.RuleEntry<JsxA11YAnchorIsValid>;
1375
+ /**
1376
+ * Enforce elements with aria-activedescendant are tabbable.
1377
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-activedescendant-has-tabindex.md
1378
+ */
1379
+ 'jsx-a11y/aria-activedescendant-has-tabindex'?: Linter.RuleEntry<JsxA11YAriaActivedescendantHasTabindex>;
1380
+ /**
1381
+ * Enforce all `aria-*` props are valid.
1382
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-props.md
1383
+ */
1384
+ 'jsx-a11y/aria-props'?: Linter.RuleEntry<JsxA11YAriaProps>;
1385
+ /**
1386
+ * Enforce ARIA state and property values are valid.
1387
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-proptypes.md
1388
+ */
1389
+ 'jsx-a11y/aria-proptypes'?: Linter.RuleEntry<JsxA11YAriaProptypes>;
1390
+ /**
1391
+ * Enforce that elements with ARIA roles must use a valid, non-abstract ARIA role.
1392
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-role.md
1393
+ */
1394
+ 'jsx-a11y/aria-role'?: Linter.RuleEntry<JsxA11YAriaRole>;
1395
+ /**
1396
+ * Enforce that elements that do not support ARIA roles, states, and properties do not have those attributes.
1397
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-unsupported-elements.md
1398
+ */
1399
+ 'jsx-a11y/aria-unsupported-elements'?: Linter.RuleEntry<JsxA11YAriaUnsupportedElements>;
1400
+ /**
1401
+ * Enforce that autocomplete attributes are used correctly.
1402
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/autocomplete-valid.md
1403
+ */
1404
+ 'jsx-a11y/autocomplete-valid'?: Linter.RuleEntry<JsxA11YAutocompleteValid>;
1405
+ /**
1406
+ * Enforce a clickable non-interactive element has at least one keyboard event listener.
1407
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/click-events-have-key-events.md
1408
+ */
1409
+ 'jsx-a11y/click-events-have-key-events'?: Linter.RuleEntry<JsxA11YClickEventsHaveKeyEvents>;
1410
+ /**
1411
+ * Enforce that a control (an interactive element) has a text label.
1412
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/control-has-associated-label.md
1413
+ */
1414
+ 'jsx-a11y/control-has-associated-label'?: Linter.RuleEntry<JsxA11YControlHasAssociatedLabel>;
1415
+ /**
1416
+ * Enforce heading (`h1`, `h2`, etc) elements contain accessible content.
1417
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/heading-has-content.md
1418
+ */
1419
+ 'jsx-a11y/heading-has-content'?: Linter.RuleEntry<JsxA11YHeadingHasContent>;
1420
+ /**
1421
+ * Enforce `<html>` element has `lang` prop.
1422
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/html-has-lang.md
1423
+ */
1424
+ 'jsx-a11y/html-has-lang'?: Linter.RuleEntry<JsxA11YHtmlHasLang>;
1425
+ /**
1426
+ * Enforce iframe elements have a title attribute.
1427
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/iframe-has-title.md
1428
+ */
1429
+ 'jsx-a11y/iframe-has-title'?: Linter.RuleEntry<JsxA11YIframeHasTitle>;
1430
+ /**
1431
+ * Enforce `<img>` alt prop does not contain the word "image", "picture", or "photo".
1432
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/img-redundant-alt.md
1433
+ */
1434
+ 'jsx-a11y/img-redundant-alt'?: Linter.RuleEntry<JsxA11YImgRedundantAlt>;
1435
+ /**
1436
+ * Enforce that elements with interactive handlers like `onClick` must be focusable.
1437
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/interactive-supports-focus.md
1438
+ */
1439
+ 'jsx-a11y/interactive-supports-focus'?: Linter.RuleEntry<JsxA11YInteractiveSupportsFocus>;
1440
+ /**
1441
+ * Enforce that a `label` tag has a text label and an associated control.
1442
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/label-has-associated-control.md
1443
+ */
1444
+ 'jsx-a11y/label-has-associated-control'?: Linter.RuleEntry<JsxA11YLabelHasAssociatedControl>;
1445
+ /**
1446
+ * Enforce that `<label>` elements have the `htmlFor` prop.
1447
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/label-has-for.md
1448
+ * @deprecated
1449
+ */
1450
+ 'jsx-a11y/label-has-for'?: Linter.RuleEntry<JsxA11YLabelHasFor>;
1451
+ /**
1452
+ * Enforce lang attribute has a valid value.
1453
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/lang.md
1454
+ */
1455
+ 'jsx-a11y/lang'?: Linter.RuleEntry<JsxA11YLang>;
1456
+ /**
1457
+ * Enforces that `<audio>` and `<video>` elements must have a `<track>` for captions.
1458
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/media-has-caption.md
1459
+ */
1460
+ 'jsx-a11y/media-has-caption'?: Linter.RuleEntry<JsxA11YMediaHasCaption>;
1461
+ /**
1462
+ * Enforce that `onMouseOver`/`onMouseOut` are accompanied by `onFocus`/`onBlur` for keyboard-only users.
1463
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/mouse-events-have-key-events.md
1464
+ */
1465
+ 'jsx-a11y/mouse-events-have-key-events'?: Linter.RuleEntry<JsxA11YMouseEventsHaveKeyEvents>;
1466
+ /**
1467
+ * Enforce that the `accessKey` prop is not used on any element to avoid complications with keyboard commands used by a screen reader.
1468
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-access-key.md
1469
+ */
1470
+ 'jsx-a11y/no-access-key'?: Linter.RuleEntry<JsxA11YNoAccessKey>;
1471
+ /**
1472
+ * Disallow `aria-hidden="true"` from being set on focusable elements.
1473
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-aria-hidden-on-focusable.md
1474
+ */
1475
+ 'jsx-a11y/no-aria-hidden-on-focusable'?: Linter.RuleEntry<JsxA11YNoAriaHiddenOnFocusable>;
1476
+ /**
1477
+ * Enforce autoFocus prop is not used.
1478
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-autofocus.md
1479
+ */
1480
+ 'jsx-a11y/no-autofocus'?: Linter.RuleEntry<JsxA11YNoAutofocus>;
1481
+ /**
1482
+ * Enforce distracting elements are not used.
1483
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-distracting-elements.md
1484
+ */
1485
+ 'jsx-a11y/no-distracting-elements'?: Linter.RuleEntry<JsxA11YNoDistractingElements>;
1486
+ /**
1487
+ * Interactive elements should not be assigned non-interactive roles.
1488
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-interactive-element-to-noninteractive-role.md
1489
+ */
1490
+ 'jsx-a11y/no-interactive-element-to-noninteractive-role'?: Linter.RuleEntry<JsxA11YNoInteractiveElementToNoninteractiveRole>;
1491
+ /**
1492
+ * Non-interactive elements should not be assigned mouse or keyboard event listeners.
1493
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-noninteractive-element-interactions.md
1494
+ */
1495
+ 'jsx-a11y/no-noninteractive-element-interactions'?: Linter.RuleEntry<JsxA11YNoNoninteractiveElementInteractions>;
1496
+ /**
1497
+ * Non-interactive elements should not be assigned interactive roles.
1498
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-noninteractive-element-to-interactive-role.md
1499
+ */
1500
+ 'jsx-a11y/no-noninteractive-element-to-interactive-role'?: Linter.RuleEntry<JsxA11YNoNoninteractiveElementToInteractiveRole>;
1501
+ /**
1502
+ * `tabIndex` should only be declared on interactive elements.
1503
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-noninteractive-tabindex.md
1504
+ */
1505
+ 'jsx-a11y/no-noninteractive-tabindex'?: Linter.RuleEntry<JsxA11YNoNoninteractiveTabindex>;
1506
+ /**
1507
+ * Enforce usage of `onBlur` over `onChange` on select menus for accessibility.
1508
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-onchange.md
1509
+ * @deprecated
1510
+ */
1511
+ 'jsx-a11y/no-onchange'?: Linter.RuleEntry<JsxA11YNoOnchange>;
1512
+ /**
1513
+ * Enforce explicit role property is not the same as implicit/default role property on element.
1514
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-redundant-roles.md
1515
+ */
1516
+ 'jsx-a11y/no-redundant-roles'?: Linter.RuleEntry<JsxA11YNoRedundantRoles>;
1517
+ /**
1518
+ * Enforce that non-interactive, visible elements (such as `<div>`) that have click handlers use the role attribute.
1519
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-static-element-interactions.md
1520
+ */
1521
+ 'jsx-a11y/no-static-element-interactions'?: Linter.RuleEntry<JsxA11YNoStaticElementInteractions>;
1522
+ /**
1523
+ * Enforces using semantic DOM elements over the ARIA `role` property.
1524
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/prefer-tag-over-role.md
1525
+ */
1526
+ 'jsx-a11y/prefer-tag-over-role'?: Linter.RuleEntry<JsxA11YPreferTagOverRole>;
1527
+ /**
1528
+ * Enforce that elements with ARIA roles must have all required attributes for that role.
1529
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/role-has-required-aria-props.md
1530
+ */
1531
+ 'jsx-a11y/role-has-required-aria-props'?: Linter.RuleEntry<JsxA11YRoleHasRequiredAriaProps>;
1532
+ /**
1533
+ * Enforce that elements with explicit or implicit roles defined contain only `aria-*` properties supported by that `role`.
1534
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/role-supports-aria-props.md
1535
+ */
1536
+ 'jsx-a11y/role-supports-aria-props'?: Linter.RuleEntry<JsxA11YRoleSupportsAriaProps>;
1537
+ /**
1538
+ * Enforce `scope` prop is only used on `<th>` elements.
1539
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/scope.md
1540
+ */
1541
+ 'jsx-a11y/scope'?: Linter.RuleEntry<JsxA11YScope>;
1542
+ /**
1543
+ * Enforce `tabIndex` value is not greater than zero.
1544
+ * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/tabindex-no-positive.md
1545
+ */
1546
+ 'jsx-a11y/tabindex-no-positive'?: Linter.RuleEntry<JsxA11YTabindexNoPositive>;
1320
1547
  /**
1321
1548
  * Enforce the consistent use of either double or single quotes in JSX attributes
1322
1549
  * @see https://eslint.org/docs/latest/rules/jsx-quotes
@@ -1558,6 +1785,110 @@ interface RuleOptions {
1558
1785
  * @deprecated
1559
1786
  */
1560
1787
  'newline-per-chained-call'?: Linter.RuleEntry<NewlinePerChainedCall>;
1788
+ /**
1789
+ * Enforce font-display behavior with Google Fonts.
1790
+ * @see https://nextjs.org/docs/messages/google-font-display
1791
+ */
1792
+ 'next/google-font-display'?: Linter.RuleEntry<[]>;
1793
+ /**
1794
+ * Ensure `preconnect` is used with Google Fonts.
1795
+ * @see https://nextjs.org/docs/messages/google-font-preconnect
1796
+ */
1797
+ 'next/google-font-preconnect'?: Linter.RuleEntry<[]>;
1798
+ /**
1799
+ * Enforce `id` attribute on `next/script` components with inline content.
1800
+ * @see https://nextjs.org/docs/messages/inline-script-id
1801
+ */
1802
+ 'next/inline-script-id'?: Linter.RuleEntry<[]>;
1803
+ /**
1804
+ * Prefer `@next/third-parties/google` when using the inline script for Google Analytics and Tag Manager.
1805
+ * @see https://nextjs.org/docs/messages/next-script-for-ga
1806
+ */
1807
+ 'next/next-script-for-ga'?: Linter.RuleEntry<[]>;
1808
+ /**
1809
+ * Prevent assignment to the `module` variable.
1810
+ * @see https://nextjs.org/docs/messages/no-assign-module-variable
1811
+ */
1812
+ 'next/no-assign-module-variable'?: Linter.RuleEntry<[]>;
1813
+ /**
1814
+ * Prevent Client Components from being async functions.
1815
+ * @see https://nextjs.org/docs/messages/no-async-client-component
1816
+ */
1817
+ 'next/no-async-client-component'?: Linter.RuleEntry<[]>;
1818
+ /**
1819
+ * Prevent usage of `next/script`'s `beforeInteractive` strategy outside of `pages/_document.js`.
1820
+ * @see https://nextjs.org/docs/messages/no-before-interactive-script-outside-document
1821
+ */
1822
+ 'next/no-before-interactive-script-outside-document'?: Linter.RuleEntry<[]>;
1823
+ /**
1824
+ * Prevent manual stylesheet tags.
1825
+ * @see https://nextjs.org/docs/messages/no-css-tags
1826
+ */
1827
+ 'next/no-css-tags'?: Linter.RuleEntry<[]>;
1828
+ /**
1829
+ * Prevent importing `next/document` outside of `pages/_document.js`.
1830
+ * @see https://nextjs.org/docs/messages/no-document-import-in-page
1831
+ */
1832
+ 'next/no-document-import-in-page'?: Linter.RuleEntry<[]>;
1833
+ /**
1834
+ * Prevent duplicate usage of `<Head>` in `pages/_document.js`.
1835
+ * @see https://nextjs.org/docs/messages/no-duplicate-head
1836
+ */
1837
+ 'next/no-duplicate-head'?: Linter.RuleEntry<[]>;
1838
+ /**
1839
+ * Prevent usage of `<head>` element.
1840
+ * @see https://nextjs.org/docs/messages/no-head-element
1841
+ */
1842
+ 'next/no-head-element'?: Linter.RuleEntry<[]>;
1843
+ /**
1844
+ * Prevent usage of `next/head` in `pages/_document.js`.
1845
+ * @see https://nextjs.org/docs/messages/no-head-import-in-document
1846
+ */
1847
+ 'next/no-head-import-in-document'?: Linter.RuleEntry<[]>;
1848
+ /**
1849
+ * Prevent usage of `<a>` elements to navigate to internal Next.js pages.
1850
+ * @see https://nextjs.org/docs/messages/no-html-link-for-pages
1851
+ */
1852
+ 'next/no-html-link-for-pages'?: Linter.RuleEntry<NextNoHtmlLinkForPages>;
1853
+ /**
1854
+ * Prevent usage of `<img>` element due to slower LCP and higher bandwidth.
1855
+ * @see https://nextjs.org/docs/messages/no-img-element
1856
+ */
1857
+ 'next/no-img-element'?: Linter.RuleEntry<[]>;
1858
+ /**
1859
+ * Prevent page-only custom fonts.
1860
+ * @see https://nextjs.org/docs/messages/no-page-custom-font
1861
+ */
1862
+ 'next/no-page-custom-font'?: Linter.RuleEntry<[]>;
1863
+ /**
1864
+ * Prevent usage of `next/script` in `next/head` component.
1865
+ * @see https://nextjs.org/docs/messages/no-script-component-in-head
1866
+ */
1867
+ 'next/no-script-component-in-head'?: Linter.RuleEntry<[]>;
1868
+ /**
1869
+ * Prevent usage of `styled-jsx` in `pages/_document.js`.
1870
+ * @see https://nextjs.org/docs/messages/no-styled-jsx-in-document
1871
+ */
1872
+ 'next/no-styled-jsx-in-document'?: Linter.RuleEntry<[]>;
1873
+ /**
1874
+ * Prevent synchronous scripts.
1875
+ * @see https://nextjs.org/docs/messages/no-sync-scripts
1876
+ */
1877
+ 'next/no-sync-scripts'?: Linter.RuleEntry<[]>;
1878
+ /**
1879
+ * Prevent usage of `<title>` with `Head` component from `next/document`.
1880
+ * @see https://nextjs.org/docs/messages/no-title-in-document-head
1881
+ */
1882
+ 'next/no-title-in-document-head'?: Linter.RuleEntry<[]>;
1883
+ /**
1884
+ * Prevent common typos in Next.js data fetching functions.
1885
+ */
1886
+ 'next/no-typos'?: Linter.RuleEntry<[]>;
1887
+ /**
1888
+ * Prevent duplicate polyfills from Polyfill.io.
1889
+ * @see https://nextjs.org/docs/messages/no-unwanted-polyfillio
1890
+ */
1891
+ 'next/no-unwanted-polyfillio'?: Linter.RuleEntry<[]>;
1561
1892
  /**
1562
1893
  * Disallow the use of `alert`, `confirm`, and `prompt`
1563
1894
  * @see https://eslint.org/docs/latest/rules/no-alert
@@ -2520,6 +2851,11 @@ interface RuleOptions {
2520
2851
  * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-global/console.md
2521
2852
  */
2522
2853
  'node/prefer-global/console'?: Linter.RuleEntry<NodePreferGlobalConsole>;
2854
+ /**
2855
+ * enforce either `crypto` or `require("crypto").webcrypto`
2856
+ * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-global/crypto.md
2857
+ */
2858
+ 'node/prefer-global/crypto'?: Linter.RuleEntry<NodePreferGlobalCrypto>;
2523
2859
  /**
2524
2860
  * enforce either `process` or `require("process")`
2525
2861
  * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-global/process.md
@@ -2535,6 +2871,11 @@ interface RuleOptions {
2535
2871
  * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-global/text-encoder.md
2536
2872
  */
2537
2873
  'node/prefer-global/text-encoder'?: Linter.RuleEntry<NodePreferGlobalTextEncoder>;
2874
+ /**
2875
+ * enforce either global timer functions or `require("timers")`
2876
+ * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-global/timers.md
2877
+ */
2878
+ 'node/prefer-global/timers'?: Linter.RuleEntry<NodePreferGlobalTimers>;
2538
2879
  /**
2539
2880
  * enforce either `URL` or `require("url").URL`
2540
2881
  * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-global/url.md
@@ -2744,6 +3085,41 @@ interface RuleOptions {
2744
3085
  * @see https://perfectionist.dev/rules/sort-variable-declarations
2745
3086
  */
2746
3087
  'perfectionist/sort-variable-declarations'?: Linter.RuleEntry<PerfectionistSortVariableDeclarations>;
3088
+ /**
3089
+ * Enforce using "catalog:" in `package.json`
3090
+ * @see https://github.com/antfu/pnpm-workspace-utils/tree/main/packages/eslint-plugin-pnpm/src/rules/json/json-enforce-catalog.test.ts
3091
+ */
3092
+ 'pnpm/json-enforce-catalog'?: Linter.RuleEntry<PnpmJsonEnforceCatalog>;
3093
+ /**
3094
+ * Prefer having pnpm settings in `pnpm-workspace.yaml` instead of `package.json`. This requires pnpm v10.6+, see https://github.com/orgs/pnpm/discussions/9037.
3095
+ * @see https://github.com/antfu/pnpm-workspace-utils/tree/main/packages/eslint-plugin-pnpm/src/rules/json/json-prefer-workspace-settings.test.ts
3096
+ */
3097
+ 'pnpm/json-prefer-workspace-settings'?: Linter.RuleEntry<PnpmJsonPreferWorkspaceSettings>;
3098
+ /**
3099
+ * Enforce using valid catalog in `package.json`
3100
+ * @see https://github.com/antfu/pnpm-workspace-utils/tree/main/packages/eslint-plugin-pnpm/src/rules/json/json-valid-catalog.test.ts
3101
+ */
3102
+ 'pnpm/json-valid-catalog'?: Linter.RuleEntry<PnpmJsonValidCatalog>;
3103
+ /**
3104
+ * Enforce settings in `pnpm-workspace.yaml`
3105
+ * @see https://github.com/antfu/pnpm-workspace-utils/tree/main/packages/eslint-plugin-pnpm/src/rules/yaml/yaml-enforce-settings.test.ts
3106
+ */
3107
+ 'pnpm/yaml-enforce-settings'?: Linter.RuleEntry<PnpmYamlEnforceSettings>;
3108
+ /**
3109
+ * Disallow duplicate catalog items in `pnpm-workspace.yaml`
3110
+ * @see https://github.com/antfu/pnpm-workspace-utils/tree/main/packages/eslint-plugin-pnpm/src/rules/yaml/yaml-no-duplicate-catalog-item.test.ts
3111
+ */
3112
+ 'pnpm/yaml-no-duplicate-catalog-item'?: Linter.RuleEntry<PnpmYamlNoDuplicateCatalogItem>;
3113
+ /**
3114
+ * Disallow unused catalogs in `pnpm-workspace.yaml`
3115
+ * @see https://github.com/antfu/pnpm-workspace-utils/tree/main/packages/eslint-plugin-pnpm/src/rules/yaml/yaml-no-unused-catalog-item.test.ts
3116
+ */
3117
+ 'pnpm/yaml-no-unused-catalog-item'?: Linter.RuleEntry<[]>;
3118
+ /**
3119
+ * Ensure all package patterns in `pnpm-workspace.yaml` match at least one directory
3120
+ * @see https://github.com/antfu/pnpm-workspace-utils/tree/main/packages/eslint-plugin-pnpm/src/rules/yaml/yaml-valid-packages.test.ts
3121
+ */
3122
+ 'pnpm/yaml-valid-packages'?: Linter.RuleEntry<[]>;
2747
3123
  /**
2748
3124
  * Require using arrow functions for callbacks
2749
3125
  * @see https://eslint.org/docs/latest/rules/prefer-arrow-callback
@@ -2833,7 +3209,7 @@ interface RuleOptions {
2833
3209
  */
2834
3210
  'quotes'?: Linter.RuleEntry<Quotes>;
2835
3211
  /**
2836
- * Enforce the consistent use of the radix argument when using `parseInt()`
3212
+ * Enforce the use of the radix argument when using `parseInt()`
2837
3213
  * @see https://eslint.org/docs/latest/rules/radix
2838
3214
  */
2839
3215
  'radix'?: Linter.RuleEntry<Radix>;
@@ -3070,6 +3446,11 @@ interface RuleOptions {
3070
3446
  * @see https://eslint-react.xyz/docs/rules/naming-convention-filename-extension
3071
3447
  */
3072
3448
  'react-naming-convention/filename-extension'?: Linter.RuleEntry<ReactNamingConventionFilenameExtension>;
3449
+ /**
3450
+ * Enforces identifier names assigned from 'useId' calls to be either 'id' or end with 'Id'.
3451
+ * @see https://eslint-react.xyz/docs/rules/naming-convention-id-name
3452
+ */
3453
+ 'react-naming-convention/id-name'?: Linter.RuleEntry<[]>;
3073
3454
  /**
3074
3455
  * Enforces identifier names assigned from 'useRef' calls to be either 'ref' or end with 'Ref'.
3075
3456
  * @see https://eslint-react.xyz/docs/rules/naming-convention-ref-name
@@ -3107,7 +3488,7 @@ interface RuleOptions {
3107
3488
  */
3108
3489
  'react-web-api/no-leaked-timeout'?: Linter.RuleEntry<[]>;
3109
3490
  /**
3110
- * Prevents unnecessary '$' symbols before JSX expressions.
3491
+ * Prevents unintentional '$' sign before expression.
3111
3492
  * @see https://eslint-react.xyz/docs/rules/jsx-dollar
3112
3493
  */
3113
3494
  'react/jsx-dollar'?: Linter.RuleEntry<[]>;
@@ -6731,11 +7112,21 @@ interface RuleOptions {
6731
7112
  * @see https://ota-meshi.github.io/eslint-plugin-toml/rules/indent.html
6732
7113
  */
6733
7114
  'toml/indent'?: Linter.RuleEntry<TomlIndent>;
7115
+ /**
7116
+ * enforce linebreaks after opening and before closing braces
7117
+ * @see https://ota-meshi.github.io/eslint-plugin-toml/rules/inline-table-curly-newline.html
7118
+ */
7119
+ 'toml/inline-table-curly-newline'?: Linter.RuleEntry<TomlInlineTableCurlyNewline>;
6734
7120
  /**
6735
7121
  * enforce consistent spacing inside braces
6736
7122
  * @see https://ota-meshi.github.io/eslint-plugin-toml/rules/inline-table-curly-spacing.html
6737
7123
  */
6738
7124
  'toml/inline-table-curly-spacing'?: Linter.RuleEntry<TomlInlineTableCurlySpacing>;
7125
+ /**
7126
+ * enforce placing inline table key-value pairs on separate lines
7127
+ * @see https://ota-meshi.github.io/eslint-plugin-toml/rules/inline-table-key-value-newline.html
7128
+ */
7129
+ 'toml/inline-table-key-value-newline'?: Linter.RuleEntry<TomlInlineTableKeyValueNewline>;
6739
7130
  /**
6740
7131
  * enforce consistent spacing between keys and values in key/value pairs
6741
7132
  * @see https://ota-meshi.github.io/eslint-plugin-toml/rules/key-spacing.html
@@ -8272,6 +8663,99 @@ interface RuleOptions {
8272
8663
  * @see https://eslint.org/docs/latest/rules/vars-on-top
8273
8664
  */
8274
8665
  'vars-on-top'?: Linter.RuleEntry<[]>;
8666
+ /**
8667
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/alt-text.html
8668
+ */
8669
+ 'vue-a11y/alt-text'?: Linter.RuleEntry<VueA11YAltText>;
8670
+ /**
8671
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/anchor-has-content.html
8672
+ */
8673
+ 'vue-a11y/anchor-has-content'?: Linter.RuleEntry<VueA11YAnchorHasContent>;
8674
+ /**
8675
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/aria-props.html
8676
+ */
8677
+ 'vue-a11y/aria-props'?: Linter.RuleEntry<[]>;
8678
+ /**
8679
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/aria-role.html
8680
+ */
8681
+ 'vue-a11y/aria-role'?: Linter.RuleEntry<VueA11YAriaRole>;
8682
+ /**
8683
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/aria-unsupported-elements.html
8684
+ */
8685
+ 'vue-a11y/aria-unsupported-elements'?: Linter.RuleEntry<[]>;
8686
+ /**
8687
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/click-events-have-key-events.html
8688
+ */
8689
+ 'vue-a11y/click-events-have-key-events'?: Linter.RuleEntry<[]>;
8690
+ /**
8691
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/form-control-has-label.html
8692
+ */
8693
+ 'vue-a11y/form-control-has-label'?: Linter.RuleEntry<VueA11YFormControlHasLabel>;
8694
+ /**
8695
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/heading-has-content.html
8696
+ */
8697
+ 'vue-a11y/heading-has-content'?: Linter.RuleEntry<VueA11YHeadingHasContent>;
8698
+ /**
8699
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/iframe-has-title.html
8700
+ */
8701
+ 'vue-a11y/iframe-has-title'?: Linter.RuleEntry<[]>;
8702
+ /**
8703
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/interactive-supports-focus.html
8704
+ */
8705
+ 'vue-a11y/interactive-supports-focus'?: Linter.RuleEntry<VueA11YInteractiveSupportsFocus>;
8706
+ /**
8707
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/label-has-for.html
8708
+ */
8709
+ 'vue-a11y/label-has-for'?: Linter.RuleEntry<VueA11YLabelHasFor>;
8710
+ /**
8711
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/media-has-caption.html
8712
+ */
8713
+ 'vue-a11y/media-has-caption'?: Linter.RuleEntry<VueA11YMediaHasCaption>;
8714
+ /**
8715
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/mouse-events-have-key-events.html
8716
+ */
8717
+ 'vue-a11y/mouse-events-have-key-events'?: Linter.RuleEntry<[]>;
8718
+ /**
8719
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-access-key.html
8720
+ */
8721
+ 'vue-a11y/no-access-key'?: Linter.RuleEntry<[]>;
8722
+ /**
8723
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-aria-hidden-on-focusable.html
8724
+ */
8725
+ 'vue-a11y/no-aria-hidden-on-focusable'?: Linter.RuleEntry<[]>;
8726
+ /**
8727
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-autofocus.html
8728
+ */
8729
+ 'vue-a11y/no-autofocus'?: Linter.RuleEntry<VueA11YNoAutofocus>;
8730
+ /**
8731
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-distracting-elements.html
8732
+ */
8733
+ 'vue-a11y/no-distracting-elements'?: Linter.RuleEntry<VueA11YNoDistractingElements>;
8734
+ /**
8735
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-onchange.html
8736
+ * @deprecated
8737
+ */
8738
+ 'vue-a11y/no-onchange'?: Linter.RuleEntry<[]>;
8739
+ /**
8740
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-redundant-roles.html
8741
+ */
8742
+ 'vue-a11y/no-redundant-roles'?: Linter.RuleEntry<VueA11YNoRedundantRoles>;
8743
+ /**
8744
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-role-presentation-on-focusable.html
8745
+ */
8746
+ 'vue-a11y/no-role-presentation-on-focusable'?: Linter.RuleEntry<[]>;
8747
+ /**
8748
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-static-element-interactions.html
8749
+ */
8750
+ 'vue-a11y/no-static-element-interactions'?: Linter.RuleEntry<[]>;
8751
+ /**
8752
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/role-has-required-aria-props.html
8753
+ */
8754
+ 'vue-a11y/role-has-required-aria-props'?: Linter.RuleEntry<[]>;
8755
+ /**
8756
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/tabindex-no-positive.html
8757
+ */
8758
+ 'vue-a11y/tabindex-no-positive'?: Linter.RuleEntry<[]>;
8275
8759
  /**
8276
8760
  * Enforce linebreaks after opening and before closing array brackets in `<template>`
8277
8761
  * @see https://eslint.vuejs.org/rules/array-bracket-newline.html
@@ -9470,7 +9954,7 @@ interface RuleOptions {
9470
9954
  * enforce valid `v-for` directives
9471
9955
  * @see https://eslint.vuejs.org/rules/valid-v-for.html
9472
9956
  */
9473
- 'vue/valid-v-for'?: Linter.RuleEntry<[]>;
9957
+ 'vue/valid-v-for'?: Linter.RuleEntry<VueValidVFor>;
9474
9958
  /**
9475
9959
  * enforce valid `v-html` directives
9476
9960
  * @see https://eslint.vuejs.org/rules/valid-v-html.html
@@ -10095,6 +10579,10 @@ type FormatDprint = [] | [{
10095
10579
  plugins?: unknown[];
10096
10580
  [k: string]: unknown | undefined;
10097
10581
  }];
10582
+ // ----- format/oxfmt -----
10583
+ type FormatOxfmt = [] | [{
10584
+ [k: string]: unknown | undefined;
10585
+ }];
10098
10586
  // ----- format/prettier -----
10099
10587
  type FormatPrettier = [] | [{
10100
10588
  parser: string;
@@ -10749,6 +11237,7 @@ type JsdocTagLines = [] | [("always" | "any" | "never")] | [("always" | "any" |
10749
11237
  endLines?: (number | null);
10750
11238
  maxBlockLines?: (number | null);
10751
11239
  startLines?: (number | null);
11240
+ startLinesWithNoTags?: number;
10752
11241
  tags?: {
10753
11242
  [k: string]: {
10754
11243
  count?: number;
@@ -10977,6 +11466,7 @@ type JsoncObjectCurlyNewline = [] | [((("always" | "never") | {
10977
11466
  type JsoncObjectCurlySpacing = [] | [("always" | "never")] | [("always" | "never"), {
10978
11467
  arraysInObjects?: boolean;
10979
11468
  objectsInObjects?: boolean;
11469
+ emptyObjects?: ("ignore" | "always" | "never");
10980
11470
  }];
10981
11471
  // ----- jsonc/object-property-newline -----
10982
11472
  type JsoncObjectPropertyNewline = [] | [{
@@ -11075,6 +11565,209 @@ type JsoncSpaceUnaryOps = [] | [{
11075
11565
  [k: string]: boolean | undefined;
11076
11566
  };
11077
11567
  }];
11568
+ // ----- jsx-a11y/accessible-emoji -----
11569
+ type JsxA11YAccessibleEmoji = [] | [{
11570
+ [k: string]: unknown | undefined;
11571
+ }];
11572
+ // ----- jsx-a11y/alt-text -----
11573
+ type JsxA11YAltText = [] | [{
11574
+ elements?: string[];
11575
+ img?: string[];
11576
+ object?: string[];
11577
+ area?: string[];
11578
+ "input[type=\"image\"]"?: string[];
11579
+ [k: string]: unknown | undefined;
11580
+ }];
11581
+ // ----- jsx-a11y/anchor-ambiguous-text -----
11582
+ type JsxA11YAnchorAmbiguousText = [] | [{
11583
+ words?: string[];
11584
+ [k: string]: unknown | undefined;
11585
+ }];
11586
+ // ----- jsx-a11y/anchor-has-content -----
11587
+ type JsxA11YAnchorHasContent = [] | [{
11588
+ components?: string[];
11589
+ [k: string]: unknown | undefined;
11590
+ }];
11591
+ // ----- jsx-a11y/anchor-is-valid -----
11592
+ type JsxA11YAnchorIsValid = [] | [{
11593
+ components?: string[];
11594
+ specialLink?: string[];
11595
+ aspects?: [("noHref" | "invalidHref" | "preferButton"), ...(("noHref" | "invalidHref" | "preferButton"))[]];
11596
+ [k: string]: unknown | undefined;
11597
+ }];
11598
+ // ----- jsx-a11y/aria-activedescendant-has-tabindex -----
11599
+ type JsxA11YAriaActivedescendantHasTabindex = [] | [{
11600
+ [k: string]: unknown | undefined;
11601
+ }];
11602
+ // ----- jsx-a11y/aria-props -----
11603
+ type JsxA11YAriaProps = [] | [{
11604
+ [k: string]: unknown | undefined;
11605
+ }];
11606
+ // ----- jsx-a11y/aria-proptypes -----
11607
+ type JsxA11YAriaProptypes = [] | [{
11608
+ [k: string]: unknown | undefined;
11609
+ }];
11610
+ // ----- jsx-a11y/aria-role -----
11611
+ type JsxA11YAriaRole = [] | [{
11612
+ allowedInvalidRoles?: string[];
11613
+ ignoreNonDOM?: boolean;
11614
+ [k: string]: unknown | undefined;
11615
+ }];
11616
+ // ----- jsx-a11y/aria-unsupported-elements -----
11617
+ type JsxA11YAriaUnsupportedElements = [] | [{
11618
+ [k: string]: unknown | undefined;
11619
+ }];
11620
+ // ----- jsx-a11y/autocomplete-valid -----
11621
+ type JsxA11YAutocompleteValid = [] | [{
11622
+ inputComponents?: string[];
11623
+ [k: string]: unknown | undefined;
11624
+ }];
11625
+ // ----- jsx-a11y/click-events-have-key-events -----
11626
+ type JsxA11YClickEventsHaveKeyEvents = [] | [{
11627
+ [k: string]: unknown | undefined;
11628
+ }];
11629
+ // ----- jsx-a11y/control-has-associated-label -----
11630
+ type JsxA11YControlHasAssociatedLabel = [] | [{
11631
+ labelAttributes?: string[];
11632
+ controlComponents?: string[];
11633
+ ignoreElements?: string[];
11634
+ ignoreRoles?: string[];
11635
+ depth?: number;
11636
+ [k: string]: unknown | undefined;
11637
+ }];
11638
+ // ----- jsx-a11y/heading-has-content -----
11639
+ type JsxA11YHeadingHasContent = [] | [{
11640
+ components?: string[];
11641
+ [k: string]: unknown | undefined;
11642
+ }];
11643
+ // ----- jsx-a11y/html-has-lang -----
11644
+ type JsxA11YHtmlHasLang = [] | [{
11645
+ [k: string]: unknown | undefined;
11646
+ }];
11647
+ // ----- jsx-a11y/iframe-has-title -----
11648
+ type JsxA11YIframeHasTitle = [] | [{
11649
+ [k: string]: unknown | undefined;
11650
+ }];
11651
+ // ----- jsx-a11y/img-redundant-alt -----
11652
+ type JsxA11YImgRedundantAlt = [] | [{
11653
+ components?: string[];
11654
+ words?: string[];
11655
+ [k: string]: unknown | undefined;
11656
+ }];
11657
+ // ----- jsx-a11y/interactive-supports-focus -----
11658
+ type JsxA11YInteractiveSupportsFocus = [] | [{
11659
+ tabbable?: ("button" | "checkbox" | "columnheader" | "combobox" | "grid" | "gridcell" | "link" | "listbox" | "menu" | "menubar" | "menuitem" | "menuitemcheckbox" | "menuitemradio" | "option" | "progressbar" | "radio" | "radiogroup" | "row" | "rowheader" | "scrollbar" | "searchbox" | "slider" | "spinbutton" | "switch" | "tab" | "tablist" | "textbox" | "tree" | "treegrid" | "treeitem" | "doc-backlink" | "doc-biblioref" | "doc-glossref" | "doc-noteref")[];
11660
+ [k: string]: unknown | undefined;
11661
+ }];
11662
+ // ----- jsx-a11y/label-has-associated-control -----
11663
+ type JsxA11YLabelHasAssociatedControl = [] | [{
11664
+ labelComponents?: string[];
11665
+ labelAttributes?: string[];
11666
+ controlComponents?: string[];
11667
+ assert?: ("htmlFor" | "nesting" | "both" | "either");
11668
+ depth?: number;
11669
+ [k: string]: unknown | undefined;
11670
+ }];
11671
+ // ----- jsx-a11y/label-has-for -----
11672
+ type JsxA11YLabelHasFor = [] | [{
11673
+ components?: string[];
11674
+ required?: (("nesting" | "id") | {
11675
+ some: ("nesting" | "id")[];
11676
+ [k: string]: unknown | undefined;
11677
+ } | {
11678
+ every: ("nesting" | "id")[];
11679
+ [k: string]: unknown | undefined;
11680
+ });
11681
+ allowChildren?: boolean;
11682
+ [k: string]: unknown | undefined;
11683
+ }];
11684
+ // ----- jsx-a11y/lang -----
11685
+ type JsxA11YLang = [] | [{
11686
+ [k: string]: unknown | undefined;
11687
+ }];
11688
+ // ----- jsx-a11y/media-has-caption -----
11689
+ type JsxA11YMediaHasCaption = [] | [{
11690
+ audio?: string[];
11691
+ video?: string[];
11692
+ track?: string[];
11693
+ [k: string]: unknown | undefined;
11694
+ }];
11695
+ // ----- jsx-a11y/mouse-events-have-key-events -----
11696
+ type JsxA11YMouseEventsHaveKeyEvents = [] | [{
11697
+ hoverInHandlers?: string[];
11698
+ hoverOutHandlers?: string[];
11699
+ [k: string]: unknown | undefined;
11700
+ }];
11701
+ // ----- jsx-a11y/no-access-key -----
11702
+ type JsxA11YNoAccessKey = [] | [{
11703
+ [k: string]: unknown | undefined;
11704
+ }];
11705
+ // ----- jsx-a11y/no-aria-hidden-on-focusable -----
11706
+ type JsxA11YNoAriaHiddenOnFocusable = [] | [{
11707
+ [k: string]: unknown | undefined;
11708
+ }];
11709
+ // ----- jsx-a11y/no-autofocus -----
11710
+ type JsxA11YNoAutofocus = [] | [{
11711
+ ignoreNonDOM?: boolean;
11712
+ [k: string]: unknown | undefined;
11713
+ }];
11714
+ // ----- jsx-a11y/no-distracting-elements -----
11715
+ type JsxA11YNoDistractingElements = [] | [{
11716
+ elements?: ("marquee" | "blink")[];
11717
+ [k: string]: unknown | undefined;
11718
+ }];
11719
+ // ----- jsx-a11y/no-interactive-element-to-noninteractive-role -----
11720
+ type JsxA11YNoInteractiveElementToNoninteractiveRole = [] | [{
11721
+ [k: string]: string[] | undefined;
11722
+ }];
11723
+ // ----- jsx-a11y/no-noninteractive-element-interactions -----
11724
+ type JsxA11YNoNoninteractiveElementInteractions = [] | [{
11725
+ handlers?: string[];
11726
+ [k: string]: unknown | undefined;
11727
+ }];
11728
+ // ----- jsx-a11y/no-noninteractive-element-to-interactive-role -----
11729
+ type JsxA11YNoNoninteractiveElementToInteractiveRole = [] | [{
11730
+ [k: string]: string[] | undefined;
11731
+ }];
11732
+ // ----- jsx-a11y/no-noninteractive-tabindex -----
11733
+ type JsxA11YNoNoninteractiveTabindex = [] | [{
11734
+ roles?: string[];
11735
+ tags?: string[];
11736
+ [k: string]: unknown | undefined;
11737
+ }];
11738
+ // ----- jsx-a11y/no-onchange -----
11739
+ type JsxA11YNoOnchange = [] | [{
11740
+ [k: string]: unknown | undefined;
11741
+ }];
11742
+ // ----- jsx-a11y/no-redundant-roles -----
11743
+ type JsxA11YNoRedundantRoles = [] | [{
11744
+ [k: string]: string[] | undefined;
11745
+ }];
11746
+ // ----- jsx-a11y/no-static-element-interactions -----
11747
+ type JsxA11YNoStaticElementInteractions = [] | [{
11748
+ handlers?: string[];
11749
+ [k: string]: unknown | undefined;
11750
+ }];
11751
+ // ----- jsx-a11y/prefer-tag-over-role -----
11752
+ type JsxA11YPreferTagOverRole = [] | [{
11753
+ [k: string]: unknown | undefined;
11754
+ }];
11755
+ // ----- jsx-a11y/role-has-required-aria-props -----
11756
+ type JsxA11YRoleHasRequiredAriaProps = [] | [{
11757
+ [k: string]: unknown | undefined;
11758
+ }];
11759
+ // ----- jsx-a11y/role-supports-aria-props -----
11760
+ type JsxA11YRoleSupportsAriaProps = [] | [{
11761
+ [k: string]: unknown | undefined;
11762
+ }];
11763
+ // ----- jsx-a11y/scope -----
11764
+ type JsxA11YScope = [] | [{
11765
+ [k: string]: unknown | undefined;
11766
+ }];
11767
+ // ----- jsx-a11y/tabindex-no-positive -----
11768
+ type JsxA11YTabindexNoPositive = [] | [{
11769
+ [k: string]: unknown | undefined;
11770
+ }];
11078
11771
  // ----- jsx-quotes -----
11079
11772
  type JsxQuotes = [] | [("prefer-single" | "prefer-double")];
11080
11773
  // ----- key-spacing -----
@@ -11621,6 +12314,7 @@ type MaxParams = [] | [(number | {
11621
12314
  maximum?: number;
11622
12315
  max?: number;
11623
12316
  countVoidThis?: boolean;
12317
+ countThis?: ("never" | "except-void" | "always");
11624
12318
  })];
11625
12319
  // ----- max-statements -----
11626
12320
  type MaxStatements = [] | [(number | {
@@ -11660,6 +12354,8 @@ type NewlineAfterVar = [] | [("never" | "always")];
11660
12354
  type NewlinePerChainedCall = [] | [{
11661
12355
  ignoreChainWithDepth?: number;
11662
12356
  }];
12357
+ // ----- next/no-html-link-for-pages -----
12358
+ type NextNoHtmlLinkForPages = [] | [(string | string[])];
11663
12359
  // ----- no-bitwise -----
11664
12360
  type NoBitwise = [] | [{
11665
12361
  allow?: ("^" | "|" | "&" | "<<" | ">>" | ">>>" | "^=" | "|=" | "&=" | "<<=" | ">>=" | ">>>=" | "~")[];
@@ -12277,12 +12973,16 @@ type NodeNoUnsupportedFeaturesNodeBuiltins = [] | [{
12277
12973
  type NodePreferGlobalBuffer = [] | [("always" | "never")];
12278
12974
  // ----- node/prefer-global/console -----
12279
12975
  type NodePreferGlobalConsole = [] | [("always" | "never")];
12976
+ // ----- node/prefer-global/crypto -----
12977
+ type NodePreferGlobalCrypto = [] | [("always" | "never")];
12280
12978
  // ----- node/prefer-global/process -----
12281
12979
  type NodePreferGlobalProcess = [] | [("always" | "never")];
12282
12980
  // ----- node/prefer-global/text-decoder -----
12283
12981
  type NodePreferGlobalTextDecoder = [] | [("always" | "never")];
12284
12982
  // ----- node/prefer-global/text-encoder -----
12285
12983
  type NodePreferGlobalTextEncoder = [] | [("always" | "never")];
12984
+ // ----- node/prefer-global/timers -----
12985
+ type NodePreferGlobalTimers = [] | [("always" | "never")];
12286
12986
  // ----- node/prefer-global/url -----
12287
12987
  type NodePreferGlobalUrl = [] | [("always" | "never")];
12288
12988
  // ----- node/prefer-global/url-search-params -----
@@ -14821,6 +15521,42 @@ type PerfectionistSortVariableDeclarations = [] | [{
14821
15521
  });
14822
15522
  partitionByNewLine?: boolean;
14823
15523
  }];
15524
+ // ----- pnpm/json-enforce-catalog -----
15525
+ type PnpmJsonEnforceCatalog = [] | [{
15526
+ allowedProtocols?: string[];
15527
+ autofix?: boolean;
15528
+ defaultCatalog?: string;
15529
+ reuseExistingCatalog?: boolean;
15530
+ conflicts?: ("new-catalog" | "overrides" | "error");
15531
+ fields?: string[];
15532
+ ignores?: string[];
15533
+ }];
15534
+ // ----- pnpm/json-prefer-workspace-settings -----
15535
+ type PnpmJsonPreferWorkspaceSettings = [] | [{
15536
+ autofix?: boolean;
15537
+ }];
15538
+ // ----- pnpm/json-valid-catalog -----
15539
+ type PnpmJsonValidCatalog = [] | [{
15540
+ autoInsert?: boolean;
15541
+ autoInsertDefaultSpecifier?: string;
15542
+ autofix?: boolean;
15543
+ enforceNoConflict?: boolean;
15544
+ fields?: unknown[];
15545
+ }];
15546
+ // ----- pnpm/yaml-enforce-settings -----
15547
+ type PnpmYamlEnforceSettings = [] | [{
15548
+ autofix?: boolean;
15549
+ settings?: {
15550
+ [k: string]: unknown | undefined;
15551
+ };
15552
+ requiredFields?: string[];
15553
+ forbiddenFields?: string[];
15554
+ }];
15555
+ // ----- pnpm/yaml-no-duplicate-catalog-item -----
15556
+ type PnpmYamlNoDuplicateCatalogItem = [] | [{
15557
+ allow?: string[];
15558
+ checkDuplicates?: ("name-only" | "exact-version");
15559
+ }];
14824
15560
  // ----- prefer-arrow-callback -----
14825
15561
  type PreferArrowCallback = [] | [{
14826
15562
  allowNamedFunctions?: boolean;
@@ -16561,13 +17297,17 @@ type StylePaddedBlocks = [] | [(("always" | "never" | "start" | "end") | {
16561
17297
  }];
16562
17298
  // ----- style/padding-line-between-statements -----
16563
17299
  type _StylePaddingLineBetweenStatementsPaddingType = ("any" | "never" | "always");
16564
- type _StylePaddingLineBetweenStatementsStatementOption = (_StylePaddingLineBetweenStatementsStatementType | [_StylePaddingLineBetweenStatementsStatementType, ...(_StylePaddingLineBetweenStatementsStatementType)[]]);
17300
+ type _StylePaddingLineBetweenStatementsStatementOption = (_StylePaddingLineBetweenStatementsStatementMatcher | [_StylePaddingLineBetweenStatementsStatementMatcher, ...(_StylePaddingLineBetweenStatementsStatementMatcher)[]]);
17301
+ type _StylePaddingLineBetweenStatementsStatementMatcher = (_StylePaddingLineBetweenStatementsStatementType | _StylePaddingLineBetweenStatements_SelectorOption);
16565
17302
  type _StylePaddingLineBetweenStatementsStatementType = ("*" | "exports" | "require" | "directive" | "iife" | "block" | "empty" | "function" | "ts-method" | "break" | "case" | "class" | "continue" | "debugger" | "default" | "do" | "for" | "if" | "import" | "switch" | "throw" | "try" | "while" | "with" | "cjs-export" | "cjs-import" | "enum" | "interface" | "function-overload" | "block-like" | "singleline-block-like" | "multiline-block-like" | "expression" | "singleline-expression" | "multiline-expression" | "return" | "singleline-return" | "multiline-return" | "export" | "singleline-export" | "multiline-export" | "var" | "singleline-var" | "multiline-var" | "let" | "singleline-let" | "multiline-let" | "const" | "singleline-const" | "multiline-const" | "using" | "singleline-using" | "multiline-using" | "type" | "singleline-type" | "multiline-type");
16566
17303
  type StylePaddingLineBetweenStatements = {
16567
17304
  blankLine: _StylePaddingLineBetweenStatementsPaddingType;
16568
17305
  prev: _StylePaddingLineBetweenStatementsStatementOption;
16569
17306
  next: _StylePaddingLineBetweenStatementsStatementOption;
16570
17307
  }[];
17308
+ interface _StylePaddingLineBetweenStatements_SelectorOption {
17309
+ selector: string;
17310
+ }
16571
17311
  // ----- style/quote-props -----
16572
17312
  type StyleQuoteProps = ([] | [("always" | "as-needed" | "consistent" | "consistent-as-needed")] | [] | [("always" | "as-needed" | "consistent" | "consistent-as-needed")] | [("always" | "as-needed" | "consistent" | "consistent-as-needed"), {
16573
17313
  keywords?: boolean;
@@ -17035,10 +17775,21 @@ type TomlIndent = [] | [("tab" | number)] | [("tab" | number), {
17035
17775
  subTables?: number;
17036
17776
  keyValuePairs?: number;
17037
17777
  }];
17778
+ // ----- toml/inline-table-curly-newline -----
17779
+ type TomlInlineTableCurlyNewline = [] | [(("always" | "never") | {
17780
+ multiline?: boolean;
17781
+ minProperties?: number;
17782
+ consistent?: boolean;
17783
+ })];
17038
17784
  // ----- toml/inline-table-curly-spacing -----
17039
17785
  type TomlInlineTableCurlySpacing = [] | [("always" | "never")] | [("always" | "never"), {
17040
17786
  arraysInObjects?: boolean;
17041
17787
  objectsInObjects?: boolean;
17788
+ emptyObjects?: ("ignore" | "always" | "never");
17789
+ }];
17790
+ // ----- toml/inline-table-key-value-newline -----
17791
+ type TomlInlineTableKeyValueNewline = [] | [{
17792
+ allowAllPropertiesOnSameLine?: boolean;
17042
17793
  }];
17043
17794
  // ----- toml/key-spacing -----
17044
17795
  type TomlKeySpacing = [] | [({
@@ -18373,6 +19124,77 @@ type UseIsnan = [] | [{
18373
19124
  type ValidTypeof = [] | [{
18374
19125
  requireStringLiterals?: boolean;
18375
19126
  }];
19127
+ // ----- vue-a11y/alt-text -----
19128
+ type VueA11YAltText = [] | [{
19129
+ elements?: string[];
19130
+ img?: string[];
19131
+ object?: string[];
19132
+ area?: string[];
19133
+ "input[type=\"image\"]"?: string[];
19134
+ [k: string]: unknown | undefined;
19135
+ }];
19136
+ // ----- vue-a11y/anchor-has-content -----
19137
+ type VueA11YAnchorHasContent = [] | [{
19138
+ components?: string[];
19139
+ accessibleChildren?: string[];
19140
+ accessibleDirectives?: string[];
19141
+ [k: string]: unknown | undefined;
19142
+ }];
19143
+ // ----- vue-a11y/aria-role -----
19144
+ type VueA11YAriaRole = [] | [{
19145
+ ignoreNonDOM?: boolean;
19146
+ }];
19147
+ // ----- vue-a11y/form-control-has-label -----
19148
+ type VueA11YFormControlHasLabel = [] | [{
19149
+ labelComponents?: string[];
19150
+ controlComponents?: string[];
19151
+ [k: string]: unknown | undefined;
19152
+ }];
19153
+ // ----- vue-a11y/heading-has-content -----
19154
+ type VueA11YHeadingHasContent = [] | [{
19155
+ components?: string[];
19156
+ accessibleChildren?: string[];
19157
+ accessibleDirectives?: string[];
19158
+ [k: string]: unknown | undefined;
19159
+ }];
19160
+ // ----- vue-a11y/interactive-supports-focus -----
19161
+ type VueA11YInteractiveSupportsFocus = [] | [{
19162
+ tabbable?: ("button" | "checkbox" | "columnheader" | "combobox" | "grid" | "gridcell" | "link" | "listbox" | "menu" | "menubar" | "menuitem" | "menuitemcheckbox" | "menuitemradio" | "option" | "progressbar" | "radio" | "radiogroup" | "row" | "rowheader" | "scrollbar" | "searchbox" | "slider" | "spinbutton" | "switch" | "tab" | "tablist" | "textbox" | "tree" | "treegrid" | "treeitem" | "doc-backlink" | "doc-biblioref" | "doc-glossref" | "doc-noteref")[];
19163
+ [k: string]: unknown | undefined;
19164
+ }];
19165
+ // ----- vue-a11y/label-has-for -----
19166
+ type VueA11YLabelHasFor = [] | [{
19167
+ components?: string[];
19168
+ controlComponents?: string[];
19169
+ required?: (("nesting" | "id") | {
19170
+ some: ("nesting" | "id")[];
19171
+ [k: string]: unknown | undefined;
19172
+ } | {
19173
+ every: ("nesting" | "id")[];
19174
+ [k: string]: unknown | undefined;
19175
+ });
19176
+ allowChildren?: boolean;
19177
+ [k: string]: unknown | undefined;
19178
+ }];
19179
+ // ----- vue-a11y/media-has-caption -----
19180
+ type VueA11YMediaHasCaption = [] | [{
19181
+ audio?: string[];
19182
+ track?: string[];
19183
+ video?: string[];
19184
+ [k: string]: unknown | undefined;
19185
+ }];
19186
+ // ----- vue-a11y/no-autofocus -----
19187
+ type VueA11YNoAutofocus = [] | [{
19188
+ ignoreNonDOM?: boolean;
19189
+ }];
19190
+ // ----- vue-a11y/no-distracting-elements -----
19191
+ type VueA11YNoDistractingElements = [] | [{
19192
+ [k: string]: unknown | undefined;
19193
+ }];
19194
+ // ----- vue-a11y/no-redundant-roles -----
19195
+ type VueA11YNoRedundantRoles = [] | [{
19196
+ [k: string]: string[] | undefined;
19197
+ }];
18376
19198
  // ----- vue/array-bracket-newline -----
18377
19199
  type VueArrayBracketNewline = [] | [(("always" | "never" | "consistent") | {
18378
19200
  multiline?: boolean;
@@ -18412,6 +19234,7 @@ type VueAttributesOrder = [] | [{
18412
19234
  order?: (("DEFINITION" | "LIST_RENDERING" | "CONDITIONALS" | "RENDER_MODIFIERS" | "GLOBAL" | "UNIQUE" | "SLOT" | "TWO_WAY_BINDING" | "OTHER_DIRECTIVES" | "OTHER_ATTR" | "ATTR_STATIC" | "ATTR_DYNAMIC" | "ATTR_SHORTHAND_BOOL" | "EVENTS" | "CONTENT") | ("DEFINITION" | "LIST_RENDERING" | "CONDITIONALS" | "RENDER_MODIFIERS" | "GLOBAL" | "UNIQUE" | "SLOT" | "TWO_WAY_BINDING" | "OTHER_DIRECTIVES" | "OTHER_ATTR" | "ATTR_STATIC" | "ATTR_DYNAMIC" | "ATTR_SHORTHAND_BOOL" | "EVENTS" | "CONTENT")[])[];
18413
19235
  alphabetical?: boolean;
18414
19236
  sortLineLength?: boolean;
19237
+ ignoreVBindObject?: boolean;
18415
19238
  }];
18416
19239
  // ----- vue/block-lang -----
18417
19240
  type VueBlockLang = [] | [{
@@ -18503,7 +19326,7 @@ type VueDefineMacrosOrder = [] | [{
18503
19326
  type VueDefinePropsDeclaration = [] | [("type-based" | "runtime")];
18504
19327
  // ----- vue/define-props-destructuring -----
18505
19328
  type VueDefinePropsDestructuring = [] | [{
18506
- destructure?: ("always" | "never");
19329
+ destructure?: ("only-when-assigned" | "always" | "never");
18507
19330
  }];
18508
19331
  // ----- vue/dot-location -----
18509
19332
  type VueDotLocation = [] | [("object" | "property")];
@@ -19556,6 +20379,10 @@ type VueVSlotStyle = [] | [(("shorthand" | "longform") | {
19556
20379
  default?: ("shorthand" | "longform" | "v-slot");
19557
20380
  named?: ("shorthand" | "longform");
19558
20381
  })];
20382
+ // ----- vue/valid-v-for -----
20383
+ type VueValidVFor = [] | [{
20384
+ allowEmptyAlias?: boolean;
20385
+ }];
19559
20386
  // ----- vue/valid-v-on -----
19560
20387
  type VueValidVOn = [] | [{
19561
20388
  modifiers?: unknown[];
@@ -19602,6 +20429,7 @@ type YamlFlowMappingCurlyNewline = [] | [(("always" | "never") | {
19602
20429
  type YamlFlowMappingCurlySpacing = [] | [("always" | "never")] | [("always" | "never"), {
19603
20430
  arraysInObjects?: boolean;
19604
20431
  objectsInObjects?: boolean;
20432
+ emptyObjects?: ("ignore" | "always" | "never");
19605
20433
  }];
19606
20434
  // ----- yaml/flow-sequence-bracket-newline -----
19607
20435
  type YamlFlowSequenceBracketNewline = [] | [(("always" | "never" | "consistent") | {
@@ -19787,7 +20615,7 @@ type Yoda = [] | [("always" | "never")] | [("always" | "never"), {
19787
20615
  onlyEquality?: boolean;
19788
20616
  }];
19789
20617
  // Names of all the configs
19790
- type ConfigNames = 'vinicunca/astro/setup' | 'vinicunca/astro/rules' | 'vinicunca/eslint-comments/rules' | 'vinicunca/formatter/setup' | 'vinicunca/imports/rules' | 'vinicunca/javascript/setup' | 'vinicunca/javascript/rules' | 'antfu/jsx/setup' | 'vinicunca/jsdoc/rules' | 'vinicunca/jsonc/setup' | 'vinicunca/jsonc/rules' | 'vinicunca/markdown/setup' | 'vinicunca/markdown/processor' | 'vinicunca/markdown/parser' | 'vinicunca/markdown/disables' | 'vinicunca/node/rules' | 'vinicunca/perfectionist/rules' | 'vinicunca/react/setup' | 'vinicunca/react/rules' | 'vinicunca/react/typescript' | 'vinicunca/solid/setup' | 'vinicunca/solid/rules' | 'vinicunca/sort/package-json' | 'vinicunca/stylistic/rules' | 'vinicunca/svelte/setup' | 'vinicunca/svelte/rules' | 'vinicunca/test/setup' | 'vinicunca/test/rules' | 'vinicunca/toml/setup' | 'vinicunca/toml/rules' | 'vinicunca/regexp/rules' | 'vinicunca/sonar/rules' | 'vinicunca/typescript/setup' | 'vinicunca/typescript/parser' | 'vinicunca/typescript/rules' | 'vinicunca/unicorn/rules' | 'vinicunca/unocss' | 'vinicunca/vue/setup' | 'vinicunca/vue/rules' | 'vinicunca/yaml/setup' | 'vinicunca/yaml/rules';
20618
+ type ConfigNames = 'vinicunca/gitignore' | 'vinicunca/ignores' | 'vinicunca/javascript/setup' | 'vinicunca/javascript/rules' | 'vinicunca/eslint-comments/rules' | 'vinicunca/imports/rules' | 'vinicunca/command/rules' | 'vinicunca/perfectionist/rules' | 'vinicunca/sonar/rules' | 'vinicunca/node/rules' | 'vinicunca/jsdoc/setup' | 'vinicunca/jsdoc/rules' | 'vinicunca/imports/rules' | 'vinicunca/unicorn/rules' | 'antfu/jsx/setup' | 'vinicunca/typescript/setup' | 'vinicunca/typescript/parser' | 'vinicunca/typescript/type-aware-parser' | 'vinicunca/typescript/rules' | 'vinicunca/typescript/rules-type-aware' | 'antfu/typescript/erasable-syntax-only' | 'vinicunca/stylistic/rules' | 'vinicunca/regexp/rules' | 'vinicunca/test/setup' | 'vinicunca/test/rules' | 'vinicunca/vue/setup' | 'vinicunca/vue/rules' | 'vinicunca/react/setup' | 'vinicunca/react/rules' | 'vinicunca/react/typescript' | 'vinicunca/react/type-aware-rules' | 'vinicunca/nextjs/setup' | 'vinicunca/nextjs/rules' | 'vinicunca/solid/setup' | 'vinicunca/solid/rules' | 'vinicunca/svelte/setup' | 'vinicunca/svelte/rules' | 'vinicunca/unocss' | 'vinicunca/astro/setup' | 'vinicunca/astro/rules' | 'vinicunca/jsonc/setup' | 'vinicunca/jsonc/rules' | 'vinicunca/sort/package-json' | 'vinicunca/sort/tsconfig' | 'vinicunca/pnpm/package-json' | 'vinicunca/pnpm/pnpm-workspace-yaml' | 'vinicunca/pnpm/pnpm-workspace-yaml-sort' | 'vinicunca/yaml/setup' | 'vinicunca/yaml/rules' | 'vinicunca/toml/setup' | 'vinicunca/toml/rules' | 'vinicunca/markdown/setup' | 'vinicunca/markdown/processor' | 'vinicunca/markdown/parser' | 'vinicunca/markdown/rules' | 'vinicunca/markdown/disables/markdown' | 'vinicunca/markdown/disables' | 'vinicunca/formatter/setup' | 'vinicunca/formatter/css' | 'vinicunca/formatter/scss' | 'vinicunca/formatter/less' | 'vinicunca/formatter/html' | 'vinicunca/formatter/xml' | 'vinicunca/formatter/svg' | 'vinicunca/formatter/markdown' | 'vinicunca/formatter/astro' | 'vinicunca/formatter/astro/disables' | 'vinicunca/formatter/graphql' | 'vinicunca/disables/scripts' | 'vinicunca/disables/cli' | 'vinicunca/disables/bin' | 'vinicunca/disables/dts' | 'vinicunca/disables/cjs' | 'vinicunca/disables/config-files';
19791
20619
  //#endregion
19792
20620
  //#region src/vendor/prettier-types.d.ts
19793
20621
  /**
@@ -20054,6 +20882,18 @@ interface OptionsUnicorn extends OptionsOverrides {
20054
20882
  */
20055
20883
  allRecommended?: boolean;
20056
20884
  }
20885
+ interface OptionsMarkdown extends OptionsOverrides {
20886
+ /**
20887
+ * Enable GFM (GitHub Flavored Markdown) support.
20888
+ *
20889
+ * @default true
20890
+ */
20891
+ gfm?: boolean;
20892
+ /**
20893
+ * Override rules for markdown itself.
20894
+ */
20895
+ overridesMarkdown?: TypedFlatConfigItem['rules'];
20896
+ }
20057
20897
  interface OptionsTypeScriptParserOptions {
20058
20898
  /**
20059
20899
  * Additional parser options for TypeScript.
@@ -20272,13 +21112,13 @@ interface OptionsConfig extends OptionsComponentExts, OptionsProjectType {
20272
21112
  */
20273
21113
  astro?: boolean | OptionsOverrides;
20274
21114
  /**
20275
- * Enable linting for **code snippets** in Markdown.
21115
+ * Enable linting for **code snippets** in Markdown and the markdown content itself.
20276
21116
  *
20277
21117
  * For formatting Markdown content, enable also `formatters.markdown`.
20278
21118
  *
20279
21119
  * @default true
20280
21120
  */
20281
- markdown?: boolean | OptionsOverrides;
21121
+ markdown?: boolean | OptionsMarkdown;
20282
21122
  /**
20283
21123
  * Enable stylistic rules.
20284
21124
  *
@@ -20434,7 +21274,7 @@ declare function jsonc(options?: OptionsFiles & OptionsStylistic & OptionsOverri
20434
21274
  declare function jsx(options?: OptionsJSX): Promise<Array<TypedFlatConfigItem>>;
20435
21275
  //#endregion
20436
21276
  //#region src/configs/markdown.d.ts
20437
- declare function markdown(options?: OptionsFiles & OptionsComponentExts & OptionsOverrides): Promise<Array<TypedFlatConfigItem>>;
21277
+ declare function markdown(options?: OptionsFiles & OptionsComponentExts & OptionsMarkdown): Promise<Array<TypedFlatConfigItem>>;
20438
21278
  //#endregion
20439
21279
  //#region src/configs/nextjs.d.ts
20440
21280
  declare function nextjs(options?: OptionsOverrides & OptionsFiles): Promise<Array<TypedFlatConfigItem>>;
@@ -20617,4 +21457,4 @@ declare function ensurePackages(packages: Array<string | undefined>): Promise<vo
20617
21457
  declare function isInEditorEnv(): boolean;
20618
21458
  declare function isInGitHooksOrLintStaged(): boolean;
20619
21459
  //#endregion
20620
- export { Awaitable, type ConfigNames, GLOB_ALL_SRC, GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CSS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_SVELTE, GLOB_SVG, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_XML, GLOB_YAML, OptionsComponentExts, OptionsConfig, OptionsFiles, OptionsFormatters, OptionsHasTypeScript, OptionsIsInEditor, OptionsJSX, OptionsJSXA11y, OptionsOverrides, OptionsPnpm, OptionsProjectType, OptionsReact, OptionsRegExp, OptionsStylistic, OptionsTypeScriptErasableOnly, OptionsTypeScriptParserOptions, OptionsTypeScriptWithTypes, OptionsTypescript, OptionsUnicorn, OptionsUnoCSS, OptionsVue, ResolvedOptions, type RuleOptions, Rules, STYLISTIC_CONFIG_DEFAULTS, StylisticConfig, StylisticOptions, TypedFlatConfigItem, astro, combineConfigs, command, comments, defaultPluginRenaming, disables, ensurePackages, formatters, ignores, imports, interopDefault, isInEditorEnv, isInGitHooksOrLintStaged, isPackageInScope, javascript, jsdoc, jsonc, jsx, markdown, nextjs, node, parserPlain, perfectionist, pluginAntfu, pluginComments, pluginImportLite, pluginNode, pluginPerfectionist, pluginSonar, pluginUnicorn, pluginUnusedImports, pnpm, react, regexp, renamePluginInConfigs, renameRules, solid, sonar, sortPackageJson, sortTsconfig, stylistic, svelte, test, toArray, toml, typescript, unicorn, unocss, vinicuncaESLint, vue, yaml };
21460
+ export { Awaitable, type ConfigNames, GLOB_ALL_SRC, GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CSS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_SVELTE, GLOB_SVG, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_XML, GLOB_YAML, OptionsComponentExts, OptionsConfig, OptionsFiles, OptionsFormatters, OptionsHasTypeScript, OptionsIsInEditor, OptionsJSX, OptionsJSXA11y, OptionsMarkdown, OptionsOverrides, OptionsPnpm, OptionsProjectType, OptionsReact, OptionsRegExp, OptionsStylistic, OptionsTypeScriptErasableOnly, OptionsTypeScriptParserOptions, OptionsTypeScriptWithTypes, OptionsTypescript, OptionsUnicorn, OptionsUnoCSS, OptionsVue, ResolvedOptions, type RuleOptions, Rules, STYLISTIC_CONFIG_DEFAULTS, StylisticConfig, StylisticOptions, TypedFlatConfigItem, astro, combineConfigs, command, comments, defaultPluginRenaming, disables, ensurePackages, formatters, ignores, imports, interopDefault, isInEditorEnv, isInGitHooksOrLintStaged, isPackageInScope, javascript, jsdoc, jsonc, jsx, markdown, nextjs, node, parserPlain, perfectionist, pluginAntfu, pluginComments, pluginImportLite, pluginNode, pluginPerfectionist, pluginSonar, pluginUnicorn, pluginUnusedImports, pnpm, react, regexp, renamePluginInConfigs, renameRules, solid, sonar, sortPackageJson, sortTsconfig, stylistic, svelte, test, toArray, toml, typescript, unicorn, unocss, vinicuncaESLint, vue, yaml };