@shigen/eslint-plugin 0.3.1 → 0.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/dist/index.js CHANGED
@@ -1,12 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.rules = void 0;
4
- const no_commented_code_1 = require("./rules/experimental/no-commented-code");
5
4
  const group_imports_1 = require("./rules/group-imports");
6
5
  const sort_imports_1 = require("./rules/sort-imports");
7
6
  exports.rules = {
8
7
  'group-imports': group_imports_1.rule,
9
8
  'sort-imports': sort_imports_1.rule,
10
- 'experimental/no-commented-code': no_commented_code_1.rule,
11
9
  };
12
10
  //# 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":";;;AAGA,8EAAiF;AACjF,yDAA6D;AAC7D,uDAA2D;AAY9C,QAAA,KAAK,GAAoC;IACrD,eAAe,EAAE,oBAAY;IAC7B,cAAc,EAAE,mBAAW;IAC3B,gCAAgC,EAAE,wBAAe;CACjD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAGA,yDAA6D;AAC7D,uDAA2D;AAY9C,QAAA,KAAK,GAAoC;IACrD,eAAe,EAAE,oBAAY;IAC7B,cAAc,EAAE,mBAAW;CAC3B,CAAC"}
@@ -1,30 +1,32 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.rule = exports.TypeImportConfiguration = exports.ModuleClass = void 0;
4
- const tslib_1 = require("tslib");
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
- var ModuleClass;
11
- (function (ModuleClass) {
12
- ModuleClass["Node"] = "node";
13
- ModuleClass["External"] = "external";
14
- ModuleClass["Absolute"] = "absolute";
15
- ModuleClass["Relative"] = "relative";
16
- })(ModuleClass = exports.ModuleClass || (exports.ModuleClass = {}));
17
- var TypeImportConfiguration;
18
- (function (TypeImportConfiguration) {
19
- TypeImportConfiguration["Include"] = "include";
20
- TypeImportConfiguration["Exclude"] = "exclude";
21
- TypeImportConfiguration["Only"] = "only";
22
- })(TypeImportConfiguration = exports.TypeImportConfiguration || (exports.TypeImportConfiguration = {}));
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') {
@@ -46,9 +48,9 @@ function groupIndex(node, groups) {
46
48
  return false;
47
49
  }
48
50
  if (isTypeImport) {
49
- return importPath.startsWith(group.path) && group.types !== TypeImportConfiguration.Exclude;
51
+ return importPath.startsWith(group.path) && group.types !== TypeImport.Exclude.key;
50
52
  }
51
- return importPath.startsWith(group.path) && group.types !== TypeImportConfiguration.Only;
53
+ return importPath.startsWith(group.path) && group.types !== TypeImport.Only.key;
52
54
  });
53
55
  if (hardCodedIndex >= 0) {
54
56
  return hardCodedIndex;
@@ -59,7 +61,7 @@ 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.default.isBuiltin(moduleName)) {
64
+ if ((0, node_module_1.isBuiltin)(moduleName)) {
63
65
  moduleClass = ModuleClass.Node;
64
66
  }
65
67
  else if (/^(?:\/|\.)/u.exec(moduleName)) {
@@ -70,9 +72,9 @@ function groupIndex(node, groups) {
70
72
  return false;
71
73
  }
72
74
  if (isTypeImport) {
73
- return group.class === moduleClass && group.types !== TypeImportConfiguration.Exclude;
75
+ return group.class === moduleClass.key && group.types !== TypeImport.Exclude.key;
74
76
  }
75
- return group.class === moduleClass && group.types !== TypeImportConfiguration.Only;
77
+ return group.class === moduleClass.key && group.types !== TypeImport.Only.key;
76
78
  });
77
79
  return classIndex >= 0 ? classIndex : groups.length;
78
80
  }
