@vinicunca/eslint-config 3.7.3 → 3.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/dist/index.d.ts +88 -49
  2. package/dist/index.js +150 -65
  3. package/package.json +14 -10
package/dist/index.d.ts CHANGED
@@ -661,233 +661,233 @@ interface RuleOptions {
661
661
  'implicit-arrow-linebreak'?: Linter.RuleEntry<ImplicitArrowLinebreak>
662
662
  /**
663
663
  * Enforce or ban the use of inline type-only markers for named imports.
664
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/consistent-type-specifier-style.md
664
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/consistent-type-specifier-style.md
665
665
  */
666
666
  'import/consistent-type-specifier-style'?: Linter.RuleEntry<ImportConsistentTypeSpecifierStyle>
667
667
  /**
668
668
  * Ensure a default export is present, given a default import.
669
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/default.md
669
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/default.md
670
670
  */
671
671
  'import/default'?: Linter.RuleEntry<[]>
672
672
  /**
673
673
  * Enforce a leading comment with the webpackChunkName for dynamic imports.
674
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/dynamic-import-chunkname.md
674
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/dynamic-import-chunkname.md
675
675
  */
676
676
  'import/dynamic-import-chunkname'?: Linter.RuleEntry<ImportDynamicImportChunkname>
677
677
  /**
678
678
  * Forbid any invalid exports, i.e. re-export of the same name.
679
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/export.md
679
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/export.md
680
680
  */
681
681
  'import/export'?: Linter.RuleEntry<[]>
682
682
  /**
683
683
  * Ensure all exports appear after other statements.
684
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/exports-last.md
684
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/exports-last.md
685
685
  */
686
686
  'import/exports-last'?: Linter.RuleEntry<[]>
687
687
  /**
688
688
  * Ensure consistent use of file extension within the import path.
689
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/extensions.md
689
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/extensions.md
690
690
  */
691
691
  'import/extensions'?: Linter.RuleEntry<ImportExtensions>
692
692
  /**
693
693
  * Ensure all imports appear before other statements.
694
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/first.md
694
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/first.md
695
695
  */
696
696
  'import/first'?: Linter.RuleEntry<ImportFirst>
697
697
  /**
698
698
  * Prefer named exports to be grouped together in a single export declaration.
699
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/group-exports.md
699
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/group-exports.md
700
700
  */
701
701
  'import/group-exports'?: Linter.RuleEntry<[]>
702
702
  /**
703
703
  * Replaced by `import-x/first`.
704
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/imports-first.md
704
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/imports-first.md
705
705
  * @deprecated
706
706
  */
707
707
  'import/imports-first'?: Linter.RuleEntry<ImportImportsFirst>
708
708
  /**
709
709
  * Enforce the maximum number of dependencies a module can have.
710
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/max-dependencies.md
710
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/max-dependencies.md
711
711
  */
712
712
  'import/max-dependencies'?: Linter.RuleEntry<ImportMaxDependencies>
713
713
  /**
714
714
  * Ensure named imports correspond to a named export in the remote file.
715
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/named.md
715
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/named.md
716
716
  */
717
717
  'import/named'?: Linter.RuleEntry<ImportNamed>
718
718
  /**
719
719
  * Ensure imported namespaces contain dereferenced properties as they are dereferenced.
720
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/namespace.md
720
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/namespace.md
721
721
  */
722
722
  'import/namespace'?: Linter.RuleEntry<ImportNamespace>
723
723
  /**
724
724
  * Enforce a newline after import statements.
725
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/newline-after-import.md
725
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/newline-after-import.md
726
726
  */
727
727
  'import/newline-after-import'?: Linter.RuleEntry<ImportNewlineAfterImport>
728
728
  /**
729
729
  * Forbid import of modules using absolute paths.
730
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-absolute-path.md
730
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/no-absolute-path.md
731
731
  */
732
732
  'import/no-absolute-path'?: Linter.RuleEntry<ImportNoAbsolutePath>
733
733
  /**
734
734
  * Forbid AMD `require` and `define` calls.
735
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-amd.md
735
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/no-amd.md
736
736
  */
737
737
  'import/no-amd'?: Linter.RuleEntry<[]>
738
738
  /**
739
739
  * Forbid anonymous values as default exports.
740
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-anonymous-default-export.md
740
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/no-anonymous-default-export.md
741
741
  */
742
742
  'import/no-anonymous-default-export'?: Linter.RuleEntry<ImportNoAnonymousDefaultExport>
743
743
  /**
744
744
  * Forbid CommonJS `require` calls and `module.exports` or `exports.*`.
745
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-commonjs.md
745
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/no-commonjs.md
746
746
  */
747
747
  'import/no-commonjs'?: Linter.RuleEntry<ImportNoCommonjs>
748
748
  /**
749
749
  * Forbid a module from importing a module with a dependency path back to itself.
750
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-cycle.md
750
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/no-cycle.md
751
751
  */
752
752
  'import/no-cycle'?: Linter.RuleEntry<ImportNoCycle>
753
753
  /**
754
754
  * Forbid default exports.
755
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-default-export.md
755
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/no-default-export.md
756
756
  */
757
757
  'import/no-default-export'?: Linter.RuleEntry<[]>
758
758
  /**
759
759
  * Forbid imported names marked with `@deprecated` documentation tag.
760
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-deprecated.md
760
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/no-deprecated.md
761
761
  */
762
762
  'import/no-deprecated'?: Linter.RuleEntry<[]>
763
763
  /**
764
764
  * Forbid repeated import of the same module in multiple places.
765
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-duplicates.md
765
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/no-duplicates.md
766
766
  */
767
767
  'import/no-duplicates'?: Linter.RuleEntry<ImportNoDuplicates>
768
768
  /**
769
769
  * Forbid `require()` calls with expressions.
770
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-dynamic-require.md
770
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/no-dynamic-require.md
771
771
  */
772
772
  'import/no-dynamic-require'?: Linter.RuleEntry<ImportNoDynamicRequire>
773
773
  /**
774
774
  * Forbid empty named import blocks.
775
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-empty-named-blocks.md
775
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/no-empty-named-blocks.md
776
776
  */
777
777
  'import/no-empty-named-blocks'?: Linter.RuleEntry<[]>
778
778
  /**
779
779
  * Forbid the use of extraneous packages.
780
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-extraneous-dependencies.md
780
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/no-extraneous-dependencies.md
781
781
  */
782
782
  'import/no-extraneous-dependencies'?: Linter.RuleEntry<ImportNoExtraneousDependencies>
783
783
  /**
784
784
  * Forbid import statements with CommonJS module.exports.
785
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-import-module-exports.md
785
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/no-import-module-exports.md
786
786
  */
787
787
  'import/no-import-module-exports'?: Linter.RuleEntry<ImportNoImportModuleExports>
788
788
  /**
789
789
  * Forbid importing the submodules of other modules.
790
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-internal-modules.md
790
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/no-internal-modules.md
791
791
  */
792
792
  'import/no-internal-modules'?: Linter.RuleEntry<ImportNoInternalModules>
793
793
  /**
794
794
  * Forbid the use of mutable exports with `var` or `let`.
795
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-mutable-exports.md
795
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/no-mutable-exports.md
796
796
  */
797
797
  'import/no-mutable-exports'?: Linter.RuleEntry<[]>
798
798
  /**
799
799
  * Forbid use of exported name as identifier of default export.
800
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-named-as-default.md
800
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/no-named-as-default.md
801
801
  */
802
802
  'import/no-named-as-default'?: Linter.RuleEntry<[]>
803
803
  /**
804
804
  * Forbid use of exported name as property of default export.
805
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-named-as-default-member.md
805
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/no-named-as-default-member.md
806
806
  */
807
807
  'import/no-named-as-default-member'?: Linter.RuleEntry<[]>
808
808
  /**
809
809
  * Forbid named default exports.
810
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-named-default.md
810
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/no-named-default.md
811
811
  */
812
812
  'import/no-named-default'?: Linter.RuleEntry<[]>
813
813
  /**
814
814
  * Forbid named exports.
815
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-named-export.md
815
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/no-named-export.md
816
816
  */
817
817
  'import/no-named-export'?: Linter.RuleEntry<[]>
818
818
  /**
819
819
  * Forbid namespace (a.k.a. "wildcard" `*`) imports.
820
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-namespace.md
820
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/no-namespace.md
821
821
  */
822
822
  'import/no-namespace'?: Linter.RuleEntry<ImportNoNamespace>
823
823
  /**
824
824
  * Forbid Node.js builtin modules.
825
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-nodejs-modules.md
825
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/no-nodejs-modules.md
826
826
  */
827
827
  'import/no-nodejs-modules'?: Linter.RuleEntry<ImportNoNodejsModules>
828
828
  /**
829
829
  * Forbid importing packages through relative paths.
830
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-relative-packages.md
830
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/no-relative-packages.md
831
831
  */
832
832
  'import/no-relative-packages'?: Linter.RuleEntry<ImportNoRelativePackages>
833
833
  /**
834
834
  * Forbid importing modules from parent directories.
835
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-relative-parent-imports.md
835
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/no-relative-parent-imports.md
836
836
  */
837
837
  'import/no-relative-parent-imports'?: Linter.RuleEntry<ImportNoRelativeParentImports>
838
838
  /**
839
839
  * Forbid importing a default export by a different name.
840
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-rename-default.md
840
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/no-rename-default.md
841
841
  */
842
842
  'import/no-rename-default'?: Linter.RuleEntry<ImportNoRenameDefault>
843
843
  /**
844
844
  * Enforce which files can be imported in a given folder.
845
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-restricted-paths.md
845
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/no-restricted-paths.md
846
846
  */
847
847
  'import/no-restricted-paths'?: Linter.RuleEntry<ImportNoRestrictedPaths>
848
848
  /**
849
849
  * Forbid a module from importing itself.
850
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-self-import.md
850
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/no-self-import.md
851
851
  */
852
852
  'import/no-self-import'?: Linter.RuleEntry<[]>
853
853
  /**
854
854
  * Forbid unassigned imports.
855
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-unassigned-import.md
855
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/no-unassigned-import.md
856
856
  */
857
857
  'import/no-unassigned-import'?: Linter.RuleEntry<ImportNoUnassignedImport>
858
858
  /**
859
859
  * Ensure imports point to a file/module that can be resolved.
860
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-unresolved.md
860
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/no-unresolved.md
861
861
  */
862
862
  'import/no-unresolved'?: Linter.RuleEntry<ImportNoUnresolved>
863
863
  /**
864
864
  * Forbid modules without exports, or exports without matching import in another module.
865
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-unused-modules.md
865
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/no-unused-modules.md
866
866
  */
867
867
  'import/no-unused-modules'?: Linter.RuleEntry<ImportNoUnusedModules>
868
868
  /**
869
869
  * Forbid unnecessary path segments in import and require statements.
870
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-useless-path-segments.md
870
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/no-useless-path-segments.md
871
871
  */
872
872
  'import/no-useless-path-segments'?: Linter.RuleEntry<ImportNoUselessPathSegments>
873
873
  /**
874
874
  * Forbid webpack loader syntax in imports.
875
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/no-webpack-loader-syntax.md
875
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/no-webpack-loader-syntax.md
876
876
  */
877
877
  'import/no-webpack-loader-syntax'?: Linter.RuleEntry<[]>
878
878
  /**
879
879
  * Enforce a convention in module import order.
880
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/order.md
880
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/order.md
881
881
  */
882
882
  'import/order'?: Linter.RuleEntry<ImportOrder>
883
883
  /**
884
884
  * Prefer a default export if module exports a single name or multiple names.
885
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/prefer-default-export.md
885
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/prefer-default-export.md
886
886
  */
887
887
  'import/prefer-default-export'?: Linter.RuleEntry<ImportPreferDefaultExport>
888
888
  /**
889
889
  * Forbid potentially ambiguous parse goal (`script` vs. `module`).
890
- * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.6.1/docs/rules/unambiguous.md
890
+ * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.9.1/docs/rules/unambiguous.md
891
891
  */
892
892
  'import/unambiguous'?: Linter.RuleEntry<[]>
893
893
  /**
@@ -2981,6 +2981,26 @@ interface RuleOptions {
2981
2981
  */
2982
2982
  'react-naming-convention/use-state'?: Linter.RuleEntry<[]>
2983
2983
  'react-refresh/only-export-components'?: Linter.RuleEntry<ReactRefreshOnlyExportComponents>
2984
+ /**
2985
+ * enforce that every 'addEventListener' in a component or custom Hook has a corresponding 'removeEventListener'.
2986
+ * @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-event-listener
2987
+ */
2988
+ 'react-web-api/no-leaked-event-listener'?: Linter.RuleEntry<[]>
2989
+ /**
2990
+ * enforce that every 'setInterval' in a component or custom Hook has a corresponding 'clearInterval'.
2991
+ * @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-interval
2992
+ */
2993
+ 'react-web-api/no-leaked-interval'?: Linter.RuleEntry<[]>
2994
+ /**
2995
+ * enforce cleanup of 'ResizeObserver' instances in components and custom Hooks.
2996
+ * @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-resize-observer
2997
+ */
2998
+ 'react-web-api/no-leaked-resize-observer'?: Linter.RuleEntry<[]>
2999
+ /**
3000
+ * enforce that every 'setTimeout' in a component or custom Hook has a corresponding 'clearTimeout'.
3001
+ * @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-timeout
3002
+ */
3003
+ 'react-web-api/no-leaked-timeout'?: Linter.RuleEntry<[]>
2984
3004
  /**
2985
3005
  * disallow using shorthand boolean attributes
2986
3006
  * @see https://eslint-react.xyz/docs/rules/avoid-shorthand-boolean
@@ -9516,7 +9536,7 @@ type IdMatch = []|[string]|[string, {
9516
9536
  // ----- implicit-arrow-linebreak -----
9517
9537
  type ImplicitArrowLinebreak = []|[("beside" | "below")]
9518
9538
  // ----- import/consistent-type-specifier-style -----
9519
- type ImportConsistentTypeSpecifierStyle = []|[("prefer-inline" | "prefer-top-level")]
9539
+ type ImportConsistentTypeSpecifierStyle = []|[("prefer-top-level" | "prefer-inline")]
9520
9540
  // ----- import/dynamic-import-chunkname -----
9521
9541
  type ImportDynamicImportChunkname = []|[{
9522
9542
  importFunctions?: string[]
@@ -9736,6 +9756,17 @@ type ImportOrder = []|[{
9736
9756
  position?: ("after" | "before")
9737
9757
  }[]
9738
9758
  "newlines-between"?: ("ignore" | "always" | "always-and-inside-groups" | "never")
9759
+ "newlines-between-types"?: ("ignore" | "always" | "always-and-inside-groups" | "never")
9760
+ consolidateIslands?: ("inside-groups" | "never")
9761
+ sortTypesGroup?: boolean
9762
+ named?: (boolean | {
9763
+ enabled?: boolean
9764
+ import?: boolean
9765
+ export?: boolean
9766
+ require?: boolean
9767
+ cjsExports?: boolean
9768
+ types?: ("mixed" | "types-first" | "types-last")
9769
+ })
9739
9770
  alphabetize?: {
9740
9771
  caseInsensitive?: boolean
9741
9772
  order?: ("ignore" | "asc" | "desc")
@@ -18798,7 +18829,8 @@ interface VendoredPrettierOptionsRequired {
18798
18829
  }
18799
18830
 
18800
18831
  type Awaitable<T> = Promise<T> | T;
18801
- type Rules = RuleOptions;
18832
+ interface Rules extends RuleOptions {
18833
+ }
18802
18834
 
18803
18835
  type TypedFlatConfigItem = {
18804
18836
  /**
@@ -18828,6 +18860,13 @@ interface OptionsVue extends OptionsOverrides {
18828
18860
  * @default 3
18829
18861
  */
18830
18862
  vueVersion?: 2 | 3;
18863
+ /**
18864
+ * Vue accessibility plugin. Help check a11y issue in `.vue` files upon enabled
18865
+ *
18866
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/
18867
+ * @default false
18868
+ */
18869
+ a11y?: boolean;
18831
18870
  }
