@lincy/eslint-config 4.6.3 → 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.cjs +72 -23
- package/dist/index.d.cts +822 -1191
- package/dist/index.d.ts +822 -1191
- package/dist/index.js +70 -23
- package/package.json +38 -38
package/dist/index.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
// src/factory.ts
|
|
2
|
-
import process3 from "node:process";
|
|
3
|
-
import fs from "node:fs";
|
|
4
2
|
import { isPackageExists as isPackageExists3 } from "local-pkg";
|
|
5
3
|
import { FlatConfigComposer } from "eslint-flat-config-utils";
|
|
6
4
|
|
|
@@ -93,6 +91,7 @@ var GLOB_EXCLUDE = [
|
|
|
93
91
|
"**/.output",
|
|
94
92
|
"**/.vite-inspect",
|
|
95
93
|
"**/.yarn",
|
|
94
|
+
"**/vite.config.*.timestamp-*",
|
|
96
95
|
"**/CHANGELOG*.md",
|
|
97
96
|
"**/*.min.*",
|
|
98
97
|
"**/LICENSE*",
|
|
@@ -111,7 +110,8 @@ async function ignores(options = {}) {
|
|
|
111
110
|
ignores: [
|
|
112
111
|
...GLOB_EXCLUDE,
|
|
113
112
|
...ignores2
|
|
114
|
-
]
|
|
113
|
+
],
|
|
114
|
+
name: "eslint:ignores"
|
|
115
115
|
}
|
|
116
116
|
];
|
|
117
117
|
}
|
|
@@ -186,6 +186,9 @@ async function javascript(options = {}) {
|
|
|
186
186
|
linterOptions: {
|
|
187
187
|
reportUnusedDisableDirectives: true
|
|
188
188
|
},
|
|
189
|
+
name: "eslint:javascript:setup"
|
|
190
|
+
},
|
|
191
|
+
{
|
|
189
192
|
name: "eslint:javascript:rules",
|
|
190
193
|
plugins: {
|
|
191
194
|
"antfu": default2,
|
|
@@ -443,6 +446,9 @@ async function ensurePackages(packages) {
|
|
|
443
446
|
await import("@antfu/install-pkg").then((i) => i.installPackage(nonExistingPackages, { dev: true }));
|
|
444
447
|
}
|
|
445
448
|
}
|
|
449
|
+
function isInEditorEnv() {
|
|
450
|
+
return !!((process.env.VSCODE_PID || process.env.VSCODE_CWD || process.env.JETBRAINS_IDE || process.env.VIM || process.env.NVIM) && !process.env.CI);
|
|
451
|
+
}
|
|
446
452
|
|
|
447
453
|
// src/configs/jsdoc.ts
|
|
448
454
|
async function jsdoc(options = {}) {
|
|
@@ -552,6 +558,23 @@ async function jsonc(options = {}) {
|
|
|
552
558
|
];
|
|
553
559
|
}
|
|
554
560
|
|
|
561
|
+
// src/configs/jsx.ts
|
|
562
|
+
async function jsx() {
|
|
563
|
+
return [
|
|
564
|
+
{
|
|
565
|
+
files: [GLOB_JSX, GLOB_TSX],
|
|
566
|
+
languageOptions: {
|
|
567
|
+
parserOptions: {
|
|
568
|
+
ecmaFeatures: {
|
|
569
|
+
jsx: true
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
},
|
|
573
|
+
name: "eslint:jsx:setup"
|
|
574
|
+
}
|
|
575
|
+
];
|
|
576
|
+
}
|
|
577
|
+
|
|
555
578
|
// src/configs/markdown.ts
|
|
556
579
|
import * as parserPlain from "eslint-parser-plain";
|
|
557
580
|
import { mergeProcessors, processorPassThrough } from "eslint-merge-processors";
|
|
@@ -616,6 +639,7 @@ async function markdown(options = {}) {
|
|
|
616
639
|
"ts/no-namespace": "off",
|
|
617
640
|
"ts/no-redeclare": "off",
|
|
618
641
|
"ts/no-require-imports": "off",
|
|
642
|
+
"ts/no-unused-expressions": "off",
|
|
619
643
|
"ts/no-unused-vars": "off",
|
|
620
644
|
"ts/no-use-before-define": "off",
|
|
621
645
|
"ts/no-var-requires": "off",
|
|
@@ -676,7 +700,7 @@ async function stylistic(options = {}) {
|
|
|
676
700
|
} = options;
|
|
677
701
|
const {
|
|
678
702
|
indent,
|
|
679
|
-
jsx,
|
|
703
|
+
jsx: jsx2,
|
|
680
704
|
lessOpinionated,
|
|
681
705
|
quotes,
|
|
682
706
|
semi
|
|
@@ -685,7 +709,7 @@ async function stylistic(options = {}) {
|
|
|
685
709
|
const config = pluginStylistic.configs.customize({
|
|
686
710
|
flat: true,
|
|
687
711
|
indent,
|
|
688
|
-
jsx,
|
|
712
|
+
jsx: jsx2,
|
|
689
713
|
pluginName: "style",
|
|
690
714
|
quotes,
|
|
691
715
|
semi
|
|
@@ -912,7 +936,7 @@ var ReactRefreshAllowConstantExportPackages = [
|
|
|
912
936
|
async function react(options = {}) {
|
|
913
937
|
const {
|
|
914
938
|
files = [GLOB_JSX, GLOB_TSX],
|
|
915
|
-
jsx = true,
|
|
939
|
+
jsx: jsx2 = true,
|
|
916
940
|
overrides = {},
|
|
917
941
|
version = "detect"
|
|
918
942
|
} = options;
|
|
@@ -958,7 +982,7 @@ async function react(options = {}) {
|
|
|
958
982
|
parser: parserTs,
|
|
959
983
|
parserOptions: {
|
|
960
984
|
ecmaFeatures: {
|
|
961
|
-
jsx
|
|
985
|
+
jsx: jsx2
|
|
962
986
|
},
|
|
963
987
|
...isTypeAware ? { project: tsconfigPath } : {}
|
|
964
988
|
}
|
|
@@ -1088,6 +1112,7 @@ async function sortPackageJson() {
|
|
|
1088
1112
|
"private",
|
|
1089
1113
|
"packageManager",
|
|
1090
1114
|
"description",
|
|
1115
|
+
"contributors",
|
|
1091
1116
|
"author",
|
|
1092
1117
|
"license",
|
|
1093
1118
|
"funding",
|
|
@@ -1330,6 +1355,7 @@ async function test(options = {}) {
|
|
|
1330
1355
|
"test/no-only-tests": isInEditor ? "off" : "error",
|
|
1331
1356
|
"test/prefer-hooks-in-order": "error",
|
|
1332
1357
|
"test/prefer-lowercase-title": "error",
|
|
1358
|
+
"ts/explicit-function-return-type": "off",
|
|
1333
1359
|
...overrides
|
|
1334
1360
|
}
|
|
1335
1361
|
}
|
|
@@ -1342,19 +1368,19 @@ async function typescript(options = {}) {
|
|
|
1342
1368
|
const {
|
|
1343
1369
|
componentExts = [],
|
|
1344
1370
|
overrides = {},
|
|
1345
|
-
parserOptions = {}
|
|
1371
|
+
parserOptions = {},
|
|
1372
|
+
type = "app"
|
|
1346
1373
|
} = options;
|
|
1347
1374
|
const files = options.files ?? [
|
|
1348
1375
|
GLOB_SRC,
|
|
1349
1376
|
...componentExts.map((ext) => `**/*.${ext}`)
|
|
1350
1377
|
];
|
|
1351
1378
|
const filesTypeAware = options.filesTypeAware ?? [GLOB_TS, GLOB_TSX];
|
|
1352
|
-
const tsconfigPath = options?.tsconfigPath ?
|
|
1379
|
+
const tsconfigPath = options?.tsconfigPath ? options.tsconfigPath : void 0;
|
|
1353
1380
|
const isTypeAware = !!tsconfigPath;
|
|
1354
1381
|
const typeAwareRules = {
|
|
1355
1382
|
"dot-notation": "off",
|
|
1356
1383
|
"no-implied-eval": "off",
|
|
1357
|
-
"no-throw-literal": "off",
|
|
1358
1384
|
"ts/await-thenable": "error",
|
|
1359
1385
|
"ts/dot-notation": ["error", { allowKeywords: true }],
|
|
1360
1386
|
"ts/no-floating-promises": "error",
|
|
@@ -1367,9 +1393,12 @@ async function typescript(options = {}) {
|
|
|
1367
1393
|
"ts/no-unsafe-call": "error",
|
|
1368
1394
|
"ts/no-unsafe-member-access": "error",
|
|
1369
1395
|
"ts/no-unsafe-return": "error",
|
|
1396
|
+
"ts/promise-function-async": "error",
|
|
1370
1397
|
"ts/restrict-plus-operands": "error",
|
|
1371
1398
|
"ts/restrict-template-expressions": "error",
|
|
1372
|
-
"ts/
|
|
1399
|
+
"ts/return-await": ["error", "in-try-catch"],
|
|
1400
|
+
"ts/strict-boolean-expressions": ["error", { allowNullableBoolean: true, allowNullableObject: true }],
|
|
1401
|
+
"ts/switch-exhaustiveness-check": "error",
|
|
1373
1402
|
"ts/unbound-method": "error"
|
|
1374
1403
|
};
|
|
1375
1404
|
const [
|
|
@@ -1389,7 +1418,10 @@ async function typescript(options = {}) {
|
|
|
1389
1418
|
extraFileExtensions: componentExts.map((ext) => `.${ext}`),
|
|
1390
1419
|
sourceType: "module",
|
|
1391
1420
|
...typeAware ? {
|
|
1392
|
-
|
|
1421
|
+
projectService: {
|
|
1422
|
+
allowDefaultProject: ["./*.js"],
|
|
1423
|
+
defaultProject: tsconfigPath
|
|
1424
|
+
},
|
|
1393
1425
|
tsconfigRootDir: process2.cwd()
|
|
1394
1426
|
} : {},
|
|
1395
1427
|
...parserOptions
|
|
@@ -1432,12 +1464,15 @@ async function typescript(options = {}) {
|
|
|
1432
1464
|
"no-use-before-define": "off",
|
|
1433
1465
|
"no-useless-constructor": "off",
|
|
1434
1466
|
"ts/ban-ts-comment": ["error", { "ts-ignore": "allow-with-description" }],
|
|
1435
|
-
"ts/ban-types": ["error", { types: { Function: false } }],
|
|
1436
1467
|
"ts/consistent-type-definitions": ["error", "interface"],
|
|
1437
|
-
"ts/consistent-type-imports": ["error", {
|
|
1468
|
+
"ts/consistent-type-imports": ["error", {
|
|
1469
|
+
disallowTypeAnnotations: false,
|
|
1470
|
+
prefer: "type-imports"
|
|
1471
|
+
}],
|
|
1438
1472
|
"ts/method-signature-style": ["error", "property"],
|
|
1439
1473
|
"ts/no-dupe-class-members": "error",
|
|
1440
1474
|
"ts/no-dynamic-delete": "off",
|
|
1475
|
+
"ts/no-empty-object-type": ["error", { allowInterfaces: "always" }],
|
|
1441
1476
|
"ts/no-explicit-any": "off",
|
|
1442
1477
|
"ts/no-extraneous-class": "off",
|
|
1443
1478
|
"ts/no-import-type-side-effects": "error",
|
|
@@ -1449,9 +1484,16 @@ async function typescript(options = {}) {
|
|
|
1449
1484
|
"ts/no-unused-vars": "off",
|
|
1450
1485
|
"ts/no-use-before-define": ["error", { classes: false, functions: false, variables: true }],
|
|
1451
1486
|
"ts/no-useless-constructor": "off",
|
|
1452
|
-
"ts/
|
|
1487
|
+
"ts/no-wrapper-object-types": "error",
|
|
1453
1488
|
"ts/triple-slash-reference": "off",
|
|
1454
1489
|
"ts/unified-signatures": "off",
|
|
1490
|
+
...type === "lib" ? {
|
|
1491
|
+
"ts/explicit-function-return-type": ["error", {
|
|
1492
|
+
allowExpressions: true,
|
|
1493
|
+
allowHigherOrderFunctions: true,
|
|
1494
|
+
allowIIFEs: true
|
|
1495
|
+
}]
|
|
1496
|
+
} : {},
|
|
1455
1497
|
...overrides
|
|
1456
1498
|
}
|
|
1457
1499
|
},
|
|
@@ -1459,12 +1501,12 @@ async function typescript(options = {}) {
|
|
|
1459
1501
|
files: filesTypeAware,
|
|
1460
1502
|
name: "eslint:typescript:rules-type-aware",
|
|
1461
1503
|
rules: {
|
|
1462
|
-
...
|
|
1504
|
+
...typeAwareRules,
|
|
1463
1505
|
...overrides
|
|
1464
1506
|
}
|
|
1465
1507
|
}] : [],
|
|
1466
1508
|
{
|
|
1467
|
-
files: ["**/*.d
|
|
1509
|
+
files: ["**/*.d.?([cm])ts"],
|
|
1468
1510
|
name: "eslint:typescript:disables:dts",
|
|
1469
1511
|
rules: {
|
|
1470
1512
|
"eslint-comments/no-unlimited-disable": "off",
|
|
@@ -1897,7 +1939,8 @@ function lincy(options = {}, ...userConfigs) {
|
|
|
1897
1939
|
autoRenamePlugins = true,
|
|
1898
1940
|
componentExts = [],
|
|
1899
1941
|
gitignore: enableGitignore = true,
|
|
1900
|
-
isInEditor =
|
|
1942
|
+
isInEditor = isInEditorEnv(),
|
|
1943
|
+
jsx: enableJsx = true,
|
|
1901
1944
|
overrides = {},
|
|
1902
1945
|
react: enableReact = ReactPackages.some((i) => isPackageExists3(i)),
|
|
1903
1946
|
regexp: enableRegexp = true,
|
|
@@ -1909,7 +1952,7 @@ function lincy(options = {}, ...userConfigs) {
|
|
|
1909
1952
|
const tsconfigPath = typeof enableTypeScript !== "boolean" && "tsconfigPath" in enableTypeScript ? enableTypeScript.tsconfigPath : void 0;
|
|
1910
1953
|
if (stylisticOptions) {
|
|
1911
1954
|
if (!("jsx" in stylisticOptions)) {
|
|
1912
|
-
stylisticOptions.jsx =
|
|
1955
|
+
stylisticOptions.jsx = enableJsx;
|
|
1913
1956
|
}
|
|
1914
1957
|
}
|
|
1915
1958
|
const configs2 = [];
|
|
@@ -1917,9 +1960,7 @@ function lincy(options = {}, ...userConfigs) {
|
|
|
1917
1960
|
if (typeof enableGitignore !== "boolean") {
|
|
1918
1961
|
configs2.push(interopDefault(import("eslint-config-flat-gitignore")).then((r) => [r(enableGitignore)]));
|
|
1919
1962
|
} else {
|
|
1920
|
-
|
|
1921
|
-
configs2.push(interopDefault(import("eslint-config-flat-gitignore")).then((r) => [r()]));
|
|
1922
|
-
}
|
|
1963
|
+
configs2.push(interopDefault(import("eslint-config-flat-gitignore")).then((r) => [r({ strict: false })]));
|
|
1923
1964
|
}
|
|
1924
1965
|
}
|
|
1925
1966
|
configs2.push(
|
|
@@ -1950,9 +1991,13 @@ function lincy(options = {}, ...userConfigs) {
|
|
|
1950
1991
|
...typeof enableTypeScript !== "boolean" ? enableTypeScript : {},
|
|
1951
1992
|
componentExts,
|
|
1952
1993
|
overrides: overrides.typescript,
|
|
1953
|
-
tsconfigPath
|
|
1994
|
+
tsconfigPath,
|
|
1995
|
+
type: options.type
|
|
1954
1996
|
}));
|
|
1955
1997
|
}
|
|
1998
|
+
if (enableJsx) {
|
|
1999
|
+
configs2.push(jsx());
|
|
2000
|
+
}
|
|
1956
2001
|
if (stylisticOptions) {
|
|
1957
2002
|
configs2.push(stylistic({
|
|
1958
2003
|
overrides: overrides.stylistic,
|
|
@@ -2089,9 +2134,11 @@ export {
|
|
|
2089
2134
|
ignores,
|
|
2090
2135
|
imports,
|
|
2091
2136
|
interopDefault,
|
|
2137
|
+
isInEditorEnv,
|
|
2092
2138
|
javascript,
|
|
2093
2139
|
jsdoc,
|
|
2094
2140
|
jsonc,
|
|
2141
|
+
jsx,
|
|
2095
2142
|
lincy,
|
|
2096
2143
|
markdown,
|
|
2097
2144
|
node,
|
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.7.0",
|
|
5
5
|
"packageManager": "pnpm@9.1.0",
|
|
6
6
|
"description": "LinCenYing's ESLint config",
|
|
7
7
|
"author": "LinCenYing <lincenying@gmail.com> (https://github.com/lincenying/)",
|
|
@@ -64,71 +64,71 @@
|
|
|
64
64
|
"dependencies": {
|
|
65
65
|
"@antfu/eslint-define-config": "1.23.0-2",
|
|
66
66
|
"@antfu/install-pkg": "^0.3.3",
|
|
67
|
-
"@stylistic/eslint-plugin": "2.1
|
|
68
|
-
"@typescript-eslint/eslint-plugin": "
|
|
69
|
-
"@typescript-eslint/parser": "
|
|
70
|
-
"eslint-config-flat-gitignore": "^0.1.
|
|
71
|
-
"eslint-flat-config-utils": "^0.
|
|
67
|
+
"@stylistic/eslint-plugin": "2.6.1",
|
|
68
|
+
"@typescript-eslint/eslint-plugin": "8.0.0",
|
|
69
|
+
"@typescript-eslint/parser": "8.0.0",
|
|
70
|
+
"eslint-config-flat-gitignore": "^0.1.8",
|
|
71
|
+
"eslint-flat-config-utils": "^0.3.0",
|
|
72
72
|
"eslint-merge-processors": "^0.1.0",
|
|
73
73
|
"eslint-parser-plain": "^0.1.0",
|
|
74
|
-
"eslint-plugin-antfu": "^2.3.
|
|
74
|
+
"eslint-plugin-antfu": "^2.3.4",
|
|
75
75
|
"eslint-plugin-eslint-comments": "^3.2.0",
|
|
76
|
-
"eslint-plugin-import-x": "^
|
|
77
|
-
"eslint-plugin-jsdoc": "^48.2
|
|
76
|
+
"eslint-plugin-import-x": "^3.1.0",
|
|
77
|
+
"eslint-plugin-jsdoc": "^48.10.2",
|
|
78
78
|
"eslint-plugin-jsonc": "^2.16.0",
|
|
79
|
-
"eslint-plugin-markdown": "^5.
|
|
80
|
-
"eslint-plugin-n": "^17.
|
|
79
|
+
"eslint-plugin-markdown": "^5.1.0",
|
|
80
|
+
"eslint-plugin-n": "^17.10.1",
|
|
81
81
|
"eslint-plugin-no-only-tests": "^3.1.0",
|
|
82
|
-
"eslint-plugin-perfectionist": "^
|
|
82
|
+
"eslint-plugin-perfectionist": "^3.0.0",
|
|
83
83
|
"eslint-plugin-regexp": "^2.6.0",
|
|
84
|
-
"eslint-plugin-toml": "^0.11.
|
|
85
|
-
"eslint-plugin-unicorn": "^
|
|
86
|
-
"eslint-plugin-unused-imports": "^4.0.
|
|
84
|
+
"eslint-plugin-toml": "^0.11.1",
|
|
85
|
+
"eslint-plugin-unicorn": "^55.0.0",
|
|
86
|
+
"eslint-plugin-unused-imports": "^4.0.1",
|
|
87
87
|
"eslint-plugin-vitest": "^0.5.4",
|
|
88
|
-
"eslint-plugin-vue": "^9.
|
|
88
|
+
"eslint-plugin-vue": "^9.27.0",
|
|
89
89
|
"eslint-plugin-yml": "^1.14.0",
|
|
90
90
|
"eslint-processor-vue-blocks": "^0.1.2",
|
|
91
|
-
"globals": "^15.
|
|
91
|
+
"globals": "^15.9.0",
|
|
92
92
|
"jsonc-eslint-parser": "^2.4.0",
|
|
93
93
|
"local-pkg": "^0.5.0",
|
|
94
94
|
"prompts": "^2.4.2",
|
|
95
|
-
"toml-eslint-parser": "^0.
|
|
95
|
+
"toml-eslint-parser": "^0.10.0",
|
|
96
96
|
"vue-eslint-parser": "^9.4.3",
|
|
97
97
|
"yaml-eslint-parser": "^1.2.3"
|
|
98
98
|
},
|
|
99
99
|
"devDependencies": {
|
|
100
|
-
"@antfu/ni": "^0.
|
|
101
|
-
"@eslint-react/eslint-plugin": "^1.
|
|
100
|
+
"@antfu/ni": "^0.22.0",
|
|
101
|
+
"@eslint-react/eslint-plugin": "^1.8.0",
|
|
102
102
|
"@eslint-types/jsdoc": "48.2.2",
|
|
103
103
|
"@eslint-types/typescript-eslint": "^7.5.0",
|
|
104
104
|
"@eslint-types/unicorn": "^52.0.0",
|
|
105
|
-
"@eslint/config-inspector": "^0.
|
|
105
|
+
"@eslint/config-inspector": "^0.5.2",
|
|
106
106
|
"@lincy/eslint-config": "workspace:*",
|
|
107
|
-
"@stylistic/eslint-plugin-migrate": "^2.1
|
|
108
|
-
"@types/eslint": "^
|
|
109
|
-
"@types/node": "^
|
|
107
|
+
"@stylistic/eslint-plugin-migrate": "^2.6.1",
|
|
108
|
+
"@types/eslint": "^9.6.0",
|
|
109
|
+
"@types/node": "^22.0.2",
|
|
110
110
|
"@types/prompts": "^2.4.9",
|
|
111
|
-
"@unocss/eslint-plugin": "^0.
|
|
112
|
-
"bumpp": "^9.4.
|
|
113
|
-
"eslint": "
|
|
114
|
-
"eslint-plugin-format": "^0.1.
|
|
111
|
+
"@unocss/eslint-plugin": "^0.61.9",
|
|
112
|
+
"bumpp": "^9.4.2",
|
|
113
|
+
"eslint": "9.8.0",
|
|
114
|
+
"eslint-plugin-format": "^0.1.2",
|
|
115
115
|
"eslint-plugin-react-hooks": "^4.6.2",
|
|
116
|
-
"eslint-plugin-react-refresh": "^0.4.
|
|
117
|
-
"eslint-ts-patch": "9.
|
|
118
|
-
"eslint-typegen": "^0.
|
|
116
|
+
"eslint-plugin-react-refresh": "^0.4.9",
|
|
117
|
+
"eslint-ts-patch": "9.8.0-1",
|
|
118
|
+
"eslint-typegen": "^0.3.0",
|
|
119
119
|
"esno": "^4.7.0",
|
|
120
|
-
"lint-staged": "^15.2.
|
|
121
|
-
"prettier": "^3.3.
|
|
120
|
+
"lint-staged": "^15.2.7",
|
|
121
|
+
"prettier": "^3.3.3",
|
|
122
122
|
"react": "^18.3.1",
|
|
123
|
-
"rimraf": "^
|
|
123
|
+
"rimraf": "^6.0.1",
|
|
124
124
|
"simple-git-hooks": "^2.11.1",
|
|
125
125
|
"simple-open-url": "^3.0.1",
|
|
126
126
|
"sucrase": "^3.35.0",
|
|
127
|
-
"tsup": "^8.
|
|
128
|
-
"typescript": "^5.4
|
|
127
|
+
"tsup": "^8.2.3",
|
|
128
|
+
"typescript": "^5.5.4",
|
|
129
129
|
"unbuild": "^2.0.0",
|
|
130
|
-
"vitest": "^
|
|
131
|
-
"vue": "^3.4.
|
|
130
|
+
"vitest": "^2.0.5",
|
|
131
|
+
"vue": "^3.4.35"
|
|
132
132
|
},
|
|
133
133
|
"pnpm": {
|
|
134
134
|
"peerDependencyRules": {
|