@lincy/eslint-config 4.3.1 → 4.5.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/README.md +4 -4
- package/dist/index.cjs +110 -124
- package/dist/index.d.cts +499 -1070
- package/dist/index.d.ts +499 -1070
- package/dist/index.js +110 -124
- package/package.json +34 -33
package/dist/index.js
CHANGED
|
@@ -349,7 +349,7 @@ async function javascript(options = {}) {
|
|
|
349
349
|
"unused-imports/no-unused-imports": isInEditor ? "off" : "error",
|
|
350
350
|
"unused-imports/no-unused-vars": [
|
|
351
351
|
"error",
|
|
352
|
-
{ args: "after-used", argsIgnorePattern: "^_", vars: "all", varsIgnorePattern: "^_" }
|
|
352
|
+
{ args: "after-used", argsIgnorePattern: "^_", ignoreRestSiblings: true, vars: "all", varsIgnorePattern: "^_" }
|
|
353
353
|
],
|
|
354
354
|
"use-isnan": ["error", { enforceForIndexOf: true, enforceForSwitchCase: true }],
|
|
355
355
|
"valid-typeof": ["error", { requireStringLiterals: true }],
|
|
@@ -379,8 +379,9 @@ function renameRules(rules, map) {
|
|
|
379
379
|
return Object.fromEntries(
|
|
380
380
|
Object.entries(rules).map(([key, value]) => {
|
|
381
381
|
for (const [from, to] of Object.entries(map)) {
|
|
382
|
-
if (key.startsWith(`${from}/`))
|
|
382
|
+
if (key.startsWith(`${from}/`)) {
|
|
383
383
|
return [to + key.slice(from.length), value];
|
|
384
|
+
}
|
|
384
385
|
}
|
|
385
386
|
return [key, value];
|
|
386
387
|
})
|
|
@@ -389,13 +390,15 @@ function renameRules(rules, map) {
|
|
|
389
390
|
function renamePluginInConfigs(configs, map) {
|
|
390
391
|
return configs.map((i) => {
|
|
391
392
|
const clone = { ...i };
|
|
392
|
-
if (clone.rules)
|
|
393
|
+
if (clone.rules) {
|
|
393
394
|
clone.rules = renameRules(clone.rules, map);
|
|
395
|
+
}
|
|
394
396
|
if (clone.plugins) {
|
|
395
397
|
clone.plugins = Object.fromEntries(
|
|
396
398
|
Object.entries(clone.plugins).map(([key, value]) => {
|
|
397
|
-
if (key in map)
|
|
399
|
+
if (key in map) {
|
|
398
400
|
return [map[key], value];
|
|
401
|
+
}
|
|
399
402
|
return [key, value];
|
|
400
403
|
})
|
|
401
404
|
);
|
|
@@ -411,11 +414,13 @@ async function interopDefault(m) {
|
|
|
411
414
|
return resolved.default || resolved;
|
|
412
415
|
}
|
|
413
416
|
async function ensurePackages(packages) {
|
|
414
|
-
if (process.stdout.isTTY === false)
|
|
417
|
+
if (process.stdout.isTTY === false) {
|
|
415
418
|
return;
|
|
419
|
+
}
|
|
416
420
|
const nonExistingPackages = packages.filter((i) => !isPackageExists(i));
|
|
417
|
-
if (nonExistingPackages.length === 0)
|
|
421
|
+
if (nonExistingPackages.length === 0) {
|
|
418
422
|
return;
|
|
423
|
+
}
|
|
419
424
|
const { default: prompts } = await import("prompts");
|
|
420
425
|
const { result } = await prompts([
|
|
421
426
|
{
|
|
@@ -424,8 +429,9 @@ async function ensurePackages(packages) {
|
|
|
424
429
|
type: "confirm"
|
|
425
430
|
}
|
|
426
431
|
]);
|
|
427
|
-
if (result)
|
|
432
|
+
if (result) {
|
|
428
433
|
await import("@antfu/install-pkg").then((i) => i.installPackage(nonExistingPackages, { dev: true }));
|
|
434
|
+
}
|
|
429
435
|
}
|
|
430
436
|
|
|
431
437
|
// src/configs/jsdoc.ts
|
|
@@ -650,6 +656,7 @@ import * as parserPlain2 from "eslint-parser-plain";
|
|
|
650
656
|
var StylisticConfigDefaults = {
|
|
651
657
|
indent: 4,
|
|
652
658
|
jsx: true,
|
|
659
|
+
lessOpinionated: true,
|
|
653
660
|
quotes: "single",
|
|
654
661
|
semi: false
|
|
655
662
|
};
|
|
@@ -661,6 +668,7 @@ async function stylistic(options = {}) {
|
|
|
661
668
|
const {
|
|
662
669
|
indent,
|
|
663
670
|
jsx,
|
|
671
|
+
lessOpinionated,
|
|
664
672
|
quotes,
|
|
665
673
|
semi
|
|
666
674
|
} = typeof stylistic2 === "boolean" ? StylisticConfigDefaults : { ...StylisticConfigDefaults, ...stylistic2 };
|
|
@@ -683,9 +691,13 @@ async function stylistic(options = {}) {
|
|
|
683
691
|
rules: {
|
|
684
692
|
...config.rules,
|
|
685
693
|
"antfu/consistent-list-newline": "off",
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
694
|
+
...lessOpinionated ? {
|
|
695
|
+
curly: ["error", "all"]
|
|
696
|
+
} : {
|
|
697
|
+
"antfu/if-newline": "error",
|
|
698
|
+
"antfu/top-level-function": "error",
|
|
699
|
+
"curly": ["error", "multi-or-nest", "consistent"]
|
|
700
|
+
},
|
|
689
701
|
// 覆盖`stylistic`默认规则
|
|
690
702
|
"style/member-delimiter-style": ["error", { multiline: { delimiter: "none" } }],
|
|
691
703
|
"style/multiline-ternary": ["error", "never"],
|
|
@@ -798,7 +810,7 @@ async function formatters(options = {}, stylistic2 = {}) {
|
|
|
798
810
|
}
|
|
799
811
|
if (options.html) {
|
|
800
812
|
configs.push({
|
|
801
|
-
files: [
|
|
813
|
+
files: [GLOB_HTML],
|
|
802
814
|
languageOptions: {
|
|
803
815
|
parser: parserPlain2
|
|
804
816
|
},
|
|
@@ -894,152 +906,116 @@ async function react(options = {}) {
|
|
|
894
906
|
typescript: typescript2 = true,
|
|
895
907
|
version = "detect"
|
|
896
908
|
} = options;
|
|
909
|
+
const tsconfigPath = options?.tsconfigPath ? toArray(options.tsconfigPath) : void 0;
|
|
910
|
+
const isTypeAware = !!tsconfigPath || !typescript2;
|
|
897
911
|
await ensurePackages([
|
|
898
|
-
"eslint-plugin
|
|
912
|
+
"@eslint-react/eslint-plugin",
|
|
899
913
|
"eslint-plugin-react-hooks",
|
|
900
914
|
"eslint-plugin-react-refresh"
|
|
901
915
|
]);
|
|
902
916
|
const [
|
|
903
917
|
pluginReact,
|
|
904
918
|
pluginReactHooks,
|
|
905
|
-
pluginReactRefresh
|
|
919
|
+
pluginReactRefresh,
|
|
920
|
+
parserTs
|
|
906
921
|
] = await Promise.all([
|
|
907
|
-
|
|
908
|
-
interopDefault(import("eslint-plugin-react")),
|
|
922
|
+
interopDefault(import("@eslint-react/eslint-plugin")),
|
|
909
923
|
// @ts-expect-error missing types
|
|
910
924
|
interopDefault(import("eslint-plugin-react-hooks")),
|
|
911
925
|
// @ts-expect-error missing types
|
|
912
|
-
interopDefault(import("eslint-plugin-react-refresh"))
|
|
926
|
+
interopDefault(import("eslint-plugin-react-refresh")),
|
|
927
|
+
interopDefault(import("@typescript-eslint/parser"))
|
|
913
928
|
]);
|
|
914
929
|
const _isAllowConstantExport = ReactRefreshAllowConstantExportPackages.some(
|
|
915
930
|
(i) => isPackageExists2(i)
|
|
916
931
|
);
|
|
932
|
+
const plugins = pluginReact.configs.all.plugins;
|
|
917
933
|
return [
|
|
918
934
|
{
|
|
919
935
|
name: "eslint:react:setup",
|
|
920
936
|
plugins: {
|
|
921
|
-
"react":
|
|
937
|
+
"react": plugins["@eslint-react"],
|
|
938
|
+
"react-dom": plugins["@eslint-react/dom"],
|
|
922
939
|
"react-hooks": pluginReactHooks,
|
|
940
|
+
"react-hooks-extra": plugins["@eslint-react/hooks-extra"],
|
|
941
|
+
"react-naming-convention": plugins["@eslint-react/naming-convention"],
|
|
923
942
|
"react-refresh": pluginReactRefresh
|
|
924
943
|
}
|
|
925
944
|
},
|
|
926
945
|
{
|
|
927
946
|
files,
|
|
928
947
|
languageOptions: {
|
|
948
|
+
parser: parserTs,
|
|
929
949
|
parserOptions: {
|
|
930
950
|
ecmaFeatures: {
|
|
931
951
|
jsx
|
|
932
|
-
}
|
|
952
|
+
},
|
|
953
|
+
...isTypeAware ? { project: tsconfigPath } : {}
|
|
933
954
|
}
|
|
934
955
|
},
|
|
935
956
|
name: "eslint:react:rules",
|
|
936
957
|
rules: {
|
|
937
|
-
// react
|
|
958
|
+
// recommended rules from @eslint-react/dom
|
|
959
|
+
"react-dom/no-children-in-void-dom-elements": "warn",
|
|
960
|
+
"react-dom/no-dangerously-set-innerhtml": "warn",
|
|
961
|
+
"react-dom/no-dangerously-set-innerhtml-with-children": "error",
|
|
962
|
+
"react-dom/no-find-dom-node": "error",
|
|
963
|
+
"react-dom/no-missing-button-type": "warn",
|
|
964
|
+
"react-dom/no-missing-iframe-sandbox": "warn",
|
|
965
|
+
"react-dom/no-namespace": "error",
|
|
966
|
+
"react-dom/no-render-return-value": "error",
|
|
967
|
+
"react-dom/no-script-url": "warn",
|
|
968
|
+
"react-dom/no-unsafe-iframe-sandbox": "warn",
|
|
969
|
+
"react-dom/no-unsafe-target-blank": "warn",
|
|
970
|
+
// recommended rules react-hooks
|
|
938
971
|
"react-hooks/exhaustive-deps": "warn",
|
|
939
972
|
"react-hooks/rules-of-hooks": "error",
|
|
940
|
-
// react
|
|
973
|
+
// react refresh
|
|
941
974
|
// 'react-refresh/only-export-components': [
|
|
942
975
|
// 'warn',
|
|
943
|
-
// { allowConstantExport:
|
|
976
|
+
// { allowConstantExport: isAllowConstantExport },
|
|
944
977
|
// ],
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
"react/boolean-prop-naming": "error",
|
|
948
|
-
"react/button-has-type": "error",
|
|
949
|
-
"react/default-props-match-prop-types": "error",
|
|
950
|
-
"react/destructuring-assignment": "error",
|
|
951
|
-
"react/display-name": "error",
|
|
952
|
-
"react/forbid-component-props": "off",
|
|
953
|
-
// 禁止组件上使用某些 props
|
|
954
|
-
"react/forbid-dom-props": "error",
|
|
955
|
-
"react/forbid-elements": "error",
|
|
956
|
-
"react/forbid-foreign-prop-types": "error",
|
|
957
|
-
"react/forbid-prop-types": "error",
|
|
958
|
-
"react/function-component-definition": "error",
|
|
959
|
-
"react/hook-use-state": "off",
|
|
960
|
-
// useState 钩子值和 setter 变量的解构和对称命名
|
|
961
|
-
"react/iframe-missing-sandbox": "error",
|
|
962
|
-
"react/jsx-boolean-value": "error",
|
|
963
|
-
"react/jsx-filename-extension": "off",
|
|
964
|
-
// 禁止可能包含 JSX 文件扩展名
|
|
965
|
-
"react/jsx-fragments": "error",
|
|
966
|
-
"react/jsx-handler-names": "error",
|
|
967
|
-
"react/jsx-key": "error",
|
|
968
|
-
"react/jsx-max-depth": "off",
|
|
969
|
-
// 强制 JSX 最大深度
|
|
970
|
-
"react/jsx-no-bind": "off",
|
|
971
|
-
// .bind()JSX 属性中禁止使用箭头函数
|
|
972
|
-
"react/jsx-no-comment-textnodes": "error",
|
|
973
|
-
"react/jsx-no-constructed-context-values": "error",
|
|
974
|
-
"react/jsx-no-duplicate-props": "error",
|
|
975
|
-
"react/jsx-no-leaked-render": "error",
|
|
976
|
-
"react/jsx-no-literals": "off",
|
|
977
|
-
// 禁止在 JSX 中使用字符串文字
|
|
978
|
-
"react/jsx-no-script-url": "error",
|
|
979
|
-
"react/jsx-no-target-blank": "error",
|
|
980
|
-
"react/jsx-no-undef": "error",
|
|
981
|
-
"react/jsx-no-useless-fragment": "error",
|
|
982
|
-
"react/jsx-props-no-spreading": "off",
|
|
983
|
-
// 强制任何 JSX 属性都不会传播
|
|
984
|
-
"react/jsx-uses-react": "error",
|
|
985
|
-
"react/jsx-uses-vars": "error",
|
|
978
|
+
// recommended rules from @eslint-react
|
|
979
|
+
"react/ensure-forward-ref-using-ref": "warn",
|
|
986
980
|
"react/no-access-state-in-setstate": "error",
|
|
987
|
-
"react/no-
|
|
988
|
-
"react/no-
|
|
989
|
-
"react/no-
|
|
990
|
-
"react/no-children-
|
|
991
|
-
"react/no-
|
|
992
|
-
|
|
993
|
-
"react/no-
|
|
994
|
-
"react/no-
|
|
995
|
-
"react/no-
|
|
996
|
-
"react/no-
|
|
981
|
+
"react/no-array-index-key": "warn",
|
|
982
|
+
"react/no-children-count": "warn",
|
|
983
|
+
"react/no-children-for-each": "warn",
|
|
984
|
+
"react/no-children-map": "warn",
|
|
985
|
+
"react/no-children-only": "warn",
|
|
986
|
+
"react/no-children-prop": "warn",
|
|
987
|
+
"react/no-children-to-array": "warn",
|
|
988
|
+
"react/no-clone-element": "warn",
|
|
989
|
+
"react/no-comment-textnodes": "warn",
|
|
990
|
+
"react/no-component-will-mount": "error",
|
|
991
|
+
"react/no-component-will-receive-props": "error",
|
|
992
|
+
"react/no-component-will-update": "error",
|
|
993
|
+
"react/no-create-ref": "error",
|
|
997
994
|
"react/no-direct-mutation-state": "error",
|
|
998
|
-
"react/no-
|
|
999
|
-
"react/no-
|
|
1000
|
-
"react/no-
|
|
1001
|
-
"react/no-
|
|
1002
|
-
"react/no-namespace": "error",
|
|
1003
|
-
"react/no-object-type-as-default-prop": "error",
|
|
995
|
+
"react/no-duplicate-key": "error",
|
|
996
|
+
"react/no-implicit-key": "error",
|
|
997
|
+
"react/no-missing-key": "error",
|
|
998
|
+
"react/no-nested-components": "warn",
|
|
1004
999
|
"react/no-redundant-should-component-update": "error",
|
|
1005
|
-
"react/no-
|
|
1006
|
-
"react/no-set-state": "
|
|
1000
|
+
"react/no-set-state-in-component-did-mount": "warn",
|
|
1001
|
+
"react/no-set-state-in-component-did-update": "warn",
|
|
1002
|
+
"react/no-set-state-in-component-will-update": "warn",
|
|
1007
1003
|
"react/no-string-refs": "error",
|
|
1008
|
-
"react/no-
|
|
1009
|
-
"react/no-
|
|
1010
|
-
"react/no-
|
|
1011
|
-
"react/no-
|
|
1012
|
-
"react/no-
|
|
1013
|
-
|
|
1014
|
-
"react/no-
|
|
1015
|
-
"react/no-
|
|
1016
|
-
"react/
|
|
1017
|
-
"react/
|
|
1018
|
-
"react/
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
"react/prefer-read-only-props": "error",
|
|
1022
|
-
"react/prefer-stateless-function": "error",
|
|
1023
|
-
"react/prop-types": "error",
|
|
1024
|
-
"react/react-in-jsx-scope": "off",
|
|
1025
|
-
// 使用 JSX 时需要引入 React
|
|
1026
|
-
"react/require-default-props": "off",
|
|
1027
|
-
// 为每个非必需 prop 强制执行 defaultProps 定义
|
|
1028
|
-
"react/require-optimization": "error",
|
|
1029
|
-
"react/require-render-return": "error",
|
|
1030
|
-
"react/self-closing-comp": "error",
|
|
1031
|
-
"react/sort-comp": "error",
|
|
1032
|
-
"react/sort-default-props": "error",
|
|
1033
|
-
"react/sort-prop-types": "error",
|
|
1034
|
-
"react/state-in-constructor": "error",
|
|
1035
|
-
"react/static-property-placement": "error",
|
|
1036
|
-
"react/style-prop-object": "error",
|
|
1037
|
-
"react/void-dom-elements-no-children": "error",
|
|
1038
|
-
"style/jsx-pascal-case": "error",
|
|
1039
|
-
...typescript2 ? {
|
|
1040
|
-
"react/jsx-no-undef": "off",
|
|
1041
|
-
"react/prop-type": "off"
|
|
1004
|
+
"react/no-unsafe-component-will-mount": "warn",
|
|
1005
|
+
"react/no-unsafe-component-will-receive-props": "warn",
|
|
1006
|
+
"react/no-unsafe-component-will-update": "warn",
|
|
1007
|
+
"react/no-unstable-context-value": "error",
|
|
1008
|
+
"react/no-unstable-default-props": "error",
|
|
1009
|
+
"react/no-unused-class-component-members": "warn",
|
|
1010
|
+
"react/no-unused-state": "warn",
|
|
1011
|
+
"react/no-useless-fragment": "warn",
|
|
1012
|
+
"react/prefer-destructuring-assignment": "warn",
|
|
1013
|
+
"react/prefer-shorthand-boolean": "warn",
|
|
1014
|
+
"react/prefer-shorthand-fragment": "warn",
|
|
1015
|
+
...isTypeAware ? {
|
|
1016
|
+
"react/no-leaked-conditional-rendering": "warn"
|
|
1042
1017
|
} : {},
|
|
1018
|
+
// overrides
|
|
1043
1019
|
...overrides
|
|
1044
1020
|
},
|
|
1045
1021
|
settings: {
|
|
@@ -1869,6 +1845,10 @@ var VuePackages = [
|
|
|
1869
1845
|
"@slidev/cli"
|
|
1870
1846
|
];
|
|
1871
1847
|
var defaultPluginRenaming = {
|
|
1848
|
+
"@eslint-react": "react",
|
|
1849
|
+
"@eslint-react/dom": "react-dom",
|
|
1850
|
+
"@eslint-react/hooks-extra": "react-hooks-extra",
|
|
1851
|
+
"@eslint-react/naming-convention": "react-naming-convention",
|
|
1872
1852
|
"@stylistic": "style",
|
|
1873
1853
|
"@typescript-eslint": "ts",
|
|
1874
1854
|
"import-x": "import",
|
|
@@ -1894,16 +1874,18 @@ function lincy(options = {}, ...userConfigs) {
|
|
|
1894
1874
|
} = options;
|
|
1895
1875
|
const stylisticOptions = options.stylistic === false ? false : typeof options.stylistic === "object" ? options.stylistic : {};
|
|
1896
1876
|
if (stylisticOptions) {
|
|
1897
|
-
if (!("jsx" in stylisticOptions))
|
|
1877
|
+
if (!("jsx" in stylisticOptions)) {
|
|
1898
1878
|
stylisticOptions.jsx = options.jsx ?? true;
|
|
1879
|
+
}
|
|
1899
1880
|
}
|
|
1900
1881
|
const configs = [];
|
|
1901
1882
|
if (enableGitignore) {
|
|
1902
1883
|
if (typeof enableGitignore !== "boolean") {
|
|
1903
1884
|
configs.push(interopDefault(import("eslint-config-flat-gitignore")).then((r) => [r(enableGitignore)]));
|
|
1904
1885
|
} else {
|
|
1905
|
-
if (fs.existsSync(".gitignore"))
|
|
1886
|
+
if (fs.existsSync(".gitignore")) {
|
|
1906
1887
|
configs.push(interopDefault(import("eslint-config-flat-gitignore")).then((r) => [r()]));
|
|
1888
|
+
}
|
|
1907
1889
|
}
|
|
1908
1890
|
}
|
|
1909
1891
|
configs.push(
|
|
@@ -1926,8 +1908,9 @@ function lincy(options = {}, ...userConfigs) {
|
|
|
1926
1908
|
// Optional plugins (installed but not enabled by default)
|
|
1927
1909
|
perfectionist()
|
|
1928
1910
|
);
|
|
1929
|
-
if (enableVue)
|
|
1911
|
+
if (enableVue) {
|
|
1930
1912
|
componentExts.push("vue");
|
|
1913
|
+
}
|
|
1931
1914
|
if (enableTypeScript) {
|
|
1932
1915
|
configs.push(typescript({
|
|
1933
1916
|
...typeof enableTypeScript !== "boolean" ? enableTypeScript : {},
|
|
@@ -2007,20 +1990,23 @@ function lincy(options = {}, ...userConfigs) {
|
|
|
2007
1990
|
));
|
|
2008
1991
|
}
|
|
2009
1992
|
const fusedConfig = flatConfigProps.reduce((acc, key) => {
|
|
2010
|
-
if (key in options)
|
|
1993
|
+
if (key in options) {
|
|
2011
1994
|
acc[key] = options[key];
|
|
1995
|
+
}
|
|
2012
1996
|
return acc;
|
|
2013
1997
|
}, {});
|
|
2014
|
-
if (Object.keys(fusedConfig).length)
|
|
1998
|
+
if (Object.keys(fusedConfig).length) {
|
|
2015
1999
|
configs.push([fusedConfig]);
|
|
2016
|
-
|
|
2017
|
-
|
|
2000
|
+
}
|
|
2001
|
+
let composer = new FlatConfigComposer();
|
|
2002
|
+
composer = composer.append(
|
|
2018
2003
|
...configs,
|
|
2019
2004
|
...userConfigs
|
|
2020
2005
|
);
|
|
2021
|
-
if (autoRenamePlugins)
|
|
2022
|
-
|
|
2023
|
-
|
|
2006
|
+
if (autoRenamePlugins) {
|
|
2007
|
+
composer = composer.renamePlugins(defaultPluginRenaming);
|
|
2008
|
+
}
|
|
2009
|
+
return composer;
|
|
2024
2010
|
}
|
|
2025
2011
|
|
|
2026
2012
|
// src/index.ts
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lincy/eslint-config",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "4.
|
|
4
|
+
"version": "4.5.0",
|
|
5
5
|
"packageManager": "pnpm@8.7.6",
|
|
6
6
|
"description": "LinCenYing's ESLint config",
|
|
7
7
|
"author": "LinCenYing <lincenying@gmail.com> (https://github.com/lincenying/)",
|
|
@@ -37,21 +37,21 @@
|
|
|
37
37
|
"prepare": "npx simple-git-hooks"
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
40
|
+
"@eslint-react/eslint-plugin": "^7.33.2",
|
|
40
41
|
"@unocss/eslint-plugin": ">=0.50.0",
|
|
41
42
|
"eslint": ">=8.40.0",
|
|
42
43
|
"eslint-plugin-format": ">=0.1.0",
|
|
43
|
-
"eslint-plugin-react": "^7.33.2",
|
|
44
44
|
"eslint-plugin-react-hooks": "^4.6.0",
|
|
45
45
|
"eslint-plugin-react-refresh": "^0.4.4"
|
|
46
46
|
},
|
|
47
47
|
"peerDependenciesMeta": {
|
|
48
|
-
"@
|
|
48
|
+
"@eslint-react/eslint-plugin": {
|
|
49
49
|
"optional": true
|
|
50
50
|
},
|
|
51
|
-
"eslint-plugin
|
|
51
|
+
"@unocss/eslint-plugin": {
|
|
52
52
|
"optional": true
|
|
53
53
|
},
|
|
54
|
-
"eslint-plugin-
|
|
54
|
+
"eslint-plugin-format": {
|
|
55
55
|
"optional": true
|
|
56
56
|
},
|
|
57
57
|
"eslint-plugin-react-hooks": {
|
|
@@ -64,29 +64,29 @@
|
|
|
64
64
|
"dependencies": {
|
|
65
65
|
"@antfu/eslint-define-config": "1.23.0-2",
|
|
66
66
|
"@antfu/install-pkg": "^0.3.2",
|
|
67
|
-
"@stylistic/eslint-plugin": "1.7.
|
|
68
|
-
"@typescript-eslint/eslint-plugin": "^7.
|
|
69
|
-
"@typescript-eslint/parser": "^7.
|
|
70
|
-
"eslint-config-flat-gitignore": "^0.1.
|
|
71
|
-
"eslint-flat-config-utils": "^0.2.
|
|
67
|
+
"@stylistic/eslint-plugin": "1.7.2",
|
|
68
|
+
"@typescript-eslint/eslint-plugin": "^7.7.1",
|
|
69
|
+
"@typescript-eslint/parser": "^7.7.1",
|
|
70
|
+
"eslint-config-flat-gitignore": "^0.1.5",
|
|
71
|
+
"eslint-flat-config-utils": "^0.2.3",
|
|
72
72
|
"eslint-merge-processors": "^0.1.0",
|
|
73
73
|
"eslint-parser-plain": "^0.1.0",
|
|
74
74
|
"eslint-plugin-antfu": "^2.1.2",
|
|
75
75
|
"eslint-plugin-eslint-comments": "^3.2.0",
|
|
76
76
|
"eslint-plugin-import-x": "^0.5.0",
|
|
77
|
-
"eslint-plugin-jsdoc": "^48.2.
|
|
78
|
-
"eslint-plugin-jsonc": "^2.15.
|
|
77
|
+
"eslint-plugin-jsdoc": "^48.2.3",
|
|
78
|
+
"eslint-plugin-jsonc": "^2.15.1",
|
|
79
79
|
"eslint-plugin-markdown": "^4.0.1",
|
|
80
|
-
"eslint-plugin-n": "^
|
|
80
|
+
"eslint-plugin-n": "^17.2.1",
|
|
81
81
|
"eslint-plugin-no-only-tests": "^3.1.0",
|
|
82
|
-
"eslint-plugin-perfectionist": "^2.
|
|
82
|
+
"eslint-plugin-perfectionist": "^2.9.0",
|
|
83
83
|
"eslint-plugin-toml": "^0.11.0",
|
|
84
|
-
"eslint-plugin-unicorn": "^
|
|
84
|
+
"eslint-plugin-unicorn": "^52.0.0",
|
|
85
85
|
"eslint-plugin-unused-imports": "^3.1.0",
|
|
86
|
-
"eslint-plugin-vitest": "^0.
|
|
87
|
-
"eslint-plugin-vue": "^9.
|
|
86
|
+
"eslint-plugin-vitest": "^0.5.3",
|
|
87
|
+
"eslint-plugin-vue": "^9.25.0",
|
|
88
88
|
"eslint-plugin-yml": "^1.14.0",
|
|
89
|
-
"eslint-processor-vue-blocks": "^0.1.
|
|
89
|
+
"eslint-processor-vue-blocks": "^0.1.2",
|
|
90
90
|
"globals": "^15.0.0",
|
|
91
91
|
"jsonc-eslint-parser": "^2.4.0",
|
|
92
92
|
"local-pkg": "^0.5.0",
|
|
@@ -97,35 +97,36 @@
|
|
|
97
97
|
},
|
|
98
98
|
"devDependencies": {
|
|
99
99
|
"@antfu/ni": "^0.21.12",
|
|
100
|
-
"@eslint-
|
|
101
|
-
"@eslint-types/
|
|
102
|
-
"@eslint-types/
|
|
103
|
-
"@eslint/
|
|
100
|
+
"@eslint-react/eslint-plugin": "^1.5.9",
|
|
101
|
+
"@eslint-types/jsdoc": "48.2.2",
|
|
102
|
+
"@eslint-types/typescript-eslint": "^7.5.0",
|
|
103
|
+
"@eslint-types/unicorn": "^52.0.0",
|
|
104
|
+
"@eslint/config-inspector": "^0.4.7",
|
|
104
105
|
"@lincy/eslint-config": "workspace:*",
|
|
105
|
-
"@stylistic/eslint-plugin-migrate": "^1.7.
|
|
106
|
-
"@types/eslint": "^8.56.
|
|
107
|
-
"@types/node": "^20.12.
|
|
106
|
+
"@stylistic/eslint-plugin-migrate": "^1.7.2",
|
|
107
|
+
"@types/eslint": "^8.56.10",
|
|
108
|
+
"@types/node": "^20.12.7",
|
|
108
109
|
"@types/prompts": "^2.4.9",
|
|
109
|
-
"@unocss/eslint-plugin": "^0.
|
|
110
|
+
"@unocss/eslint-plugin": "^0.59.4",
|
|
110
111
|
"bumpp": "^9.4.0",
|
|
111
|
-
"eslint": "^
|
|
112
|
-
"eslint-plugin-format": "^0.1.
|
|
113
|
-
"eslint-plugin-react": "^7.34.1",
|
|
112
|
+
"eslint": "^9.1.1",
|
|
113
|
+
"eslint-plugin-format": "^0.1.1",
|
|
114
114
|
"eslint-plugin-react-hooks": "^4.6.0",
|
|
115
115
|
"eslint-plugin-react-refresh": "^0.4.6",
|
|
116
|
-
"eslint-typegen": "^0.2.
|
|
116
|
+
"eslint-typegen": "^0.2.4",
|
|
117
117
|
"esno": "^4.7.0",
|
|
118
118
|
"lint-staged": "^15.2.2",
|
|
119
119
|
"prettier": "^3.2.5",
|
|
120
|
+
"react": "^18.2.0",
|
|
120
121
|
"rimraf": "^5.0.5",
|
|
121
122
|
"simple-git-hooks": "^2.11.1",
|
|
122
123
|
"simple-open-url": "^3.0.1",
|
|
123
124
|
"sucrase": "^3.35.0",
|
|
124
125
|
"tsup": "^8.0.2",
|
|
125
|
-
"typescript": "^5.4.
|
|
126
|
+
"typescript": "^5.4.5",
|
|
126
127
|
"unbuild": "^2.0.0",
|
|
127
|
-
"vitest": "^1.
|
|
128
|
-
"vue": "^3.4.
|
|
128
|
+
"vitest": "^1.5.0",
|
|
129
|
+
"vue": "^3.4.24"
|
|
129
130
|
},
|
|
130
131
|
"pnpm": {
|
|
131
132
|
"peerDependencyRules": {
|