@agilebot/eslint-config 0.6.0 → 0.7.0-beta.1
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/chunk-XQZGZMJY.mjs +84 -0
- package/dist/cli.d.mts +2 -0
- package/dist/cli.js +8 -21
- package/dist/cli.mjs +101 -0
- package/dist/index.d.mts +91 -0
- package/dist/index.d.ts +12 -3
- package/dist/index.js +460 -165
- package/dist/index.mjs +1093 -0
- package/package.json +27 -15
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license @agilebot/eslint-config v0.
|
|
2
|
+
* @license @agilebot/eslint-config v0.7.0-beta.1
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Agilebot, Inc. and its affiliates.
|
|
5
5
|
*
|
|
@@ -10,27 +10,10 @@
|
|
|
10
10
|
"use strict";
|
|
11
11
|
var __create = Object.create;
|
|
12
12
|
var __defProp = Object.defineProperty;
|
|
13
|
-
var __defProps = Object.defineProperties;
|
|
14
13
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
15
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
16
14
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
17
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
18
15
|
var __getProtoOf = Object.getPrototypeOf;
|
|
19
16
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
20
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
21
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
22
|
-
var __spreadValues = (a, b) => {
|
|
23
|
-
for (var prop in b || (b = {}))
|
|
24
|
-
if (__hasOwnProp.call(b, prop))
|
|
25
|
-
__defNormalProp(a, prop, b[prop]);
|
|
26
|
-
if (__getOwnPropSymbols)
|
|
27
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
28
|
-
if (__propIsEnum.call(b, prop))
|
|
29
|
-
__defNormalProp(a, prop, b[prop]);
|
|
30
|
-
}
|
|
31
|
-
return a;
|
|
32
|
-
};
|
|
33
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
34
17
|
var __export = (target, all) => {
|
|
35
18
|
for (var name in all)
|
|
36
19
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -66,22 +49,80 @@ var define_STANDARD_RULES_default = { "class-methods-use-this": ["off"], "dot-no
|
|
|
66
49
|
// src/factory/index.ts
|
|
67
50
|
var import_node_assert = __toESM(require("assert"));
|
|
68
51
|
var import_eslint_utils3 = require("@agilebot/eslint-utils");
|
|
52
|
+
var parserTs = __toESM(require("@typescript-eslint/parser"));
|
|
53
|
+
var parserVue = __toESM(require("vue-eslint-parser"));
|
|
54
|
+
|
|
55
|
+
// src/configs/env.ts
|
|
56
|
+
var import_globals = __toESM(require("globals"));
|
|
57
|
+
|
|
58
|
+
// src/constants.ts
|
|
59
|
+
var JS_EXTS = [".js", ".jsx", ".cjs", ".cjsx", ".mjs", ".mjsx"];
|
|
60
|
+
var TS_EXTS = [".ts", ".tsx", ".cts", ".ctsx", ".mts", ".mtsx"];
|
|
61
|
+
var DTS_EXTS = [".d.ts", ".d.cts", ".d.mts"];
|
|
62
|
+
var VUE_EXTS = [".vue"];
|
|
63
|
+
var DEFAULT_EXTS = [...JS_EXTS, ...TS_EXTS, ...VUE_EXTS];
|
|
64
|
+
var JS_GLOBS = JS_EXTS.map((ext) => `**/*${ext}`);
|
|
65
|
+
var TS_GLOBS = TS_EXTS.map((ext) => `**/*${ext}`);
|
|
66
|
+
var DTS_GLOBS = DTS_EXTS.map((ext) => `**/*${ext}`);
|
|
67
|
+
var VUE_GLOBS = VUE_EXTS.map((ext) => `**/*${ext}`);
|
|
68
|
+
var DEFAULT_GLOBS = DEFAULT_EXTS.map((ext) => `**/*${ext}`);
|
|
69
|
+
var IGNORE_GLOBS = [
|
|
70
|
+
"**/node_modules",
|
|
71
|
+
"**/dist",
|
|
72
|
+
"**/package-lock.json",
|
|
73
|
+
"**/yarn.lock",
|
|
74
|
+
"**/pnpm-lock.yaml",
|
|
75
|
+
"**/bun.lockb",
|
|
76
|
+
"**/output",
|
|
77
|
+
"**/coverage",
|
|
78
|
+
"**/temp",
|
|
79
|
+
"**/.temp",
|
|
80
|
+
"**/tmp",
|
|
81
|
+
"**/.tmp",
|
|
82
|
+
"**/.history",
|
|
83
|
+
"**/.vitepress/cache",
|
|
84
|
+
"**/.nuxt",
|
|
85
|
+
"**/.next",
|
|
86
|
+
"**/.svelte-kit",
|
|
87
|
+
"**/.vercel",
|
|
88
|
+
"**/.changeset",
|
|
89
|
+
"**/.idea",
|
|
90
|
+
"**/.cache",
|
|
91
|
+
"**/.output",
|
|
92
|
+
"**/.vite-inspect",
|
|
93
|
+
"**/.yarn",
|
|
94
|
+
"**/vite.config.*.timestamp-*",
|
|
95
|
+
"**/CHANGELOG*.md",
|
|
96
|
+
"**/*.min.*",
|
|
97
|
+
"**/LICENSE*",
|
|
98
|
+
"**/__snapshots__",
|
|
99
|
+
"**/auto-import?(s).d.ts",
|
|
100
|
+
"**/components.d.ts"
|
|
101
|
+
];
|
|
69
102
|
|
|
70
103
|
// src/configs/env.ts
|
|
71
104
|
function env() {
|
|
72
105
|
return {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
106
|
+
name: "agilebot/env",
|
|
107
|
+
files: DEFAULT_GLOBS,
|
|
108
|
+
languageOptions: {
|
|
109
|
+
globals: {
|
|
110
|
+
...import_globals.default.browser,
|
|
111
|
+
...import_globals.default.node,
|
|
112
|
+
...import_globals.default.es2015,
|
|
113
|
+
...import_globals.default.mocha,
|
|
114
|
+
...import_globals.default.jest,
|
|
115
|
+
...import_globals.default.jasmine
|
|
116
|
+
}
|
|
80
117
|
}
|
|
81
118
|
};
|
|
82
119
|
}
|
|
83
120
|
|
|
84
121
|
// src/configs/standard.ts
|
|
122
|
+
var import_eslint_plugin_import_x = __toESM(require("eslint-plugin-import-x"));
|
|
123
|
+
var import_eslint_plugin_n = __toESM(require("eslint-plugin-n"));
|
|
124
|
+
var import_eslint_plugin_promise = __toESM(require("eslint-plugin-promise"));
|
|
125
|
+
var import_eslint_plugin = __toESM(require("@typescript-eslint/eslint-plugin"));
|
|
85
126
|
function standard() {
|
|
86
127
|
const standardRules = {};
|
|
87
128
|
const originalStdRules = (
|
|
@@ -103,8 +144,16 @@ function standard() {
|
|
|
103
144
|
}
|
|
104
145
|
});
|
|
105
146
|
return {
|
|
106
|
-
|
|
107
|
-
|
|
147
|
+
name: "agilebot/standard",
|
|
148
|
+
files: DEFAULT_GLOBS,
|
|
149
|
+
plugins: {
|
|
150
|
+
n: import_eslint_plugin_n.default,
|
|
151
|
+
"@typescript-eslint": import_eslint_plugin.default,
|
|
152
|
+
promise: import_eslint_plugin_promise.default,
|
|
153
|
+
"import-x": import_eslint_plugin_import_x.default
|
|
154
|
+
},
|
|
155
|
+
rules: {
|
|
156
|
+
...standardRules,
|
|
108
157
|
"no-alert": "error",
|
|
109
158
|
// 找出TODO注释,以便后期修复
|
|
110
159
|
"no-warning-comments": [
|
|
@@ -139,7 +188,7 @@ function standard() {
|
|
|
139
188
|
}
|
|
140
189
|
],
|
|
141
190
|
"@typescript-eslint/no-loop-func": "warn"
|
|
142
|
-
}
|
|
191
|
+
}
|
|
143
192
|
};
|
|
144
193
|
}
|
|
145
194
|
function standardDisabled() {
|
|
@@ -184,14 +233,20 @@ function standardDisabled() {
|
|
|
184
233
|
|
|
185
234
|
// src/configs/ts.ts
|
|
186
235
|
var import_eslint_utils = require("@agilebot/eslint-utils");
|
|
236
|
+
var pluginTs2 = __toESM(require("@typescript-eslint/eslint-plugin"));
|
|
237
|
+
var import_eslint_plugin2 = __toESM(require("@stylistic/eslint-plugin"));
|
|
238
|
+
var import_eslint_plugin_prefer_arrow_functions = __toESM(require("eslint-plugin-prefer-arrow-functions"));
|
|
239
|
+
var import_eslint_plugin_unused_imports = __toESM(require("eslint-plugin-unused-imports"));
|
|
187
240
|
function ts() {
|
|
188
241
|
return {
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
"
|
|
193
|
-
"
|
|
194
|
-
|
|
242
|
+
name: "agilebot/ts",
|
|
243
|
+
files: DEFAULT_GLOBS,
|
|
244
|
+
plugins: {
|
|
245
|
+
"@typescript-eslint": pluginTs2,
|
|
246
|
+
"@stylistic": import_eslint_plugin2.default,
|
|
247
|
+
"prefer-arrow-functions": import_eslint_plugin_prefer_arrow_functions.default,
|
|
248
|
+
"unused-imports": import_eslint_plugin_unused_imports.default
|
|
249
|
+
},
|
|
195
250
|
rules: {
|
|
196
251
|
// 如果没用模板字符串,避免使用反引号
|
|
197
252
|
"@stylistic/quotes": ["error", "single", { avoidEscape: true }],
|
|
@@ -286,6 +341,8 @@ function ts() {
|
|
|
286
341
|
}
|
|
287
342
|
function tsOnly() {
|
|
288
343
|
return {
|
|
344
|
+
name: "agilebot/ts-only",
|
|
345
|
+
files: TS_GLOBS,
|
|
289
346
|
rules: {
|
|
290
347
|
"prefer-object-has-own": "error",
|
|
291
348
|
"@typescript-eslint/explicit-member-accessibility": "error"
|
|
@@ -294,6 +351,8 @@ function tsOnly() {
|
|
|
294
351
|
}
|
|
295
352
|
function jsOnly() {
|
|
296
353
|
return {
|
|
354
|
+
name: "agilebot/js-only",
|
|
355
|
+
files: JS_GLOBS,
|
|
297
356
|
rules: {
|
|
298
357
|
"@typescript-eslint/no-require-imports": "off"
|
|
299
358
|
}
|
|
@@ -301,6 +360,8 @@ function jsOnly() {
|
|
|
301
360
|
}
|
|
302
361
|
function dts() {
|
|
303
362
|
return {
|
|
363
|
+
name: "agilebot/dts",
|
|
364
|
+
files: DTS_GLOBS,
|
|
304
365
|
rules: {
|
|
305
366
|
// .d.ts中支持导入ts文件中的类型
|
|
306
367
|
"@typescript-eslint/consistent-type-imports": "off",
|
|
@@ -316,8 +377,9 @@ function dts() {
|
|
|
316
377
|
var import_node_path = __toESM(require("path"));
|
|
317
378
|
var import_node_fs = __toESM(require("fs"));
|
|
318
379
|
var import_eslint_utils2 = require("@agilebot/eslint-utils");
|
|
380
|
+
var import_eslint_plugin_import_x2 = __toESM(require("eslint-plugin-import-x"));
|
|
381
|
+
var import_eslint_plugin_no_relative_import_paths = __toESM(require("eslint-plugin-no-relative-import-paths"));
|
|
319
382
|
function imports(opts) {
|
|
320
|
-
var _a, _b;
|
|
321
383
|
const rootDir = (0, import_eslint_utils2.findRootDir)(__dirname);
|
|
322
384
|
const pkgPath = import_node_path.default.join(opts.packageDir, "package.json");
|
|
323
385
|
if (!import_node_fs.default.existsSync(pkgPath)) {
|
|
@@ -339,9 +401,15 @@ function imports(opts) {
|
|
|
339
401
|
const tmpPkgJson = JSON.stringify(tmpPkg, null, 2);
|
|
340
402
|
import_node_fs.default.writeFileSync(import_node_path.default.join(tmpPkgDir, "package.json"), tmpPkgJson);
|
|
341
403
|
return {
|
|
342
|
-
|
|
343
|
-
|
|
404
|
+
name: "agilebot/imports",
|
|
405
|
+
files: DEFAULT_GLOBS,
|
|
406
|
+
plugins: {
|
|
407
|
+
"import-x": import_eslint_plugin_import_x2.default,
|
|
408
|
+
"no-relative-import-paths": import_eslint_plugin_no_relative_import_paths.default
|
|
409
|
+
},
|
|
344
410
|
rules: {
|
|
411
|
+
...import_eslint_plugin_import_x2.default.configs.recommended.rules,
|
|
412
|
+
...import_eslint_plugin_import_x2.default.configs.typescript.rules,
|
|
345
413
|
"import-x/no-unresolved": [
|
|
346
414
|
"error",
|
|
347
415
|
{
|
|
@@ -382,7 +450,7 @@ function imports(opts) {
|
|
|
382
450
|
"**/.storybook/**",
|
|
383
451
|
"**/*.stories.{ts,tsx}",
|
|
384
452
|
"**/scripts/*.{ts,mts}",
|
|
385
|
-
...
|
|
453
|
+
...opts.devDependencies ?? []
|
|
386
454
|
],
|
|
387
455
|
includeInternal: true
|
|
388
456
|
}
|
|
@@ -427,17 +495,22 @@ function imports(opts) {
|
|
|
427
495
|
}
|
|
428
496
|
},
|
|
429
497
|
"import-x/internal-regex": opts.monorepoScope ? `^${opts.monorepoScope.replace(/\//g, "")}/` : void 0,
|
|
430
|
-
"import-x/core-modules":
|
|
498
|
+
"import-x/core-modules": opts.coreModules ?? void 0
|
|
431
499
|
}
|
|
432
500
|
};
|
|
433
501
|
}
|
|
434
502
|
|
|
435
503
|
// src/configs/unicorn.ts
|
|
504
|
+
var import_eslint_plugin_unicorn = __toESM(require("eslint-plugin-unicorn"));
|
|
436
505
|
function unicorn(opts) {
|
|
437
506
|
return {
|
|
438
|
-
|
|
439
|
-
|
|
507
|
+
name: "agilebot/unicorn",
|
|
508
|
+
files: DEFAULT_GLOBS,
|
|
509
|
+
plugins: {
|
|
510
|
+
unicorn: import_eslint_plugin_unicorn.default
|
|
511
|
+
},
|
|
440
512
|
rules: {
|
|
513
|
+
...import_eslint_plugin_unicorn.default.configs["flat/recommended"].rules,
|
|
441
514
|
"unicorn/prefer-module": opts.module ? "error" : "off",
|
|
442
515
|
"unicorn/prefer-top-level-await": "off",
|
|
443
516
|
"unicorn/filename-case": "off",
|
|
@@ -465,24 +538,33 @@ function unicorn(opts) {
|
|
|
465
538
|
{
|
|
466
539
|
name: "err"
|
|
467
540
|
}
|
|
468
|
-
]
|
|
541
|
+
],
|
|
542
|
+
"unicorn/prefer-global-this": "off"
|
|
469
543
|
}
|
|
470
544
|
};
|
|
471
545
|
}
|
|
472
546
|
|
|
473
547
|
// src/configs/react.ts
|
|
548
|
+
var import_eslint_plugin_react = __toESM(require("eslint-plugin-react"));
|
|
549
|
+
var import_eslint_plugin3 = __toESM(require("@eslint-react/eslint-plugin"));
|
|
550
|
+
var import_eslint_plugin_react_hooks = __toESM(require("eslint-plugin-react-hooks"));
|
|
551
|
+
var import_eslint_plugin_jsx_a11y = __toESM(require("eslint-plugin-jsx-a11y"));
|
|
552
|
+
var import_eslint_plugin4 = __toESM(require("@stylistic/eslint-plugin"));
|
|
553
|
+
var import_eslint_plugin5 = __toESM(require("@agilebot/eslint-plugin"));
|
|
474
554
|
function react(opts) {
|
|
475
555
|
return {
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
"
|
|
481
|
-
"
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
556
|
+
name: "agilebot/react",
|
|
557
|
+
files: DEFAULT_GLOBS,
|
|
558
|
+
plugins: {
|
|
559
|
+
react: import_eslint_plugin_react.default,
|
|
560
|
+
"react-hooks": import_eslint_plugin_react_hooks.default,
|
|
561
|
+
"jsx-a11y": import_eslint_plugin_jsx_a11y.default,
|
|
562
|
+
...import_eslint_plugin3.default.configs.recommended.plugins,
|
|
563
|
+
"@stylistic": import_eslint_plugin4.default,
|
|
564
|
+
"@agilebot": import_eslint_plugin5.default
|
|
565
|
+
},
|
|
485
566
|
rules: {
|
|
567
|
+
...import_eslint_plugin_jsx_a11y.default.flatConfigs.recommended.rules,
|
|
486
568
|
// recommended rules from eslint-plugin-react
|
|
487
569
|
"react/no-is-mounted": "error",
|
|
488
570
|
// recommended rules from @eslint-react
|
|
@@ -525,6 +607,8 @@ function react(opts) {
|
|
|
525
607
|
"error",
|
|
526
608
|
{ allowExpressions: true }
|
|
527
609
|
],
|
|
610
|
+
"@eslint-react/jsx-uses-vars": "error",
|
|
611
|
+
"@eslint-react/jsx-no-duplicate-props": "error",
|
|
528
612
|
// recommended rules from @eslint-react/dom
|
|
529
613
|
"@eslint-react/dom/no-children-in-void-dom-elements": "error",
|
|
530
614
|
"@eslint-react/dom/no-unsafe-target-blank": "error",
|
|
@@ -578,12 +662,13 @@ function react(opts) {
|
|
|
578
662
|
}
|
|
579
663
|
function reactJsOnly() {
|
|
580
664
|
return {
|
|
665
|
+
name: "agilebot/react-js-only",
|
|
666
|
+
files: JS_GLOBS,
|
|
581
667
|
rules: {
|
|
582
668
|
// The following can be enforced by TypeScript, no need to implement them
|
|
583
669
|
"react/jsx-no-duplicate-props": "error",
|
|
584
670
|
"react/jsx-no-undef": "error",
|
|
585
671
|
"react/jsx-uses-react": "error",
|
|
586
|
-
"react/jsx-uses-vars": "error",
|
|
587
672
|
"react/no-unescaped-entities": "error",
|
|
588
673
|
"react/no-unknown-property": "error",
|
|
589
674
|
"react/react-in-jsx-scope": "error",
|
|
@@ -593,22 +678,31 @@ function reactJsOnly() {
|
|
|
593
678
|
}
|
|
594
679
|
|
|
595
680
|
// src/configs/vue.ts
|
|
681
|
+
var import_eslint_plugin_vue = __toESM(require("eslint-plugin-vue"));
|
|
596
682
|
function vue(opts) {
|
|
597
683
|
return {
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
684
|
+
name: "agilebot/vue",
|
|
685
|
+
files: VUE_GLOBS,
|
|
686
|
+
plugins: {
|
|
687
|
+
vue: import_eslint_plugin_vue.default
|
|
688
|
+
},
|
|
689
|
+
rules: {
|
|
690
|
+
...opts.version === 3 ? import_eslint_plugin_vue.default.configs["vue3-strongly-recommended"].rules : import_eslint_plugin_vue.default.configs["strongly-recommended"].rules
|
|
691
|
+
}
|
|
601
692
|
};
|
|
602
693
|
}
|
|
603
694
|
|
|
604
695
|
// src/configs/jsdoc.ts
|
|
696
|
+
var import_eslint_plugin_jsdoc = __toESM(require("eslint-plugin-jsdoc"));
|
|
605
697
|
function jsdoc(opt) {
|
|
606
698
|
return {
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
699
|
+
name: "agilebot/jsdoc",
|
|
700
|
+
files: DEFAULT_GLOBS,
|
|
701
|
+
plugins: {
|
|
702
|
+
jsdoc: import_eslint_plugin_jsdoc.default
|
|
703
|
+
},
|
|
611
704
|
rules: {
|
|
705
|
+
...opt.ts ? import_eslint_plugin_jsdoc.default.configs["flat/recommended-typescript-error"].rules : import_eslint_plugin_jsdoc.default.configs["flat/recommended-error"].rules,
|
|
612
706
|
// 禁止有空行
|
|
613
707
|
"jsdoc/no-blank-block-descriptions": "error",
|
|
614
708
|
"jsdoc/no-blank-blocks": "error",
|
|
@@ -627,21 +721,158 @@ function jsdoc(opt) {
|
|
|
627
721
|
};
|
|
628
722
|
}
|
|
629
723
|
|
|
724
|
+
// src/configs/lodash.ts
|
|
725
|
+
var import_eslint_plugin_you_dont_need_lodash_underscore = __toESM(require("eslint-plugin-you-dont-need-lodash-underscore"));
|
|
726
|
+
|
|
727
|
+
// ../../node_modules/.pnpm/@eslint+compat@1.2.3_eslint@9.15.0_jiti@2.3.3_/node_modules/@eslint/compat/dist/esm/index.js
|
|
728
|
+
var import_node_fs2 = __toESM(require("fs"), 1);
|
|
729
|
+
var import_node_path2 = __toESM(require("path"), 1);
|
|
730
|
+
var removedMethodNames = /* @__PURE__ */ new Map([
|
|
731
|
+
["getSource", "getText"],
|
|
732
|
+
["getSourceLines", "getLines"],
|
|
733
|
+
["getAllComments", "getAllComments"],
|
|
734
|
+
["getDeclaredVariables", "getDeclaredVariables"],
|
|
735
|
+
["getNodeByRangeIndex", "getNodeByRangeIndex"],
|
|
736
|
+
["getCommentsBefore", "getCommentsBefore"],
|
|
737
|
+
["getCommentsAfter", "getCommentsAfter"],
|
|
738
|
+
["getCommentsInside", "getCommentsInside"],
|
|
739
|
+
["getJSDocComment", "getJSDocComment"],
|
|
740
|
+
["getFirstToken", "getFirstToken"],
|
|
741
|
+
["getFirstTokens", "getFirstTokens"],
|
|
742
|
+
["getLastToken", "getLastToken"],
|
|
743
|
+
["getLastTokens", "getLastTokens"],
|
|
744
|
+
["getTokenAfter", "getTokenAfter"],
|
|
745
|
+
["getTokenBefore", "getTokenBefore"],
|
|
746
|
+
["getTokenByRangeStart", "getTokenByRangeStart"],
|
|
747
|
+
["getTokens", "getTokens"],
|
|
748
|
+
["getTokensAfter", "getTokensAfter"],
|
|
749
|
+
["getTokensBefore", "getTokensBefore"],
|
|
750
|
+
["getTokensBetween", "getTokensBetween"]
|
|
751
|
+
]);
|
|
752
|
+
var fixedUpRuleReplacements = /* @__PURE__ */ new WeakMap();
|
|
753
|
+
var fixedUpRules = /* @__PURE__ */ new WeakSet();
|
|
754
|
+
var fixedUpPluginReplacements = /* @__PURE__ */ new WeakMap();
|
|
755
|
+
var fixedUpPlugins = /* @__PURE__ */ new WeakSet();
|
|
756
|
+
function fixupRule(ruleDefinition) {
|
|
757
|
+
if (fixedUpRuleReplacements.has(ruleDefinition)) {
|
|
758
|
+
return fixedUpRuleReplacements.get(ruleDefinition);
|
|
759
|
+
}
|
|
760
|
+
const isLegacyRule = typeof ruleDefinition === "function";
|
|
761
|
+
if (!isLegacyRule && fixedUpRules.has(ruleDefinition)) {
|
|
762
|
+
return ruleDefinition;
|
|
763
|
+
}
|
|
764
|
+
const originalCreate = isLegacyRule ? ruleDefinition : ruleDefinition.create.bind(ruleDefinition);
|
|
765
|
+
function ruleCreate(context) {
|
|
766
|
+
if ("getScope" in context) {
|
|
767
|
+
return originalCreate(context);
|
|
768
|
+
}
|
|
769
|
+
const sourceCode = context.sourceCode;
|
|
770
|
+
let currentNode = sourceCode.ast;
|
|
771
|
+
const newContext = Object.assign(Object.create(context), {
|
|
772
|
+
parserServices: sourceCode.parserServices,
|
|
773
|
+
/*
|
|
774
|
+
* The following methods rely on the current node in the traversal,
|
|
775
|
+
* so we need to add them manually.
|
|
776
|
+
*/
|
|
777
|
+
getScope() {
|
|
778
|
+
return sourceCode.getScope(currentNode);
|
|
779
|
+
},
|
|
780
|
+
getAncestors() {
|
|
781
|
+
return sourceCode.getAncestors(currentNode);
|
|
782
|
+
},
|
|
783
|
+
markVariableAsUsed(variable) {
|
|
784
|
+
sourceCode.markVariableAsUsed(variable, currentNode);
|
|
785
|
+
}
|
|
786
|
+
});
|
|
787
|
+
for (const [
|
|
788
|
+
contextMethodName,
|
|
789
|
+
sourceCodeMethodName
|
|
790
|
+
] of removedMethodNames) {
|
|
791
|
+
newContext[contextMethodName] = sourceCode[sourceCodeMethodName].bind(sourceCode);
|
|
792
|
+
}
|
|
793
|
+
Object.freeze(newContext);
|
|
794
|
+
const visitor = originalCreate(newContext);
|
|
795
|
+
for (const [methodName, method] of Object.entries(visitor)) {
|
|
796
|
+
if (methodName.startsWith("on")) {
|
|
797
|
+
visitor[methodName] = (...args) => {
|
|
798
|
+
currentNode = args[methodName === "onCodePathSegmentLoop" ? 2 : 1];
|
|
799
|
+
return method.call(visitor, ...args);
|
|
800
|
+
};
|
|
801
|
+
continue;
|
|
802
|
+
}
|
|
803
|
+
visitor[methodName] = (...args) => {
|
|
804
|
+
currentNode = args[0];
|
|
805
|
+
return method.call(visitor, ...args);
|
|
806
|
+
};
|
|
807
|
+
}
|
|
808
|
+
return visitor;
|
|
809
|
+
}
|
|
810
|
+
const newRuleDefinition = {
|
|
811
|
+
...isLegacyRule ? void 0 : ruleDefinition,
|
|
812
|
+
create: ruleCreate
|
|
813
|
+
};
|
|
814
|
+
const { schema } = ruleDefinition;
|
|
815
|
+
if (schema) {
|
|
816
|
+
if (!newRuleDefinition.meta) {
|
|
817
|
+
newRuleDefinition.meta = { schema };
|
|
818
|
+
} else {
|
|
819
|
+
newRuleDefinition.meta = {
|
|
820
|
+
...newRuleDefinition.meta,
|
|
821
|
+
// top-level `schema` had precedence over `meta.schema` so it's okay to overwrite `meta.schema` if it exists
|
|
822
|
+
schema
|
|
823
|
+
};
|
|
824
|
+
}
|
|
825
|
+
}
|
|
826
|
+
fixedUpRuleReplacements.set(ruleDefinition, newRuleDefinition);
|
|
827
|
+
fixedUpRules.add(newRuleDefinition);
|
|
828
|
+
return newRuleDefinition;
|
|
829
|
+
}
|
|
830
|
+
function fixupPluginRules(plugin) {
|
|
831
|
+
if (fixedUpPluginReplacements.has(plugin)) {
|
|
832
|
+
return fixedUpPluginReplacements.get(plugin);
|
|
833
|
+
}
|
|
834
|
+
if (fixedUpPlugins.has(plugin) || !plugin.rules) {
|
|
835
|
+
return plugin;
|
|
836
|
+
}
|
|
837
|
+
const newPlugin = {
|
|
838
|
+
...plugin,
|
|
839
|
+
rules: Object.fromEntries(
|
|
840
|
+
Object.entries(plugin.rules).map(([ruleId, ruleDefinition]) => [
|
|
841
|
+
ruleId,
|
|
842
|
+
fixupRule(ruleDefinition)
|
|
843
|
+
])
|
|
844
|
+
)
|
|
845
|
+
};
|
|
846
|
+
fixedUpPluginReplacements.set(plugin, newPlugin);
|
|
847
|
+
fixedUpPlugins.add(newPlugin);
|
|
848
|
+
return newPlugin;
|
|
849
|
+
}
|
|
850
|
+
|
|
630
851
|
// src/configs/lodash.ts
|
|
631
852
|
function lodash() {
|
|
632
853
|
return {
|
|
633
854
|
// lodash一些方法可能影响性能,如forEach等,优先使用js的原生方法
|
|
634
|
-
|
|
855
|
+
name: "agilebot/lodash",
|
|
856
|
+
files: DEFAULT_GLOBS,
|
|
857
|
+
plugins: {
|
|
858
|
+
"you-dont-need-lodash-underscore": fixupPluginRules(import_eslint_plugin_you_dont_need_lodash_underscore.default)
|
|
859
|
+
},
|
|
635
860
|
rules: {
|
|
861
|
+
...import_eslint_plugin_you_dont_need_lodash_underscore.default.configs["all-warn"].rules,
|
|
636
862
|
"you-dont-need-lodash-underscore/throttle": "off"
|
|
637
863
|
}
|
|
638
864
|
};
|
|
639
865
|
}
|
|
640
866
|
|
|
641
867
|
// src/configs/comments.ts
|
|
868
|
+
var import_eslint_plugin_eslint_comments = __toESM(require("@eslint-community/eslint-plugin-eslint-comments"));
|
|
642
869
|
function comments() {
|
|
643
870
|
return {
|
|
644
|
-
|
|
871
|
+
name: "agilebot/comments",
|
|
872
|
+
files: DEFAULT_GLOBS,
|
|
873
|
+
plugins: {
|
|
874
|
+
"@eslint-community/eslint-comments": import_eslint_plugin_eslint_comments.default
|
|
875
|
+
},
|
|
645
876
|
rules: {
|
|
646
877
|
// 禁止未使用的eslint-disable注释
|
|
647
878
|
"@eslint-community/eslint-comments/no-unused-disable": "error",
|
|
@@ -663,9 +894,14 @@ function comments() {
|
|
|
663
894
|
}
|
|
664
895
|
|
|
665
896
|
// src/configs/cspell.ts
|
|
897
|
+
var import_eslint_plugin6 = __toESM(require("@cspell/eslint-plugin"));
|
|
666
898
|
function cspell(opts) {
|
|
667
899
|
return {
|
|
668
|
-
|
|
900
|
+
name: "agilebot/cspell",
|
|
901
|
+
files: DEFAULT_GLOBS,
|
|
902
|
+
plugins: {
|
|
903
|
+
"@cspell": import_eslint_plugin6.default
|
|
904
|
+
},
|
|
669
905
|
rules: {
|
|
670
906
|
"@cspell/spellchecker": [
|
|
671
907
|
"warn",
|
|
@@ -680,11 +916,18 @@ function cspell(opts) {
|
|
|
680
916
|
}
|
|
681
917
|
|
|
682
918
|
// src/configs/agilebot.ts
|
|
919
|
+
var import_eslint_plugin7 = __toESM(require("@agilebot/eslint-plugin"));
|
|
920
|
+
var import_eslint_plugin_react_hooks2 = __toESM(require("eslint-plugin-react-hooks"));
|
|
683
921
|
function agilebot(opts) {
|
|
684
922
|
return {
|
|
685
|
-
|
|
686
|
-
|
|
923
|
+
name: "agilebot/agilebot",
|
|
924
|
+
files: DEFAULT_GLOBS,
|
|
925
|
+
plugins: {
|
|
926
|
+
"@agilebot": import_eslint_plugin7.default,
|
|
927
|
+
"react-hooks": import_eslint_plugin_react_hooks2.default
|
|
928
|
+
},
|
|
687
929
|
rules: {
|
|
930
|
+
...import_eslint_plugin7.default.configs.recommended.rules,
|
|
688
931
|
"react-hooks/exhaustive-deps": "off",
|
|
689
932
|
"@agilebot/react-better-exhaustive-deps": "warn"
|
|
690
933
|
},
|
|
@@ -697,12 +940,18 @@ function agilebot(opts) {
|
|
|
697
940
|
|
|
698
941
|
// src/configs/prettier.ts
|
|
699
942
|
var import_recommended = __toESM(require("eslint-plugin-prettier/recommended"));
|
|
943
|
+
var import_eslint_plugin_prettier = __toESM(require("eslint-plugin-prettier"));
|
|
700
944
|
function prettier() {
|
|
701
945
|
return {
|
|
702
|
-
|
|
946
|
+
name: "agilebot/prettier",
|
|
947
|
+
files: DEFAULT_GLOBS,
|
|
948
|
+
plugins: {
|
|
949
|
+
prettier: import_eslint_plugin_prettier.default
|
|
950
|
+
},
|
|
703
951
|
// Do not extends
|
|
704
952
|
// extends: ['plugin:prettier/recommended'],
|
|
705
|
-
rules:
|
|
953
|
+
rules: {
|
|
954
|
+
...import_recommended.default.rules,
|
|
706
955
|
curly: "error",
|
|
707
956
|
"arrow-body-style": "off",
|
|
708
957
|
"prettier/prettier": [
|
|
@@ -711,19 +960,30 @@ function prettier() {
|
|
|
711
960
|
endOfLine: "auto"
|
|
712
961
|
}
|
|
713
962
|
]
|
|
714
|
-
}
|
|
963
|
+
}
|
|
715
964
|
};
|
|
716
965
|
}
|
|
717
966
|
|
|
718
967
|
// src/configs/godaddy.ts
|
|
968
|
+
var import_eslint_config_godaddy = __toESM(require("eslint-config-godaddy"));
|
|
969
|
+
var import_js = __toESM(require("@eslint/js"));
|
|
970
|
+
var import_eslint_plugin_mocha = __toESM(require("eslint-plugin-mocha"));
|
|
719
971
|
function godaddy() {
|
|
720
972
|
return {
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
973
|
+
name: "agilebot/godaddy",
|
|
974
|
+
files: DEFAULT_GLOBS,
|
|
975
|
+
languageOptions: {
|
|
976
|
+
parserOptions: {
|
|
977
|
+
ecmaVersion: 2022,
|
|
978
|
+
sourceType: "module"
|
|
979
|
+
}
|
|
980
|
+
},
|
|
981
|
+
plugins: {
|
|
982
|
+
mocha: import_eslint_plugin_mocha.default
|
|
724
983
|
},
|
|
725
|
-
extends: ["godaddy"],
|
|
726
984
|
rules: {
|
|
985
|
+
...import_js.default.configs.recommended.rules,
|
|
986
|
+
...import_eslint_config_godaddy.default.rules,
|
|
727
987
|
"quote-props": "off",
|
|
728
988
|
"linebreak-style": "off",
|
|
729
989
|
complexity: "off",
|
|
@@ -734,6 +994,8 @@ function godaddy() {
|
|
|
734
994
|
"generator-star-spacing": "off",
|
|
735
995
|
"max-params": "off",
|
|
736
996
|
"max-depth": "off",
|
|
997
|
+
"max-len": "off",
|
|
998
|
+
indent: "off",
|
|
737
999
|
"no-undefined": "off",
|
|
738
1000
|
"no-process-env": "off",
|
|
739
1001
|
"no-sync": "off",
|
|
@@ -747,16 +1009,8 @@ function godaddy() {
|
|
|
747
1009
|
};
|
|
748
1010
|
}
|
|
749
1011
|
|
|
750
|
-
// src/constants.ts
|
|
751
|
-
var JS_EXTS = [".js", ".jsx", ".cjs", ".cjsx", ".mjs", ".mjsx"];
|
|
752
|
-
var TS_EXTS = [".ts", ".tsx", ".cts", ".ctsx", ".mts", ".mtsx"];
|
|
753
|
-
var DTS_EXTS = [".d.ts", ".d.cts", ".d.mts"];
|
|
754
|
-
var VUE_EXTS = [".vue"];
|
|
755
|
-
var DEFAULT_EXTS = [...JS_EXTS, ...TS_EXTS, ...VUE_EXTS];
|
|
756
|
-
|
|
757
1012
|
// src/factory/index.ts
|
|
758
1013
|
function factory(root, options) {
|
|
759
|
-
var _a, _b, _c, _d;
|
|
760
1014
|
import_node_assert.default.ok(root, "root option is required");
|
|
761
1015
|
const tsconfigFiles = (0, import_eslint_utils3.findTsconfigFiles)(root, {
|
|
762
1016
|
absolute: true
|
|
@@ -769,8 +1023,11 @@ function factory(root, options) {
|
|
|
769
1023
|
import: true,
|
|
770
1024
|
importResolver: "typescript"
|
|
771
1025
|
};
|
|
772
|
-
options =
|
|
773
|
-
|
|
1026
|
+
options = {
|
|
1027
|
+
...defaultOptions,
|
|
1028
|
+
...options
|
|
1029
|
+
};
|
|
1030
|
+
if (options?.config) {
|
|
774
1031
|
import_node_assert.default.ok(
|
|
775
1032
|
Object.keys(options.config).every(
|
|
776
1033
|
(key) => key === "rules" || key === "settings"
|
|
@@ -780,94 +1037,132 @@ function factory(root, options) {
|
|
|
780
1037
|
}
|
|
781
1038
|
const commonConfigs = [
|
|
782
1039
|
unicorn({
|
|
783
|
-
module:
|
|
1040
|
+
module: options?.module ?? false
|
|
784
1041
|
}),
|
|
785
|
-
comments()
|
|
786
|
-
options.import ? imports({
|
|
787
|
-
packageDir: root,
|
|
788
|
-
devDependencies: options == null ? void 0 : options.devDependencies,
|
|
789
|
-
monorepoScope: options == null ? void 0 : options.monorepoScope,
|
|
790
|
-
coreModules: options == null ? void 0 : options.coreModules,
|
|
791
|
-
resolver: options == null ? void 0 : options.importResolver
|
|
792
|
-
}) : {},
|
|
793
|
-
options.prettier ? prettier() : {}
|
|
1042
|
+
comments()
|
|
794
1043
|
];
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
})
|
|
804
|
-
|
|
805
|
-
(options == null ? void 0 : options.jsdoc) ? jsdoc({
|
|
806
|
-
ts: false
|
|
807
|
-
}) : {},
|
|
808
|
-
(_b = options == null ? void 0 : options.config) != null ? _b : {}
|
|
809
|
-
));
|
|
810
|
-
} else {
|
|
811
|
-
config = {
|
|
812
|
-
overrides: [
|
|
813
|
-
__spreadValues({
|
|
814
|
-
files: DEFAULT_EXTS.map((ext) => `*${ext}`),
|
|
815
|
-
parser: !(options == null ? void 0 : options.vue) ? "@typescript-eslint/parser" : "vue-eslint-parser",
|
|
816
|
-
parserOptions: {
|
|
817
|
-
parser: "@typescript-eslint/parser",
|
|
818
|
-
tsconfigRootDir: root,
|
|
819
|
-
ecmaFeatures: {
|
|
820
|
-
jsx: true
|
|
821
|
-
},
|
|
822
|
-
sourceType: options.module ? "module" : void 0,
|
|
823
|
-
extraFileExtensions: !(options == null ? void 0 : options.vue) ? void 0 : [".vue"]
|
|
824
|
-
}
|
|
825
|
-
}, (0, import_eslint_utils3.mergeESLintConfig)(
|
|
826
|
-
env(),
|
|
827
|
-
standard(),
|
|
828
|
-
// standard必须在ts之前
|
|
829
|
-
ts(),
|
|
830
|
-
(options == null ? void 0 : options.react) ? react({ version: options.react }) : {},
|
|
831
|
-
(options == null ? void 0 : options.vue) ? vue({
|
|
832
|
-
version: options.vue
|
|
833
|
-
}) : {},
|
|
834
|
-
(options == null ? void 0 : options.jsdoc) ? jsdoc({
|
|
835
|
-
ts: true
|
|
836
|
-
}) : {},
|
|
837
|
-
(options == null ? void 0 : options.lodash) ? lodash() : {},
|
|
838
|
-
(options == null ? void 0 : options.cspell) ? cspell(options.cspell) : {},
|
|
839
|
-
...commonConfigs,
|
|
840
|
-
agilebot({
|
|
841
|
-
root,
|
|
842
|
-
monorepoScope: options == null ? void 0 : options.monorepoScope
|
|
843
|
-
}),
|
|
844
|
-
(_c = options == null ? void 0 : options.config) != null ? _c : {}
|
|
845
|
-
)),
|
|
846
|
-
__spreadValues({
|
|
847
|
-
files: JS_EXTS.map((ext) => `*${ext}`)
|
|
848
|
-
}, (0, import_eslint_utils3.mergeESLintConfig)(
|
|
849
|
-
jsOnly(),
|
|
850
|
-
(options == null ? void 0 : options.jsdoc) ? jsdoc({
|
|
851
|
-
ts: false
|
|
852
|
-
}) : {},
|
|
853
|
-
(options == null ? void 0 : options.react) ? reactJsOnly() : {}
|
|
854
|
-
)),
|
|
855
|
-
__spreadValues({
|
|
856
|
-
files: TS_EXTS.map((ext) => `*${ext}`)
|
|
857
|
-
}, tsOnly()),
|
|
858
|
-
__spreadValues({
|
|
859
|
-
files: DTS_EXTS.map((ext) => `*${ext}`)
|
|
860
|
-
}, dts())
|
|
861
|
-
]
|
|
862
|
-
};
|
|
1044
|
+
if (options.import) {
|
|
1045
|
+
commonConfigs.push(
|
|
1046
|
+
imports({
|
|
1047
|
+
packageDir: root,
|
|
1048
|
+
devDependencies: options?.devDependencies,
|
|
1049
|
+
monorepoScope: options?.monorepoScope,
|
|
1050
|
+
coreModules: options?.coreModules,
|
|
1051
|
+
resolver: options?.importResolver
|
|
1052
|
+
})
|
|
1053
|
+
);
|
|
863
1054
|
}
|
|
864
|
-
if (
|
|
865
|
-
|
|
866
|
-
}
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
1055
|
+
if (options.prettier) {
|
|
1056
|
+
commonConfigs.push(prettier());
|
|
1057
|
+
}
|
|
1058
|
+
const config = [];
|
|
1059
|
+
if (options.godaddy) {
|
|
1060
|
+
config.push({
|
|
1061
|
+
name: "agilebot/parser",
|
|
1062
|
+
files: DEFAULT_GLOBS,
|
|
1063
|
+
languageOptions: {
|
|
1064
|
+
parser: options.godaddy === "typescript" ? parserTs : void 0,
|
|
1065
|
+
parserOptions: {
|
|
1066
|
+
project: tsconfigFiles.length > 0 ? tsconfigFiles : true
|
|
1067
|
+
}
|
|
1068
|
+
}
|
|
1069
|
+
});
|
|
1070
|
+
config.push(env());
|
|
1071
|
+
if (options.jsdoc) {
|
|
1072
|
+
config.push(
|
|
1073
|
+
jsdoc({
|
|
1074
|
+
ts: false
|
|
1075
|
+
})
|
|
1076
|
+
);
|
|
1077
|
+
}
|
|
1078
|
+
config.push(...commonConfigs);
|
|
1079
|
+
config.push(godaddy());
|
|
1080
|
+
if (options.config) {
|
|
1081
|
+
config.push(options.config);
|
|
1082
|
+
}
|
|
1083
|
+
} else {
|
|
1084
|
+
config.push({
|
|
1085
|
+
name: "agilebot/parser",
|
|
1086
|
+
files: DEFAULT_GLOBS,
|
|
1087
|
+
languageOptions: {
|
|
1088
|
+
parser: !options.vue ? parserTs : parserVue,
|
|
1089
|
+
parserOptions: {
|
|
1090
|
+
parser: parserTs,
|
|
1091
|
+
tsconfigRootDir: root,
|
|
1092
|
+
projectService: true,
|
|
1093
|
+
project: tsconfigFiles.length > 0 ? tsconfigFiles : true,
|
|
1094
|
+
ecmaFeatures: {
|
|
1095
|
+
jsx: true
|
|
1096
|
+
},
|
|
1097
|
+
sourceType: options.module ? "module" : void 0,
|
|
1098
|
+
extraFileExtensions: !options?.vue ? void 0 : [".vue"]
|
|
1099
|
+
}
|
|
1100
|
+
}
|
|
1101
|
+
});
|
|
1102
|
+
config.push(env());
|
|
1103
|
+
config.push(standard());
|
|
1104
|
+
config.push(ts());
|
|
1105
|
+
config.push(jsOnly());
|
|
1106
|
+
config.push(dts());
|
|
1107
|
+
config.push(tsOnly());
|
|
1108
|
+
if (options.react) {
|
|
1109
|
+
config.push(react({ version: options.react }));
|
|
1110
|
+
config.push(reactJsOnly());
|
|
1111
|
+
}
|
|
1112
|
+
if (options.vue) {
|
|
1113
|
+
config.push(
|
|
1114
|
+
vue({
|
|
1115
|
+
version: options.vue
|
|
1116
|
+
})
|
|
1117
|
+
);
|
|
1118
|
+
}
|
|
1119
|
+
if (options.lodash) {
|
|
1120
|
+
config.push(lodash());
|
|
1121
|
+
}
|
|
1122
|
+
if (options.cspell) {
|
|
1123
|
+
config.push(cspell(options.cspell));
|
|
1124
|
+
}
|
|
1125
|
+
if (options.jsdoc) {
|
|
1126
|
+
config.push({
|
|
1127
|
+
...jsdoc({
|
|
1128
|
+
ts: true
|
|
1129
|
+
}),
|
|
1130
|
+
files: TS_GLOBS
|
|
1131
|
+
});
|
|
1132
|
+
config.push({
|
|
1133
|
+
...jsdoc({
|
|
1134
|
+
ts: false
|
|
1135
|
+
}),
|
|
1136
|
+
files: JS_GLOBS
|
|
1137
|
+
});
|
|
1138
|
+
}
|
|
1139
|
+
config.push(...commonConfigs);
|
|
1140
|
+
config.push(
|
|
1141
|
+
agilebot({
|
|
1142
|
+
root,
|
|
1143
|
+
monorepoScope: options?.monorepoScope
|
|
1144
|
+
})
|
|
1145
|
+
);
|
|
1146
|
+
if (options.config) {
|
|
1147
|
+
config.push(options.config);
|
|
1148
|
+
}
|
|
870
1149
|
}
|
|
1150
|
+
config.push({
|
|
1151
|
+
name: "agilebot/ignores",
|
|
1152
|
+
ignores: [...IGNORE_GLOBS, ...options.ignores ?? []]
|
|
1153
|
+
});
|
|
1154
|
+
const includedPlugins = /* @__PURE__ */ new Set();
|
|
1155
|
+
config.forEach((configItem) => {
|
|
1156
|
+
if (configItem.plugins) {
|
|
1157
|
+
Object.keys(configItem.plugins).forEach((pluginName) => {
|
|
1158
|
+
if (includedPlugins.has(pluginName)) {
|
|
1159
|
+
delete configItem.plugins[pluginName];
|
|
1160
|
+
} else {
|
|
1161
|
+
includedPlugins.add(pluginName);
|
|
1162
|
+
}
|
|
1163
|
+
});
|
|
1164
|
+
}
|
|
1165
|
+
});
|
|
871
1166
|
return config;
|
|
872
1167
|
}
|
|
873
1168
|
// Annotate the CommonJS export names for ESM import in node:
|