18832
18871
  type OptionsTypescript = (OptionsOverrides & OptionsTypeScriptParserOptions) | (OptionsOverrides & OptionsTypeScriptWithTypes);
18833
18872
  interface OptionsFormatters {
@@ -19102,7 +19141,7 @@ interface OptionsConfig extends OptionsComponentExts, OptionsProjectType {
19102
19141
  * Currently it's disabled by default, as it's still experimental.
19103
19142
  * In the future it will be smartly enabled based on the project usage.
19104
19143
  *
19105
- * @see https://github.com/antfu/pnpm-workspace-utils
19144
+ * @see https://github.com/antfu/pnpm-workspace-utils
19106
19145
  * @experimental
19107
19146
  * @default false
19108
19147
  */
package/dist/index.js CHANGED
@@ -1,16 +1,16 @@
1
- // ../node_modules/.pnpm/@vinicunca+perkakas@1.3.0/node_modules/@vinicunca/perkakas/dist/chunk-6AFNPQW2.js
1
+ // ../node_modules/.pnpm/@vinicunca+perkakas@1.4.0/node_modules/@vinicunca/perkakas/dist/chunk-6AFNPQW2.js
2
2
  function r(o) {
3
3
  if (typeof o != "object" || o === null) return false;
4
4
  let e3 = Object.getPrototypeOf(o);
5
5
  return e3 === null || e3 === Object.prototype;
6
6
  }
7
7
 
8
- // ../node_modules/.pnpm/@vinicunca+perkakas@1.3.0/node_modules/@vinicunca/perkakas/dist/chunk-Q2HW4RVT.js
8
+ // ../node_modules/.pnpm/@vinicunca+perkakas@1.4.0/node_modules/@vinicunca/perkakas/dist/chunk-Q2HW4RVT.js
9
9
  function e(r2) {
10
10
  return typeof r2 == "number" && !Number.isNaN(r2);
11
11
  }
12
12
 
13
- // ../node_modules/.pnpm/@vinicunca+perkakas@1.3.0/node_modules/@vinicunca/perkakas/dist/chunk-AZUJCNUP.js
13
+ // ../node_modules/.pnpm/@vinicunca+perkakas@1.4.0/node_modules/@vinicunca/perkakas/dist/chunk-AZUJCNUP.js
14
14
  function e2(o) {
15
15
  return typeof o == "boolean";
16
16
  }
@@ -827,7 +827,7 @@ async function javascript(options = {}) {
827
827
  "no-nested-ternary": ERROR,
828
828
  "no-new": ERROR,
829
829
  "no-new-func": ERROR,
830
- "no-new-symbol": ERROR,
830
+ "no-new-native-nonconstructor": ERROR,
831
831
  "no-new-wrappers": ERROR,
832
832
  "no-obj-calls": ERROR,
833
833
  "no-object-constructor": ERROR,
@@ -1179,7 +1179,6 @@ async function markdown(options = {}) {
1179
1179
  "ts/no-require-imports": OFF,
1180
1180
  "ts/no-unused-vars": OFF,
1181
1181
  "ts/no-use-before-define": OFF,
1182
- "ts/no-var-requires": OFF,
1183
1182
  "unicode-bom": OFF,
1184
1183
  "unused-imports/no-unused-imports": OFF,
1185
1184
  "unused-imports/no-unused-vars": OFF,
@@ -1259,6 +1258,15 @@ async function perfectionist() {
1259
1258
 
1260
1259
  // src/configs/pnpm.ts
1261
1260
  async function pnpm() {
1261
+ const [
1262
+ pluginPnpm,
1263
+ yamlParser,
1264
+ jsoncParser
1265
+ ] = await Promise.all([
1266
+ interopDefault(import("eslint-plugin-pnpm")),
1267
+ interopDefault(import("yaml-eslint-parser")),
1268
+ interopDefault(import("jsonc-eslint-parser"))
1269
+ ]);
1262
1270
  return [
1263
1271
  {
1264
1272
  files: [
@@ -1266,16 +1274,30 @@ async function pnpm() {
1266
1274
  "**/package.json"
1267
1275
  ],
1268
1276
  languageOptions: {
1269
- parser: await interopDefault(import("jsonc-eslint-parser"))
1277
+ parser: jsoncParser
1278
+ },
1279
+ name: "vinicunca/pnpm/package.json",
1280
+ plugins: {
1281
+ pnpm: pluginPnpm
1282
+ },
1283
+ rules: {
1284
+ "pnpm/json-enforce-catalog": ERROR,
1285
+ "pnpm/json-prefer-workspace-settings": ERROR,
1286
+ "pnpm/json-valid-catalog": ERROR
1287
+ }
1288
+ },
1289
+ {
1290
+ files: ["pnpm-workspace.yaml"],
1291
+ languageOptions: {
1292
+ parser: yamlParser
1270
1293
  },
1271
- name: "vinicunca/pnpm/rules",
1294
+ name: "vinicunca/pnpm/pnpm-workspace-yaml",
1272
1295
  plugins: {
1273
- pnpm: await interopDefault(import("eslint-plugin-pnpm"))
1296
+ pnpm: pluginPnpm
1274
1297
  },
1275
1298
  rules: {
1276
- "pnpm/enforce-catalog": ERROR,
1277
- "pnpm/prefer-workspace-settings": ERROR,
1278
- "pnpm/valid-catalog": ERROR
1299
+ "pnpm/yaml-no-duplicate-catalog-item": ERROR,
1300
+ "pnpm/yaml-no-unused-catalog-item": ERROR
1279
1301
  }
1280
1302
  }
1281
1303
  ];
@@ -1292,6 +1314,12 @@ var RemixPackages = [
1292
1314
  "@remix-run/serve",
1293
1315
  "@remix-run/dev"
1294
1316
  ];
1317
+ var ReactRouterPackages = [
1318
+ "@react-router/node",
1319
+ "@react-router/react",
1320
+ "@react-router/serve",
1321
+ "@react-router/dev"
1322
+ ];
1295
1323
  var NextJsPackages = [
1296
1324
  "next"
1297
1325
  ];
@@ -1308,7 +1336,7 @@ async function react(options = {}) {
1308
1336
  } = options;
1309
1337
  const isTypeAware = !!tsconfigPath;
1310
1338
  const typeAwareRules = {
1311
- "react/no-leaked-conditional-rendering": "warn"
1339
+ "react/no-leaked-conditional-rendering": WARN
1312
1340
  };
1313
1341
  const [
1314
1342
  pluginReact,
@@ -1321,6 +1349,7 @@ async function react(options = {}) {
1321
1349
  ]);
1322
1350
  const isAllowConstantExport = ReactRefreshAllowConstantExportPackages.some((i) => isPackageExists3(i));
1323
1351
  const isUsingRemix = RemixPackages.some((i) => isPackageExists3(i));
1352
+ const isUsingReactRouter = ReactRouterPackages.some((i) => isPackageExists3(i));
1324
1353
  const isUsingNext = NextJsPackages.some((i) => isPackageExists3(i));
1325
1354
  const plugins = pluginReact.configs.all.plugins;
1326
1355
  return [
@@ -1332,7 +1361,8 @@ async function react(options = {}) {
1332
1361
  "react-hooks": pluginReactHooks,
1333
1362
  "react-hooks-extra": plugins["@eslint-react/hooks-extra"],
1334
1363
  "react-naming-convention": plugins["@eslint-react/naming-convention"],
1335
- "react-refresh": pluginReactRefresh
1364
+ "react-refresh": pluginReactRefresh,
1365
+ "react-web-api": plugins["@eslint-react/web-api"]
1336
1366
  }
1337
1367
  },
1338
1368
  {
@@ -1347,28 +1377,86 @@ async function react(options = {}) {
1347
1377
  },
1348
1378
  name: "vinicunca/react/rules",
1349
1379
  rules: {
1350
- // recommended rules from @eslint-react/dom
1351
- "react-dom/no-children-in-void-dom-elements": WARN,
1380
+ // recommended rules from eslint-plugin-react-x https://eslint-react.xyz/docs/rules/overview#core-rules
1381
+ "react/no-access-state-in-setstate": ERROR,
1382
+ "react/no-array-index-key": WARN,
1383
+ "react/no-children-count": WARN,
1384
+ "react/no-children-for-each": WARN,
1385
+ "react/no-children-map": WARN,
1386
+ "react/no-children-only": WARN,
1387
+ "react/no-children-to-array": WARN,
1388
+ "react/no-clone-element": WARN,
1389
+ "react/no-comment-textnodes": WARN,
1390
+ "react/no-component-will-mount": ERROR,
1391
+ "react/no-component-will-receive-props": ERROR,
1392
+ "react/no-component-will-update": ERROR,
1393
+ "react/no-context-provider": WARN,
1394
+ "react/no-create-ref": ERROR,
1395
+ "react/no-default-props": ERROR,
1396
+ "react/no-direct-mutation-state": ERROR,
1397
+ "react/no-duplicate-jsx-props": WARN,
1398
+ "react/no-duplicate-key": WARN,
1399
+ "react/no-forward-ref": WARN,
1400
+ "react/no-implicit-key": WARN,
1401
+ "react/no-missing-key": ERROR,
1402
+ "react/no-nested-component-definitions": ERROR,
1403
+ "react/no-prop-types": ERROR,
1404
+ "react/no-redundant-should-component-update": ERROR,
1405
+ "react/no-set-state-in-component-did-mount": WARN,
1406
+ "react/no-set-state-in-component-did-update": WARN,
1407
+ "react/no-set-state-in-component-will-update": WARN,
1408
+ "react/no-string-refs": ERROR,
1409
+ "react/no-unsafe-component-will-mount": WARN,
1410
+ "react/no-unsafe-component-will-receive-props": WARN,
1411
+ "react/no-unsafe-component-will-update": WARN,
1412
+ "react/no-unstable-context-value": WARN,
1413
+ "react/no-unstable-default-props": WARN,
1414
+ "react/no-unused-class-component-members": WARN,
1415
+ "react/no-unused-state": WARN,
1416
+ "react/no-use-context": WARN,
1417
+ "react/no-useless-forward-ref": WARN,
1418
+ "react/use-jsx-vars": WARN,
1419
+ // recommended rules from eslint-plugin-react-dom https://eslint-react.xyz/docs/rules/overview#dom-rule
1352
1420
  "react-dom/no-dangerously-set-innerhtml": WARN,
1353
1421
  "react-dom/no-dangerously-set-innerhtml-with-children": ERROR,
1354
1422
  "react-dom/no-find-dom-node": ERROR,
1423
+ "react-dom/no-flush-sync": "error",
1424
+ "react-dom/no-hydrate": "error",
1355
1425
  "react-dom/no-missing-button-type": WARN,
1356
1426
  "react-dom/no-missing-iframe-sandbox": WARN,
1357
1427
  "react-dom/no-namespace": ERROR,
1428
+ "react-dom/no-render": "error",
1358
1429
  "react-dom/no-render-return-value": ERROR,
1359
1430
  "react-dom/no-script-url": WARN,
1360
1431
  "react-dom/no-unsafe-iframe-sandbox": WARN,
1361
1432
  "react-dom/no-unsafe-target-blank": WARN,
1362
- // recommended rules react-hooks
1433
+ "react-dom/no-use-form-state": "error",
1434
+ "react-dom/no-void-elements-with-children": "error",
1435
+ // recommended rules eslint-plugin-react-hooks https://github.com/facebook/react/tree/main/packages/eslint-plugin-react-hooks/src/rules
1363
1436
  "react-hooks/exhaustive-deps": WARN,
1364
1437
  "react-hooks/rules-of-hooks": ERROR,
1365
- // react refresh
1438
+ // recommended rules from eslint-plugin-react-hooks-extra https://eslint-react.xyz/docs/rules/overview#hooks-extra-rules
1439
+ "react-hooks-extra/no-direct-set-state-in-use-effect": "warn",
1440
+ "react-hooks-extra/no-unnecessary-use-prefix": "warn",
1441
+ // recommended rules from eslint-plugin-react-web-api https://eslint-react.xyz/docs/rules/overview#web-api-rules
1442
+ "react-web-api/no-leaked-event-listener": "warn",
1443
+ "react-web-api/no-leaked-interval": "warn",
1444
+ "react-web-api/no-leaked-resize-observer": "warn",
1445
+ "react-web-api/no-leaked-timeout": "warn",
1446
+ // preconfigured rules from eslint-plugin-react-refresh https://github.com/ArnaudBarre/eslint-plugin-react-refresh/tree/main/src
1366
1447
  "react-refresh/only-export-components": [
1367
1448
  WARN,
1368
1449
  {
1369
1450
  allowConstantExport: isAllowConstantExport,
1370
1451
  allowExportNames: [
1371
1452
  ...isUsingNext ? [
1453
+ "dynamic",
1454
+ "dynamicParams",
1455
+ "revalidate",
1456
+ "fetchCache",
1457
+ "runtime",
1458
+ "preferredRegion",
1459
+ "maxDuration",
1372
1460
  "config",
1373
1461
  "generateStaticParams",
1374
1462
  "metadata",
@@ -1376,7 +1464,7 @@ async function react(options = {}) {
1376
1464
  "viewport",
1377
1465
  "generateViewport"
1378
1466
  ] : [],
1379
- ...isUsingRemix ? [
1467
+ ...isUsingRemix || isUsingReactRouter ? [
1380
1468
  "meta",
1381
1469
  "links",
1382
1470
  "headers",
@@ -1386,43 +1474,6 @@ async function react(options = {}) {
1386
1474
  ]
1387
1475
  }
1388
1476
  ],
1389
- // recommended rules from @eslint-react
1390
- "react/ensure-forward-ref-using-ref": WARN,
1391
- "react/no-access-state-in-setstate": ERROR,
1392
- "react/no-array-index-key": WARN,
1393
- "react/no-children-count": WARN,
1394
- "react/no-children-for-each": WARN,
1395
- "react/no-children-map": WARN,
1396
- "react/no-children-only": WARN,
1397
- "react/no-children-prop": WARN,
1398
- "react/no-children-to-array": WARN,
1399
- "react/no-clone-element": WARN,
1400
- "react/no-comment-textnodes": WARN,
1401
- "react/no-component-will-mount": ERROR,
1402
- "react/no-component-will-receive-props": ERROR,
1403
- "react/no-component-will-update": ERROR,
1404
- "react/no-create-ref": ERROR,
1405
- "react/no-direct-mutation-state": ERROR,
1406
- "react/no-duplicate-key": ERROR,
1407
- "react/no-implicit-key": ERROR,
1408
- "react/no-missing-key": ERROR,
1409
- "react/no-nested-components": WARN,
1410
- "react/no-redundant-should-component-update": ERROR,
1411
- "react/no-set-state-in-component-did-mount": WARN,
1412
- "react/no-set-state-in-component-did-update": WARN,
1413
- "react/no-set-state-in-component-will-update": WARN,
1414
- "react/no-string-refs": ERROR,
1415
- "react/no-unsafe-component-will-mount": WARN,
1416
- "react/no-unsafe-component-will-receive-props": WARN,
1417
- "react/no-unsafe-component-will-update": WARN,
1418
- "react/no-unstable-context-value": ERROR,
1419
- "react/no-unstable-default-props": ERROR,
1420
- "react/no-unused-class-component-members": WARN,
1421
- "react/no-unused-state": WARN,
1422
- "react/no-useless-fragment": WARN,
1423
- "react/prefer-destructuring-assignment": WARN,
1424
- "react/prefer-shorthand-boolean": WARN,
1425
- "react/prefer-shorthand-fragment": WARN,
1426
1477
  // overrides
1427
1478
  ...overrides
1428
1479
  }
@@ -1705,6 +1756,7 @@ function sortTsconfig() {
1705
1756
  "useDefineForClassFields",
1706
1757
  "emitDecoratorMetadata",
1707
1758
  "experimentalDecorators",
1759
+ "libReplacement",
1708
1760
  /* Modules */
1709
1761
  "baseUrl",
1710
1762
  "rootDir",
@@ -1778,6 +1830,7 @@ function sortTsconfig() {
1778
1830
  "isolatedModules",
1779
1831
  "preserveSymlinks",
1780
1832
  "verbatimModuleSyntax",
1833
+ "erasableSyntaxOnly",
1781
1834
  /* Completeness */
1782
1835
  "skipDefaultLibCheck",
1783
1836
  "skipLibCheck"
@@ -2099,7 +2152,6 @@ async function typescript(options = {}) {
2099
2152
  ),
2100
2153
  "no-dupe-class-members": OFF,
2101
2154
  "no-invalid-this": OFF,
2102
- "no-loss-of-precision": OFF,
2103
2155
  "no-redeclare": OFF,
2104
2156
  "no-unused-vars": OFF,
2105
2157
  "no-use-before-define": OFF,
@@ -2119,13 +2171,11 @@ async function typescript(options = {}) {
2119
2171
  "ts/naming-convention": OFF,
2120
2172
  "ts/no-dupe-class-members": ERROR,
2121
2173
  "ts/no-empty-function": OFF,
2122
- "ts/no-empty-interface": OFF,
2123
2174
  "ts/no-empty-object-type": [ERROR, { allowInterfaces: "always" }],
2124
2175
  "ts/no-explicit-any": OFF,
2125
2176
  "ts/no-import-type-side-effects": ERROR,
2126
2177
  "ts/no-invalid-this": ERROR,
2127
2178
  "ts/no-invalid-void-type": OFF,
2128
- "ts/no-loss-of-precision": ERROR,
2129
2179
  "ts/no-non-null-assertion": OFF,
2130
2180
  "ts/no-redeclare": ERROR,
2131
2181
  "ts/no-require-imports": ERROR,
@@ -2137,7 +2187,6 @@ async function typescript(options = {}) {
2137
2187
  }],
2138
2188
  "ts/no-use-before-define": [ERROR, { classes: false, functions: false, variables: true }],
2139
2189
  "ts/parameter-properties": OFF,
2140
- "ts/prefer-ts-expect-error": ERROR,
2141
2190
  "ts/triple-slash-reference": OFF,
2142
2191
  ...type === "lib" ? {
2143
2192
  "ts/explicit-function-return-type": [ERROR, {
@@ -2179,8 +2228,7 @@ async function typescript(options = {}) {
2179
2228
  files: ["**/*.js", "**/*.cjs"],
2180
2229
  name: "vinicunca/typescript/disables/javascript",
2181
2230
  rules: {
2182
- "ts/no-require-imports": OFF,
2183
- "ts/no-var-requires": OFF
2231
+ "ts/no-require-imports": OFF
2184
2232
  }
2185
2233
  }
2186
2234
  ];
@@ -2252,26 +2300,35 @@ async function vue(options = {}) {
2252
2300
  const {
2253
2301
  files = [GLOB_VUE],
2254
2302
  overrides = {},
2255
- stylistic: stylistic2 = true
2303
+ stylistic: stylistic2 = true,
2304
+ a11y = false
2256
2305
  } = options;
2257
2306
  const sfcBlocks = options.sfcBlocks === true ? {} : options.sfcBlocks ?? {};
2258
2307
  const {
2259
2308
  indent = 2
2260
2309
  } = e2(stylistic2) ? {} : stylistic2;
2310
+ if (a11y) {
2311
+ await ensurePackages([
2312
+ "eslint-plugin-vuejs-accessibility"
2313
+ ]);
2314
+ }
2261
2315
  const [
2262
2316
  pluginVue,
2263
2317
  parserVue,
2264
- processorVueBlocks
2318
+ processorVueBlocks,
2319
+ pluginVueA11y
2265
2320
  ] = await Promise.all([
2266
2321
  interopDefault(import("eslint-plugin-vue")),
2267
2322
  interopDefault(import("vue-eslint-parser")),
2268
- interopDefault(import("eslint-processor-vue-blocks"))
2323
+ interopDefault(import("eslint-processor-vue-blocks")),
2324
+ ...a11y ? [interopDefault(import("eslint-plugin-vuejs-accessibility"))] : []
2269
2325
  ]);
2270
2326
  return [
2271
2327
  {
2272
2328
  name: "vinicunca/vue/setup",
2273
2329
  plugins: {
2274
- vue: pluginVue
2330
+ vue: pluginVue,
2331
+ ...a11y ? { "vue-a11y": pluginVueA11y } : {}
2275
2332
  },
2276
2333
  // This allows Vue plugin to work with auto imports
2277
2334
  // https://github.com/vuejs/eslint-plugin-vue/pull/2422
@@ -2411,6 +2468,30 @@ async function vue(options = {}) {
2411
2468
  "vue/space-in-parens": [ERROR, NEVER],
2412
2469
  "vue/template-curly-spacing": ERROR
2413
2470
  } : {},
2471
+ ...a11y ? {
2472
+ "vue-a11y/alt-text": ERROR,
2473
+ "vue-a11y/anchor-has-content": ERROR,
2474
+ "vue-a11y/aria-props": ERROR,
2475
+ "vue-a11y/aria-role": ERROR,
2476
+ "vue-a11y/aria-unsupported-elements": ERROR,
2477
+ "vue-a11y/click-events-have-key-events": ERROR,
2478
+ "vue-a11y/form-control-has-label": ERROR,
2479
+ "vue-a11y/heading-has-content": ERROR,
2480
+ "vue-a11y/iframe-has-title": ERROR,
2481
+ "vue-a11y/interactive-supports-focus": ERROR,
2482
+ "vue-a11y/label-has-for": ERROR,
2483
+ "vue-a11y/media-has-caption": WARN,
2484
+ "vue-a11y/mouse-events-have-key-events": ERROR,
2485
+ "vue-a11y/no-access-key": ERROR,
2486
+ "vue-a11y/no-aria-hidden-on-focusable": ERROR,
2487
+ "vue-a11y/no-autofocus": WARN,
2488
+ "vue-a11y/no-distracting-elements": ERROR,
2489
+ "vue-a11y/no-redundant-roles": ERROR,
2490
+ "vue-a11y/no-role-presentation-on-focusable": ERROR,
2491
+ "vue-a11y/no-static-element-interactions": ERROR,
2492
+ "vue-a11y/role-has-required-aria-props": ERROR,
2493
+ "vue-a11y/tabindex-no-positive": WARN
2494
+ } : {},
2414
2495
  ...overrides
2415
2496
  }
2416
2497
  }
@@ -2500,6 +2581,10 @@ async function yaml(options = {}) {
2500
2581
  "supportedArchitectures"
2501
2582
  ],
2502
2583
  pathPattern: "^$"
2584
+ },
2585
+ {
2586
+ order: { type: "asc" },
2587
+ pathPattern: ".*"
2503
2588
  }
2504
2589
  ]
2505
2590
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vinicunca/eslint-config",
3
3
  "type": "module",
4
- "version": "3.7.3",
4
+ "version": "3.9.0",
5
5
  "description": "Vinicunca ESLint config",
6
6
  "author": {
7
7
  "name": "praburangki",
@@ -58,10 +58,11 @@
58
58
  "eslint": "^9.10.0",
59
59
  "eslint-plugin-astro": "^1.2.0",
60
60
  "eslint-plugin-format": ">=0.1.0",
61
- "eslint-plugin-react-hooks": "^5.0.0",
62
- "eslint-plugin-react-refresh": "^0.4.4",
61
+ "eslint-plugin-react-hooks": "^5.2.0",
62
+ "eslint-plugin-react-refresh": "^0.4.19",
63
63
  "eslint-plugin-solid": "^0.14.3",
64
64
  "eslint-plugin-svelte": ">=2.35.1",
65
+ "eslint-plugin-vuejs-accessibility": "^2.4.1",
65
66
  "prettier-plugin-astro": "^0.14.0",
66
67
  "prettier-plugin-slidev": "^1.0.5",
67
68
  "svelte-eslint-parser": ">=0.37.0"
@@ -94,6 +95,9 @@
94
95
  "eslint-plugin-svelte": {
95
96
  "optional": true
96
97
  },
98
+ "eslint-plugin-vuejs-accessibility": {
99
+ "optional": true
100
+ },
97
101
  "prettier-plugin-astro": {
98
102
  "optional": true
99
103
  },
@@ -110,23 +114,23 @@
110
114
  "@eslint-community/eslint-plugin-eslint-comments": "^4.4.1",
111
115
  "@eslint/markdown": "^6.3.0",
112
116
  "@stylistic/eslint-plugin": "^4.2.0",
113
- "@typescript-eslint/eslint-plugin": "^8.26.0",
114
- "@typescript-eslint/parser": "^8.26.0",
117
+ "@typescript-eslint/eslint-plugin": "^8.27.0",
118
+ "@typescript-eslint/parser": "^8.27.0",
115
119
  "@unocss/eslint-plugin": "^66.0.0",
116
- "@vitest/eslint-plugin": "^1.1.36",
120
+ "@vitest/eslint-plugin": "^1.1.38",
117
121
  "eslint-config-flat-gitignore": "^2.1.0",
118
122
  "eslint-flat-config-utils": "^2.0.1",
119
123
  "eslint-merge-processors": "^2.0.0",
120
124
  "eslint-plugin-antfu": "^3.1.1",
121
- "eslint-plugin-command": "^3.1.0",
125
+ "eslint-plugin-command": "^3.2.0",
122
126
  "eslint-plugin-format": "^1.0.1",
123
- "eslint-plugin-import-x": "^4.6.1",
124
- "eslint-plugin-jsdoc": "^50.6.3",
127
+ "eslint-plugin-import-x": "^4.9.1",
128
+ "eslint-plugin-jsdoc": "^50.6.8",
125
129
  "eslint-plugin-jsonc": "^2.19.1",
126
130
  "eslint-plugin-n": "^17.16.2",
127
131
  "eslint-plugin-no-only-tests": "^3.3.0",
128
132
  "eslint-plugin-perfectionist": "^4.10.1",
129
- "eslint-plugin-pnpm": "^0.1.2",
133
+ "eslint-plugin-pnpm": "^0.3.1",
130
134
  "eslint-plugin-regexp": "^2.7.0",
131
135
  "eslint-plugin-sonarjs": "^3.0.2",
132
136
  "eslint-plugin-toml": "^0.12.0",