@@ -80,19 +82,75 @@ function checkLines(context, previous, next, lineCount) {
80
82
  if (!previous || !next) {
81
83
  throw new Error(`group-imports: unexpected undefined node`);
82
84
  }
83
- if ((0, ast_1.linesBetween)(previous, next) === lineCount) {
84
- return;
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
- context.report({
87
- node: previous,
88
- message: `Expected ${lineCount} empty line${lineCount === 1 ? '' : 's'} after import`,
89
- fix(fixer) {
90
- if (!previous.range || !next.range || !(0, ast_1.onlyWhiteSpaceBetween)(previous, next, context.getSourceCode())) {
91
- return null;
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
- return fixer.replaceTextRange([previous.range[1], next.range[0]], ''.padEnd(lineCount + 1, '\n'));
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) => {
@@ -108,7 +166,7 @@ exports.rule = {
108
166
  schema: {
109
167
  definitions: {
110
168
  typeImportConfiguration: {
111
- enum: ['include', 'exclude', 'only'],
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: ['node', 'external', 'absolute', 'relative'],
178
+ enum: [...ModuleClass.keys()],
121
179
  },
122
180
  types: {
123
181
  $ref: '#/definitions/typeImportConfiguration',
@@ -160,7 +218,7 @@ exports.rule = {
160
218
  },
161
219
  create(context) {
162
220
  const groupConfigurations = context.options.length ? context.options : defaultConfiguration;
163
- const source = context.getSourceCode();
221
+ const source = context.sourceCode;
164
222
  const imports = (0, ast_1.importModules)(source).map((node) => {
165
223
  return {
166
224
  index: groupIndex(node, groupConfigurations),
@@ -1 +1 @@
1
- {"version":3,"file":"group-imports.js","sourceRoot":"","sources":["../../src/rules/group-imports.ts"],"names":[],"mappings":"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"}
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
- var TypeImportGroupPosition;
8
- (function (TypeImportGroupPosition) {
9
- TypeImportGroupPosition["Ignore"] = "ignore";
10
- TypeImportGroupPosition["Top"] = "top";
11
- TypeImportGroupPosition["Bottom"] = "bottom";
12
- TypeImportGroupPosition["AboveValue"] = "above-value";
13
- TypeImportGroupPosition["BelowValue"] = "below-value";
14
- })(TypeImportGroupPosition = exports.TypeImportGroupPosition || (exports.TypeImportGroupPosition = {}));
15
- var TypeImportInlinePosition;
16
- (function (TypeImportInlinePosition) {
17
- TypeImportInlinePosition["Ignore"] = "ignore";
18
- TypeImportInlinePosition["Start"] = "start";
19
- TypeImportInlinePosition["End"] = "End";
20
- })(TypeImportInlinePosition = exports.TypeImportInlinePosition || (exports.TypeImportInlinePosition = {}));
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: ['ignore', 'top', 'bottom', 'above-value', 'below-value'],
68
+ enum: [...TypeImportGroupPosition.keys()],
69
+ },
70
+ inlineTypes: {
71
+ enum: [...TypeImportInlinePosition.keys()],
66
72
  },
67
73
  },
68
74
  },
@@ -70,7 +76,7 @@ exports.rule = {
70
76
  },
71
77
  create(context) {
72
78
  const configuration = { ...defaultConfiguration, ...context.options[0] };
73
- const source = context.getSourceCode();
79
+ const source = context.sourceCode;
74
80
  const partition = (result, node, index, from) => {
75
81
  if (index > 0 && (0, ast_1.linesBetween)(from[index - 1], node) > 0) {
76
82
  result.push([]);
@@ -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":"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"}
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.onlyWhiteSpaceBetween = exports.linesBetween = exports.extrema = exports.isTypeImportOrExport = exports.exportModules = exports.importModules = void 0;
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
  }
@@ -29,8 +29,22 @@ function linesBetween(a, b) {
29
29
  return b.loc.start.line - a.loc.end.line - 1;
30
30
  }
31
31
  exports.linesBetween = linesBetween;
32
- function onlyWhiteSpaceBetween(a, b, source) {
33
- return !source.getFirstTokenBetween(a, b, { includeComments: true });
32
+ function isComment(value) {
33
+ return value.type === 'Block' || value.type === 'Line';
34
34
  }
35
- exports.onlyWhiteSpaceBetween = onlyWhiteSpaceBetween;
35
+ exports.isComment = isComment;
36
+ function assertLoc(value) {
37
+ if (value?.loc) {
38
+ return value.loc;
39
+ }
40
+ throw new Error(`error: AST was generated without node location information`);
41
+ }
42
+ exports.assertLoc = assertLoc;
43
+ function assertRange(value) {
44
+ if (value?.range) {
45
+ return value.range;
46
+ }
47
+ throw new Error();
48
+ }
49
+ exports.assertRange = assertRange;
36
50
  //# sourceMappingURL=ast.js.map
@@ -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,CACN,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,CAAC;QAC/D,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,CAAC,CAC/D,CAAC;AACH,CAAC;AALD,oDAKC;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,qBAAqB,CAAC,CAAc,EAAE,CAAc,EAAE,MAAkB;IACvF,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;AACtE,CAAC;AAFD,sDAEC"}
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,CACN,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,CAAC;QAC/D,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,CAAC,CAC/D,CAAC;AACH,CAAC;AALD,oDAKC;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,81 +1,80 @@
1
1
  {
2
- "name": "@shigen/eslint-plugin",
3
- "version": "0.3.1",
4
- "description": "General purpose plugin for ESLint",
5
- "keywords": [
6
- "eslint",
7
- "lint",
8
- "js",
9
- "javascript",
10
- "ts",
11
- "typescript",
12
- "es6"
13
- ],
14
- "license": "ISC",
15
- "author": "Tao Cumplido",
16
- "repository": "https://github.com/tao-cumplido/shigen/tree/main/packages/eslint-plugin",
17
- "bugs": "https://github.com/tao-cumplido/shigen/issues",
18
- "files": [
19
- "readme.md",
20
- "dist/**/*"
21
- ],
22
- "main": "dist/index.js",
23
- "scripts": {
24
- "prepublishOnly": "wireit",
25
- "test": "wireit",
26
- "build": "wireit"
27
- },
28
- "wireit": {
29
- "prepublishOnly": {
30
- "dependencies": [
31
- "test",
32
- "build"
33
- ]
34
- },
35
- "test": {
36
- "command": "npx -c 'tsx --tsconfig tsconfig.test.json --test src/**/*.test.ts'",
37
- "files": [
38
- "src/**/*.ts"
39
- ],
40
- "output": []
41
- },
42
- "build": {
43
- "command": "tsc --build tsconfig.build.json",
44
- "clean": "if-file-deleted",
45
- "files": [
46
- "src/**/*.ts",
47
- "!src/**/*.test.ts",
48
- "!src/tools/test.ts",
49
- "../../tsconfig.base.json",
50
- "tsconfig.build.json"
51
- ],
52
- "output": [
53
- "dist/**",
54
- "*.tsbuildinfo"
55
- ]
56
- }
57
- },
58
- "engines": {
59
- "node": "^16.17.0 || >=18.6.0"
60
- },
61
- "dependencies": {
62
- "tslib": "~2.6.1"
63
- },
64
- "devDependencies": {
65
- "@types/eslint": "8.44.2",
66
- "@typescript-eslint/parser": "6.4.0",
67
- "@typescript-eslint/types": "6.4.0",
68
- "ajv": "8.12.0",
69
- "eslint": "8.47.0",
70
- "dedent": "1.5.1"
71
- },
72
- "peerDependencies": {
73
- "@typescript-eslint/parser": "^6.0.0",
74
- "eslint": "^8.0.0"
75
- },
76
- "peerDependenciesMeta": {
77
- "@typescript-eslint/parser": {
78
- "optional": true
79
- }
80
- }
81
- }
2
+ "name": "@shigen/eslint-plugin",
3
+ "version": "0.5.0",
4
+ "description": "General purpose plugin for ESLint",
5
+ "keywords": [
6
+ "eslint",
7
+ "lint",
8
+ "js",
9
+ "javascript",
10
+ "ts",
11
+ "typescript",
12
+ "es6"
13
+ ],
14
+ "license": "ISC",
15
+ "author": "Tao Cumplido",
16
+ "repository": "https://github.com/tao-cumplido/shigen/tree/main/packages/eslint-plugin",
17
+ "bugs": "https://github.com/tao-cumplido/shigen/issues",
18
+ "files": [
19
+ "readme.md",
20
+ "dist/**/*"
21
+ ],
22
+ "main": "dist/index.js",
23
+ "wireit": {
24
+ "prepublishOnly": {
25
+ "dependencies": [
26
+ "test",
27
+ "build"
28
+ ]
29
+ },
30
+ "test": {
31
+ "command": "tsx --tsconfig tsconfig.test.json --test-reporter spec --test 'src/**/*.test.ts'",
32
+ "files": [
33
+ "src/**/*.ts"
34
+ ],
35
+ "output": []
36
+ },
37
+ "build": {
38
+ "command": "tsc --build tsconfig.build.json",
39
+ "clean": "if-file-deleted",
40
+ "files": [
41
+ "src/**/*.ts",
42
+ "!src/**/*.test.ts",
43
+ "!src/tools/test.ts",
44
+ "../../tsconfig.base.json",
45
+ "tsconfig.build.json"
46
+ ],
47
+ "output": [
48
+ "dist/**",
49
+ "*.tsbuildinfo"
50
+ ]
51
+ }
52
+ },
53
+ "engines": {
54
+ "node": "^18.18.0 || >=20.9.0"
55
+ },
56
+ "dependencies": {
57
+ "@shigen/enum": "0.5.0"
58
+ },
59
+ "devDependencies": {
60
+ "@types/eslint": "9.6.1",
61
+ "@types/estree": "1.0.5",
62
+ "typescript-eslint": "8.3.0",
63
+ "ajv": "8.17.1",
64
+ "eslint": "9.9.1",
65
+ "dedent": "1.5.3"
66
+ },
67
+ "peerDependencies": {
68
+ "@typescript-eslint/parser": "^8.0.0",
69
+ "eslint": "^9.0.0"
70
+ },
71
+ "peerDependenciesMeta": {
72
+ "@typescript-eslint/parser": {
73
+ "optional": true
74
+ }
75
+ },
76
+ "scripts": {
77
+ "test": "wireit",
78
+ "build": "wireit"
79
+ }
80
+ }
package/readme.md CHANGED
@@ -135,37 +135,3 @@ The default configuration is:
135
135
  "inlineTypes": "ignore"
136
136
  }
137
137
  ```
138
-
139
- ## Experimental rules
140
-
141
- :warning: These rules are experimental and may produce unexpected behavior. :warning:
142
-
143
- - These rules are not auto-fixable!
144
- - Consider setting the level to `"warn"` instead of `"error"`.
145
-
146
- ### `@shigen/experimental/no-commented-code`
147
-
148
- This rule is meant to detect commented code. It does so by uncommenting comment nodes and run the whole file with the uncommented part through the parser. If the parser produces a valid AST the comment is marked as commented code. Generally it should work with any parser but has only been tested with the default parser `espree` and `@typescript-eslint/parser`. For example, `// type A = 0;` is not commented code with `espree` but it is with `@typescript-eslint/parser`.
149
-
150
- False positives will probably happen, single words for example, are valid identifiers in many positions and `eslint-disable-next-line` is parsed as a `BinaryExpression`. Common patterns can be ignored and `^eslint-` is ignored by default. Additionally, doc comments are ignored as well, this cannot be turned off.
151
-
152
- The following configuration options can be set:
153
-
154
- ```ts
155
- interface Configuration {
156
- ignorePatterns?: string[];
157
- extendDefaultIgnorePatterns?: boolean;
158
- }
159
- ```
160
-
161
- - `ignorePatterns`: When a comment matches one of the specified patterns it will be ignored. The expressions are tested against the trimmed text content of the comment. Invalid regular expressions will be ignored.
162
- - `extendDefaultIgnorePatterns`: Whether to keep the default ignore patterns without explicitly redefining them.
163
-
164
- The default configuration is:
165
-
166
- ```json
167
- {
168
- "ignorePatterns": ["^eslint-", "^@ts-"],
169
- "extendDefaultIgnorePatterns": false
170
- }
171
- ```
@@ -1,142 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.rule = void 0;
4
- const defaultConfiguration = {
5
- ignorePatterns: ['^eslint-', '^@ts-'],
6
- extendDefaultIgnorePatterns: false,
7
- };
8
- // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
9
- function mapPatternReducer(result, pattern) {
10
- try {
11
- result.push(new RegExp(pattern, 'u'));
12
- }
13
- catch { }
14
- return result;
15
- }
16
- function parseIgnorePatterns(config) {
17
- if (!config?.ignorePatterns) {
18
- return;
19
- }
20
- const ignorePatterns = new Set(config.ignorePatterns);
21
- if (config.extendDefaultIgnorePatterns) {
22
- defaultConfiguration.ignorePatterns.forEach((pattern) => ignorePatterns.add(pattern));
23
- }
24
- return [...ignorePatterns].reduce(mapPatternReducer, []);
25
- }
26
- exports.rule = {
27
- meta: {
28
- schema: [
29
- {
30
- type: 'object',
31
- properties: {
32
- ignorePatterns: {
33
- type: 'array',
34
- items: {
35
- type: 'string',
36
- },
37
- },
38
- extendDefaultIgnorePatterns: {
39
- type: 'boolean',
40
- },
41
- },
42
- },
43
- ],
44
- },
45
- create(context) {
46
- function isNonSyntaxError(error) {
47
- if (error instanceof SyntaxError) {
48
- return false;
49
- }
50
- return (context.parserPath.includes('@typescript-eslint') &&
51
- // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-var-requires
52
- !(error instanceof require('@typescript-eslint/typescript-estree').TSError));
53
- }
54
- // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
55
- const parser = require(context.parserPath);
56
- const source = context.getSourceCode();
57
- const ignorePatterns = parseIgnorePatterns(context.options[0]) ?? defaultConfiguration.ignorePatterns.reduce(mapPatternReducer, []);
58
- // generate power set of all comments to process and sort sets by size descending
59
- const commentSets = source
60
- .getAllComments()
61
- .filter((comment) => {
62
- if (!comment.loc) {
63
- return false;
64
- }
65
- if (comment.type === 'Block' && comment.value.startsWith('*')) {
66
- // ignore doc comments
67
- return false;
68
- }
69
- return ignorePatterns.every((pattern) => !pattern.test(comment.value.trim()));
70
- })
71
- .reduce((sets, comment) => [...sets, ...sets.map((set) => [...set, comment])], [[]])
72
- .sort((a, b) => b.length - a.length);
73
- const reportedComments = new Set();
74
- for (const set of commentSets) {
75
- if (set.some((comment) => reportedComments.has(comment))) {
76
- continue;
77
- }
78
- // we modify the lines in place so make a copy for each test
79
- const lines = [...source.getLines()];
80
- // uncomment locations in source
81
- for (const comment of set) {
82
- const startIndex = comment.loc.start.line - 1;
83
- const start = [...(lines[startIndex] ?? '')];
84
- // replace comment delimiters with spaces to not move locations for multiple comments on same line
85
- start.splice(comment.loc.start.column, 2, ' ', ' ');
86
- if (comment.type === 'Block') {
87
- const endIndex = comment.loc.end.line - 1;
88
- if (startIndex === endIndex) {
89
- start.splice(comment.loc.end.column - 2, 2, ' ', ' ');
90
- }
91
- else {
92
- const end = [...(lines[endIndex] ?? '')];
93
- end.splice(comment.loc.end.column - 2, 2, ' ', ' ');
94
- lines[endIndex] = end.join('');
95
- }
96
- }
97
- lines[startIndex] = start.join('');
98
- }
99
- try {
100
- const parse = parser.parse ?? parser.parseForESLint;
101
- if (!parse) {
102
- throw new Error(`unexpected error: no 'parse' method found`);
103
- }
104
- parse(lines.join('\n'), {
105
- ...context.parserOptions,
106
- // provide same parser defaults as eslint (https://github.com/eslint/eslint/blob/82669fa66670a00988db5b1d10fe8f3bf30be84e/lib/linter/linter.js#L636-L645)
107
- // the typescript parser would potentially error without the 'filePath' or 'range' options (https://github.com/typescript-eslint/typescript-eslint/issues/2742)
108
- loc: true,
109
- range: true,
110
- raw: true,
111
- tokens: true,
112
- comment: true,
113
- eslintVisitorKeys: true,
114
- eslintScopeManager: true,
115
- filePath: context.getFilename(),
116
- // don't parse a typescript source in a project context
117
- // it'd be much slower and is not necessary for simple syntax validation
118
- project: undefined,
119
- projects: undefined,
120
- });
121
- for (const comment of set) {
122
- reportedComments.add(comment);
123
- context.report({
124
- loc: comment.loc,
125
- message: 'comment contains code',
126
- });
127
- }
128
- }
129
- catch (error) {
130
- if (isNonSyntaxError(error)) {
131
- const position = { line: 1, column: 0 };
132
- context.report({
133
- loc: { start: position, end: position },
134
- message: error.message,
135
- });
136
- }
137
- }
138
- }
139
- return {};
140
- },
141
- };
142
- //# sourceMappingURL=no-commented-code.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"no-commented-code.js","sourceRoot":"","sources":["../../../src/rules/experimental/no-commented-code.ts"],"names":[],"mappings":";;;AAkBA,MAAM,oBAAoB,GAAkB;IAC3C,cAAc,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;IACrC,2BAA2B,EAAE,KAAK;CAClC,CAAC;AAEF,8EAA8E;AAC9E,SAAS,iBAAiB,CAAC,MAAgB,EAAE,OAAe;IAC3D,IAAI;QACH,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;KACtC;IAAC,MAAM,GAAE;IAEV,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB,CAAC,MAA+B;IAC3D,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE;QAC5B,OAAO;KACP;IAED,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAEtD,IAAI,MAAM,CAAC,2BAA2B,EAAE;QACvC,oBAAoB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;KACtF;IAED,OAAO,CAAC,GAAG,cAAc,CAAC,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;AAC1D,CAAC;AAEY,QAAA,IAAI,GAA0C;IAC1D,IAAI,EAAE;QACL,MAAM,EAAE;YACP;gBACC,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACX,cAAc,EAAE;wBACf,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE;4BACN,IAAI,EAAE,QAAQ;yBACd;qBACD;oBACD,2BAA2B,EAAE;wBAC5B,IAAI,EAAE,SAAS;qBACf;iBACD;aACD;SACD;KACD;IACD,MAAM,CAAC,OAAO;QACb,SAAS,gBAAgB,CAAC,KAAc;YACvC,IAAI,KAAK,YAAY,WAAW,EAAE;gBACjC,OAAO,KAAK,CAAC;aACb;YAED,OAAO,CACN,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,oBAAoB,CAAC;gBACjD,iJAAiJ;gBACjJ,CAAC,CAAC,KAAK,YAAY,OAAO,CAAC,sCAAsC,CAAC,CAAC,OAAO,CAAC,CAC3E,CAAC;QACH,CAAC;QAED,qGAAqG;QACrG,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAsB,CAAC;QAChE,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAEvC,MAAM,cAAc,GACnB,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,oBAAoB,CAAC,cAAc,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QAE9G,iFAAiF;QACjF,MAAM,WAAW,GAAG,MAAM;aACxB,cAAc,EAAE;aAChB,MAAM,CAAC,CAAC,OAAO,EAA8B,EAAE;YAC/C,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;gBACjB,OAAO,KAAK,CAAC;aACb;YAED,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBAC9D,sBAAsB;gBACtB,OAAO,KAAK,CAAC;aACb;YAED,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/E,CAAC,CAAC;aACD,MAAM,CAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aACxG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;QAEtC,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAmB,CAAC;QAEpD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE;YAC9B,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE;gBACzD,SAAS;aACT;YAED,4DAA4D;YAC5D,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAErC,gCAAgC;YAChC,KAAK,MAAM,OAAO,IAAI,GAAG,EAAE;gBAC1B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;gBAC9C,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAE7C,kGAAkG;gBAClG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBAEpD,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE;oBAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;oBAE1C,IAAI,UAAU,KAAK,QAAQ,EAAE;wBAC5B,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;qBACtD;yBAAM;wBACN,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBACzC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;wBACpD,KAAK,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;qBAC/B;iBACD;gBAED,KAAK,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aACnC;YAED,IAAI;gBACH,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,cAAc,CAAC;gBAEpD,IAAI,CAAC,KAAK,EAAE;oBACX,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;iBAC7D;gBAED,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACvB,GAAG,OAAO,CAAC,aAAa;oBACxB,yJAAyJ;oBACzJ,+JAA+J;oBAC/J,GAAG,EAAE,IAAI;oBACT,KAAK,EAAE,IAAI;oBACX,GAAG,EAAE,IAAI;oBACT,MAAM,EAAE,IAAI;oBACZ,OAAO,EAAE,IAAI;oBACb,iBAAiB,EAAE,IAAI;oBACvB,kBAAkB,EAAE,IAAI;oBACxB,QAAQ,EAAE,OAAO,CAAC,WAAW,EAAE;oBAC/B,uDAAuD;oBACvD,wEAAwE;oBACxE,OAAO,EAAE,SAAS;oBAClB,QAAQ,EAAE,SAAS;iBACnB,CAAC,CAAC;gBAEH,KAAK,MAAM,OAAO,IAAI,GAAG,EAAE;oBAC1B,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBAC9B,OAAO,CAAC,MAAM,CAAC;wBACd,GAAG,EAAE,OAAO,CAAC,GAAG;wBAChB,OAAO,EAAE,uBAAuB;qBAChC,CAAC,CAAC;iBACH;aACD;YAAC,OAAO,KAAc,EAAE;gBACxB,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE;oBAC5B,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;oBACxC,OAAO,CAAC,MAAM,CAAC;wBACd,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE;wBACvC,OAAO,EAAE,KAAK,CAAC,OAAO;qBACtB,CAAC,CAAC;iBACH;aACD;SACD;QAED,OAAO,EAAE,CAAC;IACX,CAAC;CACD,CAAC"}