@shigen/eslint-plugin 0.4.0 → 0.6.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.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/rules/group-imports.js +99 -41
- package/dist/rules/group-imports.js.map +1 -1
- package/dist/rules/sort-imports.js +31 -25
- package/dist/rules/sort-imports.js.map +1 -1
- package/dist/tools/ast.js +19 -6
- package/dist/tools/ast.js.map +1 -1
- package/package.json +9 -10
package/dist/index.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.rules = void 0;
|
|
4
3
|
const group_imports_1 = require("./rules/group-imports");
|
|
5
4
|
const sort_imports_1 = require("./rules/sort-imports");
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
const plugin = {
|
|
6
|
+
rules: {
|
|
7
|
+
'group-imports': group_imports_1.rule,
|
|
8
|
+
'sort-imports': sort_imports_1.rule,
|
|
9
|
+
},
|
|
9
10
|
};
|
|
11
|
+
exports.default = plugin;
|
|
10
12
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAGA,yDAA6D;AAC7D,uDAA2D;AAE3D,MAAM,MAAM,GAAG;IACd,KAAK,EAAE;QACN,eAAe,EAAE,oBAAY;QAC7B,cAAc,EAAE,mBAAW;KAC3B;CACD,CAAC;AAEF,kBAAe,MAAM,CAAC"}
|
|
@@ -1,30 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.rule = exports.
|
|
4
|
-
const
|
|
5
|
-
const node_module_1 = tslib_1.__importDefault(require("node:module"));
|
|
3
|
+
exports.rule = exports.TypeImport = exports.ModuleClass = void 0;
|
|
4
|
+
const node_module_1 = require("node:module");
|
|
6
5
|
const node_path_1 = require("node:path");
|
|
6
|
+
const enum_1 = require("@shigen/enum");
|
|
7
7
|
const ast_1 = require("../tools/ast");
|
|
8
8
|
const rule_1 = require("../tools/rule");
|
|
9
9
|
const sort_1 = require("../tools/sort");
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
10
|
+
const moduleClassId = Symbol();
|
|
11
|
+
const typeImportId = Symbol();
|
|
12
|
+
class ModuleClass extends (0, enum_1.Enum)(moduleClassId) {
|
|
13
|
+
static Node = new ModuleClass(moduleClassId, { key: 'node' });
|
|
14
|
+
static External = new ModuleClass(moduleClassId, { key: 'external' });
|
|
15
|
+
static Absolute = new ModuleClass(moduleClassId, { key: 'absolute' });
|
|
16
|
+
static Relative = new ModuleClass(moduleClassId, { key: 'relative' });
|
|
17
|
+
}
|
|
18
|
+
exports.ModuleClass = ModuleClass;
|
|
19
|
+
class TypeImport extends (0, enum_1.Enum)(typeImportId) {
|
|
20
|
+
static Include = new TypeImport(typeImportId, { key: 'include' });
|
|
21
|
+
static Exclude = new TypeImport(typeImportId, { key: 'exclude' });
|
|
22
|
+
static Only = new TypeImport(typeImportId, { key: 'only' });
|
|
23
|
+
}
|
|
24
|
+
exports.TypeImport = TypeImport;
|
|
23
25
|
const defaultConfiguration = [
|
|
24
|
-
{ class: ModuleClass.Node },
|
|
25
|
-
{ class: ModuleClass.External },
|
|
26
|
-
{ class: ModuleClass.Absolute },
|
|
27
|
-
{ class: ModuleClass.Relative },
|
|
26
|
+
{ class: ModuleClass.Node.key },
|
|
27
|
+
{ class: ModuleClass.External.key },
|
|
28
|
+
{ class: ModuleClass.Absolute.key },
|
|
29
|
+
{ class: ModuleClass.Relative.key },
|
|
28
30
|
];
|
|
29
31
|
function groupIndex(node, groups) {
|
|
30
32
|
if (typeof node.source.value !== 'string') {
|
|
@@ -42,13 +44,13 @@ function groupIndex(node, groups) {
|
|
|
42
44
|
if (typeof group === 'string') {
|
|
43
45
|
return importPath.startsWith(group);
|
|
44
46
|
}
|
|
45
|
-
if (!
|
|
47
|
+
if (!('path' in group)) {
|
|
46
48
|
return false;
|
|
47
49
|
}
|
|
48
50
|
if (isTypeImport) {
|
|
49
|
-
return importPath.startsWith(group.path) && group.types !==
|
|
51
|
+
return importPath.startsWith(group.path) && group.types !== TypeImport.Exclude.key;
|
|
50
52
|
}
|
|
51
|
-
return importPath.startsWith(group.path) && group.types !==
|
|
53
|
+
return importPath.startsWith(group.path) && group.types !== TypeImport.Only.key;
|
|
52
54
|
});
|
|
53
55
|
if (hardCodedIndex >= 0) {
|
|
54
56
|
return hardCodedIndex;
|
|
@@ -59,20 +61,20 @@ function groupIndex(node, groups) {
|
|
|
59
61
|
throw new Error(`group-imports: unexpected undefined module name for path '${importPath}'`);
|
|
60
62
|
}
|
|
61
63
|
let moduleClass = ModuleClass.External;
|
|
62
|
-
if (node_module_1.
|
|
64
|
+
if ((0, node_module_1.isBuiltin)(moduleName)) {
|
|
63
65
|
moduleClass = ModuleClass.Node;
|
|
64
66
|
}
|
|
65
67
|
else if (/^(?:\/|\.)/u.exec(moduleName)) {
|
|
66
68
|
moduleClass = (0, node_path_1.isAbsolute)(moduleName) ? ModuleClass.Absolute : ModuleClass.Relative;
|
|
67
69
|
}
|
|
68
70
|
const classIndex = findIndex((group) => {
|
|
69
|
-
if (typeof group !== 'object' || !
|
|
71
|
+
if (typeof group !== 'object' || !('class' in group)) {
|
|
70
72
|
return false;
|
|
71
73
|
}
|
|
72
74
|
if (isTypeImport) {
|
|
73
|
-
return group.class === moduleClass && group.types !==
|
|
75
|
+
return group.class === moduleClass.key && group.types !== TypeImport.Exclude.key;
|
|
74
76
|
}
|
|
75
|
-
return group.class === moduleClass && group.types !==
|
|
77
|
+
return group.class === moduleClass.key && group.types !== TypeImport.Only.key;
|
|
76
78
|
});
|
|
77
79
|
return classIndex >= 0 ? classIndex : groups.length;
|
|
78
80
|
}
|
|
@@ -80,23 +82,79 @@ function checkLines(context, previous, next, lineCount) {
|
|
|
80
82
|
if (!previous || !next) {
|
|
81
83
|
throw new Error(`group-imports: unexpected undefined node`);
|
|
82
84
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
+
const tokensBetween = context.sourceCode.getTokensBetween(previous, next, { includeComments: true });
|
|
86
|
+
const relevantItems = [previous];
|
|
87
|
+
for (const token of tokensBetween) {
|
|
88
|
+
if (!(0, ast_1.isComment)(token)) {
|
|
89
|
+
return context.report({
|
|
90
|
+
loc: {
|
|
91
|
+
start: (0, ast_1.assertLoc)(tokensBetween.find((t) => !(0, ast_1.isComment)(t))).start,
|
|
92
|
+
end: (0, ast_1.assertLoc)(tokensBetween.findLast((t) => !(0, ast_1.isComment)(t))).end,
|
|
93
|
+
},
|
|
94
|
+
message: `Unexpected code between imports of group`,
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
relevantItems.push(token);
|
|
85
98
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
99
|
+
relevantItems.push(next);
|
|
100
|
+
for (let i = 0; i < relevantItems.length - 1; i++) {
|
|
101
|
+
const a = relevantItems[i];
|
|
102
|
+
const b = relevantItems[i + 1];
|
|
103
|
+
const locA = (0, ast_1.assertLoc)(a);
|
|
104
|
+
const locB = (0, ast_1.assertLoc)(b);
|
|
105
|
+
const rangeA = (0, ast_1.assertRange)(a);
|
|
106
|
+
const rangeB = (0, ast_1.assertRange)(b);
|
|
107
|
+
const linesBetween = locB.start.line - locA.end.line - 1;
|
|
108
|
+
if (lineCount === 0) {
|
|
109
|
+
if (linesBetween > 0) {
|
|
110
|
+
const range = [rangeA[1], rangeB[0] - locB.start.column];
|
|
111
|
+
context.report({
|
|
112
|
+
loc: {
|
|
113
|
+
start: locA.end,
|
|
114
|
+
end: {
|
|
115
|
+
line: locB.start.line,
|
|
116
|
+
column: 0,
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
message: `Unexpected white space between imports`,
|
|
120
|
+
fix: (fixer) => fixer.replaceTextRange(range, '\n'),
|
|
121
|
+
});
|
|
92
122
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
const columnOffset = (0, ast_1.isComment)(b) ? 0 : locB.start.column;
|
|
126
|
+
const reportLoc = {
|
|
127
|
+
start: locA.end,
|
|
128
|
+
end: {
|
|
129
|
+
line: locB.start.line,
|
|
130
|
+
column: columnOffset,
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
const fix = (fixer) => fixer.replaceTextRange([rangeA[1], rangeB[0] - columnOffset], '\n\n');
|
|
134
|
+
if ((0, ast_1.isComment)(a) || (0, ast_1.isComment)(b)) {
|
|
135
|
+
if (linesBetween > 1) {
|
|
136
|
+
context.report({
|
|
137
|
+
loc: reportLoc,
|
|
138
|
+
message: `TODO 1`,
|
|
139
|
+
fix,
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
if (linesBetween !== 1) {
|
|
145
|
+
context.report({
|
|
146
|
+
loc: reportLoc,
|
|
147
|
+
message: `TODO 2`,
|
|
148
|
+
fix,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
96
154
|
}
|
|
97
155
|
function groupLabels(groups) {
|
|
98
156
|
return groups.map((group) => {
|
|
99
|
-
if (group instanceof Array || typeof group === 'string' ||
|
|
157
|
+
if (group instanceof Array || typeof group === 'string' || 'path' in group) {
|
|
100
158
|
return 'custom';
|
|
101
159
|
}
|
|
102
160
|
return group.class.toUpperCase();
|
|
@@ -108,7 +166,7 @@ exports.rule = {
|
|
|
108
166
|
schema: {
|
|
109
167
|
definitions: {
|
|
110
168
|
typeImportConfiguration: {
|
|
111
|
-
enum: [
|
|
169
|
+
enum: [...TypeImport.keys()],
|
|
112
170
|
},
|
|
113
171
|
moduleConfiguration: {
|
|
114
172
|
oneOf: [
|
|
@@ -117,7 +175,7 @@ exports.rule = {
|
|
|
117
175
|
type: 'object',
|
|
118
176
|
properties: {
|
|
119
177
|
class: {
|
|
120
|
-
enum: [
|
|
178
|
+
enum: [...ModuleClass.keys()],
|
|
121
179
|
},
|
|
122
180
|
types: {
|
|
123
181
|
$ref: '#/definitions/typeImportConfiguration',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group-imports.js","sourceRoot":"","sources":["../../src/rules/group-imports.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"group-imports.js","sourceRoot":"","sources":["../../src/rules/group-imports.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.rule = exports.TypeImportInlinePosition = exports.TypeImportGroupPosition = void 0;
|
|
4
|
+
const enum_1 = require("@shigen/enum");
|
|
4
5
|
const ast_1 = require("../tools/ast");
|
|
5
6
|
const rule_1 = require("../tools/rule");
|
|
6
7
|
const sort_1 = require("../tools/sort");
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
8
|
+
const typeImportGroupPositionId = Symbol();
|
|
9
|
+
const typeImportInlinePositionId = Symbol();
|
|
10
|
+
class TypeImportGroupPosition extends (0, enum_1.Enum)(typeImportGroupPositionId) {
|
|
11
|
+
static Ignore = new TypeImportGroupPosition(typeImportGroupPositionId, { key: 'ignore' });
|
|
12
|
+
static Top = new TypeImportGroupPosition(typeImportGroupPositionId, { key: 'top' });
|
|
13
|
+
static Bottom = new TypeImportGroupPosition(typeImportGroupPositionId, { key: 'bottom' });
|
|
14
|
+
static AboveValue = new TypeImportGroupPosition(typeImportGroupPositionId, { key: 'above-value' });
|
|
15
|
+
static BelowValue = new TypeImportGroupPosition(typeImportGroupPositionId, { key: 'below-value' });
|
|
16
|
+
}
|
|
17
|
+
exports.TypeImportGroupPosition = TypeImportGroupPosition;
|
|
18
|
+
class TypeImportInlinePosition extends (0, enum_1.Enum)(typeImportInlinePositionId) {
|
|
19
|
+
static Ignore = new TypeImportInlinePosition(typeImportInlinePositionId, { key: 'ignore' });
|
|
20
|
+
static Start = new TypeImportInlinePosition(typeImportInlinePositionId, { key: 'start' });
|
|
21
|
+
static End = new TypeImportInlinePosition(typeImportInlinePositionId, { key: 'end' });
|
|
22
|
+
}
|
|
23
|
+
exports.TypeImportInlinePosition = TypeImportInlinePosition;
|
|
21
24
|
const defaultConfiguration = {
|
|
22
25
|
specifier: 'source',
|
|
23
26
|
locales: ['en-US'],
|
|
24
27
|
numeric: true,
|
|
25
28
|
caseFirst: 'lower',
|
|
26
29
|
sortExports: true,
|
|
27
|
-
typesInGroup: TypeImportGroupPosition.Ignore,
|
|
28
|
-
inlineTypes: TypeImportInlinePosition.Ignore,
|
|
30
|
+
typesInGroup: TypeImportGroupPosition.Ignore.key,
|
|
31
|
+
inlineTypes: TypeImportInlinePosition.Ignore.key,
|
|
29
32
|
};
|
|
30
33
|
exports.rule = {
|
|
31
34
|
meta: {
|
|
@@ -62,7 +65,10 @@ exports.rule = {
|
|
|
62
65
|
type: 'boolean',
|
|
63
66
|
},
|
|
64
67
|
typesInGroup: {
|
|
65
|
-
enum: [
|
|
68
|
+
enum: [...TypeImportGroupPosition.keys()],
|
|
69
|
+
},
|
|
70
|
+
inlineTypes: {
|
|
71
|
+
enum: [...TypeImportInlinePosition.keys()],
|
|
66
72
|
},
|
|
67
73
|
},
|
|
68
74
|
},
|
|
@@ -80,7 +86,7 @@ exports.rule = {
|
|
|
80
86
|
};
|
|
81
87
|
const sortModules = (group) => {
|
|
82
88
|
const sorted = (0, sort_1.sortByPath)(group, ['source', 'value'], configuration);
|
|
83
|
-
if (configuration.typesInGroup !== TypeImportGroupPosition.Ignore) {
|
|
89
|
+
if (configuration.typesInGroup !== TypeImportGroupPosition.Ignore.key) {
|
|
84
90
|
sorted.sort((a, b) => {
|
|
85
91
|
const aIsType = (0, ast_1.isTypeImportOrExport)(a);
|
|
86
92
|
const bIsType = (0, ast_1.isTypeImportOrExport)(b);
|
|
@@ -89,17 +95,17 @@ exports.rule = {
|
|
|
89
95
|
}
|
|
90
96
|
// eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
|
|
91
97
|
switch (configuration.typesInGroup) {
|
|
92
|
-
case TypeImportGroupPosition.Top:
|
|
98
|
+
case TypeImportGroupPosition.Top.key:
|
|
93
99
|
return aIsType ? -1 : 1;
|
|
94
|
-
case TypeImportGroupPosition.Bottom:
|
|
100
|
+
case TypeImportGroupPosition.Bottom.key:
|
|
95
101
|
return aIsType ? 1 : -1;
|
|
96
102
|
}
|
|
97
103
|
if (a.source.value === b.source.value) {
|
|
98
104
|
// eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
|
|
99
105
|
switch (configuration.typesInGroup) {
|
|
100
|
-
case TypeImportGroupPosition.AboveValue:
|
|
106
|
+
case TypeImportGroupPosition.AboveValue.key:
|
|
101
107
|
return aIsType ? -1 : 1;
|
|
102
|
-
case TypeImportGroupPosition.BelowValue:
|
|
108
|
+
case TypeImportGroupPosition.BelowValue.key:
|
|
103
109
|
return aIsType ? 1 : -1;
|
|
104
110
|
}
|
|
105
111
|
}
|
|
@@ -126,7 +132,7 @@ exports.rule = {
|
|
|
126
132
|
const from = configuration.specifier === 'source' ? 'local' : 'exported';
|
|
127
133
|
return (0, sort_1.sortByPath)(specifiers, [from, 'name'], configuration);
|
|
128
134
|
})();
|
|
129
|
-
if (configuration.inlineTypes !== TypeImportInlinePosition.Ignore) {
|
|
135
|
+
if (configuration.inlineTypes !== TypeImportInlinePosition.Ignore.key) {
|
|
130
136
|
sorted.sort((a, b) => {
|
|
131
137
|
const aIsType = (0, ast_1.isTypeImportOrExport)(a);
|
|
132
138
|
const bIsType = (0, ast_1.isTypeImportOrExport)(b);
|
|
@@ -135,9 +141,9 @@ exports.rule = {
|
|
|
135
141
|
}
|
|
136
142
|
// eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
|
|
137
143
|
switch (configuration.inlineTypes) {
|
|
138
|
-
case TypeImportInlinePosition.Start:
|
|
144
|
+
case TypeImportInlinePosition.Start.key:
|
|
139
145
|
return aIsType ? -1 : 1;
|
|
140
|
-
case TypeImportInlinePosition.End:
|
|
146
|
+
case TypeImportInlinePosition.End.key:
|
|
141
147
|
return aIsType ? 1 : -1;
|
|
142
148
|
}
|
|
143
149
|
return 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sort-imports.js","sourceRoot":"","sources":["../../src/rules/sort-imports.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"sort-imports.js","sourceRoot":"","sources":["../../src/rules/sort-imports.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/ast.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.assertRange = exports.assertLoc = exports.isComment = exports.linesBetween = exports.extrema = exports.isTypeImportOrExport = exports.exportModules = exports.importModules = void 0;
|
|
4
4
|
function importModules(source) {
|
|
5
5
|
return source.ast.body.filter((node) => node.type === 'ImportDeclaration');
|
|
6
6
|
}
|
|
@@ -10,8 +10,7 @@ function exportModules(source) {
|
|
|
10
10
|
}
|
|
11
11
|
exports.exportModules = exportModules;
|
|
12
12
|
function isTypeImportOrExport(node) {
|
|
13
|
-
return (
|
|
14
|
-
(Reflect.has(node, 'exportKind') && node.exportKind === 'type'));
|
|
13
|
+
return ('importKind' in node && node.importKind === 'type') || ('exportKind' in node && node.exportKind === 'type');
|
|
15
14
|
}
|
|
16
15
|
exports.isTypeImportOrExport = isTypeImportOrExport;
|
|
17
16
|
function extrema(source) {
|
|
@@ -29,8 +28,22 @@ function linesBetween(a, b) {
|
|
|
29
28
|
return b.loc.start.line - a.loc.end.line - 1;
|
|
30
29
|
}
|
|
31
30
|
exports.linesBetween = linesBetween;
|
|
32
|
-
function
|
|
33
|
-
return
|
|
31
|
+
function isComment(value) {
|
|
32
|
+
return value.type === 'Block' || value.type === 'Line';
|
|
34
33
|
}
|
|
35
|
-
exports.
|
|
34
|
+
exports.isComment = isComment;
|
|
35
|
+
function assertLoc(value) {
|
|
36
|
+
if (value?.loc) {
|
|
37
|
+
return value.loc;
|
|
38
|
+
}
|
|
39
|
+
throw new Error(`error: AST was generated without node location information`);
|
|
40
|
+
}
|
|
41
|
+
exports.assertLoc = assertLoc;
|
|
42
|
+
function assertRange(value) {
|
|
43
|
+
if (value?.range) {
|
|
44
|
+
return value.range;
|
|
45
|
+
}
|
|
46
|
+
throw new Error();
|
|
47
|
+
}
|
|
48
|
+
exports.assertRange = assertRange;
|
|
36
49
|
//# sourceMappingURL=ast.js.map
|
package/dist/tools/ast.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/tools/ast.ts"],"names":[],"mappings":";;;AAeA,SAAgB,aAAa,CAAC,MAAkB;IAC/C,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAmC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,mBAAmB,CAAC,CAAC;AAC7G,CAAC;AAFD,sCAEC;AAED,SAAgB,aAAa,CAAC,MAAkB;IAC/C,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAC5B,CAAC,IAAI,EAAmC,EAAE,CACzC,CAAC,IAAI,CAAC,IAAI,KAAK,wBAAwB,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAsB,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CACzG,CAAC;AACH,CAAC;AALD,sCAKC;AAED,SAAgB,oBAAoB,CAAC,IAA2D;IAC/F,OAAO,
|
|
1
|
+
{"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/tools/ast.ts"],"names":[],"mappings":";;;AAeA,SAAgB,aAAa,CAAC,MAAkB;IAC/C,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAmC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,mBAAmB,CAAC,CAAC;AAC7G,CAAC;AAFD,sCAEC;AAED,SAAgB,aAAa,CAAC,MAAkB;IAC/C,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAC5B,CAAC,IAAI,EAAmC,EAAE,CACzC,CAAC,IAAI,CAAC,IAAI,KAAK,wBAAwB,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAsB,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CACzG,CAAC;AACH,CAAC;AALD,sCAKC;AAED,SAAgB,oBAAoB,CAAC,IAA2D;IAC/F,OAAO,CAAC,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC;AACrH,CAAC;AAFD,oDAEC;AAED,SAAgB,OAAO,CAAwB,MAAoB;IAClE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7C,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;QACb,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;KAC1C;IAED,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACf,CAAC;AARD,0BAQC;AAED,SAAgB,YAAY,CAAC,CAA0B,EAAE,CAA0B;IAClF,IAAI,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE;QACvB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;KAC9E;IAED,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;AAC9C,CAAC;AAND,oCAMC;AAED,SAAgB,SAAS,CAAC,KAA+C;IACxE,OAAO,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;AACxD,CAAC;AAFD,8BAEC;AAED,SAAgB,SAAS,CAAC,KAAsD;IAC/E,IAAI,KAAK,EAAE,GAAG,EAAE;QACf,OAAO,KAAK,CAAC,GAAG,CAAC;KACjB;IAED,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;AAC/E,CAAC;AAND,8BAMC;AAED,SAAgB,WAAW,CAAC,KAA+C;IAC1E,IAAI,KAAK,EAAE,KAAK,EAAE;QACjB,OAAO,KAAK,CAAC,KAAK,CAAC;KACnB;IAED,MAAM,IAAI,KAAK,EAAE,CAAC;AACnB,CAAC;AAND,kCAMC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shigen/eslint-plugin",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "General purpose plugin for ESLint",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"eslint",
|
|
@@ -51,23 +51,22 @@
|
|
|
51
51
|
}
|
|
52
52
|
},
|
|
53
53
|
"engines": {
|
|
54
|
-
"node": "^18.18.0 || >=20.
|
|
54
|
+
"node": "^18.18.0 || >=20.9.0"
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
|
-
"
|
|
57
|
+
"@shigen/enum": "0.5.0"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
|
-
"@types/eslint": "
|
|
60
|
+
"@types/eslint": "9.6.1",
|
|
61
61
|
"@types/estree": "1.0.5",
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
"eslint": "8.57.0",
|
|
62
|
+
"typescript-eslint": "8.3.0",
|
|
63
|
+
"ajv": "8.17.1",
|
|
64
|
+
"eslint": "9.9.1",
|
|
66
65
|
"dedent": "1.5.3"
|
|
67
66
|
},
|
|
68
67
|
"peerDependencies": {
|
|
69
|
-
"@typescript-eslint/parser": "^
|
|
70
|
-
"eslint": "^
|
|
68
|
+
"@typescript-eslint/parser": "^8.0.0",
|
|
69
|
+
"eslint": "^9.0.0"
|
|
71
70
|
},
|
|
72
71
|
"peerDependenciesMeta": {
|
|
73
72
|
"@typescript-eslint/parser": {